Issues with IsUnitGroupDeadBJ

Naga'sShadow

Ultra Cool Member
Reaction score
49
I've set up a trigger to determine when all of the units in an enemy wave die but so far the mentioned function is giving me grief. This is the problem function. The first section works, up until the comments. If I comment out the if statement regarding IsUnitGroupDeadBJ(mobs2) then whats inside works. Either way the whole function hangs after the wait. I was under the impression that if then statements were skipped if false, not the function stopped. All of the undeclared variables are global.

JASS:
 private function endlevel takes nothing returns nothing
        local integer i = 0
        local boolean prize = false
        
        loop  
        exitwhen i >= 12
            if IsUnitGroupDeadBJ(mobs<i>) == true and prize == false then
                call SetPlayerState(Player(i), PLAYER_STATE_RESOURCE_GOLD, (GetPlayerState(Player(i),PLAYER_STATE_RESOURCE_GOLD) + 100 ))
                call DisplayTextToForce(GetPlayersAll(), &quot;Congragulations player &quot; + I2S(i + 1) + &quot; has finished first.  Gets 100 gold.&quot;)
                set prize = true
            endif
            set i = i + 1
        endloop
        
        set i = 0
        //It stops working here.
        if IsUnitGroupDeadBJ(mobs2) == true then
            loop
            exitwhen i &gt;= 12
                call SetPlayerState(Player(i), PLAYER_STATE_RESOURCE_GOLD, (GetPlayerState(Player(i),PLAYER_STATE_RESOURCE_GOLD) + 200 ))
                call SetPlayerState(Player(i), PLAYER_STATE_RESOURCE_LUMBER, (GetPlayerState(Player(i),PLAYER_STATE_RESOURCE_LUMBER) + 1 ))
                set Incombat<i> = false
                set i = i + 1
            endloop
            call DisplayTextToForce(GetPlayersAll(), &quot;Level complete all players get 200 gold and one skill point.&quot;)
        endif
        
        set i = 0
        call BJDebugMsg(&quot;one&quot;)
        call TriggerSleepAction(5)
        call GroupClear(mobs2)
        
        loop
            exitwhen i &gt;=12
            call SetUnitPosition(Hero_Hero<i>, GetRectCenterX(gg_rct_READY), GetRectCenterY(gg_rct_READY))
            call PanCameraToTimedForPlayer(Player(i), GetUnitX(Hero_Hero<i>), GetUnitY(Hero_Hero<i>), 1)
            set i = i + 1
        endloop
        
        set udg_CURlevel = udg_CURlevel + 1
        call TimerDialogSetTitle(Setup_SurDia, &quot;Level&quot; + I2S(udg_CURlevel))
        call TimerDialogDisplay(Setup_SurDia, true)
        call TimerStart(Setup_SurLevTimer, 45, false, null)
        call BJDebugMsg(&quot;two&quot;)
        
    endfunction</i></i></i></i></i>
 

Sgqvur

FullOfUltimateTruthsAndEt ernalPrinciples, i.e shi
Reaction score
62
Could be that the function is hitting the op-limit aka needs optimization. You should try to get rid of the BJ's anyway.
 

AoW_Hun7312

I'm a magic man, I've got magic hands.
Reaction score
76
You can try detecting when the player that owns all of the unit's food is zero (make sure they all take up food). As a safety net, make sure you use a timer so they can't just put towers in front of the entrance.
 
General chit-chat
Help Users

      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