Perfect Necro Kite Macro at Tables in PoFire

Status
Not open for further replies.

Kalle

Ummmm.....
Joined
Jan 9, 2006
Messages
826
Reaction score
0
Points
16
10% / !00% DONE [/color][/size]


Hi,

i am looking for a perfect Necro Kite Macro. I found an kite macro for Necro. I edit a bit so good i can. and now i need your help. Btw. I don't wanna use this macro for AFK kiting, i box another chars and this is nor really easy if i kite with the necro, so its just a great help for me.

Thats the Situation at Tables in PoFire.



i need some helps to upgrade this Macro.

all mobs lvl 68.

1. Just pull the mobs lower my lvl and not the same. The necro can take the mobs randomly. thats no problem.

2. I tried to edit the macro, but i dont know if its work. I changed FD to /fade (so he zone and do not FD) and start again

3. I need to add some more Dot's

4. 1.The necro should walk to 4 locs and do that every time till mob dead

4.2. I don't need any loot macros here, i can loot, i will not going afk.

5. 1.the necro should cast the Dot's, Buffs and Snare by a timer, when its fading

5.2 the necro should cast new pet after fight and pet is dead

5.3. he should cast Lifetap if the necro falls down under 80% hp and under 30% he should fade and try again.

5.4 If the mob is under 80% and Snare fades, he should recast it and do not /fade

6. if he pulls from the blue Mobs he need to run the blue way and pull from blue pullspot. If he pulls from the red ones, he need to be on the redpullingspot and pull along the redway (This colors are not the Con colors of the mobs)

here is the Code

Code:
Code:
|Necrokite.mac 
|By: Terramantian 
| 
|Edit by: Kalle 
| 
| 
|Simple auto-pulling and kiting macro for a necromancer. 


#turbo 
#include spell_routines.inc 
#include move.inc 

#define PetSpell "Dark Assasin" 
#define PetHaste "Glyph of Darkness" 
#define SnareDOT "Desecrating Darkness" 
#define DamageDOT "Dark Nightmare" 
#define Lifetap "Ancient: Touch of Orchilak" 
#define LichSpell "Dark possession" 

#event Hit "#*#YOU for#*#" 

Sub Main 
   /declare HomeX int outer ${Me.X} 
   /declare HomeY int outer ${Me.Y} 
   /declare PetHastT timer outer 
   /declare SnareT timer outer 
   /declare DamageT timer outer 
   /declare MOB int outer 
   /declare EndX int outer 
   /declare EndY int outer 
   /declare PetAttacking bool outer 

   /if ((${String[${Me.Heading}].Equal[N]}) || (${String[${Me.Heading}].Equal[NNW]}) || (${String[${Me.Heading}].Equal[NNE]})) { 
      /varset EndY ${Math.Calc[${Me.Y} + 350]} 
      /varset EndX ${Me.X} 
   } else /if (${String[${Me.Heading}].Equal[NE]}) { 
      /varset EndY ${Math.Calc[${Me.Y} + 240]} 
      /varset EndX ${Math.Calc[${Me.X} - 240]} 
   } else /if ((${String[${Me.Heading}].Equal[E]}) || (${String[${Me.Heading}].Equal[ENE]}) || (${String[${Me.Heading}].Equal[ESE]})) { 
      /varset EndY ${Me.Y} 
      /varset EndX ${Math.Calc[${Me.X} - 350]} 
   } else /if (${String[${Me.Heading}].Equal[SE]}) { 
      /varset EndY ${Math.Calc[${Me.Y} - 240]} 
      /varset EndX ${Math.Calc[${Me.X} - 240]} 
   } else /if ((${String[${Me.Heading}].Equal[S]}) || (${String[${Me.Heading}].Equal[SSW]}) || (${String[${Me.Heading}].Equal[SSE]})) { 
      /varset EndY ${Math.Calc[${Me.Y} - 350]} 
      /varset EndX ${Me.X} 
   } else /if (${String[${Me.Heading}].Equal[SW]}) { 
      /varset EndY ${Math.Calc[${Me.Y} - 240]} 
      /varset EndX ${Math.Calc[${Me.X} + 240]} 
   } else /if ((${String[${Me.Heading}].Equal[W]}) || (${String[${Me.Heading}].Equal[WNW]}) || (${String[${Me.Heading}].Equal[WSW]})){ 
      /varset EndY ${Me.Y} 
      /varset EndX ${Math.Calc[${Me.X} + 350]} 
   } else /if (${String[${Me.Heading}].Equal[NW]}) { 
      /varset EndY ${Math.Calc[${Me.Y} - 240]} 
      /varset EndX ${Math.Calc[${Me.X} + 240]} 
   }      

   /call Initialize 

   :Loop 
    
   /call PullMob 
   /call KiteMob 
   /varset PetAttacking 0 
|   /call LootMob 
   /call Downtime 
   /goto :Loop 
    
/return 

Sub Initialize 
   /if (!${Me.Pet.ID}) /call Cast "PetSpell" 
   /pet guard here 
   /pet taunt 
   /call Cast "PetHaste" 
   /varset PetHastT ${Math.Calc[${Spell[PetHaste].Duration} * 6]}s 
   /call Cast "LichSpell" 
   :MedCheck 
   /if (${Me.PctMana} < 70) { 
      /if (!${Me.Sitting}) /sit 
      /delay 1m (${Me.PctMana} > 80) 
      /goto :MedCheck 
   } 
/return 


Sub PullMob 
   :PullBegin 

   /doevents 
   /varset MOB ${Spawn[nopcnear 400 npc range ${Math.Calc[${Me.Level} * .75]} ${Me.Level} radius 1000].ID} 
   :TarLoop 
   /if ((${Spawn[id ${MOB}].PctHPs} < 100) || (!${String[${Spawn[${MOB}].Type}].Compare["Pet"]})) {    
      /varset MOB ${Spawn[nopcnear 400 npc id ${MOB} range ${Math.Calc[${Me.Level} * .75]} ${Me.Level} radius 1000 next].ID}  
      /goto :TarLoop 
   } 
   /call MoveToSpawn ${MOB} 120 
   /target id ${MOB} 
   /assist 
   /delay 1s 
   /doevents 
   /if ((${Target.ID} != ${MOB}) && (${Target.ID} != ${Me.ID})) { 
      /call MoveToLoc ${HomeY} ${HomeX} 
      /goto :PullBegin 
   } 
   /if (${Target.PctHPs} < 100) /goto :PullBegin 

   /doevents 

   /call Cast "SnareDOT" 
   /if (!${Macro.Return.Equal[CAST_SUCCESS]}) { 
      /call Cast "Feign Death" 
      /delay 3m (${Target.Distance} > 100) 
      /call MoveToLoc ${HomeY} ${HomeX} 
      /goto :PullBegin 
   } 
   /varset SnareT ${Math.Calc[${Spell[SnareDOT].Duration} * 6]}s 
   /call MoveToLocF ${HomeY} ${HomeX} 150 
/return 

Sub KiteMob 
  

   :KiteLoop 
   /doevents 
   /call MoveToLocF ${EndY} ${EndX} 200 
   /if (!${Target.ID}) /return 
   /doevents 
   /if (${SnareT} <= 200) { 
      /call Cast "SnareDOT" 6s 
      /if (${Macro.Return.Equal[CAST_SUCCESS]}) /varset SnareT ${Math.Calc[${Spell[SnareDOT].Duration} * 6]}s 
   } 
   /if (${SnareT} == 0) { 
      /echo Snare DOT is not on... zoneing 
      /fade 60s 
      /if (${Me.Buff[LichSpell].ID}) /notify BuffWindow Buff${Int[${Math.Calc[${Me.Buff[LichSpell].ID}-1]}]} leftmouseup 
      /mqpause 
   } 
   /if ((${Target.Distance} > ${Math.Calc[${Target.Speed} / 4 * ${Spell[Lifetap].MyCastTime}]}) && (${Me.PctHPs} < 80)) { 
      /call Cast "Lifetap" 
   } 
   /if ((${Target.Distance} > ${Math.Calc[${Target.Speed} / 4 * ${Spell[DamageDOT].MyCastTime}]}) && (${DamageT} <= 150)) { 
      /call Cast "DamageDOT" 
      /if (${Macro.Return.Equal[CAST_SUCCESS]}) /varset DamageT ${Math.Calc[${Spell[DamageDOT].Duration}* 6]}s 
   } 
   /if ((!${PetAttacking}) && (${Target.PctHPs} < 50)) { 
      /pet attack 
      /varset PetAttacking 1 
   } 
   /delay 10s (${Target.Distance} <= 50) 
   /face fast nolook 
   /if (!${Target.ID}) /return 

   /keypress strafe_right hold 
   /delay 20 
   /keypress strafe_right 
   /call MoveToLocF ${HomeY} ${HomeX} 200 
   /if (!${Target.ID}) /return 
   /doevents 
   /if (${SnareT} <= 200) { 
      /call Cast "SnareDOT" 12s 
      /if (${Macro.Return.Equal[CAST_SUCCESS]}) /varset SnareT ${Math.Calc[${Spell[SnareDOT].Duration} * 6]}s 
   } 
   /if (${SnareT} == 0) { 
      /echo Snare DOT is not on... zoning 
      /fade 60s 
      /if (${Me.Buff[LichSpell].ID}) /notify BuffWindow Buff${Int[${Math.Calc[${Me.Buff[LichSpell].ID}-1]}]} leftmouseup 
      /mqpause 
   } 
   /if ((${Target.Distance} > ${Math.Calc[${Target.Speed} / 4 * ${Spell[Lifetap].MyCastTime}]}) && (${Me.PctHPs} < 80)) { 
      /call Cast "Lifetap" 
   } 
   /if ((${Target.Distance} > ${Math.Calc[${Target.Speed} / 4 * ${Spell[DamageDOT].MyCastTime}]}) && (${DamageT} <= 150)) { 
      /call Cast "DamageDOT" 
      /if (${Macro.Return.Equal[CAST_SUCCESS]}) /varset DamageT ${Math.Calc[${Spell[DamageDOT].Duration}* 6]}s 
   } 
   /if ((!${PetAttacking}) && (${Target.PctHPs} < 50)) { 
      /pet attack 
      /varset PetAttacking 1 
   } 
   /delay 10s (${Target.Distance} <= 50) 
   /face fast nolook 
   /if (!${Target.ID}) /return 

   /keypress strafe_right hold 
   /delay 15 
   /keypress strafe_right 
   /if (!${Target.ID}) /return 
   /doevents 
   /goto :KiteLoop 
/return 


Sub Downtime 

   /call MoveToLoc ${HomeY} ${HomeX} 
   /if (!${Me.Pet.ID}) { 
      /call Cast "PetSpell" 
      /pet guard here 
      /pet taunt 
   } 
   /call Cast "LichSpell" 
   :MedCheck 
   /if (${Me.PctHPs} < 30) { 
      /if (${Me.Buff[LichSpell].ID}) /notify BuffWindow Buff${Int[${Math.Calc[${Me.Buff[LichSpell].ID}-1]}]} leftmouseup 
   } 
   /if (${Me.PctMana} < 70) { 
      /if (!${Me.Sitting}) /sit 
      /doevents 
      /delay 300 (${Me.PctMana} > 80) 
      /goto :MedCheck 
   } 
   /call Cast "LichSpell" 
   /if (${PetHastT} < 300) { 
      /call Cast "PetHaste" 
      /varset PetHastT ${Math.Calc[${Spell[PetHaste].Duration} * 6]}s 
   } 
   /doevents 

/return 


| Sub MoveToLoc   F                                 | 
|---------------------------------------------------| 
|This simply moves the player to within 1 unit of   | 
|the requested location, while avoiding obstacles   | 
|                                                   | 
|This is beatnik007's original sub, with a few minor| 
|changes and rewritten in MQ2Data format            | 
|                                                   | 
|                                                   | 
|F is for Follow. designed for pulling or kiting,   | 
|If the mob's distance exceeds Distance, it will 
|pause and wait for the mob to catch up. 
| 
|SYNTAX: /call MoveToLocF Y X Distance              | 


Sub MoveToLocF(MoveToY, MoveToX, FDistance) 

    /declare FailureTimer timer local 0 
    /declare StrafeFailure int local 
    /declare running int local 
    /declare MaxSpeed int local 
    /declare StopDistance int local 
    /declare distanceNow float local 
    /declare distanceBefore float local 
    /declare distanceModifier int local 
    /varset running 0 
    /declare distanceTimer timer 15 
    /varset distanceBefore ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]} 
    /varset distanceModifier 1 
    /varset MaxSpeed 0 
    :moveToLocation 

   /if (${Me.Speed}>=${MaxSpeed}) /varset MaxSpeed ${Me.Speed} 
   /if (${MaxSpeed}<=166) { 
      /varset StopDistance 3 
   } else { 
      /varset StopDistance 10 
   } 

    /face fast nolook loc ${MoveToY},${MoveToX} 

    /if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}<${StopDistance}) { 
        /keypress forward 
        /return 
    } 

    /if (${distanceTimer}==0) { 
        /if (${Me.Sneaking}) { 
            /varset distanceModifier 2 
        } else { 
            /varset distanceModifier 1 
       } 

        /varset distanceNow ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]} 
        /if (${Math.Calc[${distanceBefore}-${distanceNow}]}<${Math.Calc[10/${distanceModifier}]}) { 
           /if (${FailureTimer}==0) { 
              /varset StrafeFailure 0 
              /varset FailureTimer 600 
           } 
           /if (${FailureTimer}>0) { 
              /varset StrafeFailure ${Math.Calc[${StrafeFailure} + 1]} 
           } 
      /if (${StrafeFailure}>=10 && ${FailureTimer}>0) { 
             /keypress forward 
             /keypress back hold 
             /delay 5 
                 /keypress back 
         /afk Sorry no time to flirt, i am kiting 
         /echo Your movement failed more than 10 times in 30 seconds and most likely looked macroed.  Ending macro. . . 
         /endmacro 
         /quit 
      } 
            /call strafePastObstacle ${StrafeFailure} 
        } 

        /varset distanceBefore ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]} 
        /varset distanceTimer 15 
    } 

    /if (${running}==0) { 
        /keypress forward 
        /if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}>${StopDistance}) { 
            /varset running 1 
            /keypress forward hold 
        } 
    } else { 
        /if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}<${StopDistance}) { 
            /varset running 0 
            /keypress forward 
        } 
    } 
    /if (${Target.Distance} > ${FDistance}) { 
        /keypress forward 
        /delay 5s (${Target.Distance} < ${Math.Calc[${FDistance} * .75]}) 
        /if (${running}) /keypress forward hold 
    } 
    /if (${Me.PctHPs} < 30) { 
        /echo Low health on pull, FDING 
        /call Cast "Feign Death" 
        /if (${Me.Buff[LichSpell].ID}) /notify BuffWindow Buff${Int[${Math.Calc[${Me.Buff[LichSpell].ID}-1]}]} leftmouseup 
        /mqpause 
    } 
    /goto :moveToLocation 
/return 

Sub Event_Hit 

  /if (!${PetAttacking}) /pet back off 
  /if (${Me.PctHPs} < 30) { 
     /echo Low health, FDING 
     /call Cast "Feign Death" 
     /if (${Me.Buff[LichSpell].ID}) /notify BuffWindow Buff${Int[${Math.Calc[${Me.Buff[LichSpell].ID}-1]}]} leftmouseup 
     /mqpause 
  } 
/return

Here some Screenshots:

Tables.JPG


Map.jpg


front.jpg


right.jpg




I need 2 pull points,cause my spellrange is not so far to pull from the middle. That i mean with Red pullpoint and bluepull point. At red pullpoint i will just pull the red marked mob and at blue Pull point only the blue ones. And the blue lines in the first picture (in my first Post) is the kite-way of the blue mobs and the red line is the kite-way of the red mobs. The yelow line should show me and my way to kite. U see in the "Front" picture a great "door", there will be spawn a named, which cannot kite. He is my lvl, so i need to pull only the lower mobs.

hope u understand, if u still do not understand my zerrible english and the bad pictures just tell me. i will try to explain u. (i am german btw)


btw. Don't be confused. I forgot to mobs on my first picture (in my first post).

Hope u can help me a bit. U don't need to writ this macro to the end. I will be fine if u give me the commands to wirte that. Hope so


Best greetings

Kalle
 
Kalle, how good is this macro? I recently switched mains and my necro has only got a few level 69/70 spells, so I just need to switch the DEFINES in the first few line to make up for that?
 
WickedMofo said:
Kalle, how good is this macro? I recently switched mains and my necro has only got a few level 69/70 spells, so I just need to switch the DEFINES in the first few line to make up for that?

Sry wicked, that was my first post... never used this, but looks like a bad necro macro. there are better necro macros at MQ VIP Section... like Necromonger... this is a macro to kite light blue mobs, but not mobs which can kill you ;)
 
Kalle said:
Sry wicked, that was my first post... never used this, but looks like a bad necro macro. there are better necro macros at MQ VIP Section... like Necromonger... this is a macro to kite light blue mobs, but not mobs which can kill you ;)

Have you found any Macros that are useful for RAIDING? For instance when a mob enrages it calls pet back. I do recall seeing a FEED me mana macro floating around, I am going to use that one.
 
WickedMofo said:
Have you found any Macros that are useful for RAIDING? For instance when a mob enrages it calls pet back. I do recall seeing a FEED me mana macro floating around, I am going to use that one.

May i post Macros from VIP section ?
 
Never tried a NacroMacro....

there is a Wiki Necro Macro:
http://www.macroquest2.com/wiki/index.php/Necro_Helper

Necro macro for group and raid, but only DPS...
http://www.macroquest2.com/phpBB2/viewtopic.php?t=8538&highlight=necro

Necromonger, with this macro u can record your kite path...
http://www.macroquest2.com/phpBB2/viewtopic.php?t=12782


I have no clue if they work or not. U can try out... but if i have much time i will try to prog my own Necro macro, cause that macros are not good for all necros, they are specifice of one necro... cause they use exchange of tems which i do not wear....
 
If the Author doesnt say "Do not post these anywhere else" and the authors name is shown here, I dont really see why it would be a problem to post the macro here myself. Credit is being given when you state the author's name.
 
Pepper said:
If the Author doesnt say "Do not post these anywhere else" and the authors name is shown here, I dont really see why it would be a problem to post the macro here myself. Credit is being given when you state the author's name.

Yeah what Pepper said pretty much is all i'll enforce. If the author contacts me about not wanting it posted here it will also be removed.

I want MMOBugs to be as helpful as it can to its members while trying not to piss people off :)

If someones code is posted here and they don't have access please get them to contact me and i'll grant them free access.


Fry.
 
So, has anyone come out with anything for a necro macro or a tables kiting macro? I'm curious to see what has developed in the past couple of months with this.

-Drak
 
Nut sure if you look at this much but I play a necro at raids and most the time I 'm using Krust's UI / Macro / Plugin at them and it auto pulls my pet back when mobs enrage. It also auto clicks the clickies I use. but I still have to twitch people myself.
 
Here is a Necro Macro


Necromancer.mac

Code:
s| *********************************************************** 
| ******************** FredFlintstone *********************** 
| *********************************************************** 
| Necromancer Ver 0.2.1 
| started 5/10/05 released 6/10/05 updated 1/10/06 
| Just type /mac necromancer with the Main Assist Targeted 
| Functions: (These also work in tells, say, group, etc...) 
|      type /e Raid Mode - for Raid dot casting 
|      type /e Normal Group Mode - for Group casting 
|      type /e POF Group Mode - for Plane of Fire group casting 
|      type /e Stop Robe - to stop using mana robe 
|      type /e Start Robe - to start using mana robe 
|      type /e Option Check - to check options 
| Following: 
|   have someone tell or say in group "This way" - for follow mode 
|   have someone tell or say in group "Wait here" - to stop following 
|      (for follow commands you need to add the names of people 
|      you want to follow on in the FollowOnly array. This way 
|      not just anyone will be able to tell you to follow 
|      them.) 
| 
| DMF Functions: 
|      Auto DMF from tells or group chat, to common requests (not all) 
|      have someone type "Group DMF" in tell or group for Group DMF 
| 
| Group Buff Functions: (Also works in tells, say, group, etc...) 
|   type /e Check group buffs - to check for buffs needed by 
|      class in group. It will then ask in /group for them (beta) 
|   type /e Check group buffs off - to turn this feature off 
| 
| You must also make a spell set with all the 1st level spells 
| called xxxx this is used to clear out all the spell gems so 
| the proper spell can be put in the proper slot. 
| 
| Ver 0.1.2 additions 
| (These also work in tells, say, group, etc...) 
| Stay Feigned Function:    
|   type /e FD FD FD - to FD and stay feigned (re-feign if its broke) 
|   type /e Get up now - to end stay feigned 
| Face Mob Function: 
|   type /e Face off - to stop turning to MOB 
|   type /e Face on - to start again 
| Twitch Function: 
|   /type /e TwitchOn - to turn twitching on. 
|   /type /e TwitchOff - to turn twitching off. 
|      Works when someone sends you a tell or group chat saying "Twitch Me", 
|      it will chain twitch both spells until you say "Stop Twitching" anywhere. 
| 
| Ver 0.1.3 Additions 
| (These also work in tells, say, group, etc...) 
| Epic casting Function: (Even gets in range, then backs up again.) 
|   type /e Epic On - to turn epic casting on. 
|   type /e Epic Off - to turn epic casting off. 
| AoD usage function: 
|   type /e AOD On - to turn Army on. 
|   type /e AOD Off - to turn Army off. 
| Skel Archers function 
|   type /e Arch On - to turn Archers on. 
|   type /e Arch Off - to turn Archers off. 
| 
| Ver 0.1.4 Additions 
| (These also work in tells, say, group, etc...) 
| FD switch to not FD unless you are hit, usually toon FD's during DOT casting. 
|   type /e Good Tank - Turns FD off. 
|   type /e Shitty Tank - Turns auto FD on 
| 
| Ver 0.1.5 Additions 
|   Added mend companion and FD for pet 
|   type /e MindW On - to turn mind wrack usage on. 
|   type /e MindW Off - to turn mind wrack off. 
|   type /e OOW Zone - to MW everything. 
|   type /e Dont Snare - for no snare. 
|   type /e Snare Mobs - to snare mobs. 
| 
| Ver 0.2.0 Changes 
|   Removed the use of Pet.inc because of the string issues 
| 
| Ver 0.2.1 Changes 
|   Changed Magic Dot 1 to Ancient 
|   Changed LifeTap to Ancient 
|   Changed to Epic 2.0 
|   Fixed a few bugs that I forgot to write down... 
| 
| This was about 85% writen by me but, I took pieces from other mac's 
| too many to list so I would just like to thank anyone who posted 
| a macro in the VIP area. 
| 
| You MUST have the following; 
|               MQ2MoveUtils 
|               MQ2Exchange Plugin from VIP area 
|               Spell_Routines.inc 
|               PetBuff.inc in MQ2\Release\Macros\common folder 
| 
| In Works; 
|      Nada ATM 
| 

#turbo 40 
#chat group 
#chat tell 
#Event Enrage "#*#has become ENRAGED#*#" 
#Event Rampage "#*#goes on a RAMPAGE!#*#" 
#Event Attacked "#*#You have been summoned#*#" 
#Event Attacked "#*#but YOUR magical skin absorbs the blow!#*#" 
#Event Attacked "#*#YOU for #*##*# points of damage.#*#" 
#Event Attacked "#*#YOU, but misses!#*#" 
#Event Attacked "#*#YOU, but YOU dodge!#*#" 
#Event EmeFD "#*#FD FD FD#*#" 
#Event EmeFDOff "#*#Get up now#*#" 
#Event FaceOff "#*#Face Off#*#" 
#Event FaceOn "#*#Face On#*#" 
#Event EpicOn "#*#Epic On#*#" 
#Event EpicOff "#*#Epic Off#*#" 
#Event AODOn "#*#AOD On#*#" 
#Event AODOff "#*#AOD Off#*#" 
#Event ArchOn "#*#Arch On#*#" 
#Event ArchOff "#*#Arch Off#*#" 
#Event GoodTank "#*#Good Tank#*#" 
#Event GoodTankOff "#*#Shitty Tank#*#" 
#Event TrashMobs "#*#Normal Group Mode#*#" 
#Event BossMob "#*#Raid Mode#*#" 
#Event FireGroup "#*#POF Group mode#*#" 
#Event NoHorse "#*#You can not summon a mount here#*#" 
#Event TwitchModeOn "#*#TwitchOn#*#" 
#Event TwitchModeOff "#*#TwitchOff#*#" 
#Event TwitchMeOff "#*#Stop Twitching#*#" 
#Event PetFocusOff "#*#No longer focusing on one target, Master#*#" 
#Event FollowOff "#*#Wait here#*#" 
#Event CheckGroupBuff "#*#Check group buffs#*#" 
#Event CheckGroupBuffOff "#*#Check group buffs off#*#" 
#Event NoSOW "#*#You can only cast this spell in the outdoors#*#" 
#Event CantDMFHere "#*#This spell does not work here#*#" 
#Event StuckLoop "#*#You must first select a target for this spell#*#" 
#Event StopRobe "#*#stop robe#*#" 
#Event StartRobe "#*#Start robe#*#" 
#Event SymbolOff "#*#The mystic symbol fades#*#" 
#Event SpellHasteOff "#*#Your thoughts slow#*#" 
#Event FocusOff "#*#You lose your focus#*#" 
#Event SenseOff "#*#The ancestral grace fades#*#" 
#Event StaOff "#*#The ancestral vigor fades#*#" 
#Event BBBOff "#*#The brawny bulwark fades#*#" 
#Event SteelOakOff "#*#Your skin loses its oaken resilience#*#" 
#Event SOTOff "#*#The hunter's strength departs#*#" 
#Event GOBOff "#*#Your gift of brilliance fades#*#" 
#Event CheckOptions "#*#Check Options#*#" 
#Event PetFeignFailed "#*#|${Me.Pet.Name}| has fallen to the ground#*#" 
#Event MindWrackOn "#*#MindW On#*#" 
#Event MindWrackOff "#*#MindW Off#*#" 
#Event OOWZoneSwitch "#*#OOW Zone#*#" 
#Event DontSnare "#*#Dont Snare#*#" 
#Event SnareMob "#*#Snare Mobs#*#" 
| ------------------------ Magic Dots ------------------------------------ 
#Event MagicDot1Off "#*#Your Ancient: Curse of Mori spell has worn off#*#" 
#Event MagicResisted "#*#Your target resisted the Ancient: Curse of Mori spell#*#" 
#Event MagicDot1LandedEvent "#*#skin dissolves away#*#" 
#Event MagicDot2Off "#*#Your Horror spell has worn off#*#" 
#Event MagicDot2Resisted "#*#Your target resisted the Horror spell#*#" 
#Event MagicDot2LandedEvent "#*#screams in abject terror#*#" 
#Event LeachedOn "#*#is pierced by a dark fang#*#" 
#Event LeachedOff "#*#Your Fang of Death spell has worn off#*#" 
| ------------------------ Fire Dots ------------------------------------- 
#Event FireDot1Off "#*#Your Pyre of Mori spell has worn off#*#" 
#Event FireResisted "#*#Your target resisted the Pyre of Mori spell#*#" 
#Event FireDot1LandedEvent "#*#is enveloped in the pyre of Mori#*#" 
#Event FireDot2Off "#*#Your Pyrocruor spell has worn off#*#" 
#Event FireDot2Resisted "#*#Your target resisted the Pyrocruor spell#*#" 
#Event FireDot2LandedEvent "#*#blood ignites#*#" 
| ----------------------- Poison Dots ------------------------------------ 
#Event PoisonDot1Off "#*#Your Chaos Venom spell has worn off#*#" 
#Event PoisonDot1Resisted "#*#Your target resisted the Chaos Venom spell#*#" 
#Event PoisonDot1LandedEvent "#*#blood burns with the venom of chaos#*#" 
#Event PoisonDot2Off "#*#Your Blood of Thule spell has worn off#*#" 
#Event PoisonDot2Resisted "#*#Your target resisted the Blood of Thule spell#*#" 
#Event PoisonDot2LandedEvent "#*#veins turn a vile shade of green#*#" 
| ----------------------- Disease Dots ----------------------------------- 
#Event DiseaseDot1Off "#*#Your Grip of Mori spell has worn off#*#" 
#Event DiseaseDot1Resisted "#*#Your target resisted the Grip of Mori spell#*#" 
#Event DiseaseDot1LandedEvent "#*#staggers under the grip of Mori#*#" 
#Event DiseaseDot2Off "#*#Your Chaos Plague spell has worn off#*#" 
#Event DiseaseDot2Resisted "#*#Your target resisted the Chaos Plague spell#*#" 
#Event DiseaseDot2LandedEvent "#*#muscles begin to decay#*#" 
| ---------------------------- Snare ------------------------------------- 
#Event SnareOff "#*#Your Desecrating Darkness spell has worn off#*#" 
#Event SnareResisted "#*#Your target resisted the Desecrating Darkness spell#*#" 
#Event SnareLandedEvent "#*#is covered in bubbling black shadows#*#" 
#Event SnareImmune "#*#Your target is immune to changes in its run speed#*#" 
#Event LeachOff "#*#Your Fang of Death spell has worn off#*#" 

#include Spell_Routines.inc 
#include common\PetBuff.inc 

Sub Main 

/declare MaxCastsResist int outer 3 
/declare M_Assist string outer 
/declare FollowOn string outer 
| ------------------------------------------------------------------- 
| - Change these to the people you want to follow add or sub if nec. 
| ------------------------------------------------------------------- 
/declare FollowOnly[4] string outer 
/varset FollowOnly[1] Fred 
/varset FollowOnly[2] Barney 
/varset FollowOnly[3] Wilma 
/varset FollowOnly[4] Bam Bam 
| ------------------------------------------------------------------- 
/declare Following int outer 0 
/declare TrashMob bool outer FALSE 
/declare TimesFeigned int outer 0 
/declare TimesFeignedEnd int outer 0 
/declare TimesFeidnedNumber int outer 3 
/declare FeignNow bool outer FALSE 
/declare CanMount bool outer TRUE 
/declare CanSOW bool outer TRUE 
/declare CanDMFHere bool outer TRUE 
/declare CheckGroupBuffs bool outer FALSE 
/declare FireGroupDots bool outer FALSE 
/declare FaceMOB bool outer TRUE 
/declare FDFDFD bool outer TRUE 
/declare EpicSwitch bool outer FALSE 
/declare EpicReady bool outer TRUE 
/declare EpicMoved bool outer FALSE 
/declare EpicDistance int outer 
/declare Epic outer "Deathwhisper" 
/declare AOD bool outer FALSE 
/declare AODMoved bool outer FALSE 
/declare AODDistance int outer 
/declare Arch bool outer FALSE 
/declare ArchMoved bool outer FALSE 
/declare ArchDistance int outer 
/declare DoNotFD bool outer FALSE 
/declare PetFeignReady bool outer TRUE 
/declare DontSnareMob bool outer FALSE 
| ----------------------- Buffs ------------------------------------- 
/declare Rune outer "Dull Pain" 
/declare Shielding outer "Shadow Guard" 
/declare Boot outer "Fabled Journeyman's Boots" 
/declare Ring outer "Coldain Hero's Insignia Ring" 
/declare Belt outer "Belt of Tidal Energy" 
/declare Mount outer "White Chain Bridle" 
/declare Lich outer "Dark Possession" 
/declare DMF outer "Dead Man Floating" 
/declare GroupDMF outer "Dead Men Floating" 
/declare Rune1 outer "Wand of Impenetrable Force" 
/declare Robe1 outer "Mana Robe" 
/declare Robe2 outer "Nolaen's Lifereaper Robe" 
/declare ManaRobe bool outer TRUE 
/declare Twitch bool outer FALSE 
/declare Twitch1 string outer "Sedulous Subversion" 
/declare Twitch2 string outer "Covetous Subversion" 
/declare MindW string outer "Mind Flay" 
/declare MindWrackSwitch bool outer FALSE 
/declare OOWZone bool outer FALSE 
/declare Pet outer "Dark Assassin" 
| --------------------- Group Buffs Section -------------------------- 
/declare SymbolAsked bool outer FALSE 
/declare SpellHasteAsked bool outer FALSE 
/declare ClericInGroup bool outer FALSE 
/declare OakAsked bool outer FALSE 
/declare DruidInGroup bool outer FALSE 
/declare FocusAsked bool outer FALSE 
/declare StaAsked bool outer FALSE 
/declare SenseAsked bool outer FALSE 
/declare ShamanInGroup bool outer FALSE 
/declare BBBAsked bool outer FALSE 
/declare PalidinInGroup bool outer FALSE 
/declare SOTAsked bool outer FALSE 
/declare RangerInGroup bool outer FALSE 
/declare GOBAsked bool outer FALSE 
/declare EnchanterInGroup bool outer FALSE 
| --------------------- Pet Buffs ------------------------------------ 
/declare Pethaste outer "Glyph of Darkness" 
/declare PetShield outer "Bulwark of Calliav" 
/declare PetAC outer "Spirit Armor" 
/declare Shrink outer "" 
| -------------------- Magic Dots ------------------------------------ 
/declare MagicDot1 outer "Ancient: Curse of Mori" 
/declare MagicDot1Resisted int outer 0 
/declare MagicDot1Landed bool outer FALSE 
/declare MagicDot1Resistant bool outer FALSE 
/declare MagicDot2 outer "Dagger of Death" 
/declare MagicDot2Resisted int outer 0 
/declare MagicDot2Landed bool outer FALSE 
/declare MagicDot2Resistant bool outer FALSE 
/declare MagicDot2Ready bool outer TRUE 
| -------------------- Fire Dots ------------------------------------- 
/declare FireDot1 outer "Dread Pyre" 
/declare FireDot1Resisted int outer 0 
/declare FireDot1Landed bool outer FALSE 
/declare FireDot1Resistant bool outer FALSE 
/declare FireDot2 outer "Pyre of Mori" 
/declare FireDot2Resisted int outer 0 
/declare FireDot2Landed bool outer FALSE 
/declare FireDot2Resistant bool outer FALSE 
| -------------------- Poison Dots ----------------------------------- 
/declare PoisonDot1 outer "Chaos Venom" 
/declare PoisonDot1Resisted int outer 0 
/declare PoisonDot1Landed bool outer FALSE 
/declare PoisonDot1Resistant bool outer FALSE 
/declare PoisonDot2 outer "Blood of Thule" 
/declare PoisonDot2Resisted int outer 0 
/declare PoisonDot2Landed bool outer FALSE 
/declare PoisonDot2Resistant bool outer FALSE 
| -------------------- Disease Dots ---------------------------------- 
/declare DiseaseDot1 outer "Grip of Mori" 
/declare DiseaseDot1Resisted int outer 0 
/declare DiseaseDot1Landed bool outer FALSE 
/declare DiseaseDot1Resistant bool outer FALSE 
/declare DiseaseDot2 outer "Chaos Plague" 
/declare DiseaseDot2Resisted int outer 0 
/declare DiseaseDot2Landed bool outer FALSE 
/declare DiseaseDot2Resistant bool outer FALSE 
/declare DiseaseDot2Ready bool outer TRUE 
| --------------------- Tap/Leach/DD --------------------------------- 
/declare Lifetap outer "Ancient: Touch of Orshilak" 
/declare Leach outer "Fang of Death" 
/declare LeachedMob bool outer FALSE 
/declare NukePoi outer "Acikin" 
/declare NumberOfNukes int outer 0 
| ------------------------ Snare ------------------------------------ 
/declare Snare outer "Desecrating Darkness" 
/declare SnareResisted int outer 0 
/declare SnareLanded bool outer FALSE 
/declare SnareResistant bool outer FALSE 

   /echo Necromancer(tm) by FredFlintstone Loading... 
   /if (!${Target.ID} || ${Target.Type.NotEqual[PC]}) { 
      /echo Your target is NOT a player, make sure its a player character! 
      /endmacro 
   } else { 
      /varset M_Assist ${Target.Name} 
      /echo Assist set to ${M_Assist} 
      /assist off 
   } 
   /echo Checking Personal/Pet buffs, casting if needed. 
   /if (!${Me.Pet.ID}) { 
      /memspell 9 ${Pet} 
      /delay 70 
      /call cast ${Pet} 9 
      /call cast ${Pet} 9 
   } else { 
      /echo You have a pet! 
   } 
   /call Pet_Buff 
   /pet focus 
   /call CheckSelfBuffs 
   /call MemSpells 

:Main_Loop 

   /if (!${Me.Pet.ID}) { 
      /memspell 9 ${Pet} 
      /delay 70 
      /call cast ${Pet} 9 
      /pet focus 
      /call Pet_Buff 
      /call MemSpells 
   } 
   /if (${FeignNow}) { 
      /call FeignDeath 
   } 

:Hold_Main 

   /doevents 
   /call CheckSelfBuffs 

   /call GetTarget 
   /if (${Target.Type.Equal[NPC]} && ${Target.Distance}<200 && ${Target.PctHPs}<=98) { 
      /pet attack 
      /call DotCasting 
      /goto :Hold_Main 
   } else { 
      /goto :Main_Loop 
   } 
   /goto :Main_Loop 
   /return 

| ############################ Sub's ################################ 

Sub GetTarget 

   /assist ${M_Assist} 
   /if (${Target.Type.Equal[NPC]} && ${Target.Distance}<200) { 
      /if (${FaceMOB}) { 
         /face 
      }    
   } 
   /delay 1 
   /return 

Sub CheckSelfBuffs 

   /if (${CanDMFHere}) { 
      /if (!${Me.Buff[Dead Man Floating].ID} && !${Me.Buff[Dead Men Floating].ID}) { 
         /target ${Me.CleanName} 
         /delay 5 
         /memspell 6 ${DMF} 
         /memspell 6 ${DMF} 
         /call cast ${DMF} gem6 
         /memspell 6 ${NukePoi} 
         /delay 5    
      } 
   } 
   /if (!${Me.Buff[Dark Possession].ID}) { 
      /memspell 6 ${Lich} 
      /call cast ${Lich} gem6 
      /memspell 6 ${NukePoi}    
      /delay 5 
   } 
   /if (!${Me.Buff[Dull Pain].ID}) { 
      /memspell 6 ${Rune} 
      /call cast ${Rune} gem6 
      /memspell 6 ${NukePoi}    
      /delay 5 
   } 
   /if (!${ShamanInGroup}) { 
      /if (!${Me.Buff[Wunshi's Focusing].ID} && !${Me.Buff[Talisman of Wunshi].ID} && !${Me.Buff[Shadow Guard].ID}) { 
         /memspell 6 ${Shielding} 
         /call cast ${Shielding} gem6 
         /memspell 6 ${NukePoi}    
         /delay 5 
      } 
   /if (${Me.Pet.ID}) { 
      /if (!${Me.PetBuff[Glyph of Darkness]}) { 
         /memspell 6 ${Pethaste} 
         /delay 350 
         /call cast ${Pethaste} gem6 
         /memspell 6 ${NukePoi}    
         /delay 5 
      } 
   } 
| ------------------------------------------------------------------------------------------- 
| -------------------------------- Check Buff Section in Beta ------------------------------- 
| ------------------------------------------------------------------------------------------- 
   /if (${CheckGroupBuffs}) { 

      /declare i int local 
      /for i 0 to ${Group} 
           /if (${Group.Member[${i}].Class.ShortName.Equal[CLR]}) { 
         /varset ClericInGroup TRUE 
      } 
           /if (${Group.Member[${i}].Class.ShortName.Equal[DRU]}) { 
         /varset DruidInGroup TRUE 
      } 
      /if (${Group.Member[${i}].Class.ShortName.Equal[SHM]}) { 
         /varset ShamanInGroup TRUE 
      } 
      /if (${Group.Member[${i}].Class.ShortName.Equal[PAL]}) { 
         /varset PalidinInGroup TRUE 
      } 
      /if (${Group.Member[${i}].Class.ShortName.Equal[RNG]}) { 
         /varset RangerInGroup TRUE 
      } 
      /if (${Group.Member[${i}].Class.ShortName.Equal[ENC]}) { 
         /varset EnchanterInGroup TRUE 
      } 
      /next i 

      /if (!${SymbolAsked} && ${ClericInGroup} && ${DruidInGroup}) {           
         /if (!${Me.Buff[Balikor's Mark].ID} && !${Me.Buff[Symbol of Balikor].ID}) { 
            /g Need Symbol pls 
            /delay 20 
            /varset SymbolAsked TRUE 
            /timed 300 /varset SymbolAsked FALSE 
         } 
      } 
      /if (!${OakAsked} && ${ClericInGroup} && ${DruidInGroup}) {           
         /if (!${Me.Buff[Blessing of Steeloak].ID} && !${Me.Buff[Steeloak Skin].ID}) { 
            /g Need Oak pls 
            /delay 20 
            /varset OakAsked TRUE 
            /timed 300 /varset OakAsked FALSE 
         } 
      } 
      /if (!${SymbolAsked} && ${ClericInGroup}) {           
         /if (!${Me.Buff[Conviction].ID} && !${Me.Buff[Hand of Conviction].ID} && !${Me.Buff[Blessing of Steeloak].ID} && !${Me.Buff[Steeloak Skin].ID}) { 
            /g Need Conviction pls 
            /delay 20 
            /varset SymbolAsked TRUE 
            /timed 300 /varset SymbolAsked FALSE 
         } 
      } 
      /if (!${SpellHasteAsked} && ${ClericInGroup}) { 
         /if (!${Me.Buff[Aura of Devotion].ID} && !${Me.Buff[Blessing of Devotion].ID}) {    
                   /g Need Spell Haste pls 
            /delay 20 
            /varset SpellHasteAsked TRUE 
            /timed 300 /varset SpellHasteAsked FALSE 
         } 
      } 
      /if (!${FocusAsked} && ${ShamanInGroup}) {           
         /if (!${Me.Buff[Wunshi's Focusing].ID} && !${Me.Buff[Talisman of Wunshi].ID}) { 
            /g Focus pls 
            /delay 20 
            /varset FocusAsked TRUE 
            /timed 300 /varset FocusAsked FALSE 
         } 
      } 
      /if (!${StaAsked} && ${ShamanInGroup}) {           
         /if (!${Me.Buff[Spirit of Fortitude].ID} && !${Me.Buff[Talisman of Fortitude].ID}) { 
            /g STA pls 
            /delay 20 
            /varset StaAsked TRUE 
            /timed 300 /varset StaAsked FALSE 
         } 
      }          
      /if (!${SenseAsked} && ${ShamanInGroup}) {           
         /if (!${Me.Buff[Spirit of Sense].ID} && !${Me.Buff[Talisman of Sense].ID}) { 
            /g Sense pls 
            /delay 20 
            /varset SenseAsked TRUE 
            /timed 300 /varset SenseAsked FALSE 
         } 
      }          
      /if (!${BBBAsked} && ${PalidinInGroup}) {           
         /if (!${Me.Buff[Brell's Brawny Bulwark].ID}) { 
            /g BBB pls 
            /delay 20 
            /varset BBBAsked TRUE 
            /timed 300 /varset BBBAsked FALSE 
         } 
      }          
      /if (!${SOTAsked} && ${RangerInGroup} && !${PalidinInGroup}) {           
         /if (!${Me.Buff[Strength of the Hunter].ID} && !${Me.Buff[Brell's Brawny Bulwark].ID}) { 
            /g SotH pls 
            /delay 20 
            /varset SOTAsked TRUE 
            /timed 300 /varset SOTAsked FALSE 
         } 
      }          
      /if (!${GOBAsked} && ${EnchanterInGroup}) {           
         /if (!${Me.Buff[Gift of Brilliance].ID}) { 
            /g GoB pls 
            /delay 20 
            /varset GOBAsked TRUE 
            /timed 300 /varset GOBAsked FALSE 
         } 
      }          
   } 
| ------------------------------------------------------------------------------------------- 
| ------------------------------------------------------------------------------------------- 
| ------------------------------------------------------------------------------------------- 
   /return 

Sub FeignDeath 

:Feign_Loop 

   /aa act death peace 
   /if (${Me.State.Equal[FEIGN]}) { 
      /delay 15 
      /sit 
      /varset FeignNow FALSE 
         /if (${CanMount}) { 
            /delay 10 
         } 
      /return 
   } else { 
      /delay 5 
      /goto :Feign_Loop 
   } 
   /return 

Sub MemSpells 

   /book 43 
   /memspellset xxxx 
   /delay 30 
   /book 
   /echo Meming 1st level spells to clear slots 
   /echo Memming real spells. Hang on. 
    /book    
   /delay 10 
   /if (!${Me.Gem[${MagicDot1}]} ) { 
      /memspell 1 ${MagicDot1} 
      /memspell 1 ${MagicDot1} 
      /delay 20 
   } 
   /if (!${Me.Gem[${FireDot1}]} ) { 
      /memspell 2 ${FireDot1} 
      /delay 20 
   } 
   /if (!${Me.Gem[${PoisonDot1}]} ) { 
      /memspell 3 ${PoisonDot1} 
      /delay 20 
   } 
   /if (!${Me.Gem[${Leach}]} ) { 
      /memspell 4 ${Leach} 
      /delay 20 
   } 
   /if ( !${Me.Gem[${Lifetap}]} ) { 
      /memspell 5 ${Lifetap} 
      /delay 20 
   } 
   /if (!${Me.Gem[${NukePoi}]} ) { 
      /memspell 6 ${NukePoi} 
      /delay 20 
   } 
   /if (!${Me.Gem[${PoisonDot2}]} ) { 
      /memspell 7 ${PoisonDot2} 
      /delay 30 
   } 
   /if (!${Me.Gem[${DiseaseDot1}]} ) { 
      /memspell 8 ${DiseaseDot1} 
      /delay 30 
   } 
   /if (!${Me.Gem[${DiseaseDot2}]} ) { 
      /memspell 9 ${DiseaseDot2} 
      /delay 30 
   } 
   /echo Spells are memmed. 
   /echo Waiting on Target! 
   /if (${Me.Mount.ID}) { 
      /book 
   } 
   /if (${Me.State.Equal[Sit]}) { 
      /sit 
   } 
   /return 

Sub NeedMana 

   /exchange ${Robe1} Chest 
   /echo Putting on Mana Robe, casting till you are 100%!!! 
   /echo Starting now!!! 

:Mana_Loop 
   /doevents 
|   /call CheckRune 
   /if (${ManaRobe}) { 
      /if (${Me.PctMana} < 100) { 
         /call CastRobe 
         /goto :Mana_Loop 
      } 
      /echo Your at 98% (at least with this shitty robe) 
      /echo Switching Robes and stopping. 
      /echo Remember when the robes are switched back you will be at 97% 
      /exchange ${Robe2} Chest 
      /return 
   } 
   /return 

Sub CheckRune 

   /if (!${Me.Buff[Force Shield].ID} && !${Me.Buff[Dull Pain]}) { 
      /call cast ${Rune1} Item 
   } 
   /return 

Sub CastRobe 

   /call cast ${Robe1} Item 
   /return 


| ######################### Dot Casting ############################## 

Sub DotCasting 

   /echo Starting D.O.T's on ${Target.CleanName}!!! 

:Main_Dot_Loop 

   /doevents 
   /if (${FeignNow}) { 
      /call FeignDeath 
   } 
   /if (${FaceMOB}) { 
      /face 
   }    
   /call Leachifneeded 
   /call Tapifneeded 
   /if (${Me.Pet.PctHPs} < 60 && ${Me.AltAbilityReady["Mend Companion"]}) { 
   /aa act mend companion 
   } 
   /if (${Me.Pet.PctHPs} < 30 && !${Me.AltAbilityReady["Mend Companion"]} && ${PetFeignReady} && !${Me.Pet.State.Equal[FEIGN]}) { 
   /pet feign 
   } 
   /if (${Target.ID}) { 
   /delay 3 
    
:MagicDot_Loop 

      /if (${Me.SpellReady[${MagicDot1}]}) { 
         /if (!${MagicDot1Landed} && !${MagicDot1Resistant}) { 
            /if (${MagicDot1Resisted} < ${MaxCastsResist}) { 
               /call cast ${MagicDot1} gem1 
               /goto :Main_Dot_Loop 
            } else { 
            /echo Mob is resistant to ${MagicDot1} 
            /varset MagicDot1Resistant TRUE 
            /goto :MagicDot2_Loop 
            } 
         } else { 
            /echo ${MagicDot1} is going, on to next spell! 
            /goto :MagicDot2_Loop 
         } 
      } else { 
         /goto :MagicDot2_Loop 
      } 

:MagicDot2_Loop 

   /if (${MagicDot2Ready}) { 
      /if (!${MagicDot2Landed} && !${MagicDot2Resistant}) { 
         /if (${MagicDot2Resisted} < ${MaxCastsResist}) { 
            /call cast ${MagicDot2} Item 
            /varset MagicDot2Ready FALSE 
            /timed 1200 /varset MagicDot2Ready TRUE 
            /goto :Main_Dot_Loop 
         } else { 
         /echo Mob is resistant to ${MagicDot2} 
         /varset MagicDot2Resistant TRUE 
         /goto :Epic_Loop 
         } 
      } else { 
         /echo ${MagicDot2} is going, on to next spell! 
         /goto :Epic_Loop 
      } 
   } else { 
      /goto :Epic_Loop 
   } 

:Epic_Loop 
    
   /if (${EpicSwitch} && ${EpicReady}) { 
      /if (${Target.Distance}<=85) { 
         /call cast ${Epic} item 
         /varset EpicReady FALSE 
         /timed 1800 /varset EpicReady TRUE 
         /if (${EpicMoved}) { 
            /stick moveback ${EpicDistance} 
            /delay 20 
            /stick off 
         } 
         /goto :MindWrack_Loop 
      } 
      /if (${Target.Distance}>86) { 
         /dismount 
         /varset EpicDistance ${Target.Distance} 
         /varset EpicMoved TRUE 
         /timed 100 /varset EpicMoved FALSE 
         /stick 75 
         /delay 20 
         /stick off 
         /delay 20 
         /goto :Epic_Loop 
      } 
   } 

:MindWrack_Loop 

   /if (${MindWrackSwitch}) { 
      /if (${Me.SpellReady[${MindW}]}) { 
         /if (${Target.Class.Name.Equal[Cleric]} || ${Target.Class.Name.Equal[Ranger]} || ${Target.Class.Name.Equal[Palidin]} || ${Target.Class.Name.Equal[Shadow Knight]} || ${Target.Class.Name.Equal[Druid]} || ${Target.Class.Name.Equal[Magi]} || ${Target.Class.Name.Equal[Enchanter]} || ${Target.Class.Name.Equal[Necromancer]} || ${Target.Class.Name.Equal[Wizard]} || ${Target.Class.Name.Equal[Shaman]} || ${Target.Class.Name.Equal[Beastlord]}  || ${OOWZone}) { 
            /call cast ${MindW} gem9 
            /goto :SnareDot_Loop 
         } 
      } 
   } 

:SnareDot_Loop 
    
   /if (!${DontSnareMob}) { 
      /if (${FireGroupDots} || ${TrashMob}) { 
         /if (!${SnareLanded} && !${SnareResistant}) { 
            /call Snare 
         } 
      } 
   } 
   /if (${AOD}) { 
      /if (${Target.PctHPs}<=98 && ${Me.AltAbilityReady["Army of the Dead"]}) { 
      :AOD_Loop 
         /if (${Target.Distance}<=85) { 
            /e AoD Casting! 
            /aa act Army of the Dead 
            /if (${AODMoved}) { 
               /stick moveback ${AODDistance} 
               /delay 20 
               /stick off 
            } 
         } 
         /if (${Target.Distance}>86) { 
            /dismount 
            /varset AODDistance ${Target.Distance} 
            /varset AODMoved TRUE 
            /timed 100 /varset AODMoved FALSE 
            /stick 75 
            /delay 20 
            /stick off 
            /delay 20 
            /goto :AOD_Loop 
         } 
      } 
   } 
   /if (${Arch}) { 
      /if (${Target.PctHPs}<=98 && ${Me.AltAbilityReady["Swarm of Decay"]}) { 
      :Arch_Loop 
         /if (${Target.Distance}<=85) { 
         /e Swarm of Decay Casting! 
         /aa act Swarm of Decay 
            /if (${ArchMoved}) { 
               /stick moveback ${ArchDistance} 
               /delay 20 
               /stick off 
            } 
         } 
         /if (${Target.Distance}>86) { 
            /dismount 
            /varset ArchDistance ${Target.Distance} 
            /varset ArchMoved TRUE 
            /timed 100 /varset ArchMoved FALSE 
            /stick 75 
            /delay 20 
            /stick off 
            /delay 20 
            /goto :Arch_Loop 
         } 
      } 
   } 

:FireDot_Loop 

   /if (!${FireGroupDots}) { 
      /if (!${FireDot1Landed} && !${FireDot1Resistant}) { 
         /if (${FireDot1Resisted} < ${MaxCastsResist}) { 
            /call cast ${FireDot1} gem2 
            /goto :Main_Dot_Loop 
         } else { 
            /echo Mob is resistant to ${FireDot1} 
            /varset FireDot1Resistant TRUE 
            /goto :FireDot2_Loop 
         } 
      } else { 
         /echo ${FireDot1} is going, on to next spell! 
         /goto :FireDot2_Loop 
      } 
   } 

:FireDot2_Loop 

   /if (!${FireGroupDots}) { 
      /if (!${FireDot2Landed} && !${FireDot2Resistant}) { 
         /if (${FireDot2Resisted} < ${MaxCastsResist}) { 
            /call cast ${FireDot2} Item 
            /goto :Main_Dot_Loop 
         } else { 
            /echo Mob is resistant to ${FireDot2} 
            /varset FireDot2Resistant TRUE 
            /goto :PoisonDot1_Loop 
         } 
      } else { 
         /echo ${FireDot2} is going, on to next spell! 
         /goto :PoisonDot1_Loop 
      } 
   } 

:PoisonDot1_Loop 

   /if (${TimesFeigned} < ${TimesFeidnedNumber} && !${DoNotFD}) { 
      /varset TimesFeigned ${Math.Calc[${TimesFeigned}+1]}       
      /call FeignDeath 
   } 
   /if (!${PoisonDot1Landed} && !${PoisonDot1Resistant}) { 
      /if (${PoisonDot1Resisted} < ${MaxCastsResist}) { 
         /call cast ${PoisonDot1} gem3 
         /goto :Main_Dot_Loop 
      } else { 
         /echo Mob is resistant to ${PoisonDot1} 
         /varset PoisonDot1Resistant TRUE 
         /goto :PoisonDot2_Loop 
      } 
   } else { 
      /echo ${PoisonDot1} is going, on to next spell!! 
      /goto :PoisonDot2_Loop 
   } 

:PoisonDot2_Loop 

   /if (!${TrashMob} && !${FireGroupDots}) { 
      /if (!${PoisonDot2Landed} && !${PoisonDot2Resistant}) { 
         /if (${PoisonDot2Resisted} < ${MaxCastsResist}) { 
            /call cast ${PoisonDot2} gem7 
            /goto :Main_Dot_Loop 
         } else { 
            /echo Mob is resistant to ${PoisonDot2} 
            /varset PoisonDot2Resistant TRUE 
            /goto :DiseaseDot1_Loop 
         } 
      } else { 
         /echo ${PoisonDot2} is going, on to next spell!! 
         /goto :DiseaseDot1_Loop 
      } 
   } 

:DiseaseDot1_Loop 

   /if (!${TrashMob}) { 
   /if (!${DiseaseDot1Landed} && !${DiseaseDot1Resistant}) { 
      /if (${DiseaseDot1Resisted} < ${MaxCastsResist}) { 
         /call cast ${DiseaseDot1} gem8 
         /goto :Main_Dot_Loop 
      } else { 
         /echo Mob is resistant to ${DiseaseDot1} 
         /varset DiseaseDot1Resistant TRUE 
         /goto :DiseaseDot2_Loop 
      } 
   } else { 
      /echo ${DiseaseDot1} is going, on to next spell!! 
      /goto :DiseaseDot2_Loop 
   } 
   } 

:DiseaseDot2_Loop 

   /if (!${TrashMob} && !${FireGroupDots}) { 
      /if (!${DiseaseDot2Landed} && !${DiseaseDot2Resistant}) { 
         /if (${DiseaseDot2Resisted} < ${MaxCastsResist}) { 
            /call cast ${DiseaseDot2} gem9 
            /goto :Main_Dot_Loop 
         } else { 
            /echo Mob is resistant to ${DiseaseDot2} 
            /varset DiseaseDot2Resistant TRUE 
            /goto :Dot_Loop_End 
         } 
      } else { 
         /echo ${DiseaseDot2} is going, on to next spell!! 
         /goto :Dot_Loop_End 
      } 
   } 

:Dot_Loop_End 

   /if (${TrashMob}) { 
      /if (${NumberOfNukes} < 2) { 
         /call cast ${NukePoi} gem6 
         /varset NumberOfNukes ${Math.Calc[${NumberOfNukes}+1]} 
      } 
   } 
   /echo End of DotCasting, time to FD, then recast if needed... 
   /if (${TimesFeignedEnd} < 2 && !${DoNotFD}) { 
      /varset TimesFeignedEnd ${Math.Calc[${TimesFeignedEnd}+1]} 
      /call FeignDeath 
   } 
   /delay 3s 
   /goto :Main_Dot_Loop 
   } 

   /if (!${Target.ID}) { 
      /call ResetVars 
      /return       
   } 

Sub ResetVars 

   /echo Resetting Vars 
   /varset MagicDot1Landed FALSE 
   /varset MagicDot1Resistant FALSE 
   /varset MagicDot1Resisted 0 
   /varset MagicDot2Landed FALSE 
   /varset MagicDot2Resistant FALSE 
   /varset MagicDot2Resisted 0 
   /varset FireDot1Landed FALSE 
   /varset FireDot1Resistant FALSE 
   /varset FireDot1Resisted 0 
   /varset FireDot2Landed FALSE 
   /varset FireDot2Resistant FALSE 
   /varset FireDot2Resisted 0 
   /varset PoisonDot1Landed FALSE 
   /varset PoisonDot1Resistant FALSE 
   /varset PoisonDot1Resisted 0 
   /varset PoisonDot2Landed FALSE 
   /varset PoisonDot2Resistant FALSE 
   /varset PoisonDot2Resisted 0 
   /varset DiseaseDot1Landed FALSE 
   /varset DiseaseDot1Resistant FALSE 
   /varset DiseaseDot1Resisted 0 
   /varset DiseaseDot2Landed FALSE 
   /varset DiseaseDot2Resistant FALSE 
   /varset DiseaseDot2Resisted 0 
   /varset SnareLanded FALSE 
   /varset SnareResistant FALSE 
   /varset SnareResisted 0 
   /varset LeachedMob FALSE 
   /varset TimesFeigned 0 
   /varset TimesFeignedEnd 0 
   /varset NumberOfNukes 0 
   /pet back off 
   /pet back off 
   /pet hold 
   /return 

| ########################## LT's/ Snare ############################### 

Sub Tapifneeded 

:Tap_Loop 
   /doevents 
   /if (${Me.PctHPs} < 90 && ${Target.PctHPs} < 90) { 
      /call cast ${Lifetap} gem5 
   } 
   /return 

Sub Leachifneeded 

:Leach_Loop 
   /doevents 
   /if (${Me.PctHPs} < 95 && ${Target.PctHPs} < 90) { 
      /if (!${LeachedMob}) { 
         /call cast ${Leach} gem4 
      } 
   } 
   /return 

Sub Snare 

:Snare_Loop 
   /doevents 
   /if (!${SnareLanded} && !${SnareResistant}) { 
      /if (${SnareResisted} < 5) { 
         /call cast ${Snare} gem7 
         /if (!${Target.ID}) { 
            /call ResetVars 
            /return       
         } 
         /goto :Snare_Loop 
      } else { 
         /echo Mob is resistant to ${Snare} 
         /g Cant get snare on ${Target.CleanName} 5 resists... 
         /varset SnareResistant TRUE 
         /return 
      } 
   } else { 
      /echo ${Target.CleanName} is snared!!! 
      /return 
   } 
   /return 

| ########################### EVENTS ################################# 

Sub Event_Enrage 

   /pet back off 
   /pet back off 
   /pet hold 
   /return 

Sub Event_Rampage 

   /pet back off 
   /pet back off 
   /pet hold 
   /return 

Sub Event_Attacked 

   /varset FeignNow TRUE 
   /return 

Sub Event_TrashMobs 

   /varset FireGroupDots FALSE 
   /varset TrashMob TRUE 
   /varset TimesFeidnedNumber 2 
   /echo Changing to 3 Dot n Nuke Mode with snare. 
   /if (!${Me.Gem[${Snare}]} ) { 
      /memspell 7 ${Snare} 
      /delay 40 
   } 
   /if (${Me.Mount.ID}) { 
      /book 
   } 
   /return 

Sub Event_BossMob 

   /varset FireGroupDots FALSE 
   /varset TrashMob FALSE 
   /varset TimesFeidnedNumber 3 
   /echo Setting to normal dot casting 
   /if (!${Me.Gem[${NukePoi}]} ) { 
      /memspell 6 ${NukePoi} 
      /delay 20 
   } 
   /if (!${Me.Gem[${PoisonDot2}]} ) { 
      /memspell 7 ${PoisonDot2} 
      /delay 20 
   } 
   /if (${Me.Mount.ID}) { 
      /book 
   } 
   /return 
    
Sub Event_FireGroup 

   /varset FireGroupDots TRUE 
   /varset TrashMob FALSE 
   /varset TimesFeidnedNumber 2 
   /echo Fire Resist Dots OFF! 
   /if (!${Me.Gem[${Snare}]} ) { 
      /memspell 7 ${Snare} 
      /delay 30 
   } 
   /if (${Me.Mount.ID}) { 
      /book 
   } 
   /return 

Sub Event_NoHorse 

   /varset CanMount FALSE 
   /echo Cant have a horse in this zone. 
   /return 
    
Sub Event_NoSOW 

   /varset CanSOW FALSE 
   /echo Cant SOW here. 
   /return 

Sub Event_CantDMFHere 

   /varset CanDMFHere FALSE 
   /echo Cant DMF here. 
   /return 
    
Sub Event_FaceOFF 

   /e Turning MOB Facing OFF. 
   /varset FaceMOB FALSE 
   /return    

Sub Event_FaceON 

   /e Turning MOB Facing ON. 
   /varset FaceMOB TRUE 
   /return 

Sub Event_EpicOn 

   /e Turning Epic usage ON. 
   /varset EpicSwitch TRUE 
   /return 

Sub Event_EpicOff 

   /e Turning Epic usage OFF. 
   /varset EpicSwitch FALSE 
   /return 

Sub Event_AODOn 

   /e Turning AOD usage ON. 
   /varset AOD TRUE 
   /return 

Sub Event_AODOff 

   /e Turning AOD usage OFF. 
   /varset AOD FALSE 
   /return 

Sub Event_ArchOn 

   /e Turning Archers ON. 
   /varset Arch TRUE 
   /return 

Sub Event_ArchOff 

   /e Turning Archers OFF. 
   /varset Arch FALSE 
   /return 

Sub Event_GoodTank 

   /e Great Tank not going to FD unless hit. 
   /varset DoNotFD TRUE 
   /return 

Sub Event_GoodTankOff 

   /e Tank Sucks going to FD. 
   /varset DoNotFD FALSE 
   /return 

Sub Event_PetFocusOff 

   /pet focus 
   /return 

Sub Event_Chat(string ChatType,string ChatSender,string ChatText) 

   /if (!${ChatType.Equal[GROUP]} && !${ChatType.Equal[TELL]}) { 
      /return 
      }    
      /declare j int local 
      /for j 1 to ${FollowOnly.Size} 
         /if (${ChatSender.Equal[${FollowOnly[${j}]}]}) { 
            /if (${ChatText.Equal[Come this way]}) {     
               /if (!${Spawn[${ChatSender}].ID}) { 
                  /echo ${ChatSender} is not in zone for me to follow! 
                  /return 
               } 
               /varset FollowOn ${ChatSender}  
               /varset Following 1 
               /echo ${ChatSender} I am following you!!! 
               /if ( ${Me.Mount.ID} ) /dismount 
                  :targetfoll 
                  /target pc ${FollowOn} 
                  /delay 1s ${Target.Name.Equal[${FollowOn}]} 
                  /if (${Target.Name.Equal[${FollowOn}]}) { 
                     /goto :Loop 
                  } else { 
                     /goto :targetfoll 
                  } 
                     :Loop 
                        /face fast 
                        /if (${Target.Distance}>20) /keypress forward hold 
                        /if (${Target.Distance}<19) /keypress back 
                        /if (!${Target.ID}) /varset Following 0 
                        /doevents 
                        /if ((${Target.Name.Equal[${FollowOn}]})&&(${Following}>0)) { 
                           /goto :Loop 
                        } else { 
                           /keypress forward 
                           /keypress back 
                        } 
                  } 
               } 
      /next j 

      /if (${ChatText.Equal[DMF]} || ${ChatText.Equal[dmf]} || ${ChatText.Equal[can i get a dmf pls]} || ${ChatText.Equal[DMF pls]} || ${ChatText.Equal[try now]} || ${ChatText.Equal[ok dmf please]} || ${ChatText.Equal[dmf please :)]} || ${ChatText.Equal[dmf plz]}) { 
         /target ${ChatSender} 
         /if (!${Spawn[${ChatSender}].ID}) { 
            /echo ${ChatSender}  is not in zone for me DMF! 
            /t ${ChatSender} Im not even in the same zone as you! 
            /return 
         } 
         /delay 2 
         /if (${Target.Distance}<100) { 
            /memspell 6 ${DMF} 
            /tell ${ChatSender} inc in a sec! 
            /delay 5 
            /call cast ${DMF} gem6 
            /delay 10 
            /memspell 6 ${NukePoi} 
            /delay 5    
         } else { 
            /t ${ChatSender} Your oor sry. 
            /memspell 6 ${NukePoi}    
            /delay 5 
         } 
      } 
      /if (${ChatText.Equal[Group DMF]}) { 
         /target ${ChatSender} 
         /if (!${Spawn[${ChatSender}].ID}) { 
            /echo ${ChatSender}  is not in zone for me DMF! 
            /t ${ChatSender} Im not even in the same zone as you! 
            /return 
         } 
         /delay 2 
         /if (${Target.Distance}<100) { 
            /memspell 6 ${GroupDMF} 
            /tell ${ChatSender} inc in a sec! 
            /call cast ${GroupDMF} gem6 
            /delay 10 
            /memspell 6 ${NukePoi}    
            /delay 5 
         } else { 
            /t ${ChatSender} Your oor sry. 
            /memspell 6 ${NukePoi}    
            /delay 5 
         }          
      } 
      /if (${ChatText.Equal[Twitch Me]} && ${Twitch}) { 
         /target ${ChatSender} 
         /if (!${Spawn[${ChatSender}].ID}) { 
            /echo ${ChatSender}  is not in zone for me to Twitch! 
            /t ${ChatSender} Im not even in the same zone as you! 
            /return 
         } 
         /delay 2 
         /if (${Target.Distance}<100) { 
            /book 
            /memspell 8 ${Twitch1} 
            /delay 40 
            /memspell 9 ${Twitch2} 
            /tell ${ChatSender} Chain twitching in a sec! 
            /delay 60 
         :Twitch_Loop 
            /doevents 
            /if (${Twitch}) { 
               /target ${ChatSender} 
               /call cast ${Twitch1} gem8 
               /call cast ${Twitch2} gem9 
               /delay 5 
               /goto :Twitch_Loop 
            } 
            /memspell 8 ${DiseaseDot1} 
            /delay 20 
            /memspell 9 ${DiseaseDot2} 
            /delay 20 
         } else { 
            /t ${ChatSender} Your oor sry. 
            /memspell 8 ${DiseaseDot1} 
            /delay 20 
            /memspell 9 ${DiseaseDot2} 
            /delay 20 
         }          
      } 
   } 
   /return 

Sub Event_FollowOff 

   /varset Following 0 
   /echo No Longer Following 
   /return 
    
Sub Event_CheckGroupBuff 

   /varset CheckGroupBuffs TRUE 
   /echo Group buff check ON! 
   /return 

Sub Event_CheckGroupBuffOff 

   /varset CheckGroupBuffs FALSE 
   /echo Group buff check OFF! 
   /return 
    
Sub Event_SymbolOff 

   /varset SymbolAsked FALSE 
   /return 

Sub Event_SpellHasteOff 

   /varset SpellHasteAsked FALSE 
   /return 

Sub Event_SteelOakOff 

   /varset OakAsked FALSE 
   /return 

Sub Event_FocusOff 

   /varset FocusAsked FALSE 
   /return 

Sub Event_SenseOff 

   /varset SenseAsked FALSE 
   /return 

Sub Event_StaOff 

   /varset StaAsked FALSE 
   /return 

Sub Event_BBBOff 

   /varset BBBAsked FALSE 
   /return 

Sub Event_SOTOff 

   /varset SOTAsked FALSE 
   /return 

Sub Event_GOBOff 

   /varset GOBAsked FALSE 
   /return 

Sub Event_StuckLoop 

   /call GetTarget 
   /return 

Sub Event_StopRobe 

   /echo Stopping and switching robes back. 
   /keypress esc 
   /varset ManaRobe FALSE 
   /exchange ${Robe2} Chest 
   /return 

Sub Event_StartRobe 

   /echo Turning ManaRobe back on. 
   /varset ManaRobe TRUE 
   /return 

Sub Event_CheckOptions 

   /if (${TrashMob})             /e You are in ---------------------   NORMAL GROUP MODE. 
   /if (${FireGroupDots})             /e You are in ---------------------   PLANE OF FIRE GROUP MODE. 
   /if (!${TrashMob} && !${FireGroupDots})    /e You are in ---------------------   RAID MOB MODE. 
   /if (${CheckGroupBuffs})          /e Group buffs check set to -   ON. 
   /if (!${CheckGroupBuffs})          /e Group buffs check set to -   OFF. 
   /if (${ManaRobe})             /e ManaRobe option is -------   ON. 
   /if (!${ManaRobe})             /e ManaRobe option is -------   OFF. 
   /if (${FaceMOB})                /e Monster Facing is ---------- ON. 
   /if (!${FaceMOB})             /e Monster Facing is ---------- OFF. 
   /if (${Twitch})                /e Twitch mode set to -------- ON. 
   /if (!${Twitch})                /e Twitch mode set to -------- OFF. 
   /if (${EpicSwitch})            /e Epic usage is --------------- ON. 
   /if (!${EpicSwitch})             /e Epic usage is --------------- OFF. 
   /if (${AOD})                /e AOD usage is -------------- ON. 
   /if (!${AOD})                /e AOD usage is -------------- OFF. 
   /if (${Arch})                /e Archers usage is ---------- ON. 
   /if (!${Arch})                /e Archers usage is ---------- OFF. 
   /if (${DoNotFD})               /e FD usage is ----------------- OFF. 
   /if (!${DoNotFD})               /e FD usage is ----------------- ON. 
   /if (${MindWrackSwitch})         /e MWrack usage is ---------- ON. 
   /if (!${MindWrackSwitch})         /e MWrack usage is ---------- OFF. 
   /if (${OOWZone})               /e Omens of War zone ------- ON. 
   /if (!${OOWZone})               /e Omens of War zone ------- OFF. 
   /return 

Sub Event_EmeFD 

   /aa act death peace 
   /pet feign 
   /delay 5 
   :FD_Loop 
      /doevents 
      /if (${FDFDFD}) { 
         /if (!${Me.Pet.State.Equal[FEIGN]} && ${PetFeignReady}) { 
            /pet feign 
            /delay 5 
         } 
         /if (${Me.State.Equal[FEIGN]}) { 
            /goto :FD_Loop 
         } else { 
            /aa act death peace 
            /delay 5 
            /goto :FD_Loop 
         } 
      } 
   /return 

Sub Event_EmeFDOff 

   /varset FDFDFD FALSE 
   /timed 100 /varset FDFDFD TRUE 
   /sit 
   /pet guard me 
   /pet back off 
   /pet back off 
   /pet hold 
   /return 

Sub Event_TwitchModeOn 
    
   /varset Twitch TRUE 
   /e Turning Twitch Mode ON, send tell or group chat to Twitch. 
   /return 

Sub Event_TwitchModeOff 

   /varset Twitch FALSE 
   /e Turning Twitch Mode OFF 
   /return 

Sub Event_TwitchMeOff 

   /varset Twitch FALSE 
   /e Stopping Twitch 
   /return 

Sub Event_PetFeignFailed 

   /pet guard me 
   /varset PetFeignReady FALSE 
   /timed 60 /varset PetFeignReady TRUE 
   /return 

Sub Event_MindWrackOn 

   /varset MindWrackSwitch TRUE 
   /e Mind Wrack set to ON 
   /if (!${Me.Gem[${MindW}]} ) { 
      /memspell 9 ${MindW} 
      /delay 20 
   } 
   /return 


Sub Event_MindWrackOff 

   /varset MindWrackSwitch FALSE 
   /e Mind Wrack set to OFF 
   /if (!${Me.Gem[${DiseaseDot2}]} ) { 
      /memspell 9 ${DiseaseDot2} 
      /delay 20 
   } 
   /return 

Sub Event_OOWZoneSwitch 

   /if (!${OOWZone}) { 
      /e Omens of War Zone MWing everything! 
      /varset OOWZone TRUE 
   } else { 
      /e Not a Omens of War Zone MWing casters only! 
      /varset OOWZone FALSE 
   } 
   /return 

Sub Event_DontSnare 

   /varset DontSnareMob TRUE 
   /e Snare Set to Off! 
   /return 

Sub Event_SnareMob 

   /varset DontSnareMob FALSE 
   /e Snare Set to On! 
   /return 


| ######################### Dot Events ############################### 

| ######################### Magic Dot ################################ 

Sub Event_MagicDot1LandedEvent 

   /varset MagicDot1Landed TRUE 
   /return 

Sub Event_MagicDot1Off 

   /varset MagicDot1Landed FALSE 
   /return 

Sub Event_MagicResisted 

   /varset MagicDot1Resisted ${Math.Calc[${MagicDot1Resisted}+1]} 
   /return 

Sub Event_MagicDot2LandedEvent 

   /varset MagicDot2Landed TRUE 
   /return 

Sub Event_MagicDot2Off 

   /varset MagicDot2Landed FALSE 
   /return 

Sub Event_MagicDot2Resisted 

   /varset MagicDot2Resisted ${Math.Calc[${MagicDot2Resisted}+1]} 
   /return 

| ########################## Fire Dot ################################ 

Sub Event_FireDot1LandedEvent 

   /varset FireDot1Landed TRUE 
   /return 

Sub Event_FireDot1Off 

   /varset FireDot1Landed FALSE 
   /return 

Sub Event_FireResisted 

   /varset FireDot1Resisted ${Math.Calc[${FireDot1Resisted}+1]} 
   /return 

Sub Event_FireDot2LandedEvent 

   /varset FireDot2Landed TRUE 
   /return 

Sub Event_FireDot2Off 

   /varset FireDot2Landed FALSE 
   /return 

Sub Event_FireDot2Resisted 

   /varset FireDot2Resisted ${Math.Calc[${FireDot2Resisted}+1]} 
   /return 

| ######################### Poison Dot ############################### 

Sub Event_PoisonDot1LandedEvent 

   /varset PoisonDot1Landed TRUE 
   /return 

Sub Event_PoisonDot1Off 

   /varset PoisonDot1Landed FALSE 
   /return 

Sub Event_PoisonDot1Resisted 

   /varset PoisonDot1Resisted ${Math.Calc[${PoisonDot1Resisted}+1]} 
   /return 

Sub Event_PoisonDot2LandedEvent 

   /varset PoisonDot2Landed TRUE 
   /return 

Sub Event_PoisonDot2Off 

   /varset PoisonDot2Landed FALSE 
   /return 

Sub Event_PoisonDot2Resisted 

   /varset PoisonDot2Resisted ${Math.Calc[${PoisonDot2Resisted}+1]} 
   /return 

| ######################## Disease Dot ############################## 

Sub Event_DiseaseDot1LandedEvent 

   /varset DiseaseDot1Landed TRUE 
   /return 

Sub Event_DiseaseDot1Off 

   /varset DiseaseDot1Landed FALSE 
   /return 

Sub Event_DiseaseResisted 

   /varset DiseaseDot1Resisted ${Math.Calc[${DiseaseDot1Resisted}+1]} 
   /return 

Sub Event_DiseaseDot2LandedEvent 

   /varset DiseaseDot2Landed TRUE 
   /return 

Sub Event_DiseaseDot2Off 

   /varset DiseaseDot2Landed FALSE 
   /return 

Sub Event_DiseaseDot2Resisted 

   /varset DiseaseDot2Resisted ${Math.Calc[${DiseaseDot2Resisted}+1]} 
   /return 

| ########################## Snare ################################### 

Sub Event_SnareLandedEvent 

   /varset SnareLanded TRUE 
   /return 

Sub Event_SnareOff 

   /varset SnareLanded FALSE 
   /return 

Sub Event_SnareResisted 

   /varset SnareResisted ${Math.Calc[${SnareResisted}+1]} 
   /return 
    
Sub Event_SnareImmune 

   /e This MOB is Immune to snare. 
   /varset SnareResistant TRUE 
   /return 

| ########################### Leach ################################## 

Sub Event_LeachedOn 

   /varset LeachedMob TRUE 
   /return 
    
Sub Event_LeachedOff 

   /varset LeachedMob FALSE 
   /return 

| ####################### End of line... #############################


Necromancer.ini

Code:
[Settings]
Version=4.0
LeashLength=10
NPCRadius=75
NPCZRadius=100
PCRadius=200
PCZRadius=100
AutoNinja=1
OVHPs=0
AutoSit=1
SitDelay=3s
UseMount=0
MountItem=Black Chain Bridle
MedPct=90
UseRods=0
RodMana=80
[MeleeStuff]
DoMelee=0
StickArgs=80% hold moveback
[GeneralStuff]
ChatChannel=echo
SpamDelay=1s
MasterList=
AssistMA=1
AssistDelay=5s
MA1=BillyBob
MA2=DorothyLynn
MA3=NamesEditedforExamples
EngageHPs=98
StopHPs=0
ReportEvents=0
ReportToggles=1
RelayTells=1
ReportMana=1
SpellSetTotal=2
SpellSet1=Normal
SpellSet2=Normal
CanniTotal=1
DoCanni=1
CanniSpell1=Seduction of Saryrn
CanniGem1=gem7
CanniHPs1=10
[CureStuff]
CureTotal=0
DoCures=0
ReportCures=0
[SelfBuffStuff]
SelfBuffTotal=6
SelfBuffs=1
ReportSelfBuffs=0
SelfBuffRecheck=10s
SelfBuff1=Symbol of the Planemasters
SelfBuffIcon1=Pestilence Shock
SelfBuffGem1=Item
SelfBuffCount1=18
SelfBuffIndoors1=1
SelfBuff2=Belt of Tidal Energy
SelfBuffIcon2=Form of Rejuvenation
SelfBuffGem2=Item
SelfBuffCount2=18
SelfBuffIndoors2=1
SelfBuff3=Koadic's Robe of Heightened Focus
SelfBuffIcon3=Koadic's Heightened Focus
SelfBuffGem3=Item
SelfBuffCount3=18
SelfBuffIndoors3=1
SelfBuff4=Shadow Guard
SelfBuffIcon4=Shadow Guard
SelfBuffGem4=gem7
SelfBuffCount4=18
SelfBuffIndoors4=1
SelfBuff5=Dead Men Floating
SelfBuffIcon5=Dead Men Floating
SelfBuffGem5=gem7
SelfBuffCount5=18
SelfBuffIndoors5=1
SelfBuff6=Dull Pain
SelfBuffIcon6=Dull Pain
SelfBuffGem6=gem4
SelfBuffCount6=18
SelfBuffIndoors6=1
[DoBuffStuff]
DoBuffTotal=1
DoBuffs=1
ReportDoBuffs=1
DoBuffTells=0
RefreshBuffs=0
DoBuffMana=0
DoBuff1=Dead Men Floating
DoBuffIcon1=Dead Men Floating
DoBuffGem1=gem7
DoBuffAliases1=DMF
DoBuffIndoors1=1
DoBuffRefresh1=0
BuffGem=gem7
[DebuffStuff]
DebuffTotal=6
DoDebuffs=0
DoDoTs=1
DoMez=0
DoManaTaps=1
ReportDebuffs=1
ReportDoTs=1
ReportMez=0
UseHoTT=1
MaxMobs=10
AllDebuffsFirst=1
DebuffMAFirst=1
DebuffSpell1=Mind Wrack
DebuffIcon1=Mind Wrack
DebuffGem1=gem6
DebuffMana1=0
DebuffHPs1=98
DebuffStopHPs1=0
DebuffRecast1=1
DebuffSpellSet1=0
DebuffMAOnly1=1
SpellType1=3
DebuffSpell2=Miragul's Greaves of Risen Souls
DebuffIcon2=Pyrocruor
DebuffGem2=Item
DebuffMana2=0
DebuffHPs2=98
DebuffStopHPs2=30
DebuffRecast2=1
DebuffSpellSet2=0
DebuffMAOnly2=1
SpellType2=1
DebuffSpell3=Pyre of Mori
DebuffIcon3=Pyre of Mori
DebuffGem3=gem7
DebuffMana3=0
DebuffHPs3=95
DebuffStopHPs3=30
DebuffRecast3=1
DebuffSpellSet3=0
DebuffMAOnly3=1
SpellType3=1
DebuffSpell4=Dark Nightmare
DebuffIcon4=Dark Nightmare
DebuffGem4=gem5
DebuffMana4=0
DebuffHPs4=90
DebuffStopHPs4=30
DebuffRecast4=1
DebuffSpellSet4=0
DebuffMAOnly4=1
SpellType4=1
DebuffSpell5=Fang of Death
DebuffIcon5=Fang of Death
DebuffGem5=gem2
DebuffMana5=0
DebuffHPs5=80
DebuffStopHPs5=40
DebuffRecast5=0
DebuffSpellSet5=0
DebuffMAOnly5=1
SpellType5=1
DebuffSpell6=Swarm of Decay
DebuffIcon6=Swarm of Fear III
DebuffGem6=alt
DebuffMana6=0
DebuffHPs6=98
DebuffStopHPs6=40
DebuffRecast6=0
DebuffSpellSet6=0
DebuffMAOnly6=1
SpellType6=1
[RootStuff]
RootNScoot=0
RootGem=2
[NukeStuff]
NukeTotal=1
DoNukes=1
NukeDelay=2s
WhichNuke=1
Nuke1=Soulspike
NukeGem1=gem3
NukeSpellSet1=1
NukeStartHPs1=50
NukeStopHPs1=0
NukeMaxMana1=100
NukeMinMana1=20
GoMNuke1=1
[PetStuff]
UsePet=0
PetMana=20
PetFocus=Symbol of the Planemasters
PetSpell=Lost Soul
PetGem=gem7
PetBuffTotal=1
DoPetBuffs=1
ReportPetBuffs=1
PetBuffRecheck=10s
PetBuff1=Glyph of Darkness
PetBuffIcon1=Glyph of Darkness
PetBuffGem1=gem8
PetBuffIndoors1=1
 
| Functions: (These also work in tells, say, group, etc...)
| type /e Raid Mode - for Raid dot casting
| type /e Normal Group Mode - for Group casting
| type /e POF Group Mode - for Plane of Fire group casting
| type /e Stop Robe - to stop using mana robe
| type /e Start Robe - to start using mana robe
| type /e Option Check - to check options
 
how does this should work ?

/e is the same like /echo

and echo just give the text to your MQ window, right ?
 
yep, basically he set up #Event 's to recognize text in your mq2 window, so when you /e command, it does the event associated with it, however ONLY when the macro is actually running.
 
wicked i thought the necro you switched to has all his spellatleast up to PoR
 
necroman said:
wicked i thought the necro you switched to has all his spellatleast up to PoR

Yup every spell now. Did the quests for the latest spells. I think the ONLY one he needs is the 69 DoD one, which I will take care of.
 
Status
Not open for further replies.