Faust
You can change this now in User CP.
- Reaction score
- 123
JASS:
scope RedirectCast initializer I
private function IsUnitAnAlly takes nothing returns boolean
if IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()), udg_Player) == false and GetUnitAbilityLevel(GetFilterUnit(), 039;Aloc039;) == 0 and IsUnitType(GetFilterUnit(), UNIT_TYPE_ANCIENT) == false then
return true
else
return false
endif
endfunction
private function F takes unit u, integer BuffID returns boolean
return GetUnitAbilityLevel(u, BuffID) == 0
endfunction
private function A takes nothing returns nothing
local unit u
if GetUnitAbilityLevel(GetOrderTargetUnit(), 039;B00A039;) == 1 and GetUnitCurrentOrder(GetTriggerUnit()) == 852486 then
set udg_Player = GetOwningPlayer(GetTriggerUnit())
call GroupEnumUnitsInRange(G, GetUnitX(GetTriggerUnit()), GetUnitY(GetTriggerUnit()), 650, Condition(function IsUnitAnAlly))
call GroupRemoveUnit(G, GetTriggerUnit())
call GroupRemoveUnit(G, GetOrderTargetUnit())
loop
set u = FirstOfGroup(G)
exitwhen F(u, 039;B00A039;) == true or u == null
call GroupRemoveUnit(G, u)
endloop
endif
call BJDebugMsg(GetUnitName(u) + "Is the new target unit")
if u != null then
call IssueTargetOrderById(GetTriggerUnit(), GetIssuedOrderId(), u)
else
call PauseUnit(u, true)
call IssueImmediateOrder(GetTriggerUnit(), "stop")
call PauseUnit(u, false)
endif
call GroupClear(G)
set u = null
endfunction
//===========================================================================
private function I takes nothing returns nothing
local trigger t = CreateTrigger()
call TriggerRegisterAnyUnitEvent(t, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER)
call TriggerAddAction(t, function A)
endfunction
endscope
I want to avoid my autocast system casting an ability on a unit that already has it's buff, and if possible, redirect the order, so it casts it on an other unit, if no buffless units nearby, just make it stop.
This was one of my attempts, but instead of stopping, the caster starts spamming the spell... This one is based on channel, has some follow through time, 15 seconds cooldown, but the cooldown never starts, yet the targeted units gain the spell effects :nuts:
Suggestions? ^^