Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

Od dzisiaj (:P) uczę się 39DLL'a.

 

Tutek Yody nie za wiele mi wyjaśnił, poszukałem przykładu. I znalazłem taki jeden.

Dla testu postanowiłem se zrobić pierwsze, co mi przyszło do głowy, czyli zwykłego ponga. Zrobiłem, skompilowałem (no to nei do końca kompilacja jest :P), uruchomiłem jedną kopię gry jako serwer, drugą jako klient. Wpisałem 127.0.0.1, super, działa.

 

Postanowiłem to sprawdzić przez internet. Dałem koledze plik, ja włączyłem jako serwer, kolega był klientem. Wpisał moje IP, i... gra się zawiesiła. Mówię mu, że to niemożliwe :P A on na to, żebym sam sprawdził. Więc od postawił serwer, ja się do niego podłączałem, i za przeproszeniem dupa. To samo.

Kiedy włączam jedną kopię gry jako serwer, a drugą jako klienta, i w kliencie zamiast 127.0.0.1 wpiszę moje prawdziwe IP, to również dupa. (IP pobieram mplay_ipaddress())

 

A teraz kod:

 

GML (objserwerconnect Create)
listen = tcplisten(14804, 2, 1);

my_ip = mplay_ipaddress();

 

global.host = true;

GML (objserwerconnect Step)
sock = tcpaccept(listen, 1);

 

if(sock)

{

closesocket(listen);

global.otherplayer = sock;

 

room_goto(rm_game);

instance_destroy();

}

GML (objserwerconnect Draw)
draw_text(5, 5, "Oczekiwanie na gracza...#IP serwera: " + string(my_ip));

 

GML (objbuttonconect Left Released)
ip = get_string("Podaj IP gracza", "127.0.0.1");

global.otherplayer = tcpconnect(ip, 14804, 1); //Moze to wina portu? Niezbyt sie znam :P

if(!global.otherplayer)

{

show_message("Nie mozna podlaczyc do serwera!");

exit;

}

 

show_message("Podlaczono do serwera!");

 

global.host = false;

room_goto(rm_game);

 

Więcej kodu dawać nie muszę, bo to jedyne obiekty w roomie. Mam rm_menu, a w nim obj_button_connect, i obj_button_host. Jak się kliknie w host to przenosi do rm_serwer, w którym jest obj_serwer_connect. Nic więcej.

 

A zawieszenie się oznacza, że nie zostaje wyświetlona żadna wiadomość. Wykonywanie kodu ustaje na tcpconnect().

 

Ale co mnei najbardziej dziwi, kod jest prawidłowy, no bo łączy mnie ze 127.0.01 :| Ale nawet, jak wpiszę swój IP, to się wiesza -_-

 

I ten no, z góry dzięki :P

Opublikowano
kurde sam nie wiem. Może użyj innego portu niż z almory
Właśnie tak se myślę o porcie. Ale kurde, na jaki niby mam to ustawić :P ?

 

Jakieś ciekawe propozycje?

A ja idę poczytać, co to port...

 

Edit: Lol...? Nagle zaczęło działać. Dziwne :P

Opublikowano

Wut? 14804 to standardowy port 39dll i o ile pamiętam sam z niego korzystałem.

Może wpisujesz jednak błędne IP? Bądź co bądź powinien ci wyskoczyć własny komunikat z błędem...

Co do gry przez internet, może nie masz zew. IP i dlatego kolega nie mógł się połączyć? Jak coś pozostaje jeszcze hamachi (ale to shit).

 

EDIT:

@UP: Samo?

Opublikowano

Właśnie dziwne, ale samo... jestem pewien, że uruchamiałem dobry plik *.exe, bo kompilowałem kilka razy, aby sprawdzić, czy dobrą wersję pliku odpalam - nie działało.

Przed chwilą restartowałem komputer, spróbowałem, i... działa Oo

 

Ale nie satysfakcjonuje mnie to :| Chciałbym wiedzieć, w czym problem, a nie :P

 

Grałem z kolegą przez internet - działa. Tylko strasznie klient się muli :P Gracz, który postawił serwer widzi wszystko normalnie, ale w kliencie piłka skacze, że nie powiem jak :P Ale to raczej nie wina gry.

Opublikowano

Jeżeli wysyłasz i odbierasz dane piłki co stepa to wina internetu. Wysyłaj tylko prędkość i kierunek i to tylko podczas odbicia piłki. Prostszy i praktyczniejszy sposób :) Paletki też tylko podczas poruszania się.

Opublikowano

Już na to wpadłem :D

Paletki wysyłam tylko, jeżeli się ruszają.

Ale o piłce nie pomyślałem, piłka jest wysyłana co Stepa :P

 

Jakby nie było, dzięki za sugestię z wysyłaniem informacji o piłce :)

Opublikowano

127.0.0.1 to adres wewnętrzny jak by coś, mało tego bo to nie tylko wewnętrzny ale także adres routera a nie kompa w lokalnej sieci więc nawet nie czaję dlaczego ci się łączy z kumplem o_O jakaś magia?

Opublikowano

Nie zrozumiałeś ;P

 

Z kumplem łączy, jak podam JEGO IP.

A to 127.0.0.1 to wcześniej, bo łączyło tylko z tym adresem :P

 

A przed chwilą doszedłem do powodu (na 90%) - to firewall coś chrzanił.

 

I odrazu pytanko: Jak ktoś ma router to nie ma żadnej mozaikowości się połączyć? Czy trzeba po prostu dobrze skonfigurować jakoś :P ?

Opublikowano
Ja również próbowałem skonfigurować. Skończy się chyba na tym że tylko jeden komputer w domu będzie miał neta... (mój :P)

Tja wiem coś o tym ale mam stuły routera przycisk reset :P po jego naciśnięciu musiałem tylko podstawowe dane wpisać i spowrotem all kompy miały neta.

Opublikowano

bardzo dziwne, ja mam router D-link524 bezprzewodowy. Mój komp podłączony kablem, laptop za pomocą karty bezprzewodowej i moje wii też jest do niego podpięte, i wszystko ma net wiec nie rozumiem.

 

Nawet raz kolega przyniósł swojego laptopa, podłączenie zajęło 5 min graliśmy po LANie w Warcrafta 3 oO

Opublikowano

Pablo, owszem, bo graliście przez LAN. ;P

 

Jeśli byście się łączyli poprzez zew. ip nie było by tak wesoło bo IP by się odwoływało do routera, a w nim można ustawić żeby pod dany port było na inne IP lokalne.

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