Hello!
I have two example triggers below. The first works on every unit in the unit group, and the second does not - It only seems to hit a handful of random units in the group. I am not sure why the second doesn't work.
My reasoning for trigger #2 is to create less units overall in the game, reducing leaks/lag in the log run.
As always, thanks for the help!
I have two example triggers below. The first works on every unit in the unit group, and the second does not - It only seems to hit a handful of random units in the group. I am not sure why the second doesn't work.
My reasoning for trigger #2 is to create less units overall in the game, reducing leaks/lag in the log run.
-
alifeCast
-

Events
-


Unit - A unit Starts the effect of an ability
-
-

Conditions
-


(Ability being cast) Equal to Antilife Shell (Necro)
-
-

Actions
-


Set VariableSet alifeCasterLoc[(Player number of (Owner of (Triggering unit)))] = (Position of (Triggering unit))
-


Custom script: set bj_wantDestroyGroup = true
-


Unit Group - Pick every unit in (Units within 800.00 of alifeCasterLoc[(Player number of (Owner of (Triggering unit)))].) and do (Actions)
-



Loop - Actions
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






((Picked unit) is dead) Equal to True
-






(Color of (Owner of (Picked unit))) Equal to (Color of Player 12 (Brown))
-
-





Then - Actions
-






Set VariableSet alifeCorpseCount[(Player number of (Owner of (Triggering unit)))] = (alifeCorpseCount[(Player number of (Owner of (Triggering unit)))] + 1)
-






Set VariableSet alifeCorpseLoc[(Player number of (Owner of (Triggering unit)))] = (Position of (Picked unit))
-






Special Effect - Create a special effect at alifeCorpseLoc[(Player number of (Owner of (Triggering unit)))] using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
-






Special Effect - Destroy (Last created special effect)
-






Custom script: call RemoveLocation(udg_alifeCorpseLoc[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))])
-
-





Else - Actions
-
-
-
-


Custom script: set bj_wantDestroyGroup = true
-


Unit Group - Pick every unit in (Units within 800.00 of alifeCasterLoc[(Player number of (Owner of (Triggering unit)))].) and do (Actions)
-



Loop - Actions
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






alifeCorpseCount[(Player number of (Owner of (Triggering unit)))] Greater than 0
-






((Owner of (Picked unit)) controller) Equal to User
-






((Picked unit) is dead) Equal to False
-
-





Then - Actions
-






Unit - Create 1 dummy_unit for (Owner of (Triggering unit)) at alifeCasterLoc[(Player number of (Owner of (Triggering unit)))] facing Default building facing degrees
-






Unit - Add a 0.30 second Generic expiration timer to (Last created unit)
-






Set VariableSet alifeDummyUnit[(Player number of (Owner of (Triggering unit)))] = (Last created unit)
-






Unit - Add Antilife Shell (Necro Dummy) to alifeDummyUnit[(Player number of (Owner of (Triggering unit)))]
-






Ability - Set Ability: (Unit: alifeDummyUnit[(Player number of (Owner of (Triggering unit)))]'s Ability with Ability Code: Antilife Shell (Necro Dummy))'s Integer Level Field: Defense Increase ('Inf2') of Level: 0 to (alifeCorpseCount[(Player number of (Owner of (Triggering unit)))] x 5)
-






Set VariableSet alifeArmorTarget[(Player number of (Owner of (Triggering unit)))] = (Picked unit)
-






Unit - Order alifeDummyUnit[(Player number of (Owner of (Triggering unit)))] to Human Priest - Inner Fire alifeArmorTarget[(Player number of (Owner of (Triggering unit)))]
-
-





Else - Actions
-
-
-
-


Set VariableSet alifeCorpseCount[(Player number of (Owner of (Triggering unit)))] = 0
-


Custom script: call RemoveLocation(udg_alifeCasterLoc[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))])
-
-
-
alifeCast
-

Events
-


Unit - A unit Starts the effect of an ability
-
-

Conditions
-


(Ability being cast) Equal to Antilife Shell (Necro)
-
-

Actions
-


Set VariableSet alifeCasterLoc[(Player number of (Owner of (Triggering unit)))] = (Position of (Triggering unit))
-


Custom script: set bj_wantDestroyGroup = true
-


Unit Group - Pick every unit in (Units within 800.00 of alifeCasterLoc[(Player number of (Owner of (Triggering unit)))].) and do (Actions)
-



Loop - Actions
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






((Picked unit) is dead) Equal to True
-






(Color of (Owner of (Picked unit))) Equal to (Color of Player 12 (Brown))
-
-





Then - Actions
-






Set VariableSet alifeCorpseCount[(Player number of (Owner of (Triggering unit)))] = (alifeCorpseCount[(Player number of (Owner of (Triggering unit)))] + 1)
-






Set VariableSet alifeCorpseLoc[(Player number of (Owner of (Triggering unit)))] = (Position of (Picked unit))
-






Special Effect - Create a special effect at alifeCorpseLoc[(Player number of (Owner of (Triggering unit)))] using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
-






Special Effect - Destroy (Last created special effect)
-






Custom script: call RemoveLocation(udg_alifeCorpseLoc[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))])
-
-





Else - Actions
-
-
-
-


Custom script: set bj_wantDestroyGroup = true
-


Unit - Create 1 dummy_unit for (Owner of (Triggering unit)) at alifeCasterLoc[(Player number of (Owner of (Triggering unit)))] facing Default building facing degrees
-


Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
-


Set VariableSet alifeDummyUnit[(Player number of (Owner of (Triggering unit)))] = (Last created unit)
-


Unit - Add Antilife Shell (Necro Dummy) to alifeDummyUnit[(Player number of (Owner of (Triggering unit)))]
-


Ability - Set Ability: (Unit: alifeDummyUnit[(Player number of (Owner of (Triggering unit)))]'s Ability with Ability Code: Antilife Shell (Necro Dummy))'s Integer Level Field: Defense Increase ('Inf2') of Level: 0 to (alifeCorpseCount[(Player number of (Owner of (Triggering unit)))] x 5)
-


Unit Group - Pick every unit in (Units within 800.00 of alifeCasterLoc[(Player number of (Owner of (Triggering unit)))].) and do (Actions)
-



Loop - Actions
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






alifeCorpseCount[(Player number of (Owner of (Triggering unit)))] Greater than 0
-






((Owner of (Picked unit)) controller) Equal to User
-






((Picked unit) is dead) Equal to False
-
-





Then - Actions
-






Set VariableSet alifeArmorTarget[(Player number of (Owner of (Triggering unit)))] = (Picked unit)
-






Unit - Order alifeDummyUnit[(Player number of (Owner of (Triggering unit)))] to Human Priest - Inner Fire alifeArmorTarget[(Player number of (Owner of (Triggering unit)))]
-
-





Else - Actions
-
-
-
-


Set VariableSet alifeCorpseCount[(Player number of (Owner of (Triggering unit)))] = 0
-


Custom script: call RemoveLocation(udg_alifeCasterLoc[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))])
-
-
As always, thanks for the help!

