Im pretty sure this leaks, need fixing

Status
Not open for further replies.
Level 3
Joined
Oct 6, 2007
Messages
43
So, the point of this spell is, that the hero burrows underground, then it spawns a rally point modeled unit for you to "symbol" where the burrower would be underground. Then it saves a point ever 0.5 seconds and when burrower surfaces, in the locations an impale spike effect appears and does damage.
But the fixing here is that im pretty sure this leaks and i want them fixed.




  • Burrowspikes
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Burrowspikes
    • Actions
      • Set BurrowCurrentSpikesdp = 0
      • Set BurrowSpikeCaster = (Casting unit)
      • Set BurrowSpikesAmount = ((Level of Burrowspikes for BurrowSpikeCaster) x 8)
      • Set BurrowedLocation = (Position of (Casting unit))
      • Set BurrowSpikesDMG = ((Level of Burrowspikes for BurrowSpikeCaster) x 80)
      • Unit - Pause BurrowSpikeCaster
      • Animation - Play BurrowSpikeCaster's Morph animation
      • Wait 0.95 seconds
      • Unit - Hide BurrowSpikeCaster
      • Unit - Create 1 Burrower location for (Owner of BurrowSpikeCaster) at BurrowedLocation facing Default building facing degrees
      • Set BurrowSpikeMarker = (Last created unit)
      • Selection - Select BurrowSpikeMarker for (Owner of BurrowSpikeCaster)
      • Trigger - Turn on Burrowspike Deploy spikes <gen>
      • Wait ((Real(BurrowSpikesAmount)) / 2.00) seconds
      • Wait 0.20 seconds
      • Trigger - Turn off Burrowspike Deploy spikes <gen>
      • Unit - Move BurrowSpikeCaster instantly to (Position of BurrowSpikeMarker)
      • Unit - Remove BurrowSpikeMarker from the game
      • Unit - Unhide BurrowSpikeCaster
      • Animation - Play BurrowSpikeCaster's Stand animation
      • Unit - Make BurrowSpikeCaster Vulnerable
      • Wait 0.95 seconds
      • Unit - Unpause BurrowSpikeCaster
      • Trigger - Run Activatespikes <gen> (ignoring conditions)
      • Set BurrowSpikeCaster = No unit
      • Set BurrowSpikeMarker = No unit
      • Custom script: call RemoveLocation(udg_BurrowedLocation)


  • Burrowspike Deploy spikes
    • Events
      • Time - Every 0.50 seconds of game time
    • Conditions
      • BurrowCurrentSpikesdp Less than (BurrowSpikesAmount - 1)
    • Actions
      • Set BurrowSpikelocations[BurrowCurrentSpikesdp] = (Position of BurrowSpikeMarker)
      • Set BurrowCurrentSpikesdp = (BurrowCurrentSpikesdp + 1)


  • Activatespikes
    • Events
    • Conditions
    • Actions
      • For each (Integer A) from 0 to BurrowSpikesAmount, do (Actions)
        • Loop - Actions
          • Special Effect - Create a special effect at BurrowSpikelocations[(Integer A)] using Abilities\Spells\Undead\Impale\ImpaleHitTarget.mdl
          • Special Effect - Destroy (Last created special effect)
          • Unit Group - Pick every unit in (Units within 160.00 of BurrowSpikelocations[(Integer A)]) and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Picked unit) belongs to an enemy of (Owner of BurrowSpikeCaster)) Equal to True
                • Then - Actions
                  • Unit - Cause BurrowSpikeCaster to damage (Picked unit), dealing (Real(BurrowSpikesDMG)) damage of attack type Spells and damage type Normal
                • Else - Actions
 
  • Burrowspike Deploy spikes
  • Events
    • Time - Every 0.50 seconds of game time
  • Conditions
    • BurrowCurrentSpikesdp Less than (BurrowSpikesAmount - 1)
  • Actions
    • Set BurrowSpikelocations[BurrowCurrentSpikesdp] = (Position of BurrowSpikeMarker)
    • Set BurrowCurrentSpikesdp = (BurrowCurrentSpikesdp + 1)
    • Custom script: call RemoveLocation (udg_BurrowSpikelocations[udg_BurrowCurrentSpikedsp])
The non-leaking second trigger.
  • Set BurrowedLocation = (Position of (Casting unit))
  • Custom script: call RemoveLocation (udg_BurrowedLocation)
The leakless 1st trigger.
  • Activatespikes
  • Events
  • Conditions
  • Actions
    • For each (Integer A) from 0 to BurrowSpikesAmount, do (Actions)
      • Loop - Actions
        • Special Effect - Create a special effect at BurrowSpikelocations[(Integer A)] using Abilities\Spells\Undead\Impale\ImpaleHitTarget.mdl
        • Special Effect - Destroy (Last created special effect)
        • Set BurrowSpikelocations[IntegerA] = X
        • Set Temp_Group = (Units within 160.00 of BurrowSpikelocations[(Integer A)]
        • Unit Group - Pick every unit in (Temp_Group) and do (Actions)
          • Loop - Actions
            • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              • If - Conditions
                • ((Picked unit) belongs to an enemy of (Owner of BurrowSpikeCaster)) Equal to True
            • Then - Actions
              • Unit - Cause BurrowSpikeCaster to damage (Picked unit), dealing (Real(BurrowSpikesDMG)) damage of attack type Spells and damage type Normal
            • Else - Actions
        • Custom script: call DestroyGroup (udg_Temp_Group)
        • Custom script: call RemoveLocation (udg_BurrowSpikelocation)
The third leakless trigger.
 
Status
Not open for further replies.
Top