Paqoo Opublikowano 3 Grudnia 2007 Udostępnij Opublikowano 3 Grudnia 2007 Problem dziwny, skrypty przekopiowałem z przykładu systemwalkiwrpg.gm6. Wszystko działa sprawnie. Oczywiście musiałem zrobić kilka zmian, podmienić nazwy itp. Wydaje mi się, że rozumiem to, co autor przykładu miał na myśli. Ale jest problem.. Przeciwnik stoi zamiast za mną chodzić! Co może być nie tak? Oto kod z STEP obiektu przeciwnika - o_spider: if hlt <= 0 { instance_destroy(); exit; } if atak && o_gracz.atak_npc != id atak = false; var gracz; gracz=instance_nearest(x,y,o_gracz); if ( distance_to_object(gracz)<dyst ) { podazaj=true; } else { podazaj=false; } if (podazaj==true) { if (o_gracz.y>y+32) { if (place_free(x,y+32)) k=dol; else { if (o_gracz.x>x) k=prawo; else k=lewo; } } if (o_gracz.y<y-32) { if (place_free(x,y-32)) k=gora; else { if (o_gracz.x>x) k=prawo; else k=lewo; } } if (o_gracz.x>x+32) { if (place_free(x+32,y)) k=prawo; else { if (o_gracz.y>y) k=dol; else k=gora; } } if (o_gracz.x<x-32) { if (place_free(x-32,y)) k=lewo; else { if (o_gracz.y>y) k=dol; else k=gora; } } } switch (k) { case gora: if entered { yy -= 32; entered = false; sprite_index=s_spdr_up; image_single=-1; image_speed=0.3; k=stoj; } break; case dol: if entered { yy += 32; entered = false; sprite_index=s_spdr_down; image_single=-1; image_speed=0.3; k=stoj; } break; case lewo: if entered { xx -= 32; entered = false; sprite_index=s_spdr_left; image_single=-1; image_speed=0.3; k=stoj; } break; case prawo: if entered { xx += 32; entered = false; sprite_index=s_spdr_right; image_single=-1; image_speed=0.3; k=stoj; } break; } if place_free(xx,yy) { if mp_linear_step(xx,yy,move_speed,false) { entered = true; if (k=stoj) { image_single=0; image_speed=0; } } } else { xx=x; yy=y; } Oto jego CREATE EVENT: xx = x; yy = y; entered = true; move_speed = 2; image_single=0; image_speed=0; exp = 20; // ile expa ma dodawac po zabiciu max_hlt = 50; // maximum zycia hlt = 50; // zycie ustawione na maximum imie = 'Spider'; // imie potwora atak = false; // czy atakujemy (pozostaw false!) podazaj = false; // czy ma podążać za graczem czy nie k=stoj; // kierunek w ktorym ma isc (jesli stoj - no to stoi nie xD) dyst=32*7; // dystans przy jakim NPC zaczyna gonić gracza alarm[0] = room_speed*2; alarm[1] = room_speed*random(2); A to Alarmy: Alarm1: var k; k=choose(lewo, prawo, gora, dol); if !podazaj switch (k) { case gora: krok_gora() break; case dol: krok_dol() break; case lewo: krok_lewo() case prawo: krok_prawo() } alarm[1] = room_speed*random(3); Alarm 0: var obj, atak; obj = o_gracz; if distance_to_object(obj) <= 32 { atak = round(random(1)); if atak = 1 { obj.hlt-=round(random(5)); } else { } } alarm[0] = room_speed*2; //atak co 2 sekundy W draw i press button nie było nic ciekawego.. POMOCY!!!! :crying: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pablo-GM Opublikowano 3 Grudnia 2007 Udostępnij Opublikowano 3 Grudnia 2007 Wejdz w Global Game Settings zakladka constans i wejdz w to samo w przykladzie systemu walki ala tibia i zrob tak samo a bedzie dzialalo :thumbsup: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Paqoo Opublikowano 3 Grudnia 2007 Autor Udostępnij Opublikowano 3 Grudnia 2007 O rany nie zauważyłem tego... Dzięki bardzo! Dziwa rzecz.. To są stałe, tak? Te CONSTANS? I można tam definiować swoje stałe i używać w projekcie? Jak tak to bombowo!! 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ę