Skocz do zawartości

ediepl

Użytkownicy
  • Postów

    1 626
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez ediepl

  1. Chodziło mi raczej tylko o wypisanie jej na ekranie/sprawdzenie w debuge, jeśli chodzi o shift to musisz podać kod jak sprawdzasz przyciski
  2. Dawno nie robilem nic w GM ale myślę że event Animation End jest pomijany w niektórych wypadkach, rysuje sobie zmienną na ekranie i sprawdź czy jest ustawiona na false(global.MeleeAttacking)%2
  3. Wszystkie funkcje collision_* zwracają id obiektu z którym występuje kolizja
  4. Za obiekt możesz wpisać all, też będzie działać.
  5. Przygotuj sobie parę animacji, choose random etc i masz różne ataki.
  6. Bo może rysujsz tylko jedną klatkę, pamiętaj że w draw_sprite masz argument w którym podajesz nr klatki z sprita.
  7. Może po prostu źle rysujsz?
  8. Podmień w oServer w Networking, tak swoją drogą to od 2 lat nikt tego nie sprawdził? GML var t_buffer = buffer_create(256, buffer_grow, 1); var eventid = ds_map_find_value(async_load, "id"); if( server == eventid ) { //////////////////////////////////////Jezeli sie polaczyl//////////////////////////////////////////// { var t = ds_map_find_value(async_load, "type"); var sock = ds_map_find_value(async_load, "socket"); var ip = ds_map_find_value(async_load, "ip"); if( t==network_type_connect) { global.idd++; ds_list_add( socketlist, sock ); var inst = instance_create(64,192, oPlayer); // Players[global.idd,0]= inst; // Players[global.idd]= global.idd; ds_map_add( Clients, sock, global.idd ); ConsoleAdd("Nowy gracz dolaczyl! ID:"+string(global.idd)); // show_message("Serwer: "+string(global.idd)); buffer_seek(t_buffer, buffer_seek_start, 0); buffer_write(t_buffer, buffer_u8, 3 ); buffer_write(t_buffer , buffer_s8, global.idd); network_send_packet(ds_list_find_value(Clients, global.idd-1), t_buffer, buffer_tell(t_buffer)); Online += 1; // show_message(Players[]); } else {////////////////////////////Gracz się rozlaczyl////////////////////////////////// /*****Znajduje tego gracza co sie rozlaczyl*****/ var inst = ds_map_find_value(Clients, sock ); ConsoleAdd("Gracz "+string(Players[inst])+" sie rozlaczyl: "); ds_map_delete(Clients, sock ); Players[inst]=0; // with(inst) { instance_destroy(); } Online -= 1; // Also delete the socket from our global list of connected clients var index = ds_list_find_index( socketlist, sock ); ds_list_delete(socketlist,index); buffer_seek(t_buffer, buffer_seek_start, 0); buffer_write(t_buffer, buffer_u8, 1); buffer_write(t_buffer , buffer_string,"Gracz "+string(Players[inst])+" sie rozlaczyl: "); for (var i = 0; i < ds_list_size(socketlist); i++;) { network_send_packet(ds_list_find_value(Clients, i), t_buffer, buffer_tell(t_buffer)); } buffer_delete(t_buffer); Players[inst]=0; } } }//////////////////Do tąd/////////////////////////////////////////////////////////// else if( eventid==0) { } else { /////////////////////////////////Odbieranie danych////////////////////////////////// { var buff = ds_map_find_value(async_load, "buffer"); var cmd = buffer_read(buff, buffer_s16 ); var sock = ds_map_find_value(async_load, "id"); var inst = ds_map_find_value(Clients, sock ); if( cmd==1 ) //Wiadomosc { wiad = buffer_read(buff, buffer_string); ConsoleAdd("<"+string(Players[inst])+">"+string(wiad)); buffer_seek(t_buffer, buffer_seek_start, 0); buffer_write(t_buffer, buffer_u8, 1); buffer_write(t_buffer , buffer_string,"<"+string(Players[inst])+">"+string(wiad)); for (var i = 0; i < ds_list_size(socketlist); i++;) { network_send_packet(ds_list_find_value(Clients, i), t_buffer, buffer_tell(t_buffer)); } buffer_delete(t_buffer); } else if ( cmd == 2 ) { Players[inst] = buffer_read(buff, buffer_string); //show_message(Players[inst]); ConsoleAdd("ID:"+string(global.idd)+" Nick: "+string(Players[inst])); buffer_seek(t_buffer, buffer_seek_start, 0); buffer_write(t_buffer, buffer_u8, 1); buffer_write(t_buffer , buffer_string,"Gracz "+string(Players[inst])+" dolaczyl!"); for (var i = 0; i < ds_list_size(socketlist); i++;) { network_send_packet(ds_list_find_value(Clients, i), t_buffer, buffer_tell(t_buffer)); } buffer_delete(t_buffer); } } //////////////////////////////////Koniec//////////////////////////// }
  9. Odesłał bym do wuja google ale http://www.yoyogames.com/blog/6 https://docs.yoyogames.com/ https://forum.gmclan.org/index.php?showtopic=31065 Zrobienie chatu w gm:s to parę linijek kodu, a twoje pytanie jest zbyt ogólne.
  10. Pewnie gdzieś wyśrodkowanie zmieniasz, dodaj jeszcze draw_set_valign(fa_middle); E: https://docs.yoyogames.com/source/dadiospic...set_valign.html
  11. A podaj jeszcze kod zmienionego skryptu i jak wywołujesz ten skrypt
  12. Pierwszy argument tego skryptu to ścieżka. GML argument0 - The filename of the .csv Jak byk masz napisane
  13. Nazwy funkcji są prawie takie same, wystarczy dopisać FS_ na początku np file_text_open_write na FS_file_text_open_write
  14. Zastąp funkcje zapisu plików w skrypcie na te z GMFileSystem
  15. ediepl

    [EP2] Część 2/3

    Ej no Uzjel weź przestań ;P nikt chyba się nie gniewa :) w domku obejrzę, przez te maszyny Internetu mi nie ściąga:( Jakaś tabelka będzie? E: threef niby taki cichy, siedzi w kącie, czasami tylko bonus chwyci, ale jak ktoś podleci to PACH i nie ma gościa :D
  16. ediepl

    funkcja undeclared

    Zamień if (xx>0) znak==true; na if (xx>0) znak=true; i w void drugie() { int katy,figura; double a,b,c; // <<<< tutaj cout << "Ile katow ma interesujaca Cie figura? (3+): "; cin >> katy; zapomniałeś zadeklarować zmiennej 'd'
  17. Yoyo najchętniej by wywaliło tą funkcję :P Tak po za problemem z usuwaniem to pomyśl czy w ogóle game_save się tobie przyda bo cytując dokumentację: tzn funkcja nie zapisze żadnej struktury( np zwykłej ds_list ), surfaceu itd... co czyni ją bezużyteczną.
  18. func int print( char str ) while(@str != 0) _EAL; putc @str; _EALEND; str = str + 1; end; endfunc; func int println( char str ) print(str); _EAL; putc 13; putc 10; _EALEND; endfunc; func int inttostr( int a, char dest ) var int temp = a; var int i = 0; while(temp != 0) temp = temp/10; i = i+1; end; dest = dest + i; while(i >= 0) temp = (a%10)+48; dest = dest - 1; @dest = temp; i = i - 1; a = a/10; end; endfunc; func int silnia( int n ) if(n == 0) return 1; end; return n*silnia(n-1); endfunc; var char[128] lolstr = ""; var int lol = 0; var int i = 1; while(i <= 10) lol = silnia( i ); inttostr( lol, @lolstr ); println( @lolstr ); i = i+1; end; _EAL; exit; _EALEND;
  19. Będzie działać tylko musisz użyć keyboard_check_direct Chociaż by po to jakby ktoś robił program :)
  20. Ba, nawet cała dokumentacja https://docs.yoyogames.com/ :)
  21. W ustawieniach gm8 "Freeze the game when the form loses focus" odznacz.
  22. A jaki sposób nie działa liniowo? anyway Właściwie zamiast tego co napisałem wystarczy użyć std::map :) Przykład: map<string, int>vars; vars["zmienna"] = 5; vars["zmienna2"] = 5; if(vars["zmienna"] == vars["zmienna2"]) { cout << "równe" << endl; }else { cout << "nierówne" << endl; } Dawno nic nie kodziłem i się zapomina :( EDIT: Wiesz co to nagłówki prawda?
  23. Nie rozumiem trochę pytania, chodzi Tobie o język programowania w sensie że masz jakiś interpreter/kompilator napisany w C++ tak? EDIT: Może coś w tym stylu? class numvars { private: list<string>names; list<string>::iterator iter; list<int>values; public: bool VarAdd(string name, int value) { names.push_back(name); values.push_back(value); //return false jak blad return true; } int GetVarByName(string name) { iter = std::find(names.begin(), names.end(), name); if(iter == names.end()) { //blad nie znaleziono zmiennej } return values[iter]; } }; numvars VarsNum; VarsNum.VarAdd("zmienna1", 42); VarsNum.VarAdd("zmienna2", 53); if( VarsNum.GetVarByName("zmienna1") == VarsNum.GetVarByName("zmienna2") ) { //cos tam blablabla } Też w miarę prosto. PS: Pisane z pamięci więc mogą być błędy :)
×
×
  • Dodaj nową pozycję...