Paqoo Opublikowano 5 Kwietnia 2008 Opublikowano 5 Kwietnia 2008 Tworzę grę sieciową, czyli MMO. I mam pytanie. Jeśli chcę wysłać pozycje wroga/gracza jest taka możliwość, żeby dać writebyte(2) w dwóch przypadkach? Bo przecież odczytuję to samo.. Trzeba oddzielnie to wysyłać? Numerować writebyte(4) - np.?
PsichiX Opublikowano 5 Kwietnia 2008 Opublikowano 5 Kwietnia 2008 w swoim xenon online mialem (chyba) taka strukture: *id danych *id gracza ktory wyslal te dane *dane
Paqoo Opublikowano 5 Kwietnia 2008 Autor Opublikowano 5 Kwietnia 2008 Ale chodzi mi o to, czy za każdym razem muszę dawać inne id danych? Bo w obu przypadkach odczytuję na serwerze to samo.. Konieczne jest odczytywanie oddzielnie dwóch tego samego typu danych?
Nobody Opublikowano 5 Kwietnia 2008 Opublikowano 5 Kwietnia 2008 No jeżeli masz np. poruszanie się jakiegoś gracza to wysyłasz ID wiadomości odpowiadającą poruszaniu się gracza, a jak chcesz poruszyć wroga wysyłasz ID wiadomości odpowiadającą poruszaniu się wroga... Proste.
PsichiX Opublikowano 5 Kwietnia 2008 Opublikowano 5 Kwietnia 2008 zalezy jak skonstruowales serwer. ja uzywam innego id transferu server->klient, a innego klient->server. To pomaga uniknac nakladania sie danych
Paqoo Opublikowano 5 Kwietnia 2008 Autor Opublikowano 5 Kwietnia 2008 Ale jeśli mam te same dane. Moge użyć tego tylko raz? Dać w obu przypadkach writebyte(2); ? Czyli wysyła na serwer i odbiór z serwera dwóch pakietów? Będzie działać poprawnie? Czy muszę nadawać im inne id, nawet jeśli są identyczne dane?
PsichiX Opublikowano 5 Kwietnia 2008 Opublikowano 5 Kwietnia 2008 mozesz, ale na wlasna odpowiedzialnosc. jak mowilem - przy roznych id dla s->k i k->s dane nie beda uciekac i nie bedzie bledow przy wiekszej ilosci graczy
Paqoo Opublikowano 5 Kwietnia 2008 Autor Opublikowano 5 Kwietnia 2008 Dlaczego tworzą się takie błędy? PsichiX lognij się jeszcze raz zobaczymy, czy będziemy widzieć swoje pozycje i animacje.
PsichiX Opublikowano 5 Kwietnia 2008 Opublikowano 5 Kwietnia 2008 Bo jak juz Ci mowilem: Po pierwsze uzywasz Online Engine 2 - prosty ale nieswiadomie zabugowany i mulacy system. Po drugie struktura przesylania danych jest prosta: najpierw dane o graczu wysylane sa na serwer: client:[msg_id,player_id,data] -> server serwer je przetwarza, wykorzystuje i wysyla do innych graczy: server:[msg_id,player_id,data] -> client wiec jesli pakiety maja takie same identyfikatory na serwerze i u klienta to jesli kod gdzies zezwala na przecieki w stylu: server:[msg_id,player_id,data] -> server to jasne ze serwer odbierze te dane i wykona ponownie. A propos: jesli jacys gracze na serverze maja takie samo id to beda bledy - trzeba sie tego pilnowac. EDIT: klient nie dziala - masz cos z serwerem namieszane, bo logowac sie nie mozna
Paqoo Opublikowano 5 Kwietnia 2008 Autor Opublikowano 5 Kwietnia 2008 Dobra dzięki za pomoc. Muszę naprawić ten serwer.. Zamykam temat.
Rekomendowane odpowiedzi