Terrabull
Veteran Member (Done that)
- Reaction score
- 38
As the topic says, when I have this enabled no triggers in my map work, as if I had given it an infinite loop in an initializer.
EDIT: Okay, now it no longer crashes the map, but it doesn't do anything at all.
JASS:
scope Forfeit initializer InitForfeit
globals
integer gWestGive = 0
integer gEastGive = 0
boolean array gHasVoted
timer gFFTimer1
timer gFFTimer2
endglobals
function ActForfeit2 takes nothing returns nothing
if gWestGive > 1 and GetExpiredTimer() == gFFTimer1 then
set udg_Defeated[0] = true
set udg_Defeated[1] = true
set udg_Defeated[2] = true
call DispTxt(gWestName + "has given up!")
elseif gEastGive > 1 and GetExpiredTimer() == gFFTimer2 then
set udg_Defeated[3] = true
set udg_Defeated[4] = true
set udg_Defeated[5] = true
call DispTxt(gEastName + "has given up!")
endif
if GetExpiredTimer() == gFFTimer1 then
set gWestGive = 0
set gHasVoted[0] = false
set gHasVoted[1] = false
set gHasVoted[2] = false
else
set gEastGive = 0
set gHasVoted[3] = false
set gHasVoted[4] = false
set gHasVoted[5] = false
endif
endfunction
function ActForfeit takes nothing returns nothing
local integer PID = GetPlayerId(GetTriggerPlayer())
local boolean bool = false
if gHasVoted[PID] == false then
if GetPlayerId(GetTriggerPlayer()) < 3 then
set gWestGive = gWestGive + 1
else
set gEastGive = gEastGive + 1
endif
set gHasVoted[PID] = true
endif
if gWestGive == 1 and PID < 3 then
set bool = GetPlayerId(GetLocalPlayer()) < 3
call TimerStart(gFFTimer1,30.00,false,function ActForfeit2)
elseif gEastGive == 1 and PID > 2 then
set bool = GetPlayerId(GetLocalPlayer()) > 2
call TimerStart(gFFTimer2,30.00,false,function ActForfeit2)
endif
if bool then
call DispTxt(GetPlayerName(GetTriggerPlayer())+" wants to forfeit. Type -FF within 30 secnds if you wish to give up.")
endif
endfunction
//===========================================================================
function InitForfeit takes nothing returns nothing
local trigger gg_trg_Forfeit2 = CreateTrigger()
set gg_trg_Forfeit = CreateTrigger()
call TriggerRegisterAnyPlayerChatEventDK( gg_trg_Forfeit, "-ff", true )
call TriggerRegisterAnyPlayerChatEventDK( gg_trg_Forfeit, "ff", true )
call TriggerRegisterAnyPlayerChatEventDK( gg_trg_Forfeit, "FF", true )
call TriggerRegisterAnyPlayerChatEventDk( gg_trg_Forfeit, "-FF", true )
call TriggerRegisterAnyPlayerChatEventDK( gg_trg_Forfeit, "-forfeit", true )
call TriggerRegisterAnyPlayerChatEventDK( gg_trg_Forfeit, "-giveup", true )
call TriggerAddAction(gg_trg_Forfeit, function ActForfeit)
// call TriggerRegisterTimerExpireEvent(gg_trg_Forfeit2,gFFTimer1)
// call TriggerRegisterTimerExpireEvent(gg_trg_Forfeit2,gFFTimer2)
// call TriggerAddAction(gg_trg_Forfeit2, function ActForfeit2)
endfunction
endscope
EDIT: Okay, now it no longer crashes the map, but it doesn't do anything at all.