Skocz do zawartości

Obrona przed lagami?


Roki

Rekomendowane odpowiedzi

Tworzę ping - ponga multiplayer, no i mam lagi! Dlaczego? Nie wiem...

Kod na odbiór:

GML
if(!global.host)exit;

while(1)

{

size = receivemessage(global.otherplayer);

if(size < 0)break;

if(size == 0)

{

show_message("Other player left the game, sorry.");

instance_destroy();

break;

}

bufferdecrypt(global.encryptionpass);

mid = readbyte();

switch(mid)

{

case 0:

objPongBat2.y = readshort();

objPongBat2.image_yscale = readshort()

break;

 

case 1:

objPongBall.x = readshort();

objPongBall.y = readshort();

break;

 

case 2:

global.jpkt = readshort()

break;

 

case 3:

global.hpkt = readshort()

break;

 

case 4:

show_message("Other player left the game, sorry.");

instance_destroy();

break;

}

}

Kod na wysyłanie jest prosty, czyści bufer, wysyła byte i sendmessage.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie wysyłam x i y u gracza co step, tylko wtedy gdy się zmienia, a co do piłki to u hostera ustawia speed 9 i direction random, a potem w stepie piłki wysyła:

 

if(global.host)

{

clearbuffer();

writebyte(1); //message id for ball position

writeshort(x);

writeshort(y);

bufferencrypt(global.encryptionpass);

sendmessage(global.otherplayer);

}

 

 

Jak używać skryptu setnagle? Podobno to smooth connection...

Odnośnik do komentarza
Udostępnij na innych stronach

Ok, teraz nie ma lag :D

Może nie wielkie, ale i tak duża różnica. Mam teraz prośbe do kogoś kto się zna na php, potrzebuje tablice serwerów, a w Game Makerze mam taki kod na dodawanie:

 

GML
host = 'rokigames.yoyo.pl';

file = 'roki/pong/index.php?add$nick=' + nick + '&status' + argument0

 

request = tcpconnect( host, 80, 0 );

if( request )

{

setformat( request, 2 );

 

clearbuffer();

writechars( 'GET /' + file + ' HTTP/1.0' + chr( 13 ) + chr( 10 ) );

writechars( 'Connection: close' + chr( 13 ) + chr( 10 ) );

writechars( chr( 13 ) + chr( 10 ) );

sendmessage( request );

 

setformat( request, 1, ' ' );

 

clearbuffer();

length = receivemessage( request );

if( length )

{

if( string_pos( 'HTTP/', readchars( length - 1 ) ) == 1 )

{

length = receivemessage( request );

if( length )

{

code = readchars( length - 1 );

switch( code )

{

case '200':

draw_text(0,10, code + ':Server was added to list!');

break;

 

case '404':

draw_text(0,10, code + ':Page does not exist.' );

break;

 

default:

draw_text(0,10, code + ': Error.' );

}

 

}

else

draw_text(0,10, 'Can not connect to server.' );

}

else

draw_text(0,10, 'Can not connect to server.' );

}

else

draw_text(0,10, 'Can not connect to server.' );

 

closesocket( request );

}

else

draw_text(0,10, 'Can not connect to server.' );</span>

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ę...