First time macro for enc
Posted: Tue May 04, 2010 3:00 pm
Enchanter.mac
I wrote this with the intention of having the enchanter cast a DOT as soon as the pulled target is in range to pull agro to get the pet to attack. Then continue to cast 2 more spells. My warrior will regain agro during this. Then cast a nuke at 15% mob health. Should be monitoring if arcane rune dropped during this and recast it automaticly.
This is my first attempt at writing. Any problem areas? I tried to add the target better be a npc part to prevent corpse casting ect. I havn't programmed in almost 18 years and it was on basic DOS. I am not sure of some of the delays (if they are needed or not or appropraite) or if I will hit a spam condition. I hope I was close!
I wrote this with the intention of having the enchanter cast a DOT as soon as the pulled target is in range to pull agro to get the pet to attack. Then continue to cast 2 more spells. My warrior will regain agro during this. Then cast a nuke at 15% mob health. Should be monitoring if arcane rune dropped during this and recast it automaticly.
This is my first attempt at writing. Any problem areas? I tried to add the target better be a npc part to prevent corpse casting ect. I havn't programmed in almost 18 years and it was on basic DOS. I am not sure of some of the delays (if they are needed or not or appropraite) or if I will hit a spam condition. I hope I was close!
Code: Select all
| Enchanter Macro
| casts DOT Cripple Slow when in range to pull agro for pet, No AA yet
| Nukes at 15% target
| /assist MA Name
|Casts Arcane Rune automatically
#turbo
#include spell_routines.inc
#event RuneFade “The shimmer of runes fades”
Sub Main
/declare SpellDOT outer “Strangle”
/declare SpellCRIPPLE outer “Cripple”
/declare SpellSLOW outer “Shiftless Deeds”
/declare SpellNUKE outer “Dementing Visions”
/declare SpellRUNE outer “Arcane Rune”
/declare CharName string outer EditYourCharacterNameOutOfYourPostAndReplaceThisWithIt
:loop
/doevents
/if (${Me.Casting.ID}) /goto :loop
/if (!${Target.ID} || ${Target.Type.Equal[PC]} || ${Target.Type.Equal[CORPSE]}) {
/assist ${CharName}
/delay 10
/attack off
/if (${Target.Distance}<200) {/goto :attackloop1} else {/goto :loop}
|Attack Loop 1
:attackloop1
/call cast $(SpellDOT) gem3 3s
/goto :attackloop2
|Attack Loop 2
:attackloop2
/call cast $(SpellCRIPPLE) gem2 25
/goto :attackloop3
|Attack Loop 3
:attackloop3
/call cast $(SpellSLOW) gem1 6s
/goto :attackloop4
|Attack Loop 4
:attackloop4
/if (${Target.PctHPs}<15) {/goto :nuke} else {/goto :attackloop4}
|Nuke
:nuke
/call cast $(SpellNUKE) gem4
/if (${Me.Standing} && !${Me.Mount.ID}) /sit}
/goto :loop
|Sub events
Sub Event_RuneFade
/call cast $(SpellRUNE)
/delay 20
/return