There are some things in your trigger condition I'd like to talk about. There is nothing actually wrong with your condition, since it will work correctly in this case, but I feel that explaining a few things might expand your understanding of what you are doing and help you avoid errors in the future (this isn't intended to be a noob smackdown, so please don't be disheartened, especially since a lot of non-noobs could do worse than know this info!):
- it doesn't take into account operator precedence (though in this case, it doesn't actually matter, as I explain later). That is, or/|| binds after and\&&
Thus:
a && b || c
actually runs as though it was:
(a && b) || c
and not as (as you might expect):
a && (b || c)
- In a trigger condition, this is true if the trigger has been triggered. This will usually lead to activation, since the default condition is this. That is, if it is a "detected" trigger, then the appropriate type of unit is within the zone and is known to enemy units, for a "radio" trigger, then someone has used the appropriate radio option. In your "present" trigger, this means that something, whether one of the helos or anything else, is in the trigger. Anything in the trigger is placed in thisList, so nothing can be in thisList if this isn't true. Therefore, the use of this in this case is unnecessary, though if it was necessary, then the condition might fail, as explained in the previous point.
- You don't need to use "vehicle helo1_1", since this is always the same for a vehicle as simply using the name of the vehicle. When considering a man, however, then "vehicle man1" will either be the man himself or, if he is on board a vehicle, his vehicle. Triggers won't see men inside vehicles, only vehicles and men on foot. When checking for presence of a man, rather than a vehicle, in a trigger zone, then it is important to check for the presence of "vehicle man1", since the man could be present on foot or in a vehicle.
This is therefore equivalent to what you are using for your condition:
(helo1_1 in thisList) || (helo1_2 in thisList) || (helo2_1 in thisList) || (helo2_2 in thisList)
As I said though, this is equiquivalent to what you are using, but the more you understand what you are doing and why you are doing it the less errors you will make in the future.
Nevertheless, if all your helicopters are in groups that can be grouped with the trigger, Surdus Priest's suggestion makes the most sense, since I'm explaining, rather than optimising, your technique.
Another thing you want to bear in mind is that if one helicopter enters the zone and drops a flare, then another enters the zone before the first has left, then the trigger won't be triggered a second time and that second helicopter won't drop a flare. If the first helicopter leaves before the second enters, then a flare would be dropped as you expect. This will happen because if one of your helicopters is in the zone then the trigger condition is already true and so the activation will not re-activate, regardless of more helicopters entering the trigger zone.
Remember:
- The trigger activation is performed when the condition changes from false to true.
- The trigger deactivation is performed when the condition changes from true to false.
May not be an issue for your particular mission, but is something to consider.