The trigger parameters should be "ONCE", "PRESENT" and "ANYBODY".
However I have some notes and suggestions for you:
° trigger won't list empty vehicles (taken from "EMPTY" menu);
° trigger won't list vehicles;
° trigger will list only one crew of vehicles;
Do a test: place an armored vehicle in which
there are normally 3 soldiers (tanks, ..).
In the line "On Activation" write:
Hint Format ["%1",ThisList]
Maybe you expect to see 3 units + 1 vehicles in the hint message,
but surprise it is not so.
I don't remember which type of crew is listed, commander or driver.
° all machines will exec as many istances of the script as the listed units;
If you have 100 units, your machine execs 100 istances of the script.
I would use a unique script to monitor the units, but of course
the code must be structured in a different way.
° two or more machines COULD try to delete the same unit at the same time;
Yeah, not high probability, but still possible.
° after deletion, other machines COULD do a null-check;
This time the probability to happen is greater.
After a machine deleted a unit, f.e. "Alpha Black 1", the others could not
have reached in time the line:
?(!(alive _p))||(getdammage _p >= 1) : deletevehicle _p; exit
and since "Alpha Black 1" became a null-object, they'll do a null-check on "_p".
The program skips the null-check, because invalid, so the loop for
"Alpha Black 1" will never end.
° why to use "getdammage" and "!alive"?
Did I miss something?
I know "!Alive _p" is equal to "GetDammage _p==1", isn't?