Sutikku Opublikowano 23 Września 2014 Udostępnij Opublikowano 23 Września 2014 Witam. Chciałem zrobić wysyłanie danych konta, z serwera do klienta. Jest to dużo danych, więc nie wiem czy to nie w tym jest problem. Daje wycinki kodu GML clearbuffer(); writebyte(1); writebyte(i); writeint(xx); writeint(yy) writeshort(zycie) writeshort(pragnienie) writeshort(glod) for(i=0; i<6; i+=1) { writeshort(ekwipunek) } writeshort(blockWeapon[1]) writeshort(blockWeapon[2]) writeshort(blockWeapon[3]) writeshort(radarOn) writeshort(noktowizor_un) writeshort(latarka_un) writeshort(clock) writeshort(ammo) sendmessage(clientsocket); . Jest to wysyłane tylko raz, po dołączeniu na serwer. Wtedy zaczyna się problem z NPC. Najprawdopodobniej tu: GML case 5: //zaatakowany zombie var kol, playerid; kol = readbyte(); playerid = readshort(); with(global.zombie[kol]) { atak=playerid } Jeśli z pierwszego kodu, wytnę wysyłanie informacji i zostawię GML clearbuffer(); writebyte(1) writebyte(i) sendmessage(clientsocket) To wtedy wszystko działa. Czy nie mogę wysyłać tak wielu informacji na raz? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kriso99 Opublikowano 23 Września 2014 Udostępnij Opublikowano 23 Września 2014 pokaz kod gdzie to odbierasz, mozliwe ze nie odebrałeś wszystkich zmiennych lub robisz to źle Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 23 Września 2014 Autor Udostępnij Opublikowano 23 Września 2014 Dobrze, tutaj odbieram informacje. GML case 1: var obi; obi=obj_player_self global.myid = readbyte(); obj_player_self.alarm[0] = 1; obi.x=readint(); obi.y=readint() obi.zycie=readshort() obi.pragnienie=readshort() obi.glod=readshort() for(i=0; i<6; i+=1) { global.ekwipunek=readshort() } obi.blockWeapon[1]=readshort() obi.blockWeapon[2]=readshort() obi.blockWeapon[3]=readshort() obi.radarOn=readshort() obi.noktowizor_un=readshort() obi.latarka_un=readshort() obi.clock=readshort() obi.ammo=readshort() break; A tutaj wysyłam informacje, o zaatakowanym NPC. GML kzid=najzombie.zid clearbuffer(); writebyte(5); writebyte(kzid); writeshort(global.myid); sendmessage(global.clienttcp); Zapomniałem dodać. Problem z NPC polega na tym, że powinien iść na postać. A on wariuje i idzie w prawo. Próbowałem rysować linię do miejsca w które próbuje dojść, ale nic nie rysowało. A chodzenie NPC wygląda tak. GML if (atak>-4) { if distance_to_point(global.players[atak].x, global.players[atak].y) > 16 move_towards_point(global.players[atak].x, global.players[atak].y, 2) else speed=0 if distance_to_point(global.players[atak].x, global.players[atak].y) > 256 atak=-4 } Sprawdzałem czy dobrze wykrywa ID postaci i jeśli chodzi o ID, to bez problemu. P.S global.players[x] to obiekt postaci. A ten wysyłany kzid, to ID każdego NPC. BARDZO WAŻNY DUŻY EDIT Po włożeniu w komentarz wysyłania informacji (i oczywiście odbierania informacji u klienta) nadal nie działało. Sprawdziłem gdzie próbuje iść NPC. Widzi własne koordynaty. Wywaliłem miejsce w którym czytam informację (nie umieszczałem tego ponieważ uznałem to za zbędne) i zadziałało. Spróbuję wysyłać to innym sposobem. 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ę