jedno zadanie z wieloma celami?

Edytor Arma (Arma, Arma2, Arma2OA)

Moderatorzy: kondor, Inkwizytor

ODPOWIEDZ
Balin
Posty: 13
Rejestracja: 22 sierpnia 2009, 12:54
ID Steam:
ID gracza: 0

jedno zadanie z wieloma celami?

Post autor: Balin »

Mam problem ze stworzeniem zadania z wieloma celami. Dokładnie chodzi o to by gracz wykonując zadanie "zniszcz cele" zabił wszystkich w kilku miejscach na wyspie. ustawiłem wyzwalacze w tych punktach (east, nieobecny) nazwalem je war1, war2 itd w ostatnim z nich [korzystając z podobnego posta (viewtopic.php?f=65&t=2899)] chcialem je połączyć warunkiem this and war1 and war2 and... niestety nie działa. dodałem w war-ach 1-3 warunek warx=true. dalej nic. Stąd moje pytanie- Jak je połączyć żeby zadanie było "succeded" (oczywiście wpisałem w okienku przy aktywacji: "[tsk1 setTaskState "SUCCEEDED"; Hint "TASK SUCCEEDED:\n'cele zniszczone'";). Na jednym wyzwalaczu to działa, ale na łączeniu już nie. wszystkie te komendy wpisywałem w wyzwalaczach, bo pliku init.sqf i skryptów jako takich się boję :) .

Oczywiście jeśli temat już był gdzieś poruszony i łopatologicznie wyjaśniony, to wdzięczny będę za info.
tom3kb
Posty: 511
Rejestracja: 04 marca 2011, 06:30
ID Steam:
ID gracza: 209283
Lokalizacja: Sieradz

Re: jedno zadanie z wieloma celami?

Post autor: tom3kb »

Nie powinno byc tego this w linijce this and war1 and war2 and... tylko same war1 and war2 and...
Poradnik: http://armacenter.pl/index.php/tworzeni ... edytor-170
Przeczytaj ostatni podpunkt w poradniku "ŁĄCZONE" czyli jak połączyć kilka obiective-ów w jednym wyzwalaczu kończącym misję.
Ps:Prostych skryptów nie ma się co bać ;), w nich za dużo nie możesz skopać, a nawet jak coś nie zadziała to łatwo znaleźć babola i go naprawić.
gremdek
Posty: 261
Rejestracja: 13 grudnia 2006, 16:53
ID Steam:

Re: jedno zadanie z wieloma celami?

Post autor: gremdek »

tom3kb pisze:Nie powinno byc tego this w linijce this and war1 and war2 and... tylko same war1 and war2 and...
a właśnie, że dobrze, this odpowiada za zniszczenie/zabicie east w ostatnim wyzwalaczu.

balin, odpuść sobie nazwy wyzwalaczy, może przez to ci się kaszani, tylko w aktywacji pododawaj war1 = true itd. warto ustawić je na początku (w init.sqf) na false.
cfog skończył się na kill'em all
tom3kb
Posty: 511
Rejestracja: 04 marca 2011, 06:30
ID Steam:
ID gracza: 209283
Lokalizacja: Sieradz

Re: jedno zadanie z wieloma celami?

Post autor: tom3kb »

Nie zwróciłem uwagi a Balin nazwał tak samo warunki i wyzwalacze war1 itd i to może przez nie działało może lepiej zmienić te war1=true na chociaż te obj1=true czy coś innego dla pewności. I nadal nie wiem po co zostawiać to this ja nigdy tak nie robiłem i działało.
Za poradnikiem jest podobnie bez this :
"Potem tworzysz nowy wyzwalacz, rozmiar 0x0, brak aktywacji, typ Koniec#nr
Zamiast "this" w warunku wpisz obj1 AND obj2 AND obj3"
W wyzwalaczu kończącym misję (czwartym) nikogo nie zabijamy tylko dajemy spełnienie tych trzech warunków z wyzwalaczy od zadań (wyzwalaczy1,2,3), żeby zakończyć misję.
Ps: ważne żeby posprawdzać czy się pozmieniało w kolejnych wyzwalaczach numerki z 1 na 2 itd, żebyś nie miał w kolejnych wyzwalaczach odwołań do zaliczenia poprzedniego zadania. tylko wyzwalaczu 1 zadanie 1, w drugim drugie, bo mógł też zapomnieć zmienić i dwa wyzwalacze odpowiadają za to samo itd
gremdek
Posty: 261
Rejestracja: 13 grudnia 2006, 16:53
ID Steam:

Re: jedno zadanie z wieloma celami?

Post autor: gremdek »

czasami dobrze wiedzieć co robią te this, _this itd.
_this

In Scripts/Functions: The given arguments that were passed by a call, exec, execVM or spawn.
For the arguments in scripts executed by mission-made actions or Event Handlers, check addAction and Event Handlers.
In Addons' config files: An array with the current object as its first (and only) element.
In Addons' custom UserActions: Unit that is activating the action.
In Dialogs: An array with the current control as its first (and only) element (only available during runtime).

[edit]
this

In Addons' config files (e.g. UserActions, onInit, etc.): The object the entry belongs to.
In Dialogs: The player unit that activated control (e.g. via mouseEnter). false if non-activated.
In Object's "Init" line: The object the init line belongs to.
In Triggers
"Condition" line: The Boolean return value of the trigger's conditions (e.g. "East Not Present" etc).
"On Activation/Deactivation" line: Seems to always return false.

In Waypoints
"Condition" or "On Activation/Deactivation" line: The group leader that completed the respective waypoint (or driver, if waypoint is assigned to a vehicle).

[edit]
thislist

In Triggers ("Condition" or "On Activation/Deactivation" line): An Array of objects that are currently fulfilling the trigger's condition (same as the what is returned by the list command).
In Waypoints ("Condition" or "On Activation" line): An Array containing all group members that completed the respective waypoint.
(thislist in a trigger's deactivation field seems to be undefined, and should not be used. It will either return an empty array, or possibly the contents of a different trigger.)

poradnik poradnikiem, ja wolę po swojemu
cfog skończył się na kill'em all
tom3kb
Posty: 511
Rejestracja: 04 marca 2011, 06:30
ID Steam:
ID gracza: 209283
Lokalizacja: Sieradz

Re: jedno zadanie z wieloma celami?

Post autor: tom3kb »

@up
Masz rację wiedzy nigdy za wiele :)
Faktycznie piszą w przykładzie, że jak wyzwalacze z "nieobecnością wschodu" to i this. Ale chyba koniecznie nie jest wymagany i bez niego też zaliczy.

A tak z innej beczki, żebym się upewnił jeśli by były np: dwa wyzwalacze w jednym zabicie konkretnej osoby not alive banan [obj1=true] i drugie oczyszczenie wioski z tą nieobecnością np: wschodu i [obj2=true]
To w trzecim wyzwalaczu kończącym misje można zrobić tak:
- not alive banan and obj2,
- obj1 and obj2,
- this and obj1 and obj2 ten na pewno wg tego co pisałeś
czy wszystkie możliwości mogą być czy, któraś by nie zadziałała, ja tam zawsze ponazywałem jednostki np od w1-w20 i z not alive jechałem lub pojazdy z not canmove dla pewności bo nie zawsze były zniszczone i wtedy by nieobecności chyba nie zaliczyło bo załoga by wyskoczyła. Jakoś nigdy tego nie sprawdzałem (wiem, że tak jak robię jest dłużej i są lepsze/szybsze sposoby ale mi się nigdy nie śpieszyło :)
gremdek
Posty: 261
Rejestracja: 13 grudnia 2006, 16:53
ID Steam:

Re: jedno zadanie z wieloma celami?

Post autor: gremdek »

this zwraca ci true/false w zależności od warunków ustawionych w wyzwalaczu.
jak dasz warunek east not present to this będzie true jeśli ruscy zginą.

korzystając z twojego przykładu:
jeśli tworzysz trzeci wyzwalacz to z this nie korzystasz.
ale możesz wykorzystać tylko jeden wyzwalacz. a w nim:

Kod: Zaznacz cały

not alive banan && this
not alive banan wiadomo odnosi się do zabicia banana, this w tym przypadku będzie odpowiadał za spełnienie warunku nieobecności wschodu(to co ty podstawiałeś obj2). wyzwalacz od razu załatwi koniec misji. ale dodatkowy wyzwalacz dla końca misji to jest dobry sposób, jak trzeba zmienić warunki końcowe to łatwa sprawa, a nie zastanawianie się co gdzie jest i jak jest powiązane.

ja tam zawsze ponazywałem jednostki np od w1-w20
ja właśnie czegoś takiego nigdy nie robiłem. potem masz małą zmianę w misji, ale ogromne zmiany w skryptach. no a raz dobrze napisany skrypt/funkcję można wykorzystać parę razy.
cfog skończył się na kill'em all
tom3kb
Posty: 511
Rejestracja: 04 marca 2011, 06:30
ID Steam:
ID gracza: 209283
Lokalizacja: Sieradz

Re: jedno zadanie z wieloma celami?

Post autor: tom3kb »

gremdek pisze:
ja tam zawsze ponazywałem jednostki np od w1-w20
ja właśnie czegoś takiego nigdy nie robiłem. potem masz małą zmianę w misji, ale ogromne zmiany w skryptach. no a raz dobrze napisany skrypt/funkcję można wykorzystać parę razy.
Wiesz ja już od kilku lat tak robię zostało mi to z jakiegoś poradnika jak ściągałem z ofp.center i tak mi się zakodowało w głowie ;) [od 2005 jak zacząłem robić misje do ofp, wcześniej tylko grałem w czyjeś] przyzwyczaiłem się do tych nazw w1-w20, że robię to prawie z automatu, tak że pomyłek nie strzelam, chociaż wiem, że to takie trochę prostackie i długie rozwiązanie, i inne metody są o wiele szybsze.
Ogólnie dzięki za objaśnienia :)
Balin
Posty: 13
Rejestracja: 22 sierpnia 2009, 12:54
ID Steam:
ID gracza: 0

Re: jedno zadanie z wieloma celami?

Post autor: Balin »

Panowie z racji, że może ja zagmatwałem troche sprawę w opisie problemu, wrzucam screena z edytora jak to u mnie wygląda:
opis wyzwalaczy na mapie
opis wyzwalaczy na mapie
Od początku: Jak widzicie końcowy wyzwalacz ma spełniać tą samą fukcję co wszystkie nazwane warx + ma je jeszcze łączyć. Czyli ten "this" w warunku wg mnie jest potrzebny.
gremdek pisze:balin, odpuść sobie nazwy wyzwalaczy, może przez to ci się kaszani, tylko w aktywacji pododawaj war1 = true itd. warto ustawić je na początku (w init.sqf) na false.
- nie kumam. Jeśli nie nazwę wyzwalaczy to skąd arma będzie wiedziała co to jest "war1" i do czego się odnosi? W pliku init musiałbym wpisać war1=false tak?
tom3kb pisze:Nie zwróciłem uwagi a Balin nazwał tak samo warunki i wyzwalacze war1 itd i to może przez nie działało może lepiej zmienić te war1=true na chociaż te obj1=true czy coś innego dla pewności.
Tom3kb- co to zmieni jeśli wyzwalacz będzie się inaczej nazywał? chyba że "warx" jest jakąś komendą skryptową o której nie wiem... Odnośnie przykładów z bananami:) - może właśnie olać te wyzwalacze (east nieobecny) i porobić grupy (np. gr1 gr2 itd) po czym w warunku jednego wyzwalacza wpisać not alive i te grupy?

BTW- Dzięki panowie za odpowiedzi:)

Sprawdziłem- miałem małą literówkę w war4. zapomnialem "4" przy war4=true. Zaczęło działać, ale nie tak jak chciałem. z tym opisem zdobycie wzgórza na południowym wschodzie powoduje zakończenie zadania. bo (tak mi się zdaję) wpisanie w innych wyzwalaczach warx=true powoduje że warunek jest zawsze spełniony... Już nie ogarniam jak to ustawić żeby działało jak trzeba.

{EDIT FINALNY}
Działa. Wystarczyło popatrzeć, pomyśleć i walnąć kilka razy łbem w futrynę. warX=true trzeba wpisać w okienku "przy aktywacji" a nie jak ja na początku w "warunku"! Dla osób z podobnym problemem: W warunku zostało "this" przy aktywacji np. war1=true. potem oddzielny wyzwalacz z warunkiem war1 AND war2 AND...

Gremdek i Tom3kb -Pozdrawiam i dziękuję za pomoc.
ODPOWIEDZ

Wróć do „Edycja oraz tworzenie misji, skrypty oraz programowanie”