- Joined
- May 16, 2020
- Messages
- 662
Hi guys, I have two uncertainties about removing leaks:
First, I found this trigger where the maker removes the group 2x, both within the trigger and at the end. I always thought it's enough to remove it just 1x at the end. Which one is correct?
Secondly, how can I avoid leaks if I cannot delete a group within a loop, because otherwise I would lose the information which is necessary for the next loop?
Take this example:
Is there a solution for this?
First, I found this trigger where the maker removes the group 2x, both within the trigger and at the end. I always thought it's enough to remove it just 1x at the end. Which one is correct?
-
Dual Breath
-

Events
-


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

Conditions
-


(Ability being cast) Equal to Dual Breath
-
-

Actions
-


Set VariableSet DB_Caster = (Triggering unit)
-


Set VariableSet DB_CasterPos = (Position of DB_Caster)
-


Unit - Create 1 Dummy Unit for (Owner of DB_Caster) at DB_CasterPos facing Default building facing degrees
-


Custom script: call RemoveLocation (udg_DB_CasterPos)
-


Unit - Add Dual Breath Dummy to (Last created unit)
-


Unit - Set level of Dual Breath Dummy for (Last created unit) to (Level of Dual Breath for DB_Caster)
-


Set VariableSet DB_TargetPos = (Target point of ability being cast)
-


Unit - Order (Last created unit) to Neutral Brewmaster - Breath Of Fire DB_TargetPos
-


Custom script: call DestroyGroup (udg_DB_Group)
-


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


Wait 0.27 seconds
-


Set VariableSet DB_MapCenter = (Center of (Playable map area))
-


Set VariableSet DB_Group = (Units in (Playable map area) matching (((Matching unit) has buff Dual Breath ) Equal to True))
-


Unit Group - Pick every unit in DB_Group and do (Actions)
-



Loop - Actions
-




Unit - Create 1 Dummy Unit for (Owner of DB_Caster) at DB_MapCenter facing Default building facing degrees
-




Unit - Add Dual Breath Slow to (Last created unit)
-




Unit - Set level of Dual Breath Slow for (Last created unit) to (Level of Dual Breath for DB_Caster)
-




Unit - Order (Last created unit) to Undead Lich - Frost Nova (Picked unit)
-




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


Custom script: call RemoveLocation (udg_DB_MapCenter)
-


Custom script: call DestroyGroup (udg_DB_Group)
-
-
Secondly, how can I avoid leaks if I cannot delete a group within a loop, because otherwise I would lose the information which is necessary for the next loop?
Take this example:
-
TimeLock Learn
-

Events
-


Unit - A unit Learns a skill
-
-

Conditions
-


(Learned Hero Skill) Equal to Time Lock
-


(Learned skill level) Equal to 1
-
-

Actions
-


Trigger - Turn on TimeLock Start again <gen>
-
-
-
TimeLock Start again
-

Events
-


Game - DamageModifierEvent becomes Equal to 1.00
-
-

Conditions
-


(Level of Time Lock for DamageEventSource) Greater than 0
-
-

Actions
-


Trigger - Turn on TimeLock Loop <gen>
-


Custom script: set udg_TimeLock_LockedUnits = CreateGroup()
-


Trigger - Turn off (This trigger)
-
-
-
TimeLock Loop
-

Events
-


Time - Every 0.05 seconds of game time
-
-

Conditions
-

Actions
-


Set VariableSet TimeLock_GroupAddFreeze = (Units in (Playable map area) matching (((Matching unit) has buff Time Lock (Pause)) Equal to True))
-


Unit Group - Pick every unit in TimeLock_GroupAddFreeze and do (Actions)
-



Loop - Actions
-




Special Effect - Create a special effect attached to the chest of (Picked unit) using Abilities\Spells\Undead\AbsorbMana\AbsorbManaBirthMissile.mdl
-




Special Effect - Destroy (Last created special effect)
-




Animation - Change (Picked unit)'s animation speed to 0.00% of its original speed
-




Unit Group - Add (Picked unit) to TimeLock_LockedUnits
-
-
-


Custom script: call DestroyGroup(udg_TimeLock_GroupAddFreeze)
-


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



If - Conditions
-




(TimeLock_LockedUnits is empty) Equal to True
-
-



Then - Actions
-




Custom script: call DestroyGroup(udg_TimeLock_LockedUnits)
-




Trigger - Turn on TimeLock Start again <gen>
-




Trigger - Turn off (This trigger)
-
-



Else - Actions
-




Unit Group - Pick every unit in TimeLock_LockedUnits and do (Actions)
-





Loop - Actions
-






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







If - Conditions
-








((Picked unit) has buff Time Lock (Pause)) Equal to False
-
-







Then - Actions
-








Animation - Change (Picked unit)'s animation speed to 100.00% of its original speed
-








Unit Group - Remove (Picked unit) from TimeLock_LockedUnits.
-
-







Else - Actions
-








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









If - Conditions
-










(TimeLock_LockedUnits is empty) Equal to True
-
-









Then - Actions
-










Custom script: call DestroyGroup(udg_TimeLock_LockedUnits)
-










Trigger - Turn on TimeLock Start again <gen>
-










Trigger - Turn off (This trigger)
-
-









Else - Actions
-
-
-
-
-
-
-
-
-
Is there a solution for this?
Last edited:


