Skocz do zawartości

gnysek

Administratorzy
  • Postów

    9 825
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    144

Treść opublikowana przez gnysek

  1. Kurcze, szkoda, że nie moge potestowac z wami...
  2. Jak stworzysz obiekt, w którym pierwszy raz bedzie napisane global.costam = ilestam; to jest zdefiniowany. Następnym razem to już będzie tylko zmiana wartosci. Zatem proste - jak ma być w całej grze, to musisz na początku zdefiniować. Najpiej w menu dać jakiś obiekt który powstaje pierwszy i tam wszystkie globalne ustawić. Albo jeszcze lepiej - dac pusty room, tam dać taki obiekt,w create wpisać te globalne i na koniec dać room_goto_next(); potem tylko przypilnoiwac, aby gra do niego nie wracała ( czyli zamiast game_restart(); lepiej dać jakieś room_goto(room_menu); ), chyba, ze chcemy globalne zresetowac do początkowych ustawień.
  3. No własnie wtedy przy przejściu z sektora do sektora zwalnia, chyba, że grafiki są naprawdę małe.
  4. Zrobić to nie problem, ale to strasznie muli jak np. dojdziesz do 10 obiektów których sprity nie są wczytane - zanim sie wczytają, gra przytnie.
  5. jak zdefiniujesz globala, to jest juz dostępny, ale logiczne, że wcześniej nie.
  6. global.level = level; ?? chyba nie w tą stronę :)
  7. GML ini_open('zapis.ini'); ini_write_string('sekcja','klucz',string( global.costam )); //taki hack na ini_write_real, które w GM6 źle działa //w gm7 zamiast linijki wyzej wystarczy //ini_write_real('sekcja','klucz',global.costam); ini_close(); ini_open('zapis.ini'); global.costam = ini_read_real('sekcja','klucz',0); ini_close();
  8. no na początku gry można. ja zawsze mam room, w którym jest obiekt ustalający zmienne i od razu leci do drugiego roomu - gracz go nie widzi, a ja wiem, że już tam nie wracam nigdy i że nic poza tym obiektem się nie pojawiło.
  9. Dokładnie. Co innego np. MD5, gdzie nic nie odkodujesz, chociaz istnieją dwa takie same hashe z różnych tekstów... tylko nie tak prosto je znaleźć i nieco to potrwa.
  10. ja robię zawsze tak: GML global.costam = costam; W create najlepiej, bo ten event wykonuje się tylko raz. Co do wyświetlania, to draw_text(x,y,string(global.costam)), chyba, że globalna to string, to nie trzeba jej zamieniać.
  11. 1. Kup słownik. Ja nic nie rozumiem z tego co napisałeś, czytałem z nazwy tematu o co chodzi. Co to kur*a znaczy ? 2. w create GML bylo = false kiedy ma nastąpić cośtam: GML if not bylo { <zrob costam>; bylo = true; } za drugim razem już nie nastąpi. Prosta sprawa.
  12. Można robić co tam chcesz, to jest tylko taka pokazówka. I tak uważam, że xor jest lepszy.
  13. albo w draw za x i y podstawić view_xview[0] itd.
  14. GML ini_write_string( 'notatka', doXor( 'notatka1' ) );
  15. Masz, napisałem Ci gotowca na XOR, jest szybszy i krótszy: https://gmclan.org/index.php?czytajart=58
  16. xor :) ładnie zamienia tekst, potem drugi xor go odmienia spowrotem :D
  17. Zasada z THEN jest taka: GML if <costam> then <costam>; if <costam> then { <costam>; <costam>; } if <costam> { <costam>; <costam>; } i tylko tak
  18. Na serwerze jest serwer i gracze, w kliencie jest klient i nic wiecej. Przykład mogę zrobić jutro po południu bo teraz uczę się na matmę.
  19. nie rozumiesz: SERWER nasłuchuje, czy ktoś dołącza, (tcpaccept zwraca socket > -1 ), tworzy nowy obiekt GRACZ i ustawia mu zmienną SOCKET na socket. SERWER nasłuchuje nadal na następnych NOWYCH graczy. TCPACCEPT zwraca > -1 tylko, gdy dołącza ktoś nowy, tych zaakceptowanych już nie zwraca. GRACZ sprawdza w pętli rozmiar wiadomości która przyszła na socket (size = receivemessage( socket );). Jeżeli jest większa od zero, to robi switcha i tam case, a jak nie to break. Jak za długo nie dostanie nic (można dodawać co step ping +1 jak nie doszły dane i ping=0 gdy doszły), to go kasujemy i zamykamy socket. Wazne info. Gdy wyrzucamy gracza z serwera, lub gracz w KLIENCIE rozłącza się z serwerem, NIE WOLNO od razu zamknąć socketa, bo wtedy zamknie się zanim dane zostaną wysłane. Trzeba odczekać ok. 1s i wtedy zamknąć socket z graczem, lub z serwerem.
  20. brakuje na serwerze: socket = tcpaccept( listen, 1 ); if socket { setnagle(socket,true); a = instance_create(0,0,objKlient); a.socket = socket; } a kod step z serwera, trzeba przenieść do objektu graczy bodaj
  21. I nie zmieniłeś tego, o czym mówiłem. Teraz serwer wcale nie nasłuchuje na graczy. Nie mam czasu poprawić dzisiaj, ale jak nikt się tym nie zajmie to spróbuje jutro.
×
×
  • Dodaj nową pozycję...