Moldis Opublikowano 19 Grudnia 2007 Udostępnij Opublikowano 19 Grudnia 2007 Proszę o drobną pomoc, a mianowicie jak działa funkcja wich i kiedy się ją stosuje? Patrzałem do helpa w gm'ie ale nie zbyt rozumiem co tam pisze.. Bo analizowałem właśnie kod w przykładzie "RpgAlaTibia" i tam jest coś takiego: W destroy monstera: with(instance_create(x,y,npc_respawn)) { obj = npc_szczur; } W create npc_respawn: obj = -1; alarm[0]=room_speed*2; W alarm[0] npc_respawn: instance_create(x,y,obj); instance_destroy(); Wywnioskowałem z tego że funkcja wich jakby zmienia zmienne w obiekcie który dopiero powstanie.. Więc pomyślałem że dodam jeszcze czas_respu dla każdego moba z osobna, dodałem więc zmienną 'czas_respu' w Create 'npc_respawn', ustawiłem żeby jej wartość była wysyłana z potwora którego zabijemy i była mnożnikiem czasu wykonania alarmu.. Ale to nie chce działać,tak jakby ta moja zmienna nie była w cale wysyłana, i tu wracam do początkowego pytanie, jak działa funkcja wich? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Misiek999 Opublikowano 19 Grudnia 2007 Udostępnij Opublikowano 19 Grudnia 2007 zalóżmy że masz wlaczony obiekt0. jeśli napiszesz speed = 5 instace_destroy() to zmieni się speed obiekt0 i się usunie. proste. ale jak dasz w obiekt0 with(obiekt1) { speed = 5 instace_destroy() } to będzie to się tyczyć wszystkich obiekt1. czyli usuną się wszystkie obiekt1 i u wszystkich zmieni się speed. jeśli chcesz żeby to się tyczyło jakiejś konkretnej instancji to musisz wpisać jej id. dlatego tam było w tym kodzie instance_create bo ta funkcja zwraca to id. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 19 Grudnia 2007 Udostępnij Opublikowano 19 Grudnia 2007 with odnosi się do obiektu w nawiasie. np witch(jablko)instance_destroy() // odnosi się do obiektu jablko - czyli do wszystkich jablek w tym przypadku with (instance_create(x,y,jablko)) odnosi się do stworzonego obiektu i definiuje mu zmienną :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moldis Opublikowano 19 Grudnia 2007 Autor Udostępnij Opublikowano 19 Grudnia 2007 @up szybszy... To w takim razie czemu jak dodaje tą swoją zmienną to ona w tym pliku który się tworzy (npc_respawn) jakby się nie zmieniała? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Misiek999 Opublikowano 19 Grudnia 2007 Udostępnij Opublikowano 19 Grudnia 2007 nie dziala tak ? destroy : with(instance_create(x,y,npc_respawn)) { obj = npc_szczur; time = 3 } create : obj = -1; time =-1; alarm[0]=room_speed*time; ? a jak nie zadziala tak to wywal z create time i sproboj jeszcze raz xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moldis Opublikowano 19 Grudnia 2007 Autor Udostępnij Opublikowano 19 Grudnia 2007 Ja to robiłem tak: destroy : with(instance_create(x,y,npc_respawn)) { obj = npc_szczur; czas_respu = 5; } create : obj = -1; czas_respu =-1; alarm[0]=room_speed*czas_respu; I jak tak robie to jakby ta zmienna się nie zmieniała na to 5... @Edit, a poprawiłeś się xD Więc właśnie tak robie i nie działa :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Misiek999 Opublikowano 19 Grudnia 2007 Udostępnij Opublikowano 19 Grudnia 2007 ja już chyba wiem czemu to nie dziala : with(instance_create(x,y,npc_respawn)) { obj = npc_szczur; czas_respu = 5; } najpierw tworzy się obiekt (instance_create) i wykonują się wszystkie akcje w create czyli : obj = -1; czas_respu =-1; alarm[0]=room_speed*czas_respu czyli czas_respu ustawia sie na -1 i odrazu wlacza sie alarm na -1, a dopiero pozniej zmienna zmienia wartosc na 5 ale wtedy jest za pozno bo juz sie kod wykonal xD ale jak to naprawic to nie wiem. dowód : daj w draw draw_text(x,y,string(npc_respawn.czas_respu)) jak widzisz zmienna przyjela wartosc 5 czy jaka tam sobie ustawiles, ale juz sie nie wykona, bo alarm zostal szybciej ustawiony. EDIT : wymyslilem xD destroy moba : with(instance_create(x,y,npc_respawn)) { obj = npc_szczur; czas_respu = 5; } create npc_respawn : obj = -1; czas_respu =-1; alarm[1] = 2 alarm[1] npc_respawn : alarm[0]=room_speed*czas_respu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moldis Opublikowano 19 Grudnia 2007 Autor Udostępnij Opublikowano 19 Grudnia 2007 Heh, ja wymyśliłem pierwszy ;P Tylko ty pierwszy z edytowałeś posta xD Dzięki za pomoc z znalezieniem błędu ^.^ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się