• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Spell system probably leaking

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