Skocz do zawartości

Anulowanie akcji, po zadziałaniu następnej.


Rekomendowane odpowiedzi

Witam, mam kolejny problemik z GM'em.

Potrzebuję jakiegoś kodu, do anulowania aktywnej akcji,

aby nie mieszała się z drugą

 

Jest jeden obiekt, który ma iść atakować dwa obiekty.

np: Gdy obiekt ma iść do drugiego obiektu, aby go zniszczyć, obiekt idzie

do następnego obiektu, a nie może, bo na początku pierwszej akcji siła(szybkość) była wyższa, nie mogę coś zrobić,

aby gdy już obiektu, który został zniszczony, akcja została anulowana, i aby wtedy obiekt szedł w stronę drugiego objektuu obiektu.

 

Za przeczytanie dzięki.

Odnośnik do komentarza
Udostępnij na innych stronach

Musisz chyba dokładniej opisać swój problem. I zastanów się czy mówisz o dwóch instancjach czy obiektach, bo to też ma znaczenie. Spróbuj też napisać jakiś pseudokod jak nie wiesz jak to napisać w GMLu.

Odnośnik do komentarza
Udostępnij na innych stronach

Hm, jeśli wiem o co Ci chodzi, to wystarczy Ci zrobić zmienną kontrolującą. A drugą bardzo ważną rzeczą, jest kolejność wykonywania kodu (begin step, step, end step).

Czyli coś takiego, że masz zmienną CO_ROBI. I ustawiasz np. na 1, jeśli teraz idzie atakować wroga. I to jest najważniejsza rzecz. Więc nie ważne co się dzieje, on atakuje wroga. A w czymś innym sprawdzasz co robi przed akcją (czyli if!(CO_ROBI==1))

Odnośnik do komentarza
Udostępnij na innych stronach

Musisz zrobić system kolejkowania akcji. Każda gra, w której możesz dawać postaci do wykonania kilka akcji pod rząd ma taki.

Ogólnie wygląda to tak, że masz strukturę danych, w której zapisujesz różne dane nt. akcji (np. dla akcji "atakuj wroga" powinieneś podać ID tego wroga). Postać wykonuje akcje po kolei, czyli od akcji podanej najwcześniej do akcji podanej najpóźniej. Najważniejsza część polega na tym, że pewne zdarzenia (np. wróg ginie, zanim postać zacznie wykonywanie akcji, albo postać ma za mało punktów ruchu, aby zaatakować wroga, coś w tym stylu) powinny powodować usunięcie danej akcji z tej struktury, przez co postać nie będzie jej wykonywać.

 

To nie jest prosta rzecz do zrobienia. GM ma do dyspozycji parę prostych struktur (przydatnymi będą ds_queue i ds_grid), ale jak te struktury będą działać, zależy tylko i wyłącznie od programisty, bo to on decyduje, jakie akcje mogą zostać w grze wykonane.

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...