Since the rework of my assist system it doesn't execute anymore at all, for checking i made a new trigger using the same condition and only giving me a debug msg. The debug msg works but my kill-trigger won't and i wonder how to fix this problem without reworking the entire function/trigger.
Condition:
Spoiler:
Code: Select all
function KillCond takes nothing returns boolean
return((IsUnitType(GetTriggerUnit(),UNIT_TYPE_HERO))and(GetUnitTypeId(GetTriggerUnit())!='N00W'))
endfunction
Spoiler:
Code: Select all
function KillAct takes nothing returns nothing
local integer KillG1=5*GetHeroLevel(GetTriggerUnit())
local integer KillG2
local integer KillG3
local integer AssistN=GetAssistants(GetTriggerUnit(),GetKillingUnit())
local integer AssiG
local integer AssiLoopI=0
local string AssiS=""
call BJDebugMsg("killcheck")
call StartTimerBJ(av[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))],false,(4.+(2.*I2R(GetHeroLevel(GetTriggerUnit())))))
if(NotKilledByCreeps())then
set Vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]=(Vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+1)
endif
set Ev[(1+GetPlayerId(GetOwningPlayer(GetDyingUnit())))]=(Ev[(1+GetPlayerId(GetOwningPlayer(GetDyingUnit())))]+1)
if(Team1or2())then
set Vv[7]=(Vv[7]+1)
set Ev[1]=(Ev[1]+1)
else
set Vv[1]=(Vv[1]+1)
set Ev[7]=(Ev[7]+1)
endif
set uv[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))]=0
if(NoDenie())then
if(SpreeLessThan10())then
set uv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]=(uv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+1)
endif
call SetPlayerState(GetOwningPlayer(GetTriggerUnit()),PLAYER_STATE_RESOURCE_GOLD,GetPlayerState(GetOwningPlayer(GetTriggerUnit()),PLAYER_STATE_RESOURCE_GOLD)-KillG1)
if(KilledByKyuubi())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,("|c00ddc6a6Kyuubi|r has just pawned "+(vv[(1+GetPlayerId(GetTriggerPlayer()))]+"'s head.")))
else
if(SpreeLessEqual5())then
set KillG2=50+uv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]*50
else
set KillG2=300
endif
set KillG3=KillG1+KillG2
call SetPlayerState(GetOwningPlayer(GetKillingUnit()),PLAYER_STATE_RESOURCE_GOLD,GetPlayerState(GetOwningPlayer(GetKillingUnit()),PLAYER_STATE_RESOURCE_GOLD)+KillG3)
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" has just pawned "+vv[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))]+"'s head for |c00ffcc33"+I2S(KillG3)+"|r gold!!")
if(AssistN>0)then
set AssiG=R2I(Factorial(AssistN+1)/Factorial(AssistN+2)*KillG3/2.5)*5+5*AssistN
set AssiGold=AssiG
set AssiS="|c000000FFAssists|r(|c00ffcc33"+I2S(AssiG)+"|r): "
call ForForce(Assistants,function Assist)
set AssiS=AssiS+SubString(AssiSP,0,StringLength(AssiSP)-1)
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,AssiS)
call ForceClear(Assistants)
set AssiSP=null
endif
endif
if(Spree3())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" is on a |c0020c000KILLING SPREE!|r"))
call PlaySoundBJ(Fx)
endif
if(Spree4())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" is |c001ce6b9DOMINATING!!|r"))
call PlaySoundBJ(gx)
endif
if(Spree5())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" has a |c00fffc01MEGA KILL!!!|r"))
call PlaySoundBJ(Gx)
endif
if(Spree6())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" is |c00e55bb0UNSTOPPABLE!!!|r"))
call PlaySoundBJ(hx)
endif
if(Spree7())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" is |c00540081WICKED SICK!!!|r"))
call PlaySoundBJ(Hx)
endif
if(Spree8())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" has a |c004e2a04MONSTER KILL!!!|r"))
call PlaySoundBJ(jx)
endif
if(Spree9())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" is |c00ff8000GODLIKE!!!|r"))
call PlaySoundBJ(Jx)
endif
if(Spree10())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" is |c00ff0303BEYOND GODLIKE!!!|r"))
call PlaySoundBJ(kx)
endif
else
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+(" has denied "+(vv[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))]+"."))))
endif
call TriggerExecute(ao)
call TriggerExecute(no)
call QE(5.)
if(RevivePoint1())then
set X=GetRectCenter(Je)
else
set X=GetRectCenter(Se)
endif
call SetUnitPositionLoc(GetTriggerUnit(),X)
call RemoveLocation(X)
loop
exitwhen(TimerHasEnded())
call TriggerSleepAction(RMaxBJ(bj_WAIT_FOR_COND_MIN_INTERVAL,.5))
endloop
call DisableTrigger(bo)
set X=GetUnitLoc(GetTriggerUnit())
call ReviveHeroLoc(GetTriggerUnit(),X,true)
call EnableTrigger(bo)
call PanCameraToTimedLocForPlayer(GetOwningPlayer(GetTriggerUnit()),X,.0)
call RemoveLocation(X)
endfunction
Spoiler:
Code: Select all
function lA takes nothing returns nothing
local integer KillG1=5*GetHeroLevel(GetTriggerUnit())
local integer KillG2
local integer KillG3
local integer Assistants=LoadInteger(AssiTable,GetPlayerId(GetOwningPlayer(GetTriggerUnit())),GetPlayerId(GetOwningPlayer(GetTriggerUnit())))
local integer AssiG
local integer AssiLoopI=0
local string AssiS1=""
local string AssiS2=""
call StartTimerBJ(av[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))],false,(4.+(2.*I2R(GetHeroLevel(GetTriggerUnit())))))
if(NotKilledByCreeps())then
set Vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]=(Vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+1)
endif
set Ev[(1+GetPlayerId(GetOwningPlayer(GetDyingUnit())))]=(Ev[(1+GetPlayerId(GetOwningPlayer(GetDyingUnit())))]+1)
if(Team1or2())then
set Vv[7]=(Vv[7]+1)
set Ev[1]=(Ev[1]+1)
else
set Vv[1]=(Vv[1]+1)
set Ev[7]=(Ev[7]+1)
endif
set uv[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))]=0
if(NoDenie())then
if(SpreeLessThan10())then
set uv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]=(uv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+1)
endif
call SetPlayerState(GetOwningPlayer(GetTriggerUnit()),PLAYER_STATE_RESOURCE_GOLD,GetPlayerState(GetOwningPlayer(GetTriggerUnit()),PLAYER_STATE_RESOURCE_GOLD)-KillG1)
if(KilledByKyuubi())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,("|c00ddc6a6Kyuubi|r has just pawned "+(vv[(1+GetPlayerId(GetTriggerPlayer()))]+"'s head.")))
else
if(SpreeLessEqual5())then
set KillG2=50+uv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]*50
else
set KillG2=300
endif
set KillG3=KillG1+KillG2
call SetPlayerState(GetOwningPlayer(GetKillingUnit()),PLAYER_STATE_RESOURCE_GOLD,GetPlayerState(GetOwningPlayer(GetKillingUnit()),PLAYER_STATE_RESOURCE_GOLD)+KillG3)
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" has just pawned "+vv[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))]+"'s head for |c00ffcc33"+I2S(KillG3)+"|r gold!!")
call SaveInteger(AssiTable,GetPlayerId(GetOwningPlayer(GetTriggerUnit())),GetPlayerId(GetOwningPlayer(GetTriggerUnit())),LoadInteger(AssiTable,GetPlayerId(GetOwningPlayer(GetTriggerUnit())),GetPlayerId(GetOwningPlayer(GetTriggerUnit())))-1)
call SaveInteger(AssiTable,GetPlayerId(GetOwningPlayer(GetTriggerUnit())),GetPlayerId(GetOwningPlayer(GetKillingUnit())),0)
if(LoadInteger(AssiTable,GetPlayerId(GetOwningPlayer(GetTriggerUnit())),GetPlayerId(GetOwningPlayer(GetTriggerUnit())))>0)then
set AssiG=R2I(I2R(Factorial(Assistants+1))/I2R(Factorial(Assistants+2))*R2I(KillG3)/2.5)*5+5*Assistants
set AssiS1="|c000000FFAssists|r(|c00ffcc33"+I2S(AssiG)+"|r): "
loop
if(LoadInteger(AssiTable,GetPlayerId(GetOwningPlayer(GetTriggerUnit())),AssiLoopI)!=0)and(IsPlayerAlly(GetOwningPlayer(GetTriggerUnit()),Player(AssiLoopI))==false)then
call SaveInteger(AssiTable,GetPlayerId(GetOwningPlayer(GetTriggerUnit())),GetPlayerId(GetOwningPlayer(GetTriggerUnit())),LoadInteger(AssiTable,GetPlayerId(GetOwningPlayer(GetTriggerUnit())),GetPlayerId(GetOwningPlayer(GetTriggerUnit())))-1)
call SaveInteger(AssiTable,GetPlayerId(GetOwningPlayer(GetTriggerUnit())),AssiLoopI,0)
set AssiS2 = AssiS2+vv[1+AssiLoopI]
if(LoadInteger(AssiTable,GetPlayerId(GetOwningPlayer(GetTriggerUnit())),GetPlayerId(GetOwningPlayer(GetTriggerUnit())))>0)then
set AssiS2=AssiS2+", "
endif
call SetPlayerState(Player(AssiLoopI),ConvertPlayerState(1),GetPlayerState(Player(AssiLoopI),ConvertPlayerState(1))+AssiG)
set Assists[AssiLoopI+1]=Assists[AssiLoopI+1]+1
endif
exitwhen(AssiLoopI==11)
set AssiLoopI = AssiLoopI+1
endloop
set AssiS1=AssiS1+AssiS2
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,AssiS1)
endif
endif
if(Spree3())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" is on a |c0020c000KILLING SPREE!|r"))
call PlaySoundBJ(Fx)
endif
if(Spree4())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" is |c001ce6b9DOMINATING!!|r"))
call PlaySoundBJ(gx)
endif
if(Spree5())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" has a |c00fffc01MEGA KILL!!!|r"))
call PlaySoundBJ(Gx)
endif
if(Spree6())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" is |c00e55bb0UNSTOPPABLE!!!|r"))
call PlaySoundBJ(hx)
endif
if(Spree7())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" is |c00540081WICKED SICK!!!|r"))
call PlaySoundBJ(Hx)
endif
if(Spree8())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" has a |c004e2a04MONSTER KILL!!!|r"))
call PlaySoundBJ(jx)
endif
if(Spree9())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" is |c00ff8000GODLIKE!!!|r"))
call PlaySoundBJ(Jx)
endif
if(Spree10())then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+" is |c00ff0303BEYOND GODLIKE!!!|r"))
call PlaySoundBJ(kx)
endif
else
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,(vv[(1+GetPlayerId(GetOwningPlayer(GetKillingUnit())))]+(" has denied "+(vv[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))]+"."))))
endif
call TriggerExecute(ao)
call TriggerExecute(no)
call QE(5.)
if(RevivePoint1())then
set X=GetRectCenter(Je)
else
set X=GetRectCenter(Se)
endif
call SetUnitPositionLoc(GetTriggerUnit(),X)
call RemoveLocation(X)
loop
exitwhen(TimerHasEnded())
call TriggerSleepAction(RMaxBJ(bj_WAIT_FOR_COND_MIN_INTERVAL,.5))
endloop
call DisableTrigger(bo)
set X=GetUnitLoc(GetTriggerUnit())
call ReviveHeroLoc(GetTriggerUnit(),X,true)
call EnableTrigger(bo)
call PanCameraToTimedLocForPlayer(GetOwningPlayer(GetTriggerUnit()),X,.0)
call RemoveLocation(X)
endfunction
Spoiler:
Code: Select all
set KillTrigger=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(KillTrigger,EVENT_PLAYER_UNIT_DEATH)
call TriggerAddCondition(KillTrigger,Condition(function KillCond))
call TriggerAddAction(KillTrigger,function KillAct)
The working trigger is only 1 line sending a DebugMsg so i won't post it here.