Skocz do zawartości

Pytanie związane z 39dll.


Paulik

Rekomendowane odpowiedzi

Hejka ,otrzymałem pewien projekt gry multiplayer. I w scripts mam scr_client_init_variables, a zawartość tego wygląda tak:

//HowToMakeAnMMORPG.com

//the ultimate resource

 

//function: initiate global variables

 

globalvar globaltemp;

globalvar globaltemp1;

 

//Client

global.client_ip = "tutaj ip" ; //IP address to connect to86.20*.1*2.1*2"*****no-ip.org"

global.client_port = 56441; //Port to use

global.socket = -1;

 

//Chat

global.chatting = false;

global.keyboard_string_previous = "";

 

global.chat_lines = 10;

 

var i;

for (i = 0; i < global.chat_lines; i += 1)

{

global.chat_contents[i,0] = ""; //Name

global.chat_contents[i,1] = ""; //Contents

global.chat_contents[i,2] = c_white; //Color

}

 

I mam pytanie , gracze się połączą z serwerem,gdy wpiszę tutaj swoje IP i port , czy muszę tworzyć plik aby odpalić klienta, + czy jeżeli stworzę "odpalacza serwera" na gotowym pliku , to się gracze połączą , czy muszę pisać jakiś specjalny kod do tej gry? , jeżeli tak to pomoże mi ktoś?

 

Mam jeszcze jedno pytanko, jeżeli mam wewnętrzne IP to jaki port wpisać?

 

Pozdrawiam + z góry dziękuję za pomocną odpowiedź.

Odnośnik do komentarza
Udostępnij na innych stronach

Czyli muszę napisać aplikację odpalającą serwer?

 

Bo mam tutaj taką przykładową ,Port 7777 ustawię, ale co dalej?

 

edit:

Tutaj mam gotowy plik Server.exe:

http://www.speedyshare.com/tUPDv/39DLL-Tutorial.rar

 

Proszę mi powiedzieć , co mam w nim edytować , aby po prostu gra działała , gdzie mam wpisać swoje IP.

 

No bo chyba, wpiszę IP w server.exe , odpalę go , wpiszę potem IP w grze (z tym co ma się łączyć) i odpalę grę dopiero.

 

Proszę o pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

ściągasz hamachi i przez niego możesz sobie grać, w kliencie wpisujesz sobie port i ip takie jak ma host w hamachi

i cient i host musi mieć hamachi

w servwrze nie wpisujesz ip tylko w client

 

Aha , czyli w server.exe muszę tylko dać port taki jak z Hamachi ,a w cliencie muszę dać IP i Port z hamachi i powinno działać ? Tak ?

 

Edit:

Tylko ja mam IP w Hamachi takie:5.100.92.137

 

A jaki jest port?

Odnośnik do komentarza
Udostępnij na innych stronach

Mam problem ,przy uruchamianiu serwera:

 

___________________________________________

FATAL ERROR in

action number 1

of Create Event

for object obj_control:

 

COMPILATION ERROR in code action

Error in code at line 2:

servertcp = tcplisten(2620:9b::564:5c89,10,1) //This starts the server with the port:7777 and max connections of: 10

^

at position 28: Symbol , or ) expected.

 

Ogółem ,wcześniej dałem PORT 12975 , i działało serwer połączył się z grą, teraz aby nie było tego błędu odpalam Serwer przez debugowanie, ale gdy uruchamiam grę to przy łączeniu z serwerem w pewnym momencie ,gra się wyłącza.

 

Co do tego wcześniejszego , poprawnego uruchomienia , to nie działała rejestracja i logowanie do gry (być może przez ten port).

 

Proszę o pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Ja nie zabieram się za pisanie gier, mi chodzi tylko o odpalenie serwera dla tej gry.

 

Ogółem , teraz serwer działa , pisze Connected, jest nowy problem nie mogę się zarejestrować oraz zalogować do gry, czego może być to problem ,proszę o pomoc.

 

Dam wam zawartość pewnych plików:

 

scr_client_init_variables

//HowToMakeAnMMORPG.com

//the ultimate resource

 

//function: initiate global variables

 

globalvar globaltemp;

globalvar globaltemp1;

 

//Client

global.client_ip = "5.100.92.137" ; //IP address to connect"

global.client_port = 12975; //Port to use

global.socket = -1;

 

//Chat

global.chatting = false;

global.keyboard_string_previous = "";

 

global.chat_lines = 10;

 

var i;

for (i = 0; i < global.chat_lines; i += 1)

{

global.chat_contents[i,0] = ""; //Name

global.chat_contents[i,1] = ""; //Contents

global.chat_contents[i,2] = c_white; //Color

}

 

obj_btn_confrim_login

//HowToMakeAnMMORPG.com

//the ultimate resource

 

//function: send login data

 

var username, password, username_length, password_length;

username = obj_textbox_username.text;

password = obj_textbox_password.text;

username_length = string_length(username);

password_length = string_length(password);

 

//Check if the username is too short or too long

if (username_length <= 4 || username_length >= 16)

{

show_message("Your username must be between 4 and 16 characters.");

exit;

}

 

//Check if the password is too short or too long

if (password_length <= 4 || password_length >= 16)

{

show_message("Your password must be between 4 and 16 characters.");

exit;

}

 

//Send packet

clearbuffer();

writebyte(MID_LOGIN);

writestring(username);

writestring(password);

send_server();

 

obj_btn_confrim_register:

//HowToMakeAnMMORPG.com

//the ultimate resource

 

//function: send register data

 

var username, password, username_length, password_length;

 

//Retrieve user entries in the username and password textboxes

username = obj_textbox_username.text;

password = obj_textbox_password.text;

 

//Check if the username is too short or too long

username_length = string_length(username);

password_length = string_length(password);

 

if (username_length <= 4 || username_length >= 16)

{

show_message("Your username must be between 4 and 16 characters.");

exit;

}

 

//Check if the password is too short or too long

if (password_length <= 4 || password_length >= 16)

{

show_message("Your password must be between 4 and 16 characters.");

exit;

}

 

if (global.firme == 0)

{

show_message("You must choose a company.");

exit;

}

 

//Send packet

clearbuffer();

writebyte(MID_REGISTER);

writestring(username);

writestring(password);

writebyte(global.firme);

send_server();

Odnośnik do komentarza
Udostępnij na innych stronach

Ustawiasz w serwerze jakiś port z zakresu 1024-65535, później na kliencie wpisujesz ten sam port i IP hosta. Jak odpalasz serwer i klient na tym samym kompie to wpisz 127.0.0.1 (adres lokalny).

 

Co do tej rejestracji to daj kod z serwera.

 

@kriso99 Adres IPv6 to nie port...

Odnośnik do komentarza
Udostępnij na innych stronach

scr_client_init_variables

//HowToMakeAnMMORPG.com

//the ultimate resource

 

//function: initiate global variables

 

globalvar globaltemp;

globalvar globaltemp1;

 

//Client

global.client_ip = "5.100.92.137" ; //IP address to connect"

global.client_port = 12975; //Port to use

global.socket = -1;

 

//Chat

global.chatting = false;

global.keyboard_string_previous = "";

 

global.chat_lines = 10;

 

var i;

for (i = 0; i < global.chat_lines; i += 1)

{

global.chat_contents[i,0] = ""; //Name

global.chat_contents[i,1] = ""; //Contents

global.chat_contents[i,2] = c_white; //Color

}

 

obj_btn_confrim_login

//HowToMakeAnMMORPG.com

//the ultimate resource

 

//function: send login data

 

var username, password, username_length, password_length;

username = obj_textbox_username.text;

password = obj_textbox_password.text;

username_length = string_length(username);

password_length = string_length(password);

 

//Check if the username is too short or too long

if (username_length <= 4 || username_length >= 16)

{

show_message("Your username must be between 4 and 16 characters.");

exit;

}

 

//Check if the password is too short or too long

if (password_length <= 4 || password_length >= 16)

{

show_message("Your password must be between 4 and 16 characters.");

exit;

}

 

//Send packet

clearbuffer();

writebyte(MID_LOGIN);

writestring(username);

writestring(password);

send_server();

 

obj_btn_confrim_register:

//HowToMakeAnMMORPG.com

//the ultimate resource

 

//function: send register data

 

var username, password, username_length, password_length;

 

//Retrieve user entries in the username and password textboxes

username = obj_textbox_username.text;

password = obj_textbox_password.text;

 

//Check if the username is too short or too long

username_length = string_length(username);

password_length = string_length(password);

 

if (username_length <= 4 || username_length >= 16)

{

show_message("Your username must be between 4 and 16 characters.");

exit;

}

 

//Check if the password is too short or too long

if (password_length <= 4 || password_length >= 16)

{

show_message("Your password must be between 4 and 16 characters.");

exit;

}

 

if (global.firme == 0)

{

show_message("You must choose a company.");

exit;

}

 

//Send packet

clearbuffer();

writebyte(MID_REGISTER);

writestring(username);

writestring(password);

writebyte(global.firme);

send_server();

 

scr_client_init

//HowToMakeAnMMORPG.com

//the ultimate resource

 

//function: initiate the client and attempt a connection to the server

 

scr_client_init_variables();

 

dllinit(false,true,true); //Initiate 39dll

 

//Attempt connection to server

global.socket = tcpconnect(global.client_ip,global.client_port,true);

 

//Return result of connection attempt

if (global.socket < 0) then return false else return true;

 

 

scr_case_register

//HowToMakeAnMMORPG.com

//the ultimate resource

 

//function: process server registration response

 

switch (readbyte())

{

case 0:

show_message("Your username or password contain illegal characters.");

break;

 

case 1:

show_message("Your username must be between 4 and 16 characters.");

break;

 

case 2:

show_message("Your password must be between 4 and 16 characters.");

break;

 

case 3:

show_message("An account with that username already exists.");

break;

 

case 4:

show_message("Account successfully created! Please login now.");

room_goto(rm_connected);

break;

}

 

scr_case_login

//HowToMakeAnMMORPG.com

//the ultimate resource

 

//function: process server login response

 

switch (readbyte())

{

case 0:

show_message("Your username or password contain illegal characters.");

break;

 

case 1:

show_message("Your username must be between 4 and 16 characters.");

break;

 

case 2:

show_message("Your password must be between 4 and 16 characters.");

break;

 

case 3:

show_message("An account with that username does not exist.");

break;

 

case 4:

show_message("Your password does not match the account password.");

break;

 

case 5:

show_message("Someone else has logged into this account.");

break;

 

//Self login

case 6:

var i;

i = instance_create(0,0,obj_player);

 

//Assign general stats to player

scr_read_stats(i);

 

instance_change(obj_controller,1);

room_goto(rm_gameworld);

break;

 

//Other login

case 7:

var i;

i = instance_create(0,0,obj_other);

 

//Assign general stats to player

scr_read_stats(i);

 

add_line("",i.name + " has joined the game.",c_lime);

break;

}

 

scr_case_logout

//HowToMakeAnMMORPG.com

//the ultimate resource

 

//function: process server logout response

 

globaltemp = readushort();

 

with (obj_other)

{

if (playerid == globaltemp)

{

add_line("",name + " has left the game.",c_purple);

if (playerid == obj_player.cible)

{

obj_player.shooting = false

obj_player.cible = 0

}

instance_destroy();

}

}

 

Jeżeli jeszcze chcesz jakieś pliki , pisz.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...