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(), "Congragulations player " + I2S(i + 1) + " has finished first. Gets 100 gold.")
set prize = true
endif
set i = i + 1
endloop
set i = 0
//It stops working here.
if IsUnitGroupDeadBJ(mobs2) == true then
loop
exitwhen i >= 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(), "Level complete all players get 200 gold and one skill point.")
endif
set i = 0
call BJDebugMsg("one")
call TriggerSleepAction(5)
call GroupClear(mobs2)
loop
exitwhen i >=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, "Level" + I2S(udg_CURlevel))
call TimerDialogDisplay(Setup_SurDia, true)
call TimerStart(Setup_SurLevTimer, 45, false, null)
call BJDebugMsg("two")
endfunction</i></i></i></i></i>