Visa ämne
Anrop » ArmA 2 » Editering
 Skriv ut ämne
Trigger
Hej

Hur får man en trigger att känna av om ett föremål finns inom dess område eller inte. Två vägar skall mineras av och dessa är två är separata uppgifter i uppdraget.

Mvh
Smidigast är en nearstobject har använt i ett mission jag gjort, kan lägga upp kod när kommer hem
Du vill nog använda thisList

edit:
testade lite fort och det verkar inte som att minor/satchels dyker upp i thislist så du får nog använda nearestobjects som gQ föreslog ändå.

Här är ett exempel där triggern aktiveras när 5 minor har placerats inom en radie av 50 meter runt triggerns center.

i.imgur.com/5HmWD.png
http://i.imgur.com/5HmWD.png

ändra ACE_MINE till den klass som du tänker använda.
Redigerat av xealot den 2012-10-05 19:51
The enemy cannot predict your actions if you have no idea what you're doing.
ah den där xealot postade bör vara good enough, säg till annars Smile
tackar, ska testa i morgon...
Hmm, det verkar tyvärr inte funka som det är tänkt...

Använder följande kodbit i min trigger:

count nearestObjects [getPos Minetrigger, ["Mine"], 50] > 2

men det verkar inte hända något.
ArmA är CP, det verkar som att nearestObjects inte vill kännas vid minor även om man anger "MINE" som typfilter (dock kommer det upp om man inte anger filter via []).

Det här kan du använda istället som faktiskt fungerar:
Kod Källa  

 count ((getPos mineTrigger) nearObjects ["MINE", 50]) > 4


kommer enligt tidigare exempel att trigga om det finns fler än 4 minor (dvs 5) i en radie av 50 meter runt om triggerns center, Se till att du ställer in triggern till att köra Once
The enemy cannot predict your actions if you have no idea what you're doing.
Funkar utmärkt. Tackar!
Jag har en triggerfråga.

Om jag vill att ett uppdrag inte ska avslutas förrän alla spelare vid liv har samlats i triggerområdet, va ska jag skriva i triggern då?

Har två squads som jag vill ska samlas ihop i slutet.
Motfråga då;

Måste alla vara närvarande för att triggern skall avslutas eller räcker det med att någon ur gruppen når målet ?

Det är massa olika sätt man kan göra det på.. ju mer man vill;desto mer invecklat blir det med osv..

Lättast är att groupa triggern med leadern och sätta leader+alla i squaden som triggers och sen en endMission "end1" typ men det beror ju allt på hur du vill ha klart det..
Du kan göra en trigger med Blufor activation och sätta:
Kod Källa  

[playableUnits,thisList] call BIS_fnc_areEqual;
som condition..

Då kommer triggern att köras när alla spelbara enheter (AI slots + spelare) som lever befinner sig inom triggerns zon.

OBS att den här metoden kräver att:
1) Att det endast finns playable enheter hos en faktion -- finns det spelare för fler lag så måste man göra koden lite annorlunda
2) Att endast spelbara enheter befinner sig inom triggern, om det finns typ andra icke-spelbara AI så som i en bas så funkar det inte utan då krävs en liten mer avancerad variant


EDIT:
Man kan tydligen använda BIS_fnc_listPlayers för att få ut alla spelarna också och undvika att få playable AI istället för playableUnits om man vill det.
Redigerat av xealot den 2013-01-23 16:55
The enemy cannot predict your actions if you have no idea what you're doing.
Det är två squads, båda US, som alla är playable. Så ingen AI i US alltså.
Jag vill att när alla spelare är i zonen så aktiveras triggern, ja.
Så Xealots lösning verkar rimlig.
Ska prova.

Tackar!
trigger: BLUFOR present
activation: s1 !alive OR in thislist; s2 !alive OR in thislist; s3 !alive OR in thislist

osv där sX är namnet på spelbara enheterna.
Triggern går när de namngivna enheterna är döda/oexisterande eller befinner sig inom triggerarea.

Borde funka också.
Redigerat av Giant den 2013-01-24 10:48
don't copy that floppy
När jag sätter
[playableUnits,thisList] call BIS_fnc_areEqual;
som condition så aktiveras den direkt när jag startar.

Blufor present.
Inga fler spelbara enheter i nån annan faktion.
Ingenting annat inom triggerzonen.

Nåt fel gör jag.



EDIT:

Citera

SkaGGet skrev:
Lättast är att groupa triggern med leadern och sätta leader+alla i squaden som triggers och sen en endMission "end1" typ men det beror ju allt på hur du vill ha klart det..


Det verkar ju funka. Får bara dra en "grouplinje" över hela kartan. Men bagatell!

Det jag gjorde var:
Groupade varje squad till var sin trigger placerad där jag vill att dom ska mötas upp.
Ändrade till "Activation: whole group" i triggrarna.
Döpte triggrarna till Meetup1 och Meetup2.
Gjorde en till trigger med condition: triggeractivated meetup1 && triggeractivated meetup2; som avslutar missionet.

Är väl kanske inte det smidigaste sättet, men nu verkar det inte va nåra problem.
Redigerat av Swanberg den 2013-01-24 15:42

Citera

MojoDog skrev:
När jag sätter
[playableUnits,thisList] call BIS_fnc_areEqual;
som condition så aktiveras den direkt när jag startar.

Blufor present.
Inga fler spelbara enheter i nån annan faktion.
Ingenting annat inom triggerzonen.

Nåt fel gör jag.


Är du inom triggerns område när det här händer?
Jag testade det där själv och det funkade som det skulle.

Körde du via editorn i singleplayer eller köra du editorn i multiplayer?
borde egentligen inte spela någon roll men skadar inte att fråga..
The enemy cannot predict your actions if you have no idea what you're doing.
Fan va skumt.
Nej jag var inte i området. Körde i singleplayer editorn.