Lordis Opublikowano 30 Kwietnia 2008 Udostępnij Opublikowano 30 Kwietnia 2008 1. a więc mam narazie 3 rodzaje czarów -leczące -naprowadzające(jak mam potwora na ataku to wali w niego) -explozje i właśnie tu chciałbym sie zapytać zrobiłem już że gdy nacisne ikonke czaru to wybuch pojawia sie na graczu ale nie wiem jak zrobić żeby odbierał hp WSZYSTKIM potworom w odległości 48 pixeli a nie tego co mam na ataku (dla niekapujących tak jak np. UE w tibi) 2. jak zrobić żeby potwory i gracz nie mogli wchodzić na siebie ( SOLID nic nie daje zaznaczam i lipa nic ) 3. jeszcze wruce do czarów mam taki skrypt: CODE if (global.player_mp >= 10 ) && (global.atak_npc != -1) && (czas <= 0) { instance_create(global.atak_npc.x,global.atak_npc.y,obj_fire) global.atak_npc.hp -= (global.player_magic * 0.35 ) global.player_mp -= 10 czas = 10 } else {} w nim chodzi o to że jak mam potworka na ataku i mam 10 many to wale w potworka nie ale chodzi mi o to żeby on walil raz za (global.player_magic * 0.35 ) a gdy naciskam ikonke czaru to dostaje ciągle za (global.player_magic * 0.35 ) dopuki nie zniknie ogień z niego (animacja) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
lenin Opublikowano 30 Kwietnia 2008 Udostępnij Opublikowano 30 Kwietnia 2008 1. warunek odległości od tego potworka co go atakujesz 2.przy kolizji dodaj GML speed=0 x=xprevious y=yprevious Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lordis Opublikowano 30 Kwietnia 2008 Autor Udostępnij Opublikowano 30 Kwietnia 2008 1. dobra ale właśnie o to chodzi że gdyby to był jeden potworek to bez problemu ale jest ich narazie dwóch a bedzie setki... to co mam tak każdego wpisywać? 2. speed=0 x=xprevious y=yprevious to samo jak by był jeden potworek to gitara ale ich bedzie pełno :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 30 Kwietnia 2008 Udostępnij Opublikowano 30 Kwietnia 2008 1. GML with(obj_potworek) { ds = distance_to_object(hero) if (ds < 150) { hp -= 100 //akcja obrwania } } 2. GML [step moba] if (distance_to_obiekt(hero) > 10) { speed = 3; direction = point_direction(x,y,hero.x,hero.y); } else speed = 0 3. GML [create] can = true [przy ataku] if (can) { //akcje strzału can == false } [animation end w obiekcie fire] hero.can = true Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lordis Opublikowano 30 Kwietnia 2008 Autor Udostępnij Opublikowano 30 Kwietnia 2008 dobre ale nie ma takiego czegoś żeby wszystkie potwory zapisać do jednej global zmienne i napisać w czarze if distance_to_object(global.all_monster) < 48 { global.all_monster.hp -= 100 } co?? tak by było najlepiej (dla mnie) :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 30 Kwietnia 2008 Udostępnij Opublikowano 30 Kwietnia 2008 możesz zrobić na tablicach, zaraz dam kod. GML for (i = 0; i < instance_number( mob ); i += 1) { obj = instance_find( mob, i); if ( !instance_exists( obj )) break; ds = distance_to_object( obj ); if ( ds < 150 ) { obj.hp -= 100 //jakaś tam akcja } } takie pasuje. Jak coś to zaraz zrobię na listach. GML ds_list_clear(lista) for (i = 0; i < instance_number( mob ); i += 1) { obj = instance_find( mob, i); ds = distance_to_object( obj ); if ( ds < 150 ) ds_list_add(lista,obj) } for (i = 0; i < ds_list_size(lista); i += 1) with(ds_list_find_value(lista,i)) /*akcja odejmowania hp*/ PS. nie zapomnij stworzyć tej listy w create Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lordis Opublikowano 30 Kwietnia 2008 Autor Udostępnij Opublikowano 30 Kwietnia 2008 ... ds = distance_to_object( obj ); if ( ds < 150 ) { obj.hp -= 100 } to jeszcze rozumiem ale to for (i = 0; i < instance_number( mob ); i += 1) { obj = instance_find( mob, i); if ( !instance_exists( obj )) break; nie rozumiem :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 30 Kwietnia 2008 Udostępnij Opublikowano 30 Kwietnia 2008 GML for (i = 0; i < instance_number( mob ); i += 1) // zapętla tyle razy ile jest obiektów "mob" { obj = instance_find( mob, i); // znajduje obiekt o numerze i if ( !instance_exists( obj )) continue; //jeżeli obiekt nie istnieje pomija go ds = distance_to_object( obj ); if ( ds < 150 ) { obj.hp -= 100 //jakaś tam akcja } } zastosowanie pętli for Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lordis Opublikowano 30 Kwietnia 2008 Autor Udostępnij Opublikowano 30 Kwietnia 2008 no teraz wyrażniej ale to znaczy że w karzdym potworze bede musiał zrobić zmienną mob = 1 w drugim mob = 2 w trzecim mob = 3 itd ? i to bedzie se tam zamieńac ich i bedzie gitara? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 30 Kwietnia 2008 Udostępnij Opublikowano 30 Kwietnia 2008 nie. w kodzie zamiast "mob" wstaw nazwę swojego potworka Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lordis Opublikowano 30 Kwietnia 2008 Autor Udostępnij Opublikowano 30 Kwietnia 2008 no to nie rozumiem :( jak dam tam nazwe potworka to bedzie tak to wyglądało: for (i = 0; i < instance_number( m_rat ); i += 1) { obj = instance_find( m_rat, i); if ( !instance_exists( obj )) continue; ds = distance_to_object( obj ); if ( ds < 150 ) { obj.hp -= 100 }} i co to da? a jak mam np. 3 potwory m_rat , m_ork i m_bandit ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 30 Kwietnia 2008 Udostępnij Opublikowano 30 Kwietnia 2008 to musisz zrobić takie 3 pętle. prostsze i wydajniejsze jest to co wyżej pisałem: GML with(obj_potworek) { ds = distance_to_object(hero) if (ds < 150) { hp -= 100 //akcja obrwania } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lordis Opublikowano 30 Kwietnia 2008 Autor Udostępnij Opublikowano 30 Kwietnia 2008 ej no ale to jest też do jednego potworka :( nie da sie zrobić jednej global zmiennej która by odpowiadała wszystkim potworkom i ją wstawić do mojego czaru?? no bo tu to co ja to bym musiał karzdemu potworkowi dać czy jak ?? bo już sie zamotałem :( EDIT: Dobra może inaczej tak chce zrobić czar który Wybucha wokoło bohatera i uderza pobliskie potwory jak to zrobić??? może macie jakiś inny sposób :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 30 Kwietnia 2008 Udostępnij Opublikowano 30 Kwietnia 2008 czary_mary_masive_skill.gm6 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lordis Opublikowano 30 Kwietnia 2008 Autor Udostępnij Opublikowano 30 Kwietnia 2008 JESTEŚ WIELKI STARY :D tylko mi wyskakuje błąd że coś jest nie tak z effect_create_above(ef_ring,x,y,0,c_blue) ale to usunelem i gitara to i tak jakiś efekt graficzny to tam mniejsz :D dzieki dzieki :) EDIT: ej czyli jak tu są 3 potwory to trzeba podać 3 nazwy a jak ja bede miał 400 to co wtedyteż musze wszystkie wpisywać?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 30 Kwietnia 2008 Udostępnij Opublikowano 30 Kwietnia 2008 Zrobiłem małą poprawkę: czary_mary_masive_skill.gm6 u mnie działa, to zwykły gm'owski effekt ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lordis Opublikowano 30 Kwietnia 2008 Autor Udostępnij Opublikowano 30 Kwietnia 2008 OK działa a ja tam dałeś: if ( object_index= obj_monster1 || object_index= obj_monster2 || object_index= obj_monster3) to nie dało by sie jakoś skrócić if ( object_index = obj_monster ... ) i tu gdzie kropki dać coś co by odpowiadało np. 1-100 i by było zamiast wpisywania 100 obj_monster wiesz o co chodzi ??? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 30 Kwietnia 2008 Udostępnij Opublikowano 30 Kwietnia 2008 zapomniałem o parentach ^^' zaraz dam poprawione. masz czego chciałeś, teraz biegnij mi po browara :P czary_mary_masive_skill.gm6 :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harv Opublikowano 30 Kwietnia 2008 Udostępnij Opublikowano 30 Kwietnia 2008 A po co tak skomplikowanie? Oo GML if distance_to_object( hero ) <= 150 && czar1 = true { hp -= czar1hp } W każdym czarze tworzysz zmienną czarnumer i czarnumerhp. W pierwszej ustawiasz false, w drugiej tyle życia ile ma odjąć. Prościej, zabawniej itp. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lordis Opublikowano 30 Kwietnia 2008 Autor Udostępnij Opublikowano 30 Kwietnia 2008 OK dzięki :) a po browara będzie ciężko bo ja we wrocławiu a ty w grańsku mieszkasz :lol: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 30 Kwietnia 2008 Udostępnij Opublikowano 30 Kwietnia 2008 skoro nie masz pojęcia o gm to nie poprawiaj innych!! weź pomyśl ile z tym bałaganu... ogólnie to chodzi o to aby nie zagubić się we własnym kodzie, uważam, ze to co napisałem jest dobre i wydajne, nie robi bajzlu w kodzie. ...jeleń! Lordis a od czego jest poczta? :P Lecha proszę. :D 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ę