Skocz do zawartości

39dll - lagi


ALT

Rekomendowane odpowiedzi

Więc mam taki kod:

GML (client)
var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;

 

global.t_size=receivemessage(global.t_sock)

if global.t_size<0 exit;

if global.t_size==0 game_end();

a=readbyte();

 

switch(a)

{

////////////////////////////////////////

case 3:

tc_setid(readshort())

break;

////////////////////////////////////////

case 4:

b=readshort();

c=tc_find("myidd",b);

if c!=-4

{

c.x=readshort();

c.y=readshort();

}

continue

////////////////////////////////////////

case 1:

b=readshort();

if b!=global.t_idd

{

c=instance_create(x,y,oOther)

c.myidd=b

}

continue

////////////////////////////////////////

case 2:

b=readshort();

c=tc_find("myidd",b);

if c!=-4

{

with(c){instance_destroy();}

}

continue

////////////////////////////////////////

}

 

GML (server)
var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,r,s,t,w,u;

ts_listen();

if global.t_sock{ts_accept();}

for( i=1; i<=global.t_maxpl; i+=1)

{

clearbuffer();

global.t_size=receivemessage(global.t_A)

if global.t_size<0 continue

if global.t_size==0

{

global.t_players-=1

for (a2=1; a2<=global.t_maxpl; a2+=1)

{

 

ts_removeplayer(i);

clearbuffer();

writebyte(2);

writeshort(i);

sendmessage(global.t_A[a2]);

}

continue;

}

q=readbyte();

 

switch(q)

{

case 2:

global.t_players-=1

ts_removeplayer(i);

for (z=1; z<=global.t_maxpl; z+=1)

{

clearbuffer();

writebyte(2);

writeshort(i);

sendmessage(global.t_A[z]);

}

continue;

case 4:

a=readshort();

c=readshort();

for (z=1; z<=global.t_maxpl; z+=1)

{

clearbuffer();

writebyte(4);

writeshort(i);

writeshort(a);

writeshort(c);

sendmessage(global.t_A[z]);

}

continue;

 

}

}

 

I nie wiem czemu, pakiety do gracza o pozycji przychodzą dopiero po tym jak gracz który wysyła znów się ruszy, czyli jak gracz ruszy się na pozycje x=2 z

pozycji x=1, to dopiero po ruchu na x=3 drugi gracz ustawi go na x=2

Odnośnik do komentarza
Udostępnij na innych stronach

Może ustaw algorytm nagle na true.

/*

Turns on/off the naggle (TCP_NODELAY) algorithm.

argument0 = socket id to affect

argument1 = true/false (true means NODELAY, false means DELAY)

*/

GML
setnagle(global.t_sock, true);

Daj to tam gdzie przyjmujesz klienta.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 miesiąc temu...

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