5
56k Fanatic
Guest
Rupture everyones asking for it.
// A0LH = Rupture
function Trig_Bloodseeker_Spell_Rupture_Conditions takes nothing returns boolean
if(not (GetSpellAbilityId()=='A0LH'))then
return false
endif
return true
endfunction
// A0LH = Rupture
function oIoI takes nothing returns nothing
local timer t=GetExpiredTimer()
local string fTT=H2S(t)
local unit ojj=GetStoredDTAXUnit(fTT,"RuptureCaster")
local unit oJJ=GetStoredDTAXUnit(fTT,"RuptureTarget")
local location okk=GetStoredDTAXLocation(fTT,"RuptureOldLoc")
local location oKK=GetUnitLoc(oJJ)
local real n66=.2*GetUnitAbilityLevel(ojj,'A0LH')*DistanceBetweenPoints(okk,oKK)
if(n66>200)then
set n66=0
endif
if(n66>5)then
call DestroyEffect(AddSpecialEffectTarget("Objects\\Spawnmodels\\Human\\HumanBlood\\BloodElfSpellThiefBlood.mdl",oJJ,"origin"))
endif
if(n66>0)then
call UnitDamageTargetBJ(ojj,oJJ,n66,ATTACK_TYPE_HERO,DAMAGE_TYPE_MAGIC)
endif
call RemoveLocation(okk)
call StoreDTAXObject(fTT,"RuptureOldLoc",oKK)
endfunction
// A0LH = Rupture
// e01R = Buff Placer
// A0NH = Rupture Buff
function Trig_Bloodseeker_Spell_Rupture_Actions takes nothing returns nothing
local unit ojj=GetTriggerUnit()
local unit oJJ=GetSpellTargetUnit()
local location oLL=GetUnitLoc(oJJ)
local integer Jhh=GetUnitAbilityLevel(ojj,'A0LH')
local timer t=CreateTimer()
local string fTT=H2S(t)
local unit MQQ
call UnitDamageTargetBJ(ojj,oJJ,50+100*Jhh,ATTACK_TYPE_HERO,DAMAGE_TYPE_MAGIC)
call StoreDTAXObject(fTT,"RuptureCaster",ojj)
call StoreDTAXObject(fTT,"RuptureTarget",oJJ)
call StoreDTAXObject(fTT,"RuptureOldLoc",oLL)
call TimerStart(t,.25,true,function oIoI)
set MQQ=CreateUnit(GetOwningPlayer(oJJ),'e01R',0,0,bj_UNIT_FACING)
call UnitAddAbility(MQQ,'A0NH')
call PolledWait(3+(2*Jhh))
call RemoveUnit(MQQ)
call UnitRemoveAbility(oJJ,'B067')
call PauseTimer(t)
call PolledWait(1)
call FlushStoredMissionShell(fTT)
call DestroyTimer(t)
endfunction
function StartTrigger_Bloodseeker_Spell_Rupture takes nothing returns nothing
set gg_trg_Bloodseeker_Spell_Rupture=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_Bloodseeker_Spell_Rupture,EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(gg_trg_Bloodseeker_Spell_Rupture,Condition(function Trig_Bloodseeker_Spell_Rupture_Conditions))
call TriggerAddAction(gg_trg_Bloodseeker_Spell_Rupture,function Trig_Bloodseeker_Spell_Rupture_Actions)
endfunction
function InitTrig_Bloodseeker_Spell_Rupture takes nothing returns nothing
endfunction
Got it from OpenSourceDotA
// A0LH = Rupture
function Trig_Bloodseeker_Spell_Rupture_Conditions takes nothing returns boolean
if(not (GetSpellAbilityId()=='A0LH'))then
return false
endif
return true
endfunction
// A0LH = Rupture
function oIoI takes nothing returns nothing
local timer t=GetExpiredTimer()
local string fTT=H2S(t)
local unit ojj=GetStoredDTAXUnit(fTT,"RuptureCaster")
local unit oJJ=GetStoredDTAXUnit(fTT,"RuptureTarget")
local location okk=GetStoredDTAXLocation(fTT,"RuptureOldLoc")
local location oKK=GetUnitLoc(oJJ)
local real n66=.2*GetUnitAbilityLevel(ojj,'A0LH')*DistanceBetweenPoints(okk,oKK)
if(n66>200)then
set n66=0
endif
if(n66>5)then
call DestroyEffect(AddSpecialEffectTarget("Objects\\Spawnmodels\\Human\\HumanBlood\\BloodElfSpellThiefBlood.mdl",oJJ,"origin"))
endif
if(n66>0)then
call UnitDamageTargetBJ(ojj,oJJ,n66,ATTACK_TYPE_HERO,DAMAGE_TYPE_MAGIC)
endif
call RemoveLocation(okk)
call StoreDTAXObject(fTT,"RuptureOldLoc",oKK)
endfunction
// A0LH = Rupture
// e01R = Buff Placer
// A0NH = Rupture Buff
function Trig_Bloodseeker_Spell_Rupture_Actions takes nothing returns nothing
local unit ojj=GetTriggerUnit()
local unit oJJ=GetSpellTargetUnit()
local location oLL=GetUnitLoc(oJJ)
local integer Jhh=GetUnitAbilityLevel(ojj,'A0LH')
local timer t=CreateTimer()
local string fTT=H2S(t)
local unit MQQ
call UnitDamageTargetBJ(ojj,oJJ,50+100*Jhh,ATTACK_TYPE_HERO,DAMAGE_TYPE_MAGIC)
call StoreDTAXObject(fTT,"RuptureCaster",ojj)
call StoreDTAXObject(fTT,"RuptureTarget",oJJ)
call StoreDTAXObject(fTT,"RuptureOldLoc",oLL)
call TimerStart(t,.25,true,function oIoI)
set MQQ=CreateUnit(GetOwningPlayer(oJJ),'e01R',0,0,bj_UNIT_FACING)
call UnitAddAbility(MQQ,'A0NH')
call PolledWait(3+(2*Jhh))
call RemoveUnit(MQQ)
call UnitRemoveAbility(oJJ,'B067')
call PauseTimer(t)
call PolledWait(1)
call FlushStoredMissionShell(fTT)
call DestroyTimer(t)
endfunction
function StartTrigger_Bloodseeker_Spell_Rupture takes nothing returns nothing
set gg_trg_Bloodseeker_Spell_Rupture=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_Bloodseeker_Spell_Rupture,EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(gg_trg_Bloodseeker_Spell_Rupture,Condition(function Trig_Bloodseeker_Spell_Rupture_Conditions))
call TriggerAddAction(gg_trg_Bloodseeker_Spell_Rupture,function Trig_Bloodseeker_Spell_Rupture_Actions)
endfunction
function InitTrig_Bloodseeker_Spell_Rupture takes nothing returns nothing
endfunction
Got it from OpenSourceDotA