Skocz do zawartości

game_end nie działa


ALT

Rekomendowane odpowiedzi

Więc mam w client'cie taki kod:

GML
clearbuffer();

writebyte(3); //1-wysylanie id //2-wysylanie pozycji //3-wyjscie gracza //4-polaczenie gracza

writeshort(global.idd);

sendmessage(global.sock);

Jest on w game_end, ale po wyłączeniu aplikacji przez X nie wysyła wiadomości o

odłączeniu się gracza, więc slot na server'ze zostaje pełny. Jak to rozwiązać, lub

może jak inaczej wykryć disconnect gracza.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli serwer odbierze wiadomość od klienta o rozmiarze 0.

 

 

Ogólne to staraj się całą logikę programować po stronie serwera. Klient powinien być tylko takim wizualizerem stanu gry dla gracza.

Prosty przykład, ruch. Zamiast wysyłać swoją pozycję to klient powinien się "pytać" serwera czy może się ruszyć w to miejsce i serwer w razie czego przesuwa gracza i wysyła pozycję.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Pakiet nie zdąży być wysłany przed zamknięciem gry. Jeśli gracz się rozłącza, to musi wysłać pakiet, dostać potwierdzenie z serwera i wtedy dopiero się odłaczyć - oczywiscie na serwerze też nie można od razu po ostatnim pakiecie usunąć gracza, tylko dać 1s. zeby ten ostatni pakiet doszedł (był taki problem w Almorze i czasem jak się gracze rozłączali, dostawali komunikat o niestabilnym połączeniu i w rezultacie po 10s. ich wywalało z gry... mimo, że oni sami z niej wychodzili).

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