• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • Create a faction for Warcraft 3 and enter Hive's 19th Techtree Contest: Co-Op Commanders! Click here to enter!
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 21st Texturing Contest: Upgrade is now concluded, time to vote for your favourite set of icons! Click here to vote!

Spell system probably leaking

Status
Not open for further replies.
Level 12
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!


  • 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)
 
Status
Not open for further replies.
Top