Skocz do zawartości

Zablokowane Wysyłanie i odbiór danych - pytanie


Rekomendowane odpowiedzi

Opublikowano

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

Opublikowano

w swoim xenon online mialem (chyba) taka strukture:

*id danych

*id gracza ktory wyslal te dane

*dane

Opublikowano

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?

Opublikowano

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.

Opublikowano

zalezy jak skonstruowales serwer. ja uzywam innego id transferu server->klient, a innego klient->server. To pomaga uniknac nakladania sie danych

Opublikowano

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?

Opublikowano

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

Opublikowano

Dlaczego tworzą się takie błędy?

 

PsichiX lognij się jeszcze raz zobaczymy, czy będziemy widzieć swoje pozycje i animacje.

Opublikowano

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

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...