Triggers - Memory Leaks and Custom Scripts

Tinki3

Special Member
Reaction score
418
>How would I do this?

Simple. Just use a couple point variables:
Code:
Revive Creeps
    Events
        Unit - A unit Dies
    Conditions
        ((Owner of (Triggering unit)) Equal to Neutral Hostile) and (((Triggering unit) is Summoned) Not equal to True)
    Actions
        Wait 60.00 seconds
        Set Temp_Point[1] = (Center of (Entire map))
        Set Temp_Point[2] = (Temp_Point[1] offset by (Creep_X[(Custom value of (Triggering unit))], Creep_Y[(Custom value of (Triggering unit))]))
        Unit - Create 1 (Unit-type of (Triggering unit)) for (Owner of (Triggering unit)) at Temp_Point[2] facing (Random angle) degrees
        Unit - Set the custom value of (Last created unit) to (Custom value of (Triggering unit))
        For each (Integer A) from 1 to 2, do (Custom script:   call RemoveLocation(udg_Temp_Point[GetForLoopIndexA()]))
 
A

AK-47Pirates

Guest
Hmm, it gets disabled, and won;t let me enable, it says error with script. Here's what I have, and it matched Tinki3's thing:

Code:
Reving Creeps 1 By 1
    Events
        Unit - A unit Dies
    Conditions
        ((Owner of (Triggering unit)) Equal to Neutral Hostile) and (((Triggering unit) is Summoned) Not equal to True)
    Actions
        Wait 60.00 game-time seconds
        Set Temp_Point1 = (Center of (Entire map))
        Set Temp_Point2 = (Temp_Point1 offset by (Creep_X[(Custom value of (Triggering unit))], Creep_X[(Custom value of (Triggering unit))]))
        Unit - Create 1 (Unit-type of (Triggering unit)) for (Owner of (Triggering unit)) at Temp_Point2 facing (Random angle) degrees
        Unit - Set the custom value of (Last created unit) to (Custom value of (Triggering unit))
        For each (Integer A) from 1 to 2, do (Custom script:   call RemoveLocation(udg_Temp_Point[GetForLoopIndexA()])))

It's something wrong with the custom script it says. Im just copying and pasting whats there.

I think I know. Your variables are "Temp_Point[1] and Temp_Point[2]... How do you do the [1] and [2], it wouldn't let me put the brackets in when naming variable. Mine are just Temp_Point1 and Temp_Point2 Thats probly it, so it doesn't recognize my variables in the custom script.
 

dragonhord

Knowledge is true opinion. - Plato
Reaction score
82
Set Temp_Point1 = (Center of (Entire map))
Set Temp_Point2,
These variables here arent arrays, while Tinki's are as noted with the Brackets around the numbers, make a Temp_Point variable and make it an array 1 and 2 and it will work just fine.
 
A

AK-47Pirates

Guest
So they are or aren't arrays? And if so, is that Custom Value 1 and 2?
 
A

AK-47Pirates

Guest
Yay it works now thanks so much. Now hundreds of leaks will be saved!
 
L

Lost

Guest
he lost some people, he never found me actually i didnt understand anything :|
 
M

mrPhobos

Guest
So i have used the we for some time but learned of memory leaks today since i got hit by them. I wonder if there is some pattern in when you will have a leak or if you just gotta know that if there is a unitGroup specialEffect.... u will have a Leak.
And second i wonder if you relly have to write that custom code bit to remove the temp variables if you are using global variables (witch is the only ones i know about). I mean, if you just reset the value and not remove the variable from the ram memory then u might as well just leave the value to be overwritten next time the trigger runs.
 

SaintMorose

New Member
Reaction score
26
Code:
Creep Revival System Initialization
    Events
        Map initialization
    Conditions
    Actions
        Unit Group - Pick every unit in (Units in (Playable map area) owned by Neutral Hostile) and do (Actions)
            Loop - Actions
                Set Integer = (Integer + 1)
                Unit - Set the custom value of (Picked unit) to Integer
                Custom script:   set udg_Creep_X[udg_Integer] = GetUnitX(GetEnumUnit())
                Custom script:   set udg_Creep_Y[udg_Integer] = GetUnitY(GetEnumUnit())

Isnt this group going to leak?
 

Naminator

Coming Back To Life
Reaction score
76
Isnt this group going to leak?

This one not.

Code:
Revive Creeps
    Events
        Unit - A unit Dies
    Conditions
        ((Owner of (Triggering unit)) Equal to Neutral Hostile) and (((Triggering unit) is Summoned) Not equal to True)
    Actions
        Wait 60.00 seconds
        Set Temp_Point[1] = (Center of (Entire map))
        Set Temp_Point[2] = (Temp_Point[1] offset by (Creep_X[(Custom value of (Triggering unit))], Creep_Y[(Custom value of (Triggering unit))]))
        Unit - Create 1 (Unit-type of (Triggering unit)) for (Owner of (Triggering unit)) at Temp_Point[2] facing (Random angle) degrees
        Unit - Set the custom value of (Last created unit) to (Custom value of (Triggering unit))
        For each (Integer A) from 1 to 2, do (Custom script:   call RemoveLocation(udg_Temp_Point[GetForLoopIndexA()]))
 
B

bigblackhole

Guest
I have really HUGE trigger in my map that only needs to run a couple of times at the beginning of the game. Altogether there must be at least a couple hundred memory leaks in the trigger, so it would take me several hours to go through and correct them all. If I simply destroy the trigger after it's used, will that remove the leaks, or do I have to go through and correct them all?
 

emjlr3

Change can be a good thing
Reaction score
395
destructables do not
and i did not know item groups existed rofl
 

R@i_no_Wyrm

New Member
Reaction score
43
for example, I pick every item in playable map arena... will it leak?

>and for region leaks, if I used playable map arena will it leak?
Or pick every unit in range of 500 at x. Does this count as region? TY
 

emjlr3

Change can be a good thing
Reaction score
395
refering to a global region does not leak, creating regions does

there is no such thing as an item group, only items, picking every item does not create a group, it jusr runs a function for all items in the area picked

pick every unit will be a group
 

R@i_no_Wyrm

New Member
Reaction score
43
oh, you mean region leaks will only appear if I create a region, not pick units in range. I see... now what's making my game still lag...? I've checked it several times after reading the leak tutorial but I can't find anymore leaks... anyone can tell me what's happening?

>I have 1Mb of ram and run the game in low priority but it still lags lightly.
>I place only +- 3000 doodads...
>Map size = medium...

Anyone knows?:banghead:
 

emjlr3

Change can be a good thing
Reaction score
395
picking untis, again, is a group leak

there should be a tutorial around here with regards to keeping maps from lagging, try a search
 

FireBladesX

Eating my wings!
Reaction score
123
There is a very good chance this is the sexiest thread I have ever read.

Just wondering, since we're on the topic of lag reduction, if you have a GUI-map entirely, and you just blatantly convert to custom text, will it improve the lag at all?
 
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