Skocz do zawartości

pabluuz

Użytkownicy
  • Postów

    19
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez pabluuz

  1. Tak, ale sprawę udało się rozwiązać :) Problem był taki, że "adres_servera" był constans, a tcpconnect(adres_servera, 80, 0); wymaga tego argumentu jako stringa, a ja głupi w tabeli const. wpisałem poprostu 192.168.0.1 zamiast "192.168.0.1". Więc informacja dla przyszłych pokoleń: funkcja tcpconnect potrzebuje STRINGA jako pierwszy argument. Dzięki za pomoc wam wszystkim :*. Będę tu zaglądał co jakiś czas, może uda mi się odwdzięczyć. Temat poproszę zamknąć.
  2. Widzisz! Błąd był taki oczywisty! Zaraz sprawdze :) i dam edita --- Edit: Nie nie nie :) to tylko chwilowo bylo jak sprawdzalem czy moge laczyc sie z serverami HTTP :) na tych samych portach (7921) tez nie daje rady sie polaczyc.
  3. Witam ponownie drodzy forumowicze. Pytanie zostało zadane już na forum dla początkujących, aczkolwiek wygląda na to, że nie jest to taki początkujący problem :) Postanowiłem to przenieść do forum dla zaawansowanych, więc edytowałem ostatniego posta i dopisałem requesta o przeniesieniu, jednakże widać, że administracja była zajęta, lub przeoczyła to. W każdym bądź razie, nie ma problemu, rozumiem ich, też są ludźmi przecież, więc sam to przeniosłem :) Po pierwsze chciałbym wam podziękować za ostatnią pomoc przy "with", od tamtego czasu prace idą mi coraz lepiej, lecz prędzej czy później musiałem natknąć się na kolejny problem. Tym razem chodzi o komunikacje za pomocą 39dll, najpierw pokaże wam jak to wygląda u mnie Kod z klienta Event w create GML dllinit('connection.dll', true, false);//inicjalizacja DLLa server=tcpconnect(adres_servera, 80, 0);//inicjalizacja polaczenia TCP ip = tcpip(server);//pobieram ip z servera :) potem mi sie to przyda, zeby sie do priv serverow nikt nie laczyl</span></span></span></span></span></span></span></span> Event po wpisaniu nazwy konta i wcisnieciu enter GML if(server <= 0) { show_message( "Nie mozna sie polaczyc" ); game_restart(); } else { clearbuffer(); writebyte(0); writestring(DATA.name); writestring(DATA.pass); sendmessage(global.server); room_goto_next(); } A teraz kod z servera on Create GML dllinit(0, true, true); listen = tcplisten(7921, 50, true); //nasłuchiwanie if(listen <= 0) //jeśli nie udaje się nasluchiwac { global.z_g_tcpipstatus=0; //show_message("Failed to listen on port 14804"); //pokaż wiadomość //game_end(); //zakończ grę } else { global.z_g_tcpipstatus=1; } on Step GML client = tcpaccept(listen, true); if(client <= 0) exit; z_l_ilegraczy = z_l_ilegraczy + 1; tid_gracza=instance_create(5,5,player); tabelagraczy[z_l_ilegraczy,0]=client; //link do jego socketu tabelagraczy[z_l_ilegraczy,1]=tid_gracza; // link do ID instancji gracza tid_gracza.client=client; tid_gracza.index=z_l_ilegraczy; tid_gracza.tid_gracza=tid_gracza; // zeby widzial jak go serwer widzi exit; potem server porozumiewa sie co stepa z instancja obiektu player.. I sprawa wygląda tak. adres_servera to constant, definiuje ją z global game settings. Gdy postawie server i na tym samym komputerze do niego joinnam, to w adres_servera wstawiam 127.0.0.1 i jest spoko, da sie dołączyć, lecz gdy postawie server u kolegi i ja chce dolaczyc (ofc w adres_servera wklepuje jego IP) to tcpconnect() zwraca false, sprawa wyglada tak samo gdy próbowałem vice-versa, próbowałem też z innymi kolegami się połączyć, lub żeby koledzy łączyli się do siebie nawzajem i też nie daje rady (także nie jest to problem z siecią). Dodam tez że nie jest to wina port forwardingu, ani niczego co jest związane z moją siecia ( dowód - http://gmc.yoyogames.com/index.php?showtopic=447384) Proszę o pomoc, nie mogę dać sobie sam z tym rady.
  4. Z góry sorki, że podbijam stary temat, ale sądzę że powinien znajdować się na samej górze listy, ponieważ jest to bardzo przydatny i zarazem pięknie wykonany przykład. Bardzo nie lubię oceniać cudzej pracy, aczkolwiek zrobię wyjątek. Bardzo mi się podoba ten przykład, 11/10 po prostu cudo :) Jeśli użyję tego w swojej pracy, to na 100% dodam cię copoconaco do creditsów. Trzymaj tak dalej, twoje przykłady prezentują twoje zdolności, oraz umiejętności dopracowania wszystkiego co robisz tak, aby nikt nie miał do tego zastrzeżeń. Bomba!
  5. pabluuz

    Wasze pulpity

    windows 7, jeszcze nie zasyfiłem pupitu :)
  6. server jest postawiony chwilowo u kolegi ktory nie ma sieci lokalnej i ma jedynie modemik neostrady! ja jako klient mam router. gdyby to był taki prosty problem, dawno bym już to rozwiązał :) ten kod działa gdy pod stała adres_servera dam 127.0.0.1 i odpale server u siebie, a gdy dam pod zmienna ip kolegi (83.24.xx.xx) i on postawi, to nie da rady sie polaczyc -- Prośba do administracji: Proszę o przeniesienie tematu do pytań dla zaawansowanych. Z góry dziękuje :)
  7. rozumiem, więc co mogę z tym zrobić? jeśli klient będzie miał komputer który łączy się z netem przez router lub przez server to nie pogra sobie? w takim razie jak rozwiązali to w innych grach? np w W3 albo w twojej almorze ? napewno istnieje jakieś rozwiązanie :)
  8. jakto nie mam zewnętrznego IP ? jak można nie mieć zewnętrznego IP!? ip lokalne mam 192.168.0.xx, natomiast globalne to 83.24.xx.xx , jak domniemam zewnętrzne = globalne :) tylko teraz mi powiedz jeszcze, czy to połączenie mam jakoś forwardować przez server na 192.168.0.1 ? to kod z klienta, więc nie chciałbym, żeby 2 graczy chcących sobie pograć po multi musiało forwardować port dla klienta, bo z tego co wiem, to server musiał zawsze forwardować porty, nie klient. ale proszę powiedz mi o tym conieco, bo z tego co widzę robisz jakiegoś mmorpg, więc masz o tym wiedzę :)
  9. Witam ponownie drodzy forumowicze. Po pierwsze chciałbym wam podziękować za ostatnią pomoc przy "with", od tamtego czasu prace idą mi coraz lepiej, lecz prędzej czy później musiałem natknąć się na kolejny problem. Tym razem chodzi o komunikacje za pomocą 39dll, najpierw pokaże wam jak to wygląda u mnie Kod z klienta Event w create GML dllinit('connection.dll', true, false);//inicjalizacja DLLa server=tcpconnect(adres_servera, 80, 0);//inicjalizacja polaczenia TCP ip = tcpip(server);//pobieram ip z servera :) potem mi sie to przyda, zeby sie do priv serverow nikt nie laczyl</span></span></span></span></span></span> Event po wpisaniu nazwy konta i wcisnieciu enter GML if(server <= 0) { show_message( "Nie mozna sie polaczyc" ); game_restart(); } else { clearbuffer(); writebyte(0); writestring(DATA.name); writestring(DATA.pass); sendmessage(global.server); room_goto_next(); } A teraz kod z servera on Create GML dllinit(0, true, true); listen = tcplisten(7921, 50, true); //nasłuchiwanie if(listen <= 0) //jeśli nie udaje się nasluchiwac { global.z_g_tcpipstatus=0; //show_message("Failed to listen on port 14804"); //pokaż wiadomość //game_end(); //zakończ grę } else { global.z_g_tcpipstatus=1; } on Step GML client = tcpaccept(listen, true); if(client <= 0) exit; z_l_ilegraczy = z_l_ilegraczy + 1; tid_gracza=instance_create(5,5,player); tabelagraczy[z_l_ilegraczy,0]=client; //link do jego socketu tabelagraczy[z_l_ilegraczy,1]=tid_gracza; // link do ID instancji gracza tid_gracza.client=client; tid_gracza.index=z_l_ilegraczy; tid_gracza.tid_gracza=tid_gracza; // zeby widzial jak go serwer widzi exit; potem server porozumiewa sie co stepa z instancja obiektu player.. No i jak hostuje to na localhoscie, i lacze sie tez z localhosta, to wszystko jest spoko, natomiast gdy dam koledze zahostowac, to sprawa wyglada tak ze w kliencie zmienna server = -1 i nie daje rady sie polaczyc.. sprawdzalem juz firewalle, zdognosc portow.. wszystko jest spoko, dodatkowo probowalem laczyc sie z ip googli przez port 80, tak samo nie moze nawiazac polaczenia. Mozna prosic o jakieś wskazówki? Przed napisaniem czegokolwiek, proszę zapoznać się DOKŁADNIE z treścią mojego posta To nie jest wina port Forwardingu ----- Oto topologia mojej sieci, wraz z próbami hostowania/joinania *|HOST|JOIN|Wynik ----------------------- 1|...1...|...4...| 0 //połączenie z poza sieci nieudane 2|...1...|...2...| 0 //połączenie z sieci lokalnej nieudane 3|...2...|...2...| 1 //połączenie na localhoscie udane 4|...4...|...2...| 0 //połaczenie do komputera z poza sieci nieudane 5|...4...|...4...| 1 //połączenie komputera z poza sieci do siebie samego udane 5|...4...|...1...| 0 //połaczenie z servera(nie używając sieci lokalnej) do komputera z poza sieci nieudane Oto dowód, że nie jest to wina port forwarda.. więc proszę nie zwalać na to winy -.-
  10. Dzięki za błyskawiczną pomoc! Ta wiedza mi się przyda :)
  11. Witam. Mam kilka pytań nt. pętli instrukcji with. 1. Jeśli w obiekcie gracz zrobię pętle with (sciana) { i=i+1; } to zmieni się zmienna i w każdej instancji obiektu ściana, czy zmienna i w obiekcie gracz? 2. Porównywanie zmiennych. Mam kilka instancji obiektu gracz i kilka instancji obiektu sciana, chce sprawdzic czy zmienna pos_x obiektu gracz jest rowna jakiejs zmiennej pos_x obiektu sciana with (sciana) { if (gracz.pos_x == pos_x ) //tak? jesli tak, to jeszcze problem w tym ze obiekt gracz ma kilka instancji :) { to cos zrob } } mogl by mi ktos to wytlumaczyc? z wiki game_maker_language wyczytalem ze zmienne w pętli instrukcji with są "object independent" i nie za bardzo wiem jak to rozumieć :) Z góry dzięki za pomoc i miłego dnia!
  12. jasne że można :) zainclude'uj pliczek .bat z poleceniem takowego połączenia, lub zaincluduj auto-connecta. co do pliku .bat, wejdz sobie w start>uruchom>cmd i wpisz tam rasdial /?
  13. W GML można używać tablic jedno i dwuwymiarowych. Może troszkę inaczej, bo zamotałem sprawę. Pracuje nad programem, który posłuży do zapamiętywania haseł. Wpis z hasłem będzie składał się z strony lub programu, username, passworda, oraz liczby porzadkowej (priorytet, niektórych używa się częściej, innych rzadziej). Nie za bardzo wiem, jak przygotować odpowiednią strukturę danych, dlatego na początku pomyślałem, że użyje właśnie ds_list jak najbardziej ułatwi mi pracę, ponieważ program przy uruchomieniu mógłby wpisów szukać w folderze data/accounts/, a następnie wczytując stringa zawartego w tych pliku do listy, a następnie tworzyć kolejne listy. Gdy miałbym już to wszystko w pamięci, mógłbym odszukać w tych listach następnie np nazwe serwisu do którego jest odpowiednie hasło i wyświetlić ją sobie :) kombinowałem też aby robić instancje obiektu "wpis" i zapisywać jako jego zmienne lokalne poszczególne wartości odpowiedniego wpisu (username,passord), ale problemem jest to, że wyczytałem w helpie, że instancja zmienia co stepa swoje ID, co będzie stanowiło do mnie pewne wyzwanie, nie wiem czy to sie dobrze skoordynuje, a pozatym nie wiem jak odwołać się do poszczególnej zmiennej w poszczególnej instancji obiektu, bo np aby odwołać się do zmiennej user w obiekcie wpis, piszę wpis.user , a jeśli obiekt user ma kilka instancji, to jak odwołać się np do instancji nr 214656 ? Dzięki wielkie wam wszystkim za pomoc :)
  14. Dzięki bardzo za pomoc, ale czy wpisując real(jakis_sting); otrzymam zakodowanego stringa? :P sęk w tym, że string jest słowem w tym przypadku. Mógłbym cię jeszcze poprosić o przybliżenie mi zasady działania tych tablic? Lub chociaż różnice między tablicami w GML a tablicami w Cpp ? Jeszcze raz dzięki za pomoc! ~pabluuz
  15. Na początku chciałem was wszystkich powitać, nie odwiedzałem forum już od dłuższego czasu, związane to było ze studiami, pracą itp. Zwracam się do was z pewnym problemem, z którym nie potrafię sobie poradzić, mam nadzieje, że ktoś z forum będzie znał rozwiązanie tego problemu (bo każdy problem ma swoje rozwiązanie) Sprawa wygląda tak- Z tego co doczytałem w manualu (game maker7 pro), odpowiednikiem c++-owej tablicy jest game-makerowy "list". Bardzo mnie to ucieszyło, że język GML też posiada takową strukturę i chciałbym ją wykorzystać w moim programie. Potrzebuję zapisać kilka stringów i intów do takowego lista. Problem wygląda tak, że przy zapisaniu tego lista jako string (w celu zapisania do pliku.txt, funkcja ds_list_write(id)) , następnie odczytaniu tego pliku z powrotem do programu i przekonwertowaniu tego stringa z powrotem na lista GML zaczyna się gubić i odczytywać wszystkie wartości zawarte w liscie jako wartości liczbowe (a przypomnę, że są tam zapisane stringi i wartości liczbowe). Rozwiązanie, które przychodzi mi na myśl jako pierwsze, to przekonwertowanie takowego stringa przed wrzuceniem go do lista na jakąś wartość liczbową, lecz nie potrafię takiej konwersji dokonać. Czy ktoś z was może posiada takie umiejętności, lub umie rozwiązać ten problem w inny sposób? ~pabluuz
  16. tommouluss, skoro dopiero zaczynasz, to ci troszkę wytłumaczę czemu PsichiX cię tak poprawił. funkcja if () oznacza : jeśli to co jest w nawiasie jest prawdą (1 oznacza prawda) to zrób to {}, niektóre funkcje ( a nawet zaryzykuje że większość), jeśli zostaną wykonane poprawnie dają odpowiedź "1" (prawda). są też funkcje zwracające określoną wartość liczbową, wtedy można zapytać if (funkcja zwracajaca liczbowa > 0 ) {}. informatyka jest ciekawą przygodą a GM bardzo dobrym początkiem. ps. w sumie to sam nie wiem czemu nie napisałem tak jak PsichiX, no ale cóż...
  17. account jest stringiem, poniewaz zawiera znaki , a nie cyfry. no a slesz poprawilem :)
  18. Witajcie, od pewnego czasu borykam się z pewnym problemem: if (file_exists("accounts\"global.account1) > 0) Zwraca mi, że file_exist ma tylko 1 argument.. nie wiem jak zrobić, aby ta funkcja sprawdziła czy plik global.account1 istnieje w folderze "accounts". Aha i nie jestem kolejnym cwaniakiem, który chce zrobić mmorpg :P a zauważyłem, że takich macie pod dostatkiem. Pozdrawiam ~pabluuz EDIT: Ok, już sobie poradziłem :) Dla wszystkich, którzy znaleźli ten post dzięki "Szukaj", problem był w tym, że między "accounts/" i global.account1 należało wstawić +, dzięki temu +, można podać naprawdę długi ciąg mieszany tekstu, zmiennych itp.. poprawnie tak funkcja wygląda tak: if (file_exists("accounts\"+global.account1) > 0)
  19. Witam, mam pewien problem. Moze juz ktos sie na niego natknal, wiec bedziecie pewnie wiedziec jak to rozwiazac. Tworze gierke- PGR manager I problem jest nastepujacy. Kamerke po planszy porusza sie prawym przyciskiem myszki, tak jak jest to zrobione w settlers 2 , rozwiazalem to tak - zrobilem obiekt o nazwie "Myszka" ktory podaza za myszka a wyglada to tak: On Create- cursor_sprite = CUR_1; global.kamerka = "nic"; Alarm 0- A nastepnie ustaw Alarm 0 na "1" Global Left Button- if (global.kamerka = "ludzik") move_towards_point(rolnik.x,rolnik.y,35); Alarm 0 ustaw na "1" Global Right pressed- move_towards_point(mouse_x,mouse_y,35); cursor_sprite = CUR_2; Destroy instance of menu Global right release- if instance_exists(Menu) {} else { move_towards_point(mouse_x,mouse_y,0); cursor_sprite = CUR_1; instance_create(Myszka.x,Myszka.y,Menu) } No i 2 obiekt o nazwie Menu On Create- //menu kamerki instance_create(global.viewx+200,global.viewy+30,BUTTON1); I tak samo reszta buttonow pododawana (sa one obiektami) Draw - draw_set_font(font_verdana); draw_set_color(c_gray); draw_rectangle(global.viewx,global.viewy,global.viewx+1024,global.viewy+100,0); draw_set_color(c_white); draw_text(global.viewx+10,global.viewy+10,"Uprawiaj Buduj Kamerka"); draw_set_color(c_gray); No i problem jest w tym, ze gdy rusze kamerka te buttony za kazdym razem przsuwaja sie o 20-50px.. Nie wiecie jak to naprawic? Ps. Nie wymienialem reszty obiektow, jesli ktos zainteresowany, moge wpisac wszystko lub przeslac.
  20. Witam, mam problem z odczytaniem nazwy obiektu z danej pixeli (lokacji XY) :) Potrzebna mi funkcja, ktora odczyta jaki obiekt znajduje się w danej lokacji ( XY ). Nie wiem z jakiej funkcji skorzystać, a w helpie nie ma często napisane, co dana funkcja zwraca gdy damy ją po IF.. Jeśli ktoś będzie umiał pomóc, będę wdzięczny. pozdrawiam ~pabluuz :thumbsup:
×
×
  • Dodaj nową pozycję...