- Joined
- Sep 14, 2009
- Messages
- 284
Hi. I can't find why this trigger crashes wc3. My guess is there is something within the loop. But I need someone more experienced to look into it.
JASS:
function CombatLostDialogButton1_Conditions takes nothing returns boolean
return GetClickedButtonBJ() == udg_Dialog_CombatLostButton[1]
endfunction
function CombatLostDialogButton1_Func01 takes nothing returns nothing
call RemoveUnit(GetEnumUnit())
endfunction
function CombatLostDialogButton1_Actions takes nothing returns nothing
local integer i = 1
local group g
local location p
call DialogDisplayBJ(false, udg_Dialog_CombatLost, Player(8))
if udg_ZoneCurrent != "DaldeunWoods" then
set udg_ZoneCurrent = "DaldeunWoods"
call SetSkyModel("Environment\\Sky\\Sky\\SkyLight.mdl")
call SetTerrainFogExBJ(0, 1100.00, 3700.00, 0, 30.00, 70.00, 50.00)
set udg_CombatSpawnType[1] = 'n002'
set udg_CombatSpawnType[2] = 'n002'
set udg_CombatRect = gg_rct_CRDaldeunWoods
set udg_CombatRectChar[1] = gg_rct_CRDaldeunWoodsChar01
set udg_CombatRectChar[2] = gg_rct_CRDaldeunWoodsChar02
set udg_CombatRectChar[3] = gg_rct_CRDaldeunWoodsChar03
set udg_CombatRectEnemy[1] = gg_rct_CRDaldeunWoodsEnemy01
set udg_CombatRectEnemy[2] = gg_rct_CRDaldeunWoodsEnemy02
set udg_CombatRectEnemy[3] = gg_rct_CRDaldeunWoodsEnemy03
set udg_CombatRectEnemy[4] = gg_rct_CRDaldeunWoodsEnemy04
set udg_CombatRectEnemy[5] = gg_rct_CRDaldeunWoodsEnemy05
endif
set udg_InArena = false
set udg_InCinematic = false
set udg_InCombat = false
set udg_InPM = false
set udg_InSanctuary = true
set udg_InTown = false
set udg_CombatBossBattle = false
set p = GetRectCenter(gg_rct_Resurrect)
call ReviveHeroLoc(udg_PartyMember[1], p, true)
call RemoveLocation(p)
set p = GetRectCenter(gg_rct_Resurrect)
call PanCameraToTimedLocForPlayer(Player(8), p, 0)
call RemoveLocation(p)
set p = GetRectCenter(gg_rct_Resurrect)
call AddSpecialEffectLocBJ(p, "Abilities\\Spells\\Other\\Awaken\\Awaken.mdl")
call RemoveLocation(p)
call DestroyEffect(GetLastCreatedEffectBJ())
call SetUnitFacingTimed(udg_PartyMember[1], 270.00, 0)
loop
exitwhen i > 3
set udg_TempUnitA = udg_PartyMember[i]
if i > 1 then
set p = GetRectCenter(gg_rct_PMEnter)
call ReviveHeroLoc(udg_PartyMember[i], p, true)
call RemoveLocation(p)
set p = GetRectCenter(gg_rct_PMEnter)
call AddSpecialEffectLocBJ(p, "Abilities\\Spells\\Other\\Awaken\\Awaken.mdl")
call RemoveLocation(p)
call DestroyEffect(GetLastCreatedEffectBJ())
endif
call ConditionalTriggerExecute(gg_trg_CharacterGetColors)
call SetUnitLifeBJ(udg_PartyMember[i], (0.10 * GetUnitStateSwap(UNIT_STATE_MAX_LIFE, udg_PartyMember[i])))
call SetUnitManaBJ(udg_PartyMember[i], (0.10 * GetUnitStateSwap(UNIT_STATE_MAX_MANA, udg_PartyMember[i])))
set i = i + 1
endloop
set p = null
call StopMusicBJ(false)
call PlayMusicBJ(gg_snd_Music_DaldeunWoods)
set g =GetUnitsInRectAll(udg_CombatRect)
call ForGroupBJ(g, function CombatLostDialogButton1_Func01)
call DestroyGroup(g)
set g = null
call SetPlayerAbilityAvailableBJ(true, 'A008', Player(8))
call SetPlayerAbilityAvailableBJ(true, 'A004', Player(8))
call CinematicFadeBJ(bj_CINEFADETYPE_FADEIN, 1.50, "ReplaceableTextures\\CameraMasks\\White_mask.blp", 0, 0, 0, 0)
endfunction
//===========================================================================
function InitTrig_CombatLostDialogButton1 takes nothing returns nothing
set gg_trg_CombatLostDialogButton1 = CreateTrigger()
call TriggerRegisterDialogEventBJ(gg_trg_CombatLostDialogButton1, udg_Dialog_CombatLost)
call TriggerAddCondition(gg_trg_CombatLostDialogButton1, Condition(function CombatLostDialogButton1_Conditions))
call TriggerAddAction(gg_trg_CombatLostDialogButton1, function CombatLostDialogButton1_Actions)
endfunction