Jump to content
Sign in to follow this  
domcho

"Trigger owner doesn't exist" case for group member

Recommended Posts

Trigger ownership of a group member unit seems to transfer to another group member when the previous owner gets killed. However, that doesn't seem to be the case if the trigger owner doesn't exist, after mission start, in the first place. For example:

You have a squad of playable units, squad leader is owner of the trigger. The trigger has activation: whole group and ends the mission. In the multiplayer lobby no player picks the squad leader playable unit and it's AI is disabled -> the unit will not exist, and the trigger will not work. The ownership of the trigger will not be transferred to the next group member, and thus the mission will not end. This is similar to another multiplayer problem where you had to initialize the group variable name inside every playable unit's initialization field (in a group that consists of player/playable units only). Doing it for just one playable group member could leave a window for problems, where again, no player picks that unit and it's AI is disabled, leading to the group variable name not being initialized. Thankfully, in ArmA 3 this could be solved by typing the variable name inside the group entity in the EDEN editor.

Non-existing trigger owner could also be problematic in singleplayer if the group member who is trigger owner has probability of presence <100% and/or his condition of presence could return false.

 

You can try it yourself: create a group of 2 units, set the player to be the 2nd unit (i.e. to not be the group leader), set the group leader's probability of presence to 0%, create a trigger, set the owner to be the group leader, activation any group member or whole group, on activation display a hint with hint "Trigger activated". Walk into the trigger area.

You can also try it in multiplayer, just make the group leader playable, go into the multiplayer mission lobby, pick the slot for the 2nd unit and disable the group leader's AI so he doesn't spawn. The trigger will not fire.

 

To circumvent this problem, don't give the trigger an owner in such scenarios. Instead give your group a variable name through the group entity and use the trigger's condition field to do checks:
Any group member:

({vehicle _x in thisList} count units groupName) > 0

Whole group:

({vehicle _x in thisList} count units groupName) == ({alive _x} count units groupName)

Group leader:

vehicle (leader groupName) in thisList

vehicle _x in thisList count units alive leader

If anyone has better suggestions, feel free to post them.

 

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×