ALT Opublikowano 31 Marca 2013 Udostępnij Opublikowano 31 Marca 2013 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 Więcej opcji udostępniania...
Utermiko Opublikowano 31 Marca 2013 Udostępnij Opublikowano 31 Marca 2013 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 Więcej opcji udostępniania...
ALT Opublikowano 31 Marca 2013 Autor Udostępnij Opublikowano 31 Marca 2013 Dzięki za pomoc ale nadal to samo: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 1 Kwietnia 2013 Udostępnij Opublikowano 1 Kwietnia 2013 A jak wysyłasz pozycję? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ALT Opublikowano 1 Kwietnia 2013 Autor Udostępnij Opublikowano 1 Kwietnia 2013 GML ( jezeli ktos cos kliknie) clearbuffer(); writebyte(4); writeshort(x); writeshort(y); sendmessage(global.t_sock) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TheLukLook Opublikowano 10 Maja 2013 Udostępnij Opublikowano 10 Maja 2013 To może napisz kod, który gracz wysyła do serwera o poprawność pozycji? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 10 Maja 2013 Udostępnij Opublikowano 10 Maja 2013 Po 1 popatrz na datę postu. Po 2 co to by miało dać? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę