leaks ?

INCINERATE

New Member
Reaction score
12
have i cleared up all the leaks here

Trigger:
  • AuraNDeter
    • Events
      • Unit - A unit Dies
    • Conditions
    • Actions
      • For each (Integer A) from 1 to 12, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Owner of (Dying unit)) Equal to (Player((Integer A)))
            • Then - Actions
              • Set AS_MaxHP[(Integer A)] = (Integer((Max life of (Dying unit))))
              • Set AS_DyingUnitPos[(Integer A)] = (Position of (Dying unit))
              • Set AS_TmpGroup1[(Integer A)] = (Units within 800.00 of AS_DyingUnitPos[(Integer A)] matching (((Matching unit) belongs to an ally of (Owner of (Dying unit))) Equal to True))
              • Unit Group - Pick every unit in AS_TmpGroup1[(Integer A)] and do (Actions)
                • Loop - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Level of Aura of healing for (Picked unit)) Greater than or equal to 1
                    • Then - Actions
                      • Set AS_Hero[(Integer A)] = (Picked unit)
                      • Set AS_HeroPos[(Integer A)] = (Position of AS_Hero[(Integer A)])
                      • Set AS_AbilityLVL[(Integer A)] = (Level of healing for AS_Hero[(Integer A)])
                      • Set AS_TmpGroup2[(Integer A)] = (Units within 800.00 of AS_HeroPos[(Integer A)] matching (((Matching unit) has buff Aura of Necrohealing ) Equal to True))
                      • Set AS_UnitCount[(Integer A)] = (Number of units in AS_TmpGroup2[(Integer A)])
                      • Set AS_HpAdd[(Integer A)] = (AS_MaxHP[(Integer A)] / AS_UnitCount[(Integer A)])
                      • If (AS_AbilityLVL[(Integer A)] Equal to 1) then do (Set AS_HpAdd[(Integer A)] = (AS_HpAdd[(Integer A)] / 4)) else do (Do nothing)
                      • If (AS_AbilityLVL[(Integer A)] Equal to 2) then do (Set AS_HpAdd[(Integer A)] = (AS_HpAdd[(Integer A)] / 2)) else do (Do nothing)
                      • If (AS_AbilityLVL[(Integer A)] Equal to 3) then do (Set AS_HpAdd[(Integer A)] = (AS_HpAdd[(Integer A)] / (Integer(1.33)))) else do (Do nothing)
                      • If (AS_AbilityLVL[(Integer A)] Equal to 4) then do (Set AS_HpAdd[(Integer A)] = (AS_HpAdd[(Integer A)] / 1)) else do (Do nothing)
                      • Special Effect - Create a special effect at AS_DyingUnitPos[(Integer A)] using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
                      • Special Effect - Destroy (Last created special effect)
                      • Unit Group - Pick every unit in AS_TmpGroup2[(Integer A)] and do (Actions)
                        • Loop - Actions
                          • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + (Real(AS_HpAdd[(Integer A)])))
                          • Set AS_PickedUnit[(Integer A)] = (Position of (Picked unit))
                          • Special Effect - Create a special effect at AS_PickedUnit[(Integer A)] using Abilities\Spells\Undead\DeathandDecay\DeathandDecayDamage.mdl
                          • Special Effect - Destroy (Last created special effect)
                          • Custom script: call RemoveLocation(udg_AS_PickedUnit[bj_forLoopAIndex])
                      • Custom script: call DestroyGroup(udg_AS_TmpGroup2[bj_forLoopAIndex])
                    • Else - Actions
              • Custom script: call RemoveLocation(udg_AS_HeroPos[bj_forLoopAIndex])
              • Custom script: call RemoveLocation(udg_AS_DyingUnitPos[bj_forLoopAIndex])
              • Custom script: call DestroyGroup(udg_AS_TmpGroup1[bj_forLoopAIndex])
            • Else - Actions
 

RangerX

I am justice!
Reaction score
69
beside i don't see any leaks .. why is the reason in useing "Integer(1.33)" ? that allways will be 1 :|
 

tooltiperror

Super Moderator
Reaction score
231
No Leaks, other than the GUI Leaks. But you can`t solve those, I don`t think.
 

INCINERATE

New Member
Reaction score
12
beside i don't see any leaks .. why is the reason in useing "Integer(1.33)" ? that allways will be 1 :|



so that it levels,

it goes from 4, 2 , 1.33 , 1 = 4 levels..

guys thanks for the clarifying , + rep to all ..

@tooltiperror = unpreventable gui leaks such as ?
 

tooltiperror

Super Moderator
Reaction score
231
I mean that using Globals leak, and so the only way to remove a unit leak would to be making it local and then destroying it.

JASS:

 function afunction takes nothing returns nothing
     local unit triggerer = GetTriggerUnit()
     set triggerer = null
 endfunction
 

Laiev

Hey Listen!!
Reaction score
188
you don't need to null a global
the reason is because global always will be replaced and always will be there
local is one variable per unit and based on ID of that unit, no matter what you do, the local will stay in the memory util you clear it != global
 

tooltiperror

Super Moderator
Reaction score
231
Alright, my bad, you`re right. But I believe that this trigger isn`t optimized anyway, because of the BJ's.
 

Laiev

Hey Listen!!
Reaction score
188
i'm with you :p

i don't like to see too long triggers in gui D: idk, make me feel like the trigger WILL bug and/or lag

but is just my opinion
 

INCINERATE

New Member
Reaction score
12
i seeee, okay thanks guys, so i have cleaned as much leaks as possible,

and yea i agree 100% , this is laggy terrible code, even if it doesnt leak i feel lag with it , ( contains 2 other triggers for this same spell, this is only 1 part of it)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top