- 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)
-
-
-
-
-
-