Teraz jest N 19 lis, 2017 16:02


[Poradnik] Mechanika misji

Dział poświęcony edytorowi ArmA II i Operation Arrowhead, czyli tworzeniu misji.
  • Autor
  • Wiadomość
Offline
Avatar użytkownika

Jon

Generał

Generał

  • Posty: 10687
  • Dołączył(a): Wt 20 lip, 2004 00:43
  • Lokalizacja: Kraków

[Poradnik] Mechanika misji

PostPn 16 sie, 2010 19:44

Mechanika misji opiera się zazwyczaj na grupie wyzwalaczy odpowiedzialnych za aktywację poszczególnych elementów misji, w tym zakończeń. Działają one zazwyczaj na podstawie typowej konstrukcji logicznej: Jeśli X to COŚ. Pole "Przy aktywacji" w Triggerze odpowiada za to, co się stanie - to jest nasze COŚ. A jak określać X?

Poniżej najbardziej podstawowe (a zarazem i najbardziej potrzebne) "triki" związane ze stroną techniczną misji.

IMPLIKACJA:
Czyli jak sprawić, by DOPIERO W MOMENCIE, gdy warunek X zostanie spełniony stało się określone COŚ (w tym wypadku mam na myśli zachowanie jednostek).

Wszystko opiera się na Synchronizacji, na tryb której przełączamy się w edytorze po pacnięciu F5. Dajmy na to, że chcemy by jednostka przeszła z punktu A do punktu B po spełnieniu warunku X (w tym wypadku będzie to wezwanie radiem).

Stawiasz jednostkę
Ustawiasz jej dwa waypointy - pierwszy w punkcie A, drugi w punkcie B
Stawiasz wyzwalacz, wymiary 0x0, aktywacja Radio Alfa, typ Zmiana
Przełączasz się na tryb synchronizacji
Przeciągasz niebieską mackę z wyzwalacza do PIERWSZEGO punktu trasy jednostki

Zrobione. Teraz jednostka przejdzie do punktu A i będzie czekać aż kodem radiowym alfa (0-0-1) pozwolisz jej ruszyć do punktu B.

Warunek X może być dowolny. W ten sposób możesz udostępnić swojej grupie wsparcie innych grup wzywane radiem lub alarm (przykład poniżej) po którym jednostki wroga z pobliskiego garnizonu ruszą do zaalarmowanej jednostki.

PRZYKŁAD - alarm
Jesteś Rosjaninem, masz zdobyć wioskę bronioną przez Amerykanów
Ustawiasz wroga w punkcie A (cel do zdobycia)
Ustawiasz wroga w punkcie B (pobliski garnizon)
Ustawiasz wyzwalacz o pożądanych wymiarach (jednostki Wschodu wykryte w obrębie wyzwalacza przez jednostki Zachodu aktywują alarm i spowodują pożądaną akcję - POZA wyzwalaczem nie) aktywacja WSCHÓD i poniżej zamiast Obecny\Present wybierasz Odkryty przez Zachód\Detected by West, typ zmiana i OK
Teraz stawiasz wrogowi w punkcie B (garnizon) 2 waypointy - pierwszy w garnizonie, tuż koło nich, drugi w punkcie A (celu) by udali się tam, gdy wróg zauważy Twoje jednostki;
Synchronizujesz wyzwalacz z pierwszym, garnizonowym punktem trasy
I voila. Gdy jakiekolwiek jednostki Wschodu zostaną odkryte przez Amerykanów, jednostki z garnizonu ruszą na pomoc siłom w punkcie A.

AKTYWOWANY PRZEZ
By dany wyzwalacz był aktywowany tylko przez daną grupę, a nie stronę (tj. by trigger aktywowała zamiast wszystkich jednostek partyzanckich tylko wybrana grupa, np. gracza) należy po ustawieniu wyzwalacza pacnąć F2 (grupowanie) i zgrupować (poprzez przeciągnięcie niebieskiej macki z triggera do wybranej jednostki) wyzwalacz z jednostką. Voila - teraz tylko Twoi wybrańcy będą mogli spełnić warunek triggera.

ELIMINACJA CELU
Wpisz w warunku wyzwalacza:

NOT (alive banan1)

Wyzwalacz aktywuje się gdy jednostka nazwana banan1 zginie.

ELIMINACJA WROGA NA TERENIE
Zakładamy, że miasteczko, które ma zostać oczyszczone z wroga (jednostek Wschodu - Rosjan) jest malutkie (kilka domków) i mieści się w domyślnych wymiarach wyzwalacza (50x50), dla uproszczenia. Ty sobie już wszystko dostosujesz.

Tworzysz zatem wyzwalacz o wymiarach 50x50 (jak wyżej wspomniałem, są ustawione domyślnie przy stawianiu wyzwalacza), aktywacja WSCHÓD (z rozwijanego menu) a później niżej wybierasz Nieobecny\Not Present (w zależności od wersji językowej), rodzaj Koniec#nr i... voila. Gdy wróg zostanie wymieciony lub ucieknie (jednostki wschodu nie będą obecne w obrębie wyzwalacza, a jednostka zabita = nieobecna) misja zostanie zakończona.

STRATY:
COŚ nastąpi gdy w grupie jednostki banan1 zostanie mniej niż 5 jednostek:

(count units group banan1) < 5

DOTARCIE DO PUNKTU:
Powiedzmy, że jesteś Amerykaninem i w puncie wyjścia czeka na Ciebie helikopter. Ustaw tuż koło niego wyzwalacz, o rozmiarach dajmy na to 15x15]/b], aktywacja [b]ZACHÓD, Obecny\Present, typ Koniec#nr. Teraz kliknij F2 (grupowanie) i przeciągnij cienką niebieską linię z wyzwalacza do Twojej jednostki i ustaw "Ktokolwiek z grupy". W ten oto sposób gdy ktokolwiek z drużyny dojdzie do śmigłowca warunek się spełni i misja zostanie zaliczona

UWAGA: Z tego co kojarzę aktywacja przez cała drużyna jest zbugowana - jeśli polegnie któryś z członków wyzwalacz nie zadziała (tak było kiedyś)

USZKODZENIE JEDNOSTKI
Załóżmy że mamy wrogą jednostkę o nazwie banan1, jest to pojazd pancerny. Gdy jednostka ta zostanie uszkodzona, aktywuje się wyzwalacz, który spowoduje aktywację zmiennej uszkodzenie1.

1. Wstawiamy wyzwalacz o rozmiarze 0x0, w polu Typ wybieramy Zmiana.
2. W polu Warunek wpisujemy getDammage banan1 >=0.1 - spowoduje to aktywację wyzwalacza gdy jednostka (w naszym przypadku pojazd pancerny) o nazwie banan1 zostanie lekko uszkodzona. Uszkodzenia zawierają się w przedziale od 0 do 1, gdzie 1 oznacza pojazd zniszczony.
2,5. Jeśli chcemy, by wyzwalacz aktywował się w momencie, gdy pojazd nie będzie mógł się poruszać i załoga wysiądzie z wozu (z powodu zbyt dużych uszkodzeń), postępujemy tak, jak w punkcie powyżej, lecz w polu Warunek wpisujemy not (CanMove banan1).
3. W polu Przy aktywacji wpisujemy uszkodzenie1=true. Oczywiście wyzwalacz może spowodować zupełnie inne zdarzenie, to co się stanie po jego uruchomieniu zależy tylko i wyłącznie od nas.

WYKRYCIE OBIEKTU
Przypuśćmy, że mamy wyznaczone zadanie - zlokalizować wrogi obóz. Musimy stworzyć wyzwalacz, który aktywuje się, gdy znajdziemy tenże obóz i spowoduje zaliczenie celu misji.

1. Wstawiamy wyzwalacz o rozmiarze 0x0, w polu Typ wybieramy Zmiana.
2. W polu warunek wpisujemy PLAYER KnowsAbout namiot1 > 1 - spowoduje to aktywację wyzwalacza gdy obiekt o nazwie namiot1 zostanie wykryty (należy zwrócić uwagę, że wykrycie nie oznacza tylko zauważenia obiektu, musi on również pokazać się na mapie - bez lornetki jest to dosyć trudne). Liczba (w tym wypadku 1) oznacza "stopień wykrycia" obiektu przez jednostkę.
3. W polu Przy aktywacji wpisujemy obj1=true; tskObj1 setTaskState "SUCCEEDED" - spowoduje to aktywację zmiennej obj1 oraz zaliczenie w briefingu zadania o nazwie tskObj1.

Jeśli obóz, który mamy wykryć jest duży i znajduje się w nim kilka namiotów lub innych obiektów, należy nadać nazwę każdemu z nich. Załóżmy, że mamy obóz, w którym znajdują się dwa duże namioty (każdy nazwany kolejno: namiot1, namiot2) oraz flaga (o nazwie flaga1). Jeśli chcemy, aby wyzwalacz aktywował się, gdy którykolwiek z tych obiektów zostanie wykryty, jego warunek powinien wyglądać tak:

(PLAYER KnowsAbout namiot1 > 1) OR (PLAYER KnowsAbout namiot2 > 1) OR (PLAYER KnowsAbout flaga1 > 1)

ŁĄCZONE
A teraz pytanie - jak w prosty sposób połączyć kilka objective'ów?

Załóżmy że są 3:
a) Eliminacja celu
b) Oczyszczenie wioski
c) Ewakuacja


Stawiasz na podstawie tego, co powyżej 3 wyzwalacze: Odpowiedzialny za zabicie celu banan1, za oczyszczenie wioski i ewakuacyjny. Teraz we wszystkich ustawiasz typ "Zmiana" zamiast "Koniec#nr" i wpisujesz w aktywacji wyzwalaczy odpowiednio dla:
a) wyzwalacza odpowiedzialnego za zabicie banan1 - obj1=true
b) wyzwalacza odpowiedzialnego za oczyszczenie wioski - obj2=true
c) wyzwalacza odpowiedzialnego za ewakuację - obj3=true
Zapisujesz zmiany - "OK"

Potem tworzysz nowy wyzwalacz, rozmiar 0x0, brak aktywacji, typ Koniec#nr
Zamiast "this" w warunku wpisz

obj1 AND obj2 AND obj3

I voila. Po spełnieniu wszystkich warunków (po zabiciu banana, oczyszczeniu wioski i wycofaniu się do helikoptera) misja się zakończy i wyświetli debriefing końca#nr ileś.


To póki co wszystko co dla Was mamy. Za pomocą tego oraz Cośtam=True można naprawdę wiele, ale za dużo czasu zajęłoby tłumaczenie nawet tych częściej wykorzystywanych wariantów. Miłego kombinowania :)
Ostatnio edytowano So 18 gru, 2010 16:42 przez Jon, łącznie edytowano 2 razy
http://www.pajacyk.pl

“Politics is supposed to be the second oldest profession. I have come to realize that it bears a very close resemblance to the first.”
~ Ronald Reagan

Powrót do [ArmA II] Edytor

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości