Trigger not triggering

Charapanga

New Member
Reaction score
46
JASS:
scope Victory initializer Init

private function Conditions takes nothing returns boolean
    return GetUnitTypeId(GetEnteringUnit()) == HeroUnitId
endfunction

private function IsUnitHero takes nothing returns boolean
    return GetUnitTypeId(GetFilterUnit()) == HeroUnitId
endfunction

private function FGg takes nothing returns nothing
    local unit u = GetEnumUnit()
    local location l = GetRandomLocInRect(gg_rct_Start)
    call SetUnitPositionLoc(u, l)
    call RemoveLocation(l)
    set l = null
    set u = null
endfunction

private function Actions takes nothing returns nothing
    local unit u = GetEnteringUnit()
    local player p = GetOwningPlayer(u)
    local integer i = 0
    local location l
    local group g = CreateGroup()
    local rect array Recta
    set Recta[0] = gg_rct_Creeps0
    set Recta[1] = gg_rct_Creeps1
    set Recta[2] = gg_rct_Creeps2
    set Recta[3] = gg_rct_Creeps2
    set Recta[4] = gg_rct_Creeps3
    set Recta[5] = gg_rct_Creeps4
    set Recta[6] = gg_rct_Creeps5
    set Recta[7] = gg_rct_Creeps6
    set Recta[8] = gg_rct_Creeps7
    set Recta[9] = gg_rct_Creeps8
    set Recta[10] = gg_rct_Creeps9
    set Recta[11] = gg_rct_Creeps10
    set Recta[12] = gg_rct_Creeps11
    set Recta[13] = gg_rct_Creeps12    
    set Round = Round + 1 
    loop
    exitwhen i == 8
    call DisplayTextToPlayer(Player(i), 0, 0, GetPlayerName(p)+" has won this round and has recieved 5 team points and 1 level!\nRound "+I2S(Round)+" has started!\nGood Luck!")
    set i = i + 1
    endloop
    call SetPlayerState(p, PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(p, PLAYER_STATE_RESOURCE_GOLD) + 5)
    set i = 0
    loop
        exitwhen i == 14
            set l = GetRandomLocInRect(Recta<i>)
            call CreateUnitAtLoc(Player(11), CreepUnitId, l, GetRandomReal(0, 360))
            call RemoveLocation(l)
            set l = GetRandomLocInRect(Recta<i>)
            call CreateUnitAtLoc(Player(11), CreepUnitId, l, GetRandomReal(0, 360))
            call RemoveLocation(l)
            set l =GetRandomLocInRect(Recta<i>)
            call CreateUnitAtLoc(Player(11), CreepUnitId, l, GetRandomReal(0, 360))
            call RemoveLocation(l)
            set l = null
        set i = i + 1
    endloop
    call GroupEnumUnitsInRect(g, bj_mapInitialPlayableArea, Filter(function IsUnitHero))
    call ForGroup(g, function FGg)
    call DestroyGroup(g)
    set g = null
    set u = null
endfunction

//===========================================================================
private function Init takes nothing returns nothing
    local trigger t = CreateTrigger(  )
    local region r = CreateRegion()
    call RegionAddRect(r, gg_rct_Victory)
    call TriggerRegisterEnterRegion(t, r, True)
    call TriggerAddCondition(t, Condition(function Conditions))
    call TriggerAddAction( t, function Actions )
endfunction

endscope</i></i></i>


The trigger doesn't trigger. I've tried everything.
The global variables are from a library that I will post if need be.
 

Frozenhelfir

set Gwypaas = Guhveepaws
Reaction score
56
JASS:


You need to use a boolxpr for the True part. Easily solved by adding this library into your map:

JASS:
library BoolexprUtils initializer init
    globals
        boolexpr BOOLEXPR_TRUE=null
        boolexpr BOOLEXPR_FALSE=null
    endglobals

    private function rettrue takes nothing returns boolean
        return true
    endfunction

    private function retfalse takes nothing returns boolean
        return false
    endfunction

    private function init takes nothing returns nothing
        set BOOLEXPR_TRUE=Condition(function rettrue)
        set BOOLEXPR_FALSE=Condition(function retfalse)
    endfunction
endlibrary


Then

JASS:


Becomes

JASS:
call TriggerRegisterEnterRegion(t, r, BOOLEXPR_TRUE)
 

Frozenhelfir

set Gwypaas = Guhveepaws
Reaction score
56
If gg_rct_Victory is something you placed in the editor, you don't need to add it to a region because it already is one. That may be causing the thread to crash.

JASS:
    set Recta[0] = gg_rct_Creeps0
    set Recta[1] = gg_rct_Creeps1
    set Recta[2] = gg_rct_Creeps2
    set Recta[3] = gg_rct_Creeps2
    set Recta[4] = gg_rct_Creeps3
    set Recta[5] = gg_rct_Creeps4
    set Recta[6] = gg_rct_Creeps5
    set Recta[7] = gg_rct_Creeps6
    set Recta[8] = gg_rct_Creeps7
    set Recta[9] = gg_rct_Creeps8
    set Recta[10] = gg_rct_Creeps9
    set Recta[11] = gg_rct_Creeps10
    set Recta[12] = gg_rct_Creeps11
    set Recta[13] = gg_rct_Creeps12


I think those are regions be default too.
 

saw792

Is known to say things. That is all.
Reaction score
280
@Frozen, a gg_rct_whatever preplaced variable is a RECT. The native takes a REGION. Different things.
 

Frozenhelfir

set Gwypaas = Guhveepaws
Reaction score
56
I've always been able to use editor placed 'rects' as regions. After all, it is from the region editor.
 

T.s.e

Wish I was old and a little sentimental
Reaction score
133
Frozen, using null as a boolexpr in a TriggerRegister native doesn't leak. However, it does in GroupEnums.

JASS:

Works just fine.
 
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