- 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)
-
Loop - Actions
- -------- 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
-
If - Conditions
- Unit - Order DB_TreeDestroyer to Stop
-
Loop - Actions
- -------- 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
-
If - Conditions
-
Loop - 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
-
If - Conditions
- Custom script: call RemoveLocation(udg_DB_CasterPosition)
- Custom script: call RemoveLocation(udg_DB_BallPosition)
-
If - Conditions
-
Loop - Actions
-
Unit Group - Pick every unit in DB_BallGroup and do (Actions)
-
Events