JASS:
function Trig_Crippling_Shot_Conditions takes nothing returns boolean
return GetUnitAbilityLevel(GetAttacker(),039;A00R039;) > 0
endfunction
function CripplingShot takes nothing returns boolean
local real Random = GetRandomReal(0.,100.)
local integer Agility = GetHeroAgi(GetEventDamageSource(), true)
local real ChanceToHit = .25 * Agility
local unit Victim = GetTriggerUnit()
if (100 >= Random) then //ChanceToHit
call Debug("Test")
call CreateNUnitsAtLoc(1, 039;n000039;, GetOwningPlayer(GetEventDamageSource()), GetUnitLoc(Victim), 0)
call UnitAddAbilityBJ(039;A00S039;, GetLastCreatedUnit())
call TimeLife(GetLastCreatedUnit())
call IssueTargetOrderBJ(GetLastCreatedUnit(), "slow", Victim)
call CreateNUnitsAtLoc(1, 039;n000039;, GetOwningPlayer(GetEventDamageSource()), GetUnitLoc(Victim), 0)
call TimeLife(GetLastCreatedUnit())
call UnitAddAbilityBJ(039;A00T039;, GetLastCreatedUnit())
call IssueTargetOrderBJ(GetLastCreatedUnit(), "unholyfrenzy", Victim)
endif
return false
endfunction
function Trig_Crippling_Shot_Actions takes nothing returns nothing
local trigger t = CreateTrigger()
local triggercondition tc = TriggerAddCondition(t, Condition( function CripplingShot))
call TriggerRegisterUnitEvent(t, GetTriggerUnit(), EVENT_UNIT_DAMAGED)
call PolledWait(1.)
call TriggerRemoveCondition(t,tc)
call DestroyTrigger(t)
set t = null
endfunction
//===========================================================================
function InitTrig_Crippling_Shot takes nothing returns nothing
set gg_trg_Crippling_Shot = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Crippling_Shot, EVENT_PLAYER_UNIT_ATTACKED )
call TriggerAddCondition( gg_trg_Crippling_Shot, Condition( function Trig_Crippling_Shot_Conditions))
call TriggerAddAction( gg_trg_Crippling_Shot, function Trig_Crippling_Shot_Actions )
endfunction
Anyone know why That crashes wheni attack a enemy but works fine when I attack a ally?