Code: Select all
|AE stun loop
|Usage /macro ae Spell1 Spell2
|example /macro ae "color skew" "Color shift"
|You need to have the spells you want to use mem'd before activating the macro
#Event CastFizzle "Your spell fizzles!"
#Event CastInterrupt "Your spell is interrupted."
#Turbo 500
Sub Main
/declare StunArray Array2
/declare SpellCount global
/declare CurrCast global
/declare NextCast global
/declare DurationCalc global
/declare ShortRange global
/declare CastTimer timer
/declare DurationTimer timer
/varset DurationTimer 0
/varset CastTimer 10m
/if $defined(Param0)==FALSE {
/echo Usage: /macro ae <SpellName1> <SpellName2>...
/endmacro
}
/varset SpellCount 0
/varset ShortRange 9000
:SpellLoop
/if $defined(Param$int(@SpellCount))==TRUE {
/varset StunArray($int(@SpellCount),0) "@Param$int(@SpellCount)"
/varset StunArray($int(@SpellCount),1) $spell("@Param$int(@SpellCount)",Durration)
/varset StunArray($int(@SpellCount),2) $spell("@Param$int(@SpellCount)",CastTime)
/if n @ShortRange>$spell("@Param$int(@SpellCount)",Range) /varset ShortRange $spell("@Param$int(@SpellCount)",Range)
/varadd SpellCount 1
/goto :SpellLoop
}
/varsub SpellCount 1
/varset CurrCast 0
/varset NextCast 0
:StunLoop
/if n @DurationTimer<=0 /call CastSpell
/if n @CastTimer<=0 {
/varadd NextCast 1
/if n @NextCast>@SpellCount /varset NextCast 0
/varset DurationCalc @StunArray(@CurrCast,1)
/varsub DurationCalc @StunArray(@NextCast,1)
/varset DurationTimer @DurationCalcs
/varset CastTimer 10m
/varset CurrCast @NextCast
}
/target npc radius @ShortRange
/doevents
/if $target()=TRUE /:goto :StunLoop
/return
Sub CastSpell
/if n $char(gem,"@StunArray(@CurrCast,0)")>1 {
/cast "@StunArray(@CurrCast,0)"
/varset CastTimer @StunArray(@CurrCast,1)s
}
/return
Sub Event_CastFizzle
/delay 5
/call CastSpell
/return
Sub Event_CastInterrupt
/delay 5
/call CastSpell
/return

