Does it leak?

Devrak

New Member
Reaction score
17
Sorry for the messy trigger, but it should be leakless? Right? :eek:


Trigger:
  • BlightGrass Damage
    • Events
      • Time - Every 0.25 seconds of game time
    • Conditions
    • Actions
      • -------- XXX - Units - XXX --------
      • Set UnitGroup = (Units in (Playable map area) matching ((((Matching unit) is Magic Immune) Not equal to True) and ((((Matching unit) is A Hero) Not equal to True) and ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is Magic Immune) Not equal to T
      • Unit Group - Pick every unit in UnitGroup and do (Actions)
        • Loop - Actions
          • Set BlightGrassPickedUnit[1] = (Picked unit)
          • Set BlightGrassLastHitterPoint[(Custom value of (Picked unit))] = (Position of BlightGrassLastHitter[(Custom value of (Picked unit))])
          • Set BlightGrassHitUnitPoint[(Custom value of (Picked unit))] = (Position of BlightGrassPickedUnit[1])
          • Set BlightGrassUnitTerrainPoint = (Position of BlightGrassPickedUnit[1])
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • And - All (Conditions) are true
                • Conditions
                  • (Terrain type at BlightGrassUnitTerrainPoint) Equal to Village Fall - Thick Grass
                  • ((Picked unit) is Undead) Equal to True
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • BlightGrassLastHitter[(Custom value of (Picked unit))] Equal to No unit
                      • (Distance between BlightGrassLastHitterPoint[(Custom value of (Picked unit))] and BlightGrassHitUnitPoint[(Custom value of (Picked unit))]) Greater than 1000.00
                • Then - Actions
                  • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - 15.00)
                • Else - Actions
                  • Unit - Cause BlightGrassLastHitter[(Custom value of (Picked unit))] to damage (Picked unit), dealing 15.00 damage of attack type Chaos and damage type Normal
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • And - All (Conditions) are true
                    • Conditions
                      • (Terrain type at BlightGrassUnitTerrainPoint) Equal to Village Fall - Rough Dirt
                      • ((Picked unit) is Undead) Not equal to True
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Or - Any (Conditions) are true
                        • Conditions
                          • BlightGrassLastHitter[(Custom value of (Picked unit))] Equal to No unit
                          • (Distance between BlightGrassLastHitterPoint[(Custom value of (Picked unit))] and BlightGrassHitUnitPoint[(Custom value of (Picked unit))]) Greater than 1000.00
                    • Then - Actions
                      • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - 15.00)
                    • Else - Actions
                      • Unit - Cause BlightGrassLastHitter[(Custom value of (Picked unit))] to damage (Picked unit), dealing 15.00 damage of attack type Chaos and damage type Normal
                • Else - Actions
      • Custom script: call RemoveLocation(udg_BlightGrassUnitTerrainPoint)
      • Custom script: call RemoveLocation(udg_BlightGrassLastHitterPoint[GetUnitUserData(GetEnumUnit())])
      • Custom script: call RemoveLocation(udg_BlightGrassHitUnitPoint[GetUnitUserData(GetEnumUnit())])
      • -------- XXX - Heroes - XXX --------
      • Set BlightGrassDamageGroup = (Units in (Entire map) matching ((((Matching unit) is A Hero) Equal to True) and (((Matching unit) is dead) Not equal to True)))
      • Unit Group - Pick every unit in BlightGrassDamageGroup and do (Actions)
        • Loop - Actions
          • Set BlightGrassPickedUnit[2] = (Picked unit)
          • Set BlightGrassLastHitterPoint[(Custom value of (Picked unit))] = (Position of BlightGrassLastHitter[(Custom value of (Picked unit))])
          • Set BlightGrassHeroTerrainPoint = (Position of BlightGrassPickedUnit[2])
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • And - All (Conditions) are true
                • Conditions
                  • (Terrain type at BlightGrassHeroTerrainPoint) Equal to Village Fall - Thick Grass
                  • ((Picked unit) is Undead) Equal to True
            • Then - Actions
              • Set HeroGroundDamageInteger[(Player number of (Owner of (Picked unit)))] = (HeroGroundDamageInteger[(Player number of (Owner of (Picked unit)))] + 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • BlightGrassLastHitter[(Custom value of (Picked unit))] Equal to No unit
                      • (Distance between BlightGrassLastHitterPoint[(Custom value of (Picked unit))] and BlightGrassHeroTerrainPoint) Greater than 1000.00
                      • HeroGroundDamageInteger[(Player number of (Owner of (Picked unit)))] Less than or equal to 0
                • Then - Actions
                  • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - (BlightResistance[(Player number of (Owner of (Picked unit)))] x (15.00 + ((Real((Hero level of (Picked unit)))) / 2.00))))
                • Else - Actions
                  • Unit - Cause BlightGrassLastHitter[(Custom value of (Picked unit))] to damage (Picked unit), dealing (BlightResistance[(Player number of (Owner of (Picked unit)))] x (15.00 + ((Real((Hero level of (Picked unit)))) / 2.00))) damage of attack type Chaos and damage type Normal
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • And - All (Conditions) are true
                    • Conditions
                      • (Terrain type at BlightGrassUnitTerrainPoint) Equal to Village Fall - Rough Dirt
                      • ((Picked unit) is Undead) Not equal to True
                • Then - Actions
                  • Set HeroGroundDamageInteger[(Player number of (Owner of (Picked unit)))] = (HeroGroundDamageInteger[(Player number of (Owner of (Picked unit)))] + 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • Or - Any (Conditions) are true
                        • Conditions
                          • BlightGrassLastHitter[(Custom value of (Picked unit))] Equal to No unit
                          • (Distance between BlightGrassLastHitterPoint[(Custom value of (Picked unit))] and BlightGrassHeroTerrainPoint) Greater than 1000.00
                          • HeroGroundDamageInteger[(Player number of (Owner of (Picked unit)))] Less than or equal to 0
                    • Then - Actions
                      • Unit - Set life of (Picked unit) to ((Life of (Picked unit)) - (BlightResistance[(Player number of (Owner of (Picked unit)))] x (15.00 + ((Real((Hero level of (Picked unit)))) / 2.00))))
                    • Else - Actions
                      • Unit - Cause BlightGrassLastHitter[(Custom value of (Picked unit))] to damage (Picked unit), dealing (BlightResistance[(Player number of (Owner of (Picked unit)))] x (20.00 + ((Real((Hero level of (Picked unit)))) / 2.00))) damage of attack type Chaos and damage type Normal
                • Else - Actions
      • Custom script: call RemoveLocation(udg_BlightGrassHeroTerrainPoint)
      • Custom script: call RemoveLocation(udg_BlightGrassLastHitterPoint[GetUnitUserData(GetEnumUnit())])
      • Custom script: call RemoveLocation(udg_BlightGrassHitUnitPoint[GetUnitUserData(GetEnumUnit())])
      • Custom script: set bj_wantDestroyGroup = true
      • Custom script: call DestroyGroup(udg_UnitGroup)
      • Custom script: call DestroyGroup(udg_BlightGrassDamageGroup)
      • Wait 1.00 seconds
      • 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
              • HeroGroundDamageInteger[(Integer A)] Greater than 0
            • Then - Actions
              • Set HeroGroundDamageInteger[(Integer A)] = (HeroGroundDamageInteger[(Integer A)] - 1)
            • Else - Actions
 

Rainther

I guess I should write something of value here...
Reaction score
61
There are tools to measure that. :p

My Jass eyes can't read through that really, sorry. :D
 

Sgqvur

FullOfUltimateTruthsAndEt ernalPrinciples, i.e shi
Reaction score
62
My Jass eyes can't read through that really, sorry.
hehe can you buy me a pair for me?^^
Devrak if you care so much about leaks and such stuff why don't you write your code in straight jass instead?
 

Devrak

New Member
Reaction score
17
hehe can you buy me a pair for me?^^
Devrak if you care so much about leaks and such stuff why don't you write your code in straight jass instead?

Because I am moving to SC2 soon enough, and they don't have Jass, so I can't bother to learn something that I wont use soon enough anyway. :D
 

HydraRancher

Truth begins in lies
Reaction score
197
Major Leaks.

First Unit-Group loop (UnitGroup)

BlightGrassLastHitterPoint
BlightGrassHitUnitPoint
BlightGrassUnitTerrainPoint

Should be cleared INSIDE the loop not outside

Second Unit-Group loop (BlightGrassDamageGroup)

BlightGrassHitUnitPoint
BlightGrassUnitTerrainPoint

Should be cleared INSIDE the loop not outside
 

Sgqvur

FullOfUltimateTruthsAndEt ernalPrinciples, i.e shi
Reaction score
62
Because I am moving to SC2 soon enough, and they don't have Jass, so I can't bother to learn something that I wont soon enough anyway. :D
^^ good point.... gl with Galaxy then : )
 

Devrak

New Member
Reaction score
17
Major Leaks.

First Unit-Group loop (UnitGroup)

BlightGrassLastHitterPoint
BlightGrassHitUnitPoint
BlightGrassUnitTerrainPoint

Should be cleared INSIDE the loop not outside

Second Unit-Group loop (BlightGrassDamageGroup)

BlightGrassHitUnitPoint
BlightGrassUnitTerrainPoint

Should be cleared INSIDE the loop not outside

Hmm, they are already declared in the system? :S I'm not sure I understand what you mean, would you mind explaining a bit further?

^^ good point.... gl with Galaxy then : )

Thanks, I will not make the mistake and start with GUI this time. :) Galaxy has automatic leak removal and everything. /drool
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top