Feel the Leakage!

SouLEDGE

Damn you advanced calculus
Reaction score
75
Hmm, dunno why this leaks...
Trigger:
  • Holy Wave
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Holy Wave (Dummy Spell)
    • Actions
      • Set Temp_Point = (Position of (Casting unit))
      • Set Temp_Int = (Level of Holy Wave (Dummy Spell) for (Target unit of ability being cast))
      • Set Temp_Group = (Units within (((Real(Temp_Int)) + 2.00) x 100.00) of Temp_Point)
      • Custom script: call RemoveLocation(udg_Temp_Point)
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • Unit - Create 1 Dummy1 for (Triggering player) at (Position of (Picked unit)) facing Default building facing degrees
          • Unit - Add Holy Wave target to (Last created unit)
          • Unit - Set level of Holy Wave target for (Last created unit) to Temp_Int
          • Unit - Order (Last created unit) to Neutral - Firebolt (Picked unit)
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
      • Custom script: call DestroyGroup(udg_Temp_Group)
 

Laiev

Hey Listen!!
Reaction score
188
your:
Trigger:
  • Holy Wave
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Holy Wave (Dummy Spell)
    • Actions
      • Set Temp_Point = (Position of (Casting unit))
      • Set Temp_Int = (Level of Holy Wave (Dummy Spell) for (Target unit of ability being cast))
      • Set Temp_Group = (Units within (((Real(Temp_Int)) + 2.00) x 100.00) of Temp_Point)
      • Custom script: call RemoveLocation(udg_Temp_Point)
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • Unit - Create 1 Dummy1 for (Triggering player) at (Position of (Picked unit)) facing Default building facing degrees
          • Unit - Add Holy Wave target to (Last created unit)
          • Unit - Set level of Holy Wave target for (Last created unit) to Temp_Int
          • Unit - Order (Last created unit) to Neutral - Firebolt (Picked unit)
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
      • Custom script: call DestroyGroup(udg_Temp_Group)


mine:
Trigger:
  • Holy Wave
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Holy Wave (Dummy Spell)
    • Actions
      • Set Temp_Point = (Position of (Casting unit))
      • Set Temp_Int = (Level of Holy Wave (Dummy Spell) for (Target unit of ability being cast))
      • Set Temp_Group = (Units within (((Real(Temp_Int)) + 2.00) x 100.00) of Temp_Point)
      • Custom script: call RemoveLocation(udg_Temp_Point)
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • Set Temp_Point = (Position of (Picked unit))
          • Unit - Create 1 Dummy1 for (Triggering player) at Temp_Point facing Default building facing degrees
          • Unit - Add Holy Wave target to (Last created unit)
          • Unit - Set level of Holy Wave target for (Last created unit) to Temp_Int
          • Unit - Order (Last created unit) to Neutral - Firebolt (Picked unit)
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation(udg_Temp_Point)
      • Custom script: call DestroyGroup(udg_Temp_Group)
 

LearningCode

New Member
Reaction score
24
null Temp_Group?
ClearGroup before Destroying?

Null Location?

I duno if what applies to locals will apply to globals, too xD

Custom Script: Local location Temp_Point = GetUnitLoc(GetTriggerUnit())

Remove the globals and use locals, mate xD
 

SouLEDGE

Damn you advanced calculus
Reaction score
75
Remove the globals and use locals, mate xD

Soz LearningCode, I would if I could but can't:p
and Laiev:
Trigger:
  • Holy Wave
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Holy Wave (Dummy Spell)
    • Actions
      • Set Temp_Point = (Position of (Casting unit))
      • Set Temp_Int = (Level of Holy Wave (Dummy Spell) for (Target unit of ability being cast))
      • Set Temp_Group = (Units within (((Real(Temp_Int)) x 50.00) + 450.00) of Temp_Point)
      • Custom script: call RemoveLocation(udg_Temp_Point)
      • Unit Group - Pick every unit in Temp_Group and do (Actions)
        • Loop - Actions
          • Set Temp_Point = (Position of (Picked unit))
          • Unit - Create 1 Dummy1 for (Triggering player) at (Position of (Picked unit)) facing Default building facing degrees
          • Unit - Add Holy Wave target to (Last created unit)
          • Unit - Set level of Holy Wave target for (Last created unit) to Temp_Int
          • Unit - Order (Last created unit) to Neutral - Firebolt (Picked unit)
          • Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
          • Custom script: call RemoveLocation(udg_Temp_Point)
      • Custom script: call DestroyGroup(udg_Temp_Group)

Still seems to leak:confused:
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
I am using Code Tags to colourize the part which is wrong.

If you set a point variable why dont you use it?

Soz LearningCode, I would if I could but can't:p
and Laiev:
Code:
Holy Wave
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Holy Wave (Dummy Spell)
    Actions
        Set Temp_Point = (Position of (Casting unit))
        Set Temp_Int = (Level of Holy Wave (Dummy Spell) for (Target unit of ability being cast))
        Set Temp_Group = (Units within (((Real(Temp_Int)) x 50.00) + 450.00) of Temp_Point)
        Custom script:   call RemoveLocation(udg_Temp_Point)
        Unit Group - Pick every unit in Temp_Group and do (Actions)
            Loop - Actions
                Set Temp_Point = (Position of (Picked unit))
                Unit - Create 1 Dummy1 for (Triggering player) at [COLOR="Red"](Position of (Picked unit))[/COLOR] facing Default building facing degrees
                Unit - Add Holy Wave target  to (Last created unit)
                Unit - Set level of Holy Wave target  for (Last created unit) to Temp_Int
                Unit - Order (Last created unit) to Neutral - Firebolt (Picked unit)
                Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
                Custom script:   call RemoveLocation(udg_Temp_Point)
        Custom script:   call DestroyGroup(udg_Temp_Group)
Still seems to leak:confused:
 

Rushhour

New Member
Reaction score
46
Do you mean "leak" or "laag" ? One forgotten point leak wouldn't result in laag at once, I think the problem then would be the creation of many dummy units and spell(effects) in a close time.
If possible try to use one dummy unit for instant spells that is only moved to the correct positions and casts instantly.
 

SouLEDGE

Damn you advanced calculus
Reaction score
75
Well, even with an adequate CD of about 4-5secs it still seems to leak, posting map quick:
 

Attachments

  • Holy Wave spell.w3x
    25 KB · Views: 165

Nenad

~Choco Coronet~ Omnomnom
Reaction score
137
My computer froze using this too many times...

Not too sure why, did you disable the corpses of monsters etc. decay and stuff?
 

SouLEDGE

Damn you advanced calculus
Reaction score
75
well, I disabled the zombies decay, but other than that nothing else... soz for the freezing:p, but I just don't get whats wrong:banghead::banghead::banghead:
 

Weep

Godspeed to the sound of the pounding
Reaction score
400
Problem 1: Dummy1 should have its Combat - Death Type set to Can't raise, Does not decay. Otherwise, the expired dummies will still be present in the map as invisible corpses for the entirety of the unit decay time (default is about a minute and a half).

Problem 2:
Trigger:
  • Set Temp_Group = (Units within (((Real(Temp_Int)) x 50.00) + 450.00) of Temp_Point)

This will pick every unit within range, including dead units and dead dummies, and create a whole new dummy caster for each one. This, combined with the above decay issue, is what is giving you the exponential lag.

Eg. Cast #1: 30 units in range, creates 30 dummies. Cast #2: 30 old dead dummies and 25 units in range, 55 new dummies created. Cast #3: 85 old dead dummies in range, 85 new dummies created...and so on...

This is a bit unusual, because normally, units with Locust are ignored by "units in range"...but apparently they are counted when they're dead. (I have tested and confirmed this in your map.)

You should do Set Temp_Group = (Units within (((Real(Temp_Int)) x 50.00) + 450.00) of Temp_Point matching (((Matching unit) is dead) Equal to False)).
 

Murre

New Member
Reaction score
14
Not that this will fix it, but it's better...
use Triggering Unit instead of Casting Unit
and it says "Create 1 Dummy1 for Triggering Player"
Shouldn't you pick "owner of unit -> triggering unit" instead? :p
 

SouLEDGE

Damn you advanced calculus
Reaction score
75
Ahaha, thank you very much weep, that seems to have sorted it out:p
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top