Skocz do zawartości

Snake

Użytkownicy
  • Postów

    1 445
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Snake

  1. Global left mouse button pressed: GML sound_loop(fire); Global left mouse button released: GML sound_stop(fire)
  2. Użyj instance_activate_region :P
  3. Głupia, ale taka jak chcesz: STEP: GML with(all) { if ( distance_to_object(gracz) > 800 ) and ( object_index <> bombawybuchajaca ) and ( object_index <> bomba ) instance_deactivate_object(self); }
  4. Raczej... GML if string_copy( keyboard_string, string_length(keyboard_string) - 1, 2 ) = '\#' then...
  5. Poczytać 1001 artykułów o kryptografii i kompresji zlib, no i oczywiście craxornąć format plików GM-a (.gm6, .gmk)...
  6. Snake

    Clothwave Demo

    Ciekawy efekt, ale za lekko ta flaga się rusza :) 30FPS
  7. No tak, znowu mi się nudziło więc postanowiłem napisać DLL-a w którym znajdują się funkcje - które IMO brakują w GM-ie (GM6 - tylko na tym testowałem) :) Wersja 2 here ------------------------------------------------------------------ Info z poprzedniej wersji 1.5 Funkcje: Rejestr: registry_delete_key - Kasuje klucz i wszystkie jego wartości z rejestru. registry_delete_key_value - Kasuje podana wartość klucza z rejestru. registry_find_key_first & registry_find_key_next - Szuka podkluczy w kluczu ( Dzięki Markowi.S ) registry_find_key_value_first & registry_find_key_value_next - Szuka wartości w kluczu ( Dzięki Markowi.S ) Schowek:save_bmp_from_clipboard - jeśli w schowku znajduje się obrazek - zapisuje zawartość schowka do pliku bmpOkna itp.:show_message_box - Pokazuje Message Box z wczesniej ustawionymi opcjami przez show_message_box_options show_message_box_options - Ustawia opcje dla wyświetlania MessageBoxa window_find - Szuka okna poprzez podana nazwe klasy i/lub okna i zwraca jego uchwyt. window_find_ex - Szuka potomnego okna poprzez podana nazwę klasy i/lub nazwę okna w podanym oknie i zwraca jego uchwyt. Liczby:real_to_hex - Konwertuje liczbę na HEX o podanej minimalnej długości stringa hex_to_real - działanie odwrotne do powyższego :D Pliki:file_get_version - Sprawdza czy w pliku jest informacja o wersji (Version Info), w plikach exe, dll itp. file_read_version_info - Wyczytuje wybrane informacje o wersji pliku (Version info), w plikach exe, dll itp. Procesy:process_find_first & process_find_next - Szuka procesów ( Dzięki Moldisowi ) process_close - Zamyka proces ( po nazwie ) process_close_by_id - Zamyka proces poprzez podany ID. ( Dzięki Shyliosowi ) process_exists - Sprawdza czy dany proces jest uruchomiony ( Dzięki Markowi.S ) process_id_current - Pobiera Process ID procesu, który został właśnie wyszukany przez funkcje process_find_first/next. process_id_from_name - Szuka ID procesu (PID) poprzez nazwę. process_id_from_window_handle - Szuka ID procesu (PID) poprzez uchwyt okna process_read_byte / short / long / double - Odczytuje zmienna typu (...) z pamięci procesu. ( Dzięki Pieterowi ) process_read_string - Odczytuje stringa z pamięci procesu ( Dzięki Pieterowi ) process_write_byte / short / long / double - Zapisuje zmienna typu (...) do pamięci procesu. process_write_string - Zapisuje stringa do pamięci procesu process_write_nstring - Zapisuje stringa do pamięci procesu razem z terminatorem na końcu ( dodaje zerowy bajt ) ( Dzięki Pieterowi ) process_protection - Ustawia dostęp do podanego regionu pamięci wybranego procesu. ( Dzięki Pieterowi ) xtend_set_debug_privilege - Po wywołaniu tej funkcji Xtend ma prawa dostępu do każdego procesu Jak używać i więcej info w skryptach :) Download v1.5: http://www.gmclan.org/up541_4_Xtend15.html ( DLL + Example w GM6 ) A tu przykład autorstwa Pietera, pokazujący jak stworzyć bota do gier ( z Xtend.dll ): https://forum.gmclan.org/index.php?showtopic=12366 Można w nim zobaczyć, jak za pomocą Xtenda można odczytać i zapisać dane do innego procesu ;P
  8. Center w gridzie ? Chodzi ci o centrowanie origina sprite'a ? Jeśli tak to: GML global.graphics[0] = sprite_add( 'sprite.gif', 0, 0, 0, 0, 0, 0, 0); // Zaladuje sprite'a sprite_set_offset( global.graphics[0], // nowy sprite zapisany w tablicy sprite_get_width( global.graphics[0] ) div 2, // pobiera szerokosc sprite'a i dzieli na 2 sprite_get_height( global.graphics[0] ) div 2 // pobiera wysokosc sprite'a i dzieli na 2 ); Ładuj tylko te grafiki które są potrzebne w danym momencie, a jak nie są to wywalaj stare sprity, i wtedy szybciej gra będzie ci chodzić tzn, zajmować będzie mniej pamięci :P Jakoś ciężko mi Cię zrozumieć :)
  9. Snake

    Trojan nie do usuniecia

    Hijack this! log please. Albo lepiej reinstaluj system, bo masz cholernie zagracony komputer :)
  10. Snake

    Galeria Grafik

    Sirluki: Jeśli to jest zbiornik wodny typu rzeka czy staw to powinny być przy nim brzegi nie ? :P btw. na dnie zbiorników wodnych nie często widuję trawę, raczej piasek/błoto :)
  11. Create pocisku: GML direction = point_direction( x, y, mouse_x, mouse_y ); // kierunek w strone myszki speed = 5; // szybkosc
  12. Żeby się nie pojawił na wieży ? Create potwora: GML while ( place_meeting(x,y,o_wieza) ) // wykonuje kod gdy potwor pojawi sie na wiezy { y = random(480); // losuje pozycje Y od nowa } alboGML while !( place_free(x,y) ) // wykonuje kod gdy potwor pojawi sie na innym obiekcie { y = random(480); // losuje pozycje Y od nowa }
  13. Wyjaśnij o co dokładnie chodzi bo ten kod tak mogę streścić: Twórz obiekt potwora, a jeśli pozycja Y potwora i wieży będzie równa to stwórz i od razu usuń obiekt potwora.
  14. Żaden z Twoich kodów nie będzie działać, nie widzę sensu porównywania ID obiektu z pozycją Y innego obiektu. A co dokładnie chcesz osiągnąć ? BTW: nie destroy_instance tylko instance_destroy(); :P
  15. Stwórz obiekt pociskowi i daj mu do create: GML direction = random( 360 ); // losuje kierunek speed = 5; // szybkosc Teraz stworz obiekt potworowi i do create... GML alarm[0] = 1; // start alarmu Do eventu Alarm 0: GML instance_create(x,y,obj_pocisk); // tworzy obiekt pocisk alarm[0] = ( 1 + random( 4 ) ) * room_speed; // losuje resetowanie alarmu 0 na czas od 1 do 5 sec.
  16. Spójrz na 4 post w tym temacie ;)
  17. Daj do o_tworca do create: GML alarm[0] = 1 // start alarmu Do eventu Alarm 0: GML instance_create(600,random(480),potwor); alarm[0] = 5 * room_speed // 5 * szybkosc rooma to 5 sec
  18. GML instance_create(600,random(480),potwor); random() losuje liczbę w zakresie od 0 do podanej wartości np random(100) losuje liczbę od 0 do 100 :P
  19. GML instance_create(600,random,potwor); Ten drugi argument to raczej powinno być random(liczba) A żeby potwór szedł w lewą stronę to: Do create: GML hspeed = -5; albo GML direction = 180; speed = 5 albo GML motion_add(180,5); albo do step: GML x -= 5; lub GML mp_potential_step(x-5,y,5,0); :D
  20. GML if(keyboard_check_pressed(vk_control)) { var pocisk; pocisk=instance_create(o_wieza.x,o_wieza.y,o_pocisk); pocisk.direction=point_direction(o_wieza.x,o_wieza.y,mouse_x,mouse_y); pocisk.speed = 5 // <--- predkosc }
  21. Pewnie masz object/sprite/dźwięk/background/room/font/path/script w grze o tej samej nazwie co nazwa zmiennej (w tym wypadku "pocisk")
  22. To napisz taki kod, który będzie sprawdzał czy przed kursorem jest '\#', jeśli jest to o dwie pozycje dalej niech przejdzie, tak samo z kasowaniem znaku. Mi się teraz nie chce kombinować, w dodatku w tym bałaganie PsichiXa :) Co do zakresu: https://gmclan.org/up541_6_k1.html Kliknij na "All", a później użyj draw_set_font(nazwa) przed rysowaniem tekstu
  23. W jakim sensie "normalnie" ? EDIT: Daj do create GML laststring = ''; Do draw np. (nie jestem pewien co ja tu napisałem, grunt że działa :D) GML if ( keyboard_lastchar = '#' ) and ( keyboard_lastkey <> 13 ) and ( laststring != keyboard_string ) { keyboard_string = string_copy( keyboard_string, 1, string_length(keyboard_string) - 1 ); keyboard_string += '\#'; } draw_text( 100, 100, keyboard_string ); if keyboard_check_pressed( vk_enter ) keyboard_string += '#'; laststring = keyboard_string; O to chodzi ? Co do tego drugiego to dodaj czcionkę z całym zakresem znaków (Character range)
  24. Pomyliłem w tej drugiej linijce kodu ostatni argument. Zamień '\' na '#'. (zmęczony jestem :))
×
×
  • Dodaj nową pozycję...