Azlier
Old World Ghost
I won't be able to upgrade this. I lost my computer last week. If someone is nice enough to create a version that works with specific ID's, I would be happy to replace the one in the first post and give credits.
library AutocastEvent initializer Init requires Event
globals
private Event AutoOn = 0
private Event AutoOff = 0
private integer array OrderIds
private integer array ArrayIds
endglobals
function TriggerRegisterAutocastOnEvent takes trigger whichTrigger returns nothing
call AutoOn.register(whichTrigger)
endfunction
function TriggerRegisterAutocastOffEvent takes trigger whichTrigger returns nothing
call AutoOff.register(whichTrigger)
endfunction
private function Actions takes nothing returns boolean
local integer i = ArrayIds[S2I(SubString(I2S(GetIssuedOrderId()),3,6))]
if i == 1 then
call AutoOn.fire()
elseif i == 2 then
call AutoOff.fire()
endif
return false
endfunction
private function Init takes nothing returns nothing
local trigger trig = CreateTrigger()
local integer i = 15
set AutoOn = Event.create()
set AutoOff = Event.create()
loop
call TriggerRegisterPlayerUnitEvent(trig,Player(i),EVENT_PLAYER_UNIT_ISSUED_ORDER,null)
exitwhen i == 0
set i = i - 1
endloop
call TriggerAddCondition(trig,Condition(function Actions))
set OrderIds[0] = 25 // Repair
set OrderIds[1] = 41 // Kaboom
set OrderIds[2] = 51 // Get Corpse
set OrderIds[3] = 64 // Heal
set OrderIds[4] = 67 // Inner Fire
set OrderIds[5] = 76 // Slow
set OrderIds[6] = 102 // Bloodlust
set OrderIds[7] = 133 // Abolish Magic
set OrderIds[8] = 150 // Faerie Fire
set OrderIds[9] = 158 // Recharge
set OrderIds[10] = 162 // Renew
set OrderIds[11] = 174 // Searing Arrows
set OrderIds[12] = 191 // Curse
set OrderIds[13] = 198 // Raise Dead
set OrderIds[14] = 203 // Restore
set OrderIds[15] = 212 // Web
set OrderIds[16] = 244 // Cold Arrows
set OrderIds[17] = 255 // Poison Arrows
set OrderIds[18] = 458 // Frost Armor
set OrderIds[19] = 484 // Spell Steal
set OrderIds[20] = 540 // Orb of Annihilation
set OrderIds[21] = 546 // Essence of Blight
set OrderIds[22] = 549 // Spirit Touch
set OrderIds[23] = 552 // Carrion Beetles
set OrderIds[24] = 578 // Black Arrow
set OrderIds[25] = 602 // Parasite
loop
exitwhen i == 26
set ArrayIds[OrderIds<i>] = 1
set ArrayIds[OrderIds<i> + 1] = 2
set i = i + 1
endloop
endfunction
endlibrary
</i></i>
local integer i = ArrayIds[S2I(SubString(I2S(GetIssuedOrderId()),3,6))]
local integer i = ArrayIds[GetIssuedOrderId() - 852000]