Skocz do zawartości

39dll - trzech graczy


Jeremiah

Rekomendowane odpowiedzi

Rozważam przerobienie swojej gierki na wersję dla trzech graczy i póki co zabrałem się za tworzenie najzwyklejszego w świecie menu. Potrzebuję paru wskazówek i informacji.

Generalnie połączenie się trzeciego gracza raczej działa. Każdy gracz ma nadane prawidłowe ID, widzi ilu jest graczy na serwerze.

"global.otherplayer" czyli gracz, do którego wysyłamy informacje to dla hosta drugi gracz, a dla obydwu graczy host.

"global.otherplayer2" to dla hosta i drugiego gracza gracz numer 3, a dla gracza numer 3 gracz numer 2

 

Gracze wysyłają do siebie prośby o przesłanie ich nicku. Między hostem i drugim graczem oraz hostem i graczem numer 3 jest on wysyłany bezproblemowo. Ale między graczem 2 i 3 nie da się nic wysłać. Założyłem więc, że bez pośrednictwo hosta się to po prostu nie da. Poprawcie mnie, jeśli się pomyliłem w tym założeniu.

No to zrobiłem coś takiego, że jeśli host otrzyma od gracza numer 3 informacje o jego nicku (działa bezproblemowo) to wysyła do gracza numer 2 nick gracza numer 3.

Tutaj już kompletnie się pogubiłem... z jakichś przyczyn gracz numer 2 chyba nie uznaje tego, by przesłać mu nick gracza numer 3 nawet za pośrednictwem hosta xp przesyłam kod"

 

Host otrzymuje informację o nicku gracza numer 3 i przesyła ją do gracza numer 2:

 

GML
case 211:

global.gracz3nick=readstring()

clearbuffer()

writebyte(212)

writestring(global.gracz3nick)

sendmessage(global.otherplayer)

break;

 

Gracz numer 2 otrzymuje tę informację.

 

GML
case 212:

global.gracz3nick=readstring()

break;

 

Nie wiem czemu, ale to nie działa.

 

EDIT coś gdzieś tam zmieniłem i działa, muszę tylko ogarnąć co :D

 

Niemniej pozostaje pytanie: nie da się wysyłać informacji między graczem 2 i 3 bez pośrednictwa hosta?

Odnośnik do komentarza
Udostępnij na innych stronach

Żeby Twój sposób, który obrałeś (komunikacja gracz-gracz) zadziałał, dwaj gracze muszą się ze sobą połączyć. Przypuśćmy że host wysyła IP graczy podpiętych do gry, musiałbyś połączyć ich ze sobą, np. wysyłanie pakietów UDP pod dany port, także nadany graczowi przez host - jako ten "wolny" w komunikacji P2P. Pamiętaj jednak o tzw. hole punching.

Odnośnik do komentarza
Udostępnij na innych stronach

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