Help

Ulla_t

Member
Reaction score
1
I know this is simple, but it doesent work at all.

Trigger:
  • SlimesKillSpawn
    • Events
    • Destructible - A destructible within SlimeRegion <gen> dies
    • Conditions
    • (Destructible-type of (Dying destructible)) Equal to Demon Egg
    • (Destructible-type of (Dying destructible)) Equal to Demon Egg
    • Actions
    • Unit - Create 1 Demon (Level 1) for Neutral Hostile at (Position of (Dying destructible)) facing (Center of SlimeRegion <gen>)
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
The event does only work for the 64 first created destructibles in the area. This part was sloppy scripted by blizzard.
You would have to manually pick all destructibles in the area and add the event (<Picked Destructible> dies) to your trigger for each destructible picked.

You also have 2 conditions which look alike. If those are 2 different destructible types with equal names that would also be a problem since those two conditions are linked with an "and" statement and a destructible could never be of the same type as 2 different destructibles.
 

Ulla_t

Member
Reaction score
1
Well the problem is that i use a refresh trigger, everytime a team fails killing the 'slime Eggs'(Destrictible) they will refresh (Rebuild themself). So it will always be new Eggs, so i cant pick them manually.
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
When creating a new one add its death event to the trigger.
This will, however, leak event handles. But those arent the "biggest" memory leaks.
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
are you use JNGP? if you are i could write a quick library that would give you a custom script you could use to avoid that leak caused by adding hundreds of events to the same trigger

if you are this should work, create a new trigger, edit->convert to custom text, delete whats inside and paste this:

JASS:
library EventLeakStopper
    
    globals
        private constant integer SPAWN_ID = &#039;hfoo&#039;
        //This is the only thing you adjust, it is the supposed to be set to the raw data id of the unit spawned
        //replace the &#039;hfoo&#039; with &#039;[id of demon unit type]&#039;, inside the apostraphes
        //you can get the raw data id of a unit type by finding it in the object editor, then going to View/Show Raw Data, or something to that effect
    endglobals
    
    private function Actions takes nothing returns boolean
        call CreateUnit(PLAYER_NEUTRAL_AGGRESSIVE, SPAWN_ID, GetDestructableX(GetTriggerDestructable()), GetDestructableY(GetTriggerDestructable()), 0)
        call DestroyTrigger(GetTriggeringTrigger())
        return false
    endfunction
    
    public function AddEggEvent takes destructable d returns nothing
        local trigger t = CreateTrigger()
        call TriggerRegisterDeathEvent(t, d)
        call TriggerAddCondition(t, Filter(function Actions))
        t = null
    endfunction
    
endlibrary

then you can use the custom script: call AddEggEvent (udg_Destructable)
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
Reposting because i had to edit the submitted code, there was a logic error in it that would cause it to not work, if you were using it already replace it with what is there now

The library right there will actually stop leaks generated by the GUI trigger editor period, whereas every gui trigger will leak no matter what unfortunately

you call this on the eggs when they are created, set the egg to a variable then call the custom script on the variable
 

Ulla_t

Member
Reaction score
1
I'm really sorry, but i fixed it yesterday, by making the 'Eggs' Into units instead, thanks for the great replies anyway! :)
 
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