Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Trig_Warlocktrup_Conditions takes nothing returns boolean
- if ( not ( GetSpellAbilityId() == 'A01R' ) ) then
- return false
- endif
- return true
- endfunction
- function ConSep takes nothing returns boolean
- return ( IsUnitAlly(GetTriggerUnit(), GetOwningPlayer(GetSpellAbilityUnit())) == false )
- endfunction
- function Sep takes integer ii returns boolean
- local effect e
- local integer index=1
- local unit eu=GetEnumUnit()
- local real x1=GetUnitX(eu)
- local real y1=GetUnitY(eu)
- local location loc1=Location(x1,y1)
- loop
- exitwhen index > ii
- call UnitDamageTarget(GetSpellAbilityUnit(), eu, (GetHeroInt(GetSpellAbilityUnit(), true)*3.5), true, true, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_MAGIC, null)
- call AddSpecialEffectLoc("Abilities\\Spells\\Human\\Flare\\FlareCaster.mdl",loc1)
- set e=GetLastCreatedEffectBJ()
- call PolledWait(0.1)
- call DestroyEffect(e)
- set index = index+1
- endloop
- endfunction
- function Trig_Warlocktrup_Actions takes nothing returns nothing
- local unit u=GetSpellAbilityUnit()
- local real x=GetUnitX(u)
- local real y=GetUnitY(u)
- local location loc=Location(x,y)
- local real i=GetHeroInt(u, true)
- local integer ii=R2I(i*0.05)
- local group g=CreateGroup()
- call CreateCorpse(GetOwningPlayer(u),'nssp',x,y, 270.0)
- call GroupEnumUnitsInRangeOfLocCounted(g, loc, 512.0, Condition(function ConSep), ii)
- call ForGroup(g,function Sep(ii))
- set u = null
- endfunction
- //===========================================================================
- function InitTrig_Warlocktrup takes nothing returns nothing
- set gg_trg_Warlocktrup = CreateTrigger( )
- call TriggerRegisterAnyUnitEventBJ( gg_trg_Warlocktrup, EVENT_PLAYER_UNIT_SPELL_EFFECT )
- call TriggerAddCondition( gg_trg_Warlocktrup, Condition( function Trig_Warlocktrup_Conditions ) )
- call TriggerAddAction( gg_trg_Warlocktrup, function Trig_Warlocktrup_Actions )
- endfunction
Advertisement
Add Comment
Please, Sign In to add comment