- Joined
- Jul 17, 2013
- Messages
- 544
Hi, yesterday i dled spell system from hive The Demonic Ball [ GUI MUI ] v1.2 and i guess it has leak! i tested it with leak memory checker and this what shows
View attachment 337703
Here is trigger i think leak tester shows this trigger. Could you help me to find out how to remove leak? I GENERALY KNOW HOW TO REMOVE SIMPLE LEAKS LIKE LOCATION OR UNIT GROUP BUT THIS ONE IS CONFUSING ME!
View attachment 337703
Here is trigger i think leak tester shows this trigger. Could you help me to find out how to remove leak? I GENERALY KNOW HOW TO REMOVE SIMPLE LEAKS LIKE LOCATION OR UNIT GROUP BUT THIS ONE IS CONFUSING ME!
-
DB Loop
-

Events
-


Time - Every 0.03 seconds of game time
-
-

Conditions
-

Actions
-


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



Loop - Actions
-




Set DB_BallDummy = (Picked unit)
-




Custom script: set udg_DB_ID = GetHandleId(udg_DB_BallDummy)
-




Set DB_DurationTimerTracks = (Load 1 of DB_ID from DB_Hash)
-




Set DB_Caster = (Load 3 of DB_ID in DB_Hash)
-




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





If - Conditions
-






DB_DurationTimerTracks Greater than 0.00
-






(DB_Caster is alive) Equal to True
-
-





Then - Actions
-






Hashtable - Save (DB_DurationTimerTracks - 0.03) as 1 of DB_ID in DB_Hash
-
-





Else - Actions
-






Set DB_Level = (Load 2 of DB_ID from DB_Hash)
-






Set DB_BallOwner = (Load 4 of DB_ID in DB_Hash)
-






Set DB_BallPosition = (Position of DB_BallDummy)
-






Set DB_CasterPosition = (Position of DB_Caster)
-






For each (Integer DB_Int) from 1 to DB_ECNumber[DB_Level], do (Actions)
-







Loop - Actions
-








Set DB_ECAngle = (DB_ECAngle + (360.00 / (Real(DB_ECNumber[DB_Level]))))
-








Set DB_ECPoint = (DB_CasterPosition offset by DB_BallArea[DB_Level] towards DB_ECAngle degrees)
-








Custom script: call DestroyEffect( AddSpecialEffectLoc(udg_DB_ECEffect,udg_DB_ECPoint))
-








Custom script: call RemoveLocation(udg_DB_ECPoint)
-
-
-






-------- Blast Stage --------
-






Custom script: call DestroyEffect(AddSpecialEffectTarget(udg_DB_BlastEffect,udg_DB_Caster,udg_DB_BlastEffectAttach))
-






Unit - Create 1 DB_DemonicDummyType2 for DB_BallOwner at DB_CasterPosition facing Default building facing degrees
-






Set DB_BlastDummy = (Last created unit)
-






Animation - Change DB_BlastDummy's size to (DB_BlastSize[DB_Level]%, 0.00%, 0.00%) of its original size
-






Unit - Add a 1.00 second Generic expiration timer to DB_BlastDummy
-






-------- Tree Destroy Stage --------
-






Destructible - Pick every destructible within DB_BallArea[DB_Level] of DB_CasterPosition and do (Actions)
-







Loop - Actions
-








Set DB_Tree = (Picked destructible)
-








Unit - Order DB_TreeDestroyer to Harvest DB_Tree
-








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









If - Conditions
-










(Current order of DB_TreeDestroyer) Equal to (Order(harvest))
-
-









Then - Actions
-










Destructible - Kill DB_Tree
-
-









Else - Actions
-
-








Unit - Order DB_TreeDestroyer to Stop
-
-
-






-------- Fire Stage Dummy --------
-






Unit - Create 1 DB_DemonicDummyType for DB_BallOwner at DB_CasterPosition facing Default building facing degrees
-






Set DB_DemonicDummy = (Last created unit)
-






-------- Don't change this --------
-






Unit - Add a 5.00 second Generic expiration timer to DB_DemonicDummy
-






Unit - Add DB_DemonicDummyAbility to DB_DemonicDummy
-






Unit - Set level of DB_DemonicDummyAbility for DB_DemonicDummy to DB_Level
-






Unit - Order DB_DemonicDummy to Special Doom Guard - Rain Of Fire DB_CasterPosition
-






-------- * --------
-






-------- Heal Stage Dummy --------
-






Unit - Create 1 DB_DemonicDummyType for DB_BallOwner at DB_CasterPosition facing Default building facing degrees
-






Set DB_DemonicDummy2 = (Last created unit)
-






-------- Don't change this --------
-






Unit - Add a 5.00 second Generic expiration timer to DB_DemonicDummy2
-






Unit - Add DB_DemonicDummyAbility2 to DB_DemonicDummy2
-






Unit - Set level of DB_DemonicDummyAbility2 for DB_DemonicDummy2 to DB_Level
-






Unit - Order DB_DemonicDummy2 to Night Elf Keeper Of The Grove - Tranquility
-






Custom script: set bj_wantDestroyGroup = true
-






Unit Group - Pick every unit in (Units within DB_BallArea[DB_Level] of DB_CasterPosition) and do (Actions)
-







Loop - Actions
-








Set DB_DamageBlastUnits = (Picked unit)
-








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









If - Conditions
-










(DB_DamageBlastUnits is A structure) Not equal to True
-










(DB_DamageBlastUnits is Magic Immune) Not equal to True
-










(DB_DamageBlastUnits is Mechanical) Not equal to True
-










(DB_DamageBlastUnits is alive) Equal to True
-










(DB_DamageBlastUnits belongs to an enemy of DB_BallOwner) Equal to True
-
-









Then - Actions
-










Unit - Cause DB_Caster to damage DB_DamageBlastUnits, dealing DB_BallAreaDamage[DB_Level] damage of attack type DB_AttackType and damage type DB_DamageType
-










Custom script: call DestroyEffect(AddSpecialEffectTarget(udg_DB_AreaDamageEffect,udg_DB_DamageBlastUnits,udg_DB_AreaDamageEffectAttach))
-
-









Else - Actions
-
-
-
-






Unit - Kill DB_BallDummy
-






Unit Group - Remove DB_BallDummy from DB_BallGroup
-






Custom script: call FlushChildHashtable(udg_DB_Hash,udg_DB_ID)
-






Set DB_ActiveInstances = (DB_ActiveInstances - 1)
-






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







If - Conditions
-








DB_ActiveInstances Equal to 0
-
-







Then - Actions
-








Trigger - Turn off (This trigger)
-
-







Else - Actions
-
-






Custom script: call RemoveLocation(udg_DB_CasterPosition)
-






Custom script: call RemoveLocation(udg_DB_BallPosition)
-
-
-
-
-
-








