前面还有一部分上接
function MJ3 takes nothing returns nothing
local trigger t=CreateTrigger()
call M5I(t,EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(t,Condition(function MY3))
call KWI(1093686868,GetRandomReal(1,25))
set t=null
endfunction
function MK3 takes unit X6I returns real
local integer LJ3=(LoadInteger(ZY,(GetHandleId(X6I)),(3002)))
return(80+LJ3*30.0)/2
endfunction
function ML3 takes unit X6I returns real
local integer LY3=(LoadInteger(ZY,(GetHandleId(X6I)),(3000)))
local integer LQ3=(LoadInteger(ZY,(GetHandleId(X6I)),(3001)))
local integer LJ3=(LoadInteger(ZY,(GetHandleId(X6I)),(3002)))
return 325+LY3*175.0
endfunction
function MM3 takes nothing returns boolean
local trigger t=GetTriggeringTrigger()
local integer WQI=GetHandleId(t)
local unit JMI=(LoadUnitHandle(ZY,(WQI),(2)))
local integer JPI=(LoadInteger(ZY,(WQI),(30)))
local unit JNI=WEI(JPI)
local real JTI=(LoadReal(ZY,(WQI),(20)))
local effect FX=(LoadEffectHandle(ZY,(WQI),(32)))
local integer WJI=GetTriggerEvalCount(t)
call JLI(JMI,JNI,1,JTI)
if WJI==3 then
call WDI(JPI)
call FlushChildHashtable(ZY,(WQI))
call WMI(t)
call DestroyEffect(FX)
endif
set t=null
set JMI=null
set JNI=null
set FX=null
return false
endfunction
function MN3 takes unit JMI,unit JNI,real JTI returns nothing
local trigger t=CreateTrigger()
local integer WQI=GetHandleId(t)
call SaveUnitHandle(ZY,(WQI),(2),(JMI))
call SaveInteger(ZY,(WQI),(30),(WGI(JNI)))
call SaveReal(ZY,(WQI),(20),((JTI)*1.0))
call SaveEffectHandle(ZY,(WQI),(32),(AddSpecialEffectTarget("Environment\\SmallBuildingFire\\SmallBuildingFire2.mdl",JNI,"chest")))
call TriggerRegisterTimerEvent(t,1,true)
call TriggerAddCondition(t,Condition(function MM3))
set t=null
endfunction
function MS3 takes nothing returns nothing
call MN3(OK,GetEnumUnit(),TJ/5)
call JLI(OK,GetEnumUnit(),1,TJ)
endfunction
function MT3 takes nothing returns boolean
local trigger t=GetTriggeringTrigger()
local integer WQI=GetHandleId(t)
local real x=(LoadReal(ZY,(WQI),(6)))
local real y=(LoadReal(ZY,(WQI),(7)))
local real a=(LoadReal(ZY,(WQI),(137)))
local integer WJI=GetTriggerEvalCount(t)-30
local unit JMI=(LoadUnitHandle(ZY,(WQI),(2)))
local real MPI
local real MQI
local unit P1I
local group g
if WJI==1 then
set P1I=CreateUnit(GetOwningPlayer(JMI),1697657164,x,y,a*bj_RADTODEG)
call SaveUnitHandle(ZY,(WQI),(19),(P1I))
elseif WJI>1 then
set P1I=(LoadUnitHandle(ZY,(WQI),(19)))
endif
if WJI>0 then
set MPI=KCI(GetUnitX(P1I)+15*Cos(a))
set MQI=KFI(GetUnitY(P1I)+15*Sin(a))
call SetUnitX(P1I,MPI)
call SetUnitY(P1I,MQI)
if(WJI>1 and ModuloInteger(WJI,10)==0)or WJI==1 then
set g=WXI()
set OK=JMI
set TJ=MK3(JMI)
call GroupEnumUnitsInRange(g,MPI,MQI,300,Condition(function R3I))
call ForGroup(g,function MS3)
call WWI(g)
call DestroyEffect(AddSpecialEffect("Objects\\Spawnmodels\\Other\\NeutralBuildingExplosion\\NeutralBuildingExplosion.mdl",MPI,MQI))
endif
if WJI>ML3(JMI)/16.6 then
call FlushChildHashtable(ZY,(WQI))
call WMI(t)
call KillUnit(P1I)
endif
endif
set t=null
set g=null
set P1I=null
set JMI=null
return false
endfunction
function MR3 takes nothing returns nothing
local trigger t=CreateTrigger()
local integer WQI=GetHandleId(t)
local location l=GetSpellTargetLoc()
local unit JMI=GetTriggerUnit()
local real x=GetLocationX(l)
local real y=GetLocationY(l)
local real a=Atan2(y-GetUnitY(JMI),x-GetUnitX(JMI))
local unit MP3=CreateUnit(GetOwningPlayer(JMI),1697657163,x,y,a*bj_RADTODEG)
call SetUnitTimeScale(MP3,0.5)
call UnitApplyTimedLife(MP3,1112820806,1.75)
call TriggerRegisterTimerEvent(t,0.05,true)
call TriggerAddCondition(t,Condition(function MT3))
call SaveUnitHandle(ZY,(WQI),(2),(JMI))
call SaveReal(ZY,(WQI),(6),((x)*1.0))
call SaveReal(ZY,(WQI),(7),((y)*1.0))
call SaveReal(ZY,(WQI),(137),((a)*1.0))
call RemoveLocation(l)
set t=null
set l=null
set JMI=null
endfunction
function MQ3 takes nothing returns boolean
if GetSpellAbilityId()==1093686862 then
call MR3()
endif
return false
endfunction
function MU3 takes nothing returns nothing
local trigger t=CreateTrigger()
call M5I(t,EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(t,Condition(function MQ3))
set t=null
endfunction
function N03 takes nothing returns boolean
local trigger t=GetTriggeringTrigger()
local integer WQI=GetHandleId(t)
local integer JPI=(LoadInteger(ZY,(WQI),(30)))
local unit JNI=WEI(JPI)
local real PR1=(LoadReal(ZY,(GetHandleId(JNI)),(3007)))
if PR1+5<=(TimerGetElapsed(M))then
call UnitRemoveAbility(JNI,1093686871)
endif
call WDI(JPI)
call FlushChildHashtable(ZY,(WQI))
call WMI(t)
set t=null
set JNI=null
return false
endfunction
function NI3 takes unit JNI returns nothing
local trigger t=CreateTrigger()
local integer WQI=GetHandleId(t)
local integer YNI=GetUnitAbilityLevel(JNI,1093686871)
if YNI==0 then
call MYI(JNI,1093686871)
endif
call SetUnitAbilityLevel(JNI,1093686871,YNI+1)
call SaveInteger(ZY,(WQI),(30),(WGI(JNI)))
call SaveReal(ZY,(GetHandleId(JNI)),(3007),(((TimerGetElapsed(M)))*1.0))
call TriggerRegisterTimerEvent(t,5,false)
call TriggerAddCondition(t,Condition(function N03))
set t=null
endfunction
function N13 takes nothing returns boolean
local real d
if GetUnitAbilityLevel(GetTriggerUnit(),1110456625)>0 and GetUnitAbilityLevel(GetEventDamageSource(),1093686870)>0 and(LoadUnitHandle(ZY,(GetHandleId(GetTriggeringTrigger())),(2)))==GetEventDamageSource()then
call UnitRemoveAbility(GetTriggerUnit(),1110456625)
call DisableTrigger(GetTriggeringTrigger())
call NI3(GetTriggerUnit())
call FlushChildHashtable(ZY,(GetHandleId(GetTriggeringTrigger())))
call WMI(GetTriggeringTrigger())
endif
return false
endfunction
function NO3 takes nothing returns nothing
local trigger t
local unit JNI
local unit JMI
if GetTriggerEventId()==EVENT_UNIT_SPELL_EFFECT then
set JNI=GetSpellTargetUnit()
set JMI=GetTriggerUnit()
else
set JNI=GetTriggerUnit()
set JMI=GetAttacker()
endif
if IsUnitIllusion(JMI)==false then
set t=CreateTrigger()
call SaveUnitHandle(ZY,(GetHandleId(t)),(2),(JMI))
call TriggerRegisterUnitEvent(t,JNI,EVENT_UNIT_DAMAGED)
call TriggerAddCondition(t,Condition(function N13))
endif
set t=null
set JNI=null
set JMI=null
endfunction
function N23 takes nothing returns boolean
if GetTriggerEventId()==EVENT_PLAYER_UNIT_ATTACKED then
if GetUnitAbilityLevel(GetAttacker(),1093686870)>0 and(LoadBoolean(ZY,(GetHandleId(GetTriggeringTrigger())),(3008)))and IsUnitType(GetTriggerUnit(),UNIT_TYPE_STRUCTURE)==false and GetAttacker()==(LoadUnitHandle(ZY,(GetHandleId(GetTriggeringTrigger())),(2)))then
call NO3()
endif
elseif GetTriggerEventId()==EVENT_UNIT_ISSUED_ORDER then
if(GetIssuedOrderId()==OrderId("poisonarrows"))then
call SaveBoolean(ZY,(GetHandleId(GetTriggeringTrigger())),(3008),(true))
elseif(GetIssuedOrderId()==OrderId("unpoisonarrows"))then
call SaveBoolean(ZY,(GetHandleId(GetTriggeringTrigger())),(3008),(false))
endif
elseif GetTriggerEventId()==EVENT_UNIT_SPELL_EFFECT and GetSpellAbilityId()==1093686870 then
call NO3()
endif
return false
endfunction
function N33 takes unit JMI returns nothing
local trigger t=CreateTrigger()
call M5I(t,EVENT_PLAYER_UNIT_ATTACKED)
call TriggerRegisterUnitEvent(t,JMI,EVENT_UNIT_SPELL_EFFECT)
call TriggerRegisterUnitEvent(t,JMI,EVENT_UNIT_ISSUED_ORDER)
call TriggerAddCondition(t,Condition(function N23))
call SaveUnitHandle(ZY,(GetHandleId(t)),(2),(JMI))
call SaveBoolean(ZY,(GetHandleId(t)),(3008),(true))
set t=null
endfunction
function N43 takes nothing returns nothing
call KillUnit(GetEnumUnit())
endfunction
function N53 takes nothing returns boolean
if GetUnitTypeId(GetFilterUnit())==1848652343 then
return true
endif
return false
endfunction
function N63 takes player p returns nothing
local group g=WXI()
call GroupEnumUnitsOfPlayer(g,p,Condition(function N53))
call ForGroup(g,function N43)
call WWI(g)
set g=null
endfunction
function N73 takes nothing returns nothing
local unit JMI=GetTriggerUnit()
local unit P1I
local integer LQ3=(LoadInteger(ZY,(GetHandleId(JMI)),(3001)))
local integer LJ3=(LoadInteger(ZY,(GetHandleId(JMI)),(3002)))
call N63(GetOwningPlayer(JMI))
set P1I=CreateUnit(GetOwningPlayer(JMI),1848652343,GetUnitX(JMI),GetUnitY(JMI),GetUnitFacing(JMI))
call SetUnitColor(P1I,GetPlayerColor(CO[0]))
call AddSpecialEffectTarget("Abilities\\Spells\\Orc\\FeralSpirit\\feralspiritdone.mdl",P1I,"chest")
call UnitApplyTimedLife(P1I,1112820806,10+10*LQ3)
call SetUnitAbilityLevel(P1I,1093686870,LJ3)
call N33(P1I)
if SX0[GetPlayerId(GetOwningPlayer(JMI))]then
call SelectUnitAddForPlayer(P1I,GetOwningPlayer(JMI))
endif
if LQ3>3 and LJ3>3 then
set P1I=CreateUnit(GetOwningPlayer(JMI),1848652343,GetUnitX(JMI),GetUnitY(JMI),GetUnitFacing(JMI))
call SetUnitColor(P1I,GetPlayerColor(CO[0]))
call AddSpecialEffectTarget("Abilities\\Spells\\Orc\\FeralSpirit\\feralspiritdone.mdl",P1I,"chest")
call UnitApplyTimedLife(P1I,1112820806,10+10*LQ3)
call SetUnitAbilityLevel(P1I,1093686870,LJ3)
call N33(P1I)
if SX0[GetPlayerId(GetOwningPlayer(JMI))]then
call SelectUnitAddForPlayer(P1I,GetOwningPlayer(JMI))
endif
endif
call SetPlayerTechResearched(GetOwningPlayer(JMI),1378889799,LJ3)
call SetPlayerTechResearched(GetOwningPlayer(JMI),1378889800,LQ3)
set JMI=null
set P1I=null
endfunction
function N83 takes nothing returns boolean
if GetSpellAbilityId()==1093686863 then
call N73()
endif
return false
endfunction
function N93 takes nothing returns nothing
local trigger t=CreateTrigger()
call M5I(t,EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(t,Condition(function N83))
call KWI(1093686870,GetRandomReal(1,25))
call KWI(1093686871,GetRandomReal(1,25))
set t=null
endfunction
function NA3 takes unit JMI returns integer
local integer YNI=(LoadInteger(ZY,(GetHandleId(JMI)),(3001)))
if YNI==1 then
return 1093808944
elseif YNI==2 then
return 1093808730
elseif YNI==3 then
return 1093808729
elseif YNI==4 then
return 1093808725
elseif YNI==5 then
return 1093808726
elseif YNI==6 then
return 1093808727
elseif YNI==7 then
return 1093808728
endif
return 1093808944
endfunction
function NB3 takes unit JNI returns nothing
call UnitRemoveAbility(JNI,1093808944)
call UnitRemoveAbility(JNI,1093808730)
call UnitRemoveAbility(JNI,1093808729)
call UnitRemoveAbility(JNI,1093808725)
call UnitRemoveAbility(JNI,1093808726)
call UnitRemoveAbility(JNI,1093808727)
call UnitRemoveAbility(JNI,1093808728)
call UnitRemoveAbility(JNI,1110456410)
endfunction
function NC3 takes nothing returns boolean
local trigger t=GetTriggeringTrigger()
local integer WQI=GetHandleId(t)
local unit JNI=(LoadUnitHandle(ZY,(WQI),(17)))
local real C3O=(LoadReal(ZY,(GetHandleId(JNI)),(681)))
call FlushChildHashtable(ZY,(WQI))
call WMI(t)
if GetTriggerEventId()==EVENT_WIDGET_DEATH or C3O<(TimerGetElapsed(M))then
call NB3(JNI)
endif
set t=null
set JNI=null
return false
endfunction
function ND3 takes nothing returns nothing
local unit JMI=OK
local unit JNI=GetEnumUnit()
local trigger t=CreateTrigger()
local integer WQI=GetHandleId(t)
local real C3O=(LoadReal(ZY,(GetHandleId(JNI)),(681)))
if C3O<(TimerGetElapsed(M))then
call MYI(JNI,NA3(JMI))
endif
call SaveReal(ZY,(GetHandleId(JNI)),(681),(((TimerGetElapsed(M))+2)*1.0))
call SaveUnitHandle(ZY,(WQI),(17),(JNI))
call TriggerRegisterTimerEvent(t,2.01,false)
call TriggerRegisterDeathEvent(t,JNI)
call TriggerAddCondition(t,Condition(function NC3))
set t=null
set JMI=null
endfunction
function NE3 takes nothing returns boolean
local trigger t=GetTriggeringTrigger()
local integer WQI=GetHandleId(t)
local unit JMI=(LoadUnitHandle(ZY,(WQI),(2)))
local real L2I=(LoadReal(ZY,(WQI),(6)))
local real L3I=(LoadReal(ZY,(WQI),(7)))
local real a=(LoadReal(ZY,(WQI),(137)))
local real P0I=(LoadReal(ZY,(WQI),(57)))
local real x
local real y
local integer i=1
local integer WJI=GetTriggerEvalCount(t)
local group g
if WJI*0.1>P0I then
call FlushChildHashtable(ZY,(WQI))
call WMI(t)
else
set g=WXI()
set OK=JMI
loop
exitwhen i>7
set x=L2I+80*i*Cos((a+90)*bj_DEGTORAD)
set y=L3I+80*i*Sin((a+90)*bj_DEGTORAD)
call GroupEnumUnitsInRange(g,x,y,105,Condition(function R6I))
call ForGroup(g,function ND3)
set x=L2I+80*i*Cos((a-90)*bj_DEGTORAD)
set y=L3I+80*i*Sin((a-90)*bj_DEGTORAD)
call GroupEnumUnitsInRange(g,x,y,105,Condition(function R6I))
call ForGroup(g,function ND3)
set i=i+1
endloop
call WWI(g)
set g=null
endif
set t=null
set JMI=null
return false
endfunction
function NF3 takes nothing returns nothing
local unit JMI=GetTriggerUnit()
local real a=GetUnitFacing(JMI)
local integer i=1
local unit P1I
local real x
local real y
local real L2I=GetUnitX(JMI)+225*Cos(a*bj_DEGTORAD)
local real L3I=GetUnitY(JMI)+225*Sin(a*bj_DEGTORAD)
local integer LQ3=(LoadInteger(ZY,(GetHandleId(JMI)),(3001)))
local integer LJ3=(LoadInteger(ZY,(GetHandleId(JMI)),(3002)))
local real P0I=1.5+1.5*LQ3
local trigger t=CreateTrigger()
local integer WQI=GetHandleId(t)
loop
exitwhen i>7
set x=L2I+80*i*Cos((a+90)*bj_DEGTORAD)
set y=L3I+80*i*Sin((a+90)*bj_DEGTORAD)
set P1I=CreateUnit(GetOwningPlayer(JMI),1966092367,x,y,GetRandomReal(0,360))
call SetUnitAbilityLevel(P1I,1395667016,LQ3)
call SetUnitAbilityLevel(P1I,1093687374,LJ3)
call SetUnitAnimation(P1I,"birth")
call QueueUnitAnimation(P1I,"stand")
call UnitApplyTimedLife(P1I,1112820806,P0I)
set x=L2I+80*i*Cos((a-90)*bj_DEGTORAD)
set y=L3I+80*i*Sin((a-90)*bj_DEGTORAD)
set P1I=CreateUnit(GetOwningPlayer(JMI),1966092367,x,y,GetRandomReal(0,360))
call SetUnitAbilityLevel(P1I,1395667016,LQ3)
call SetUnitAbilityLevel(P1I,1093687374,LJ3)
call SetUnitAnimation(P1I,"birth")
call QueueUnitAnimation(P1I,"stand")
call UnitApplyTimedLife(P1I,1112820806,P0I)
set i=i+1
endloop
call TriggerAddCondition(t,Condition(function NE3))
call TriggerRegisterTimerEvent(t,0.1,true)
call SaveReal(ZY,(WQI),(6),((L2I)*1.0))
call SaveReal(ZY,(WQI),(7),((L3I)*1.0))
call SaveReal(ZY,(WQI),(137),((a)*1.0))
call SaveUnitHandle(ZY,(WQI),(2),(JMI))
call SaveReal(ZY,(WQI),(57),((P0I)*1.0))
set P1I=null
set JMI=null
set t=null
endfunction
function NG3 takes nothing returns boolean
if GetSpellAbilityId()==1093686864 then
call NF3()
endif
return false
endfunction
function NH3 takes nothing returns nothing
local trigger t=CreateTrigger()
call M5I(t,EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(t,Condition(function NG3))
call KWI(1395667016,GetRandomReal(1,25))
call KWI(1093687374,GetRandomReal(1,25))
set t=null
endfunction
function NZ3 takes nothing returns nothing
if J9I(GetEnumUnit())==false then
call JLI(OK,GetEnumUnit(),1,TJ)
endif
endfunction
function NV3 takes nothing returns boolean
local trigger t=GetTriggeringTrigger()
local integer WQI=GetHandleId(t)
local unit X6I=(LoadUnitHandle(ZY,(WQI),(14)))
local real JTI=(LoadReal(ZY,(WQI),(20)))
local real x=(LoadReal(ZY,(WQI),(6)))
local real y=(LoadReal(ZY,(WQI),(7)))
local group g=WXI()
local integer WJI
set OK=X6I
call MGI(GetOwningPlayer(X6I),4,x,y,400)
call GroupEnumUnitsInRange(g,x,y,200,Condition(function R3I))
set WJI=CountUnitsInGroup(g)
if WJI<1 then
set WJI=1
endif
set TJ=JTI/WJI
call ForGroup(g,function NZ3)
call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl",x,y))
call WWI(g)
call DestroyEffect((LoadEffectHandle(ZY,(WQI),(32))))
call FlushChildHashtable(ZY,(WQI))
call WMI(t)
set t=null
set X6I=null
set g=null
return false
endfunction
function NW3 takes nothing returns nothing
local trigger t=CreateTrigger()
local integer WQI=GetHandleId(t)
local unit X6I=GetTriggerUnit()
local location l=GetSpellTargetLoc()
local real x=GetLocationX(l)
local real y=GetLocationY(l)
local real JTI=(LoadInteger(ZY,(GetHandleId(X6I)),(3002)))*62.5+12.5+25
local string s=""
if IsPlayerAlly(GetLocalPlayer(),GetOwningPlayer(X6I))==true or(D2 and(GetLocalPlayer()==CS0 or GetLocalPlayer()==CT0))then
set s="Abilities\\Spells\\Items\\VampiricPotion\\VampPotionCaster.mdl"
endif
call TriggerRegisterTimerEvent(t,1.7,false)
call TriggerAddCondition(t,Condition(function NV3))
call SaveUnitHandle(ZY,(WQI),(14),(X6I))
call SaveReal(ZY,(WQI),(6),((x)*1.0))
call SaveReal(ZY,(WQI),(7),((y)*1.0))
call SaveReal(ZY,(WQI),(20),((JTI)*1.0))
call SaveEffectHandle(ZY,(WQI),(32),(AddSpecialEffect(s,x,y)))
call RemoveLocation(l)
set t=null
set X6I=null
set l=null
endfunction
function NX3 takes nothing returns boolean
if GetSpellAbilityId()==1093686855 then
call NW3()
endif
return false
endfunction
function NY3 takes nothing returns nothing
local trigger t=CreateTrigger()
call M5I(t,EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(t,Condition(function NX3))
set t=null
endfunction
function NJ3 takes unit JMI,unit JNI returns nothing
local unit P1I=CreateUnit(GetOwningPlayer(JNI),1697656901,GetUnitX(JNI),GetUnitY(JNI),0)
call MYI(P1I,1093686857)
call IssueTargetOrder(P1I,"thunderbolt",JNI)
if JBI(JNI)==false then
call JLI(JMI,JNI,1,30)
endif
set P1I=null
endfunction
function NK3 takes nothing returns boolean
local trigger t=GetTriggeringTrigger()
local integer WQI=GetHandleId(t)
local integer JPI=(LoadInteger(ZY,(WQI),(30)))
local unit JNI=WEI(JPI)
local integer YNI=(LoadInteger(ZY,(WQI),(5)))
local unit JMI=(LoadUnitHandle(ZY,(WQI),(2)))
if GetTriggerEventId()==EVENT_UNIT_DAMAGED then
if GetEventDamage()>10 and((LoadInteger(ZY,(GetHandleId((t))),((4263))))==1)==false and GetOwningPlayer(GetEventDamageSource())!=GetOwningPlayer(GetTriggerUnit())then
call DisableTrigger(t)
call NJ3(JMI,JNI)
call EnableTrigger(t)
call WUI(t,4263,0.8-YNI*0.0285)
endif
else
call DestroyEffect((LoadEffectHandle(ZY,(WQI),(32))))
call WDI(JPI)
call FlushChildHashtable(ZY,(WQI))
call WMI(t)
endif
set t=null
set JNI=null
set JMI=null
return false
endfunction
function NL3 takes nothing returns nothing
local trigger t=CreateTrigger()
local integer WQI=GetHandleId(t)
local unit X6I=GetTriggerUnit()
local unit JNI=GetSpellTargetUnit()
local integer YNI=(LoadInteger(ZY,(GetHandleId(X6I)),(3001)))
call TriggerRegisterTimerEvent(t,2.5+YNI*0.5,false)
call TriggerRegisterUnitEvent(t,JNI,EVENT_UNIT_DAMAGED)
call TriggerAddCondition(t,Condition(function NK3))
call SaveInteger(ZY,(WQI),(30),(WGI(JNI)))
call SaveInteger(ZY,(WQI),(5),(YNI))
call SaveUnitHandle(ZY,(WQI),(2),(X6I))
call SaveEffectHandle(ZY,(WQI),(32),(AddSpecialEffectTarget("Abilities\\Weapons\\SpiritOfVengeanceMissile\\SpiritOfVengeanceMissile.mdl",JNI,"overhead")))
call NJ3(X6I,JNI)
set t=null
set X6I=null
set JNI=null
endfunction
function NM3 takes nothing returns boolean
if GetSpellAbilityId()==1093686874 then
call NL3()
endif
return false
endfunction