Drag0nPL Opublikowano 20 Maja 2016 Udostępnij Opublikowano 20 Maja 2016 Witam, mam problem z przesyłaniem buforu i z samym połączeniem. Stworzyłem 2 programy server i klient W serverze stworzyłem socket o nazwie soc stworzylem server o nazwie serv stworzyłem bufor o nazwie buf W kliencie stworzyłem socket o nazwie soc stworzyłem bufor o nazwie buf łącze sie z serverem i wszystko pieknie tyle ze moge wysyłać bufor tylko do servera. W żaden sposób nie mogę wysłać żadnej wiadomości z servera do klienta. zależy mi aby w grze moglo grac nawet do 4 osob. Moje pytanie to: Co mam zrobić aby gracz 1 lub kolejny dołączający do servera mogł otrzymac informacje np, o innych graczach, kto wykonuje ruch itp. próbowałem robić cos takiego ze klient łączy się z serverem a server z klientem ale osoby które posiadają router nie mogą się połączyć więc to odpada. z góry dzięki Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 20 Maja 2016 Udostępnij Opublikowano 20 Maja 2016 Właściwie to nie wiem czy powinienem tu pisać, bo ile razy coś próbuję z mp to nie wychodzi, ale. Zrób sobie listę graczy. Przy odbiorze informacji jest zwracany socket klienta. Jeśli wysyłasz wiadomość z serwera do klienta, podajesz ten socket. (bo rozumiem, że w tym masz problem) Tak samo listę graczy zrób u klientów. I prosty przykład. Wchodzi gracz A. Jest pusty serwer (no i on). Wchodzi gracz B. Od serwera dostaje listę graczy (aktualnie tylko A). A gracz A, dostaję informację od serwera o dołączeniu gracza B. A potem tylko zmieniasz ich koordynaty (wysyłasz ID gracza i resztę np. x i y), a u klienta lista_graczy[ODEBRANE_ID].x=ODEBRANE_X; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Drag0nPL Opublikowano 21 Maja 2016 Autor Udostępnij Opublikowano 21 Maja 2016 Z tą listą i danymi sobie poradze, chodzi mi tylko o ten socket, jesli gracz polaczy sie z serverem, skąd server ma wiedzieć dokąd wysłać wiadomość żeby dotarła do gracza. Skąd mam wziąść ten socket. rozumiem ze to wyglada tak: Server:: tworze buffer tworze socket tworze server ( network_create_server ) Klient:: tworze buffer tworze socket łącze z serverem( network_connect ) Server::Networking:: Uzywam: a=ds_map_find_value(async_load,'type'); //sprawdzam typ polaczenia i przypisuje go do zmiennej a if a==network_type_connect //jesli gracz dołączył do servera to... { zeruje buffer dodaje dane do buforu np. buffer_write(buf,buffer_string,'przesylane dane'); wysylam bufer uzywajac network_send_packet(!!!PROBLEM!!!,buf,buffer_tell(buf)); tutaj w miejscu PROBLEM nie wiem skąd mam wziasc socket z tworzeniem list i innymi graczami sobie poradze tylko nie wiem jak wyslac wiadomosc z servera do klienta gdy klient połączy się z serverem oraz pozniej gdy server otrzymuje dane i rozsyla je do innych graczy } tzn. tak w skrócie tak, mam problem z socketem, mozesz napisac jak sprawdzic jaki socket ma klient ktory dolaczyl do servera Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 21 Maja 2016 Udostępnij Opublikowano 21 Maja 2016 W ds_map_find_value(async_load, "socket"); masz socket nowego klienta, oczywiście przy dołączaniu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Drag0nPL Opublikowano 21 Maja 2016 Autor Udostępnij Opublikowano 21 Maja 2016 Udało mi się to ogarnąć. Dzięki find_value znajduje socket i moge wyslac wiadomosc zwrotna, dziękuje wam za pomoc :) Temat do zamknięcia 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ę