Skocz do zawartości

Sutikku

Użytkownicy
  • Postów

    738
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    5

Treść opublikowana przez Sutikku

  1. Chciałem zrobic autoupdater do gry, ale on zapisze plik w swoim working_directory. Mam z marketplace execute_shell, więc exeki mogę otwierać. Ale gdybym gotową grą, chciał obejrzeć pobrany plik (np. ini) w working_directory autoupdatera, to już nie mogę. No oczywiście najlepszym wyjściem byłoby trzymanie wszystkiego w jednym miejscu, ale tego mi nie wolno. Jest więc jakiś sposób, by zapisywać pobrane pliki przez http_get_file() w innym miejscu? Albo jakiś dodatek do tego?
  2. Aktualnie niby wszystko działa. Ale to chyba tylko pozory ;v
  3. (słaba jakość, bo nie ja robiłem tego screena i wysłane było przez fb) To jest ta gierka co mi tyle sprawia problemów ostatnio z multiplayerem ;v
  4. Noo, masz rację, przy małych wygląda fajowo. A tak z ciekawości. Paleta to jest sprite, czy zapisane w zmiennych wartości?
  5. Wpadł mi taki pomysł. Zadziała on chyba tylko na dwa itemy w jednym miejscu chyba. Item1 przy kolizji z item2, zapisuje sobie id itemu2. Gracz mając kolizje z itemem1, sprawdza czy on nie ma przypisanego jakiegoś id innego obiektu. Jeśli tak, to zbieramy ten przypisany do zmiennej, jak nie to wiadomo, normalnie zbieramy item1.
  6. Tak sobie teraz myślę, że zależność który jest u dołu, a u góry jest zależne od tego kolejności w której nadajesz ten sam depth. Ty chcesz podnieść pierwsze wheat, czyli depth musi być mniejszy, czyli musi sobie pierwszy nadać depth niż wooden_floor. Tak rozkminiam, ale w sumie nie wiem czy to na pewno tak działa.
  7. Akurat to z funkcji holes, mi się nie podoba. Ale to co widziałem na live u threefa było ######ste.
  8. Pierwsze wykonuje się kod z wooden_floor, a potem jest zarysowywany wheat. To może w wheat daj depth=y*-1-1; ? A wydaje mi sie, że podnosi ten obiekt niżej, bo właśnie w tej "kolejce wykonywania kodu" on jest wcześniej niż wheat.
  9. Musiałby mieć chyba XPka, bo teraz od razu się ma coś do zipów,rarów tak mi się wydaje.
  10. Można zostawić czas żeby cały czas go dodawało, a potem dzielić bez reszty, ale chyba zmienna w końcu straci miejsce ;d
  11. Masz game maker8, czy game maker studio? Musisz wypakować tego RARa.
  12. Lepszą wersję gamemakera? Przecież mnie nie stać xd Ten edytor jest zrobiony pod starą wersję gamemakera, ale jest cały opatrzony w komentarze i banalnie prosty. Eksportuj sobie do gma i przeanalizuj cały. Jeśli czegoś nie rozumiesz to pisz na pw, albo tutaj.
  13. Jeśli mam dezaktywowane np. wszystkie obiekty solid, a potem użyje with(solid_blocks), to with() się wykona tylko w aktywowanych, czy we wszystkich obiektach?
  14. Przykład z gmclanu Trochę stary, ale łatwy w analizie.
  15. Bo nie podałem całego skryptu i końcówkę sam dodałem, mogłem zapomnieć dać klamerkę. Bo tam dalej są jakieśtam pojedyncze case, ale za dużo to tam nie ma.
  16. Nie sprawdziłem jeszcze czy to rozwiązanie, ale pewnie tak. A mam takie pytanie, czemu to tak działa, że ja sam tego problemu nie mam? Routery same "obcinają" pakiety, by zwiększyć szybkość odbierania danych?
  17. Żadne tam tajne, wysłałbym nawet cały projekt, ale jakby ktoś zobaczył kod, to wstyd ;d GML ///Wysyłanie pozycji buffer_seek(Buffer, buffer_seek_start, 0) buffer_write( Buffer, buffer_s8, 1 ); buffer_write( Buffer, buffer_u8, instance_number(obj_player) ); with(obj_player) { buffer_write( other.Buffer, buffer_u8, iid ); buffer_write( other.Buffer, buffer_u16, x ); buffer_write( other.Buffer, buffer_u16, y ); buffer_write( other.Buffer, buffer_u8, image_angle/2 ); buffer_write( other.Buffer, buffer_bool, key ); buffer_write( other.Buffer, buffer_bool, key[UP] ); buffer_write( other.Buffer, buffer_bool, key ); buffer_write( other.Buffer, buffer_bool, key[DOWN] ); } for(var i=0; i<MaxClients; i++) { if!(player==-1) network_send_packet( i, Buffer, buffer_get_size(Buffer) ); } To jest najczęstszy kod który się wykonuje w kwestiach wysyłania. A odbieram tak GML var type_event = ds_map_find_value( async_load, "type" ); switch( type_event ) { case network_type_data: var buffer = ds_map_find_value( async_load, "buffer" ); buffer_seek( buffer, buffer_seek_start, 0 ); ReceivedPacket( buffer ); break; } I jeszcze skrypt ReceivedPacket (okrojony) GML var buffer = argument[0]; var msgid = buffer_read( buffer, buffer_s8 ); switch( msgid ) { case 1: //Zmiana pozycji graczy var num=buffer_read( buffer, buffer_u8 ); for(var i=0; i<num; i++) { var iid=buffer_read( buffer, buffer_u8 ); var xx=buffer_read( buffer, buffer_u16 ); var yy=buffer_read( buffer, buffer_u16 ); var ang=buffer_read( buffer, buffer_u8 ); var p=player[iid]; var right=buffer_read( buffer, buffer_bool ); var up=buffer_read( buffer, buffer_bool ); var left=buffer_read( buffer, buffer_bool ); var down=buffer_read( buffer, buffer_bool ); break; } Kodu trochę mam, więc nie wiem co dokładnie mam pokazać. Każde miejsce w którym wysyłam i odbieram?
  18. Używam TCP. A wyżej dodałem po edycji link do czegoś, co może jest związane z problemem którego może doświadczam.
  19. Ostatnio się trochę więcej bawię gmsowym networkingiem i ciągle mam nowe problemy. W sumie ten problem doświadczam od zawsze. Przyjmijmy, że po stronie serwera wysyłam do wszystkich klientów 1 <-id komendy 23 <- x 12 <- y Wszystkie trzy są zapisane jako buffer_u8. I jednemu z klientów wyrzuca błąd, po którym można wywnioskować, że odebrane dane to 0 -102 xxx Oczywiście te liczby to przykłady, ale takie coś jest powiedzmy znacznym problemem. I nigdy nie występuje u mnie jak testuje, tylko dopiero gdy testuje to z kimś innym. I tak się zastanawiam. Czy jeśli w ciągu jednego stepu, użyję dla jednego klienta dwa razy network_send_packet(), to może to być problemem? edit: natrafiłem na coś takiego http://gmc.yoyogames.com/index.php?showtopic=650252 i z tego co rozumiem, czasem pakiety są "ucięte", a następnie dostaje to co zostało ucięte. I nie wiem jak sobie z tym radzić.
  20. Sutikku

    Ratunku?

    Nie wiem czy na tablecie to się da tak sprawdzić jak na pccie, bo się nie znam, ale da się sprawdzić pod innym systemem?
  21. Zaawansowany to ja nie jestem, ale brzmi fajnie. A co tam, raz się tyje, spróbuję.
  22. Jest duża różnica, czy wysyłam 1 bajt, a nie 2?
  23. Robię sobie standardowo gierkę multiplayer i taki mam problem. Ogarnąłem już jak robić poruszanie, tak żeby wyglądało w miarę dobrze. Powtarzam ostatnio dostane komendy od serwera. Czyli jeśli ktoś szedł ostatnio w lewo, to teraz pewnie też idzie w lewo, aż nie dostanę nowego pakietu. Wtedy staram się płynnie zmieniać pozycję u klienta, na taką jaką dostałem od serwera. Ale jak to zrobić z image_angle? Postać jest zawsze zwrócona w stronę kursora. Wysyłanie ciągle image_angle, to chyba nie najlepsze wyjście. A jeśli przyjmiemy, że w grze się strzela, to byłoby dziwne gdyby ktoś zaczął strzelać plecami.
  24. Cześć, problem jest taki. Jeśli poruszam obiektem manipulując x i y, to np. mam x+=spd, gdzie spd=4; A jeśli zrobię move_towards_point(celx,cely, spd), to dochodzę do wrażenia, że move_towards_point(), porusza się szybciej. Jak więc to ogarnąć, żeby to było sobie równe?
×
×
  • Dodaj nową pozycję...