• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->

Looking for help with my macro, PLEASE (2 Viewers)

ss44

Active member
Joined
Sep 13, 2005
RedCents
31¢
Hello everyone. I figured since I had helped many people with their bard macro's, I would ask for help with one of my own. This is the FIRST macro I have ever written, (kind of). It is basically a disfigured, wanna-be piece of shit macro lol, that works the way I want it to, just not as efficient as I wanted to. I was looking at the Necromancer macro that was written by Fredflintstone, so I took some stuff from it and from the FH bard mac's that I have tweaked. I have gotten it to do what I want, but not exactly. I am looking for help writing a macro that will recognize when spells land, resist, ect. That will FD when I get hit, and will check buffs on me and pet. Also looking to twitch, when triggered in group chat. The one I have just casts the spells, gets the target, pet tanks, and then loots. It is being used with the afcleric.mac i have. I want it to go back to the anchorpoint that i have, its the only /warp loc i have in the mac. so if anyone wants to help me out, i would appreciate it. or if not, i will figure it out and post for those who need it. below is the shitty one i made, as well as the necromancer.mac by Fredflinstone. The zone I am looking at is Forgotten Halls, due to be instanced.

Rich (BB code):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~FHNecro.mac~~~~~~~~~~~~~~~~
~~~~~~~~~~~~Written by SS44~~~~~~~~~~~~~~~
~~~~~~~~~~~~For RedGuides~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#turbo
#chat group 
#chat tell
#Event MobDied "#*#has been slain by#*#"
#event MobDied "#*#you have slain#*#"
#event MobDied "#*#corpse lets out a sharp squeak, then topples over#*#"
#event MobDied "#*#corpse lets out a sharp squeak#*#"
#Event TwitchModeOn "#*#TwitchOn#*#" 
#Event TwitchModeOff "#*#TwitchOff#*#" 
#Event TwitchMeOff "#*#Stop Twitching#*#"
#event magic_dotoff "#*#Your Dark Nightmare spell has worn off of#*#"
#event fire_dotoff "#*#Your Pyre of Mori spell has worn off of#*#"
#event fire_dot2off "#*#Your Funeral Pyre of Kelador spell has worn off of#*#"
#event pet_haste "#*#Your pet's Glyph of Darkness spell has worn off#*#"
#event dzadd "PERSONYOUWANTTOADD tells you, 'CODEWORD'"
#event invite "#*#invites you to join#*#"  
#event Zoned "#*#You have entered Guild Lobby#*#"
#event dzquit "#*#You have entered Nedaria's Landing#*#" 
#event PoK "You have entered Guild Lobby."
|Change this to the                ^^^^^^^^^^^^^^
|zone you are bound in

|-- Destroys Silver if you have more than the given amount! 0=disable
#define DESTROY_SILVER_IF_ABOVE 1
|-- Destroys Copper if you have more than the given amount! 0=disable
#define DESTROY_COPPER_IF_ABOVE 1

|~~~~~~~~~~~~~~~~~~~~Buffs~~~~~~~~~~~~~~~~~~~~~~~~|
/declare Rune outer "Dull Pain"
/declare Shielding outer "Shadow Guard"
/declare Lich outer "Dark Possession"
/declare Pet outer "Dark Assassin"
/declare Twitch1 string outer "Sedulous Subversion" 
/declare Twitch2 string outer "Covetous Subversion"
|~~~~~~~~~~~~~~~~~~~Pet Buffs~~~~~~~~~~~~~~~~~~~~~~|
/declare Pethaste outer "Glyph of Darkness" 
/declare DiseaseDot1 outer "Force Shield" 
/declare DiseaseDot1Resisted int outer 0 
/declare DiseaseDot1Landed bool outer FALSE 
/declare DiseaseDot1Resistant bool outer FALSE 
/declare DiseaseDot2 outer "Seduction of Saryrn" 
/declare DiseaseDot2Resisted int outer 0 
/declare DiseaseDot2Landed bool outer FALSE 
/declare DiseaseDot2Resistant bool outer FALSE 
/declare DiseaseDot2Ready bool outer TRUE 
/declare Twitch1 string outer "Sedulous Subversion" 
/declare Twitch2 string outer "Covetous Subversion"

Sub Main

 /declare LootAllItems int outer 1 
 /declare LootSlot int outer 0 

|We are waiting for the hotkey to start the macro
	:waitforit
	/doevents
	/doevents
	/goto :waitforit
/return

| We have the extra long delay to account for zoneing Time.
| You may set the delay to what you want.
| You also need to change the twist to your line up.
| We then Clear our target so we don't cast on anything.

Sub indz
	:begin  
	/delay 1s
	/warp loc -599.12 212.05 6.76
	/delay 1s
	/call loopstart
/return
	

|This loop calls the events to be redone along with a GM check.
|It checks to insure that the mobs it targets are not over
| level 67(a left over from the vxed mac i think)
|It then check the range of the target if it over 220 it clears it
|The 3rd If command targets an NPC if you do not have a target
|The final Line Watches your health and succor you when you hit 30%
| you could change the command to gate if you like.
| ex /if (${Me.PctHPs}<=30) /gate

Sub Event_Chat(string ChatType,string ChatSender,string ChatText)
/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 loopstart   
		:loopstart 
		/delay 1s
		/call GMcheck  
		/call buffs
		/if (${Target.Level}>67) /tar npc next 
		/if (${Target.Distance}>220) /keypress esc
		/if (${Target.ID}==FALSE) /tar NPC radius 220 rat
		/if (${Me.PctMana}<=20) /call med
		/if (${Me.PctHPs}<=20) /call succor
		/if (${Me.PctHPs}<=80) {
	/g Heal Me
}
		/if (${Me.PctHPs}<=40) /potionbelt activate 2
		/face
		/call attack
		/doevents
	/delay 10  
	/goto :loopstart  
/return  


|I never had this one called while i was in zone.
| but it warps you to that loc turn circle off
| and twists selos and heal song then when you reach
| 80% health you go back to killing 

Sub succor

	/warp loc 245 -33 0
	/delay 1s
	/fade
	/delay 120s
        /return
/delay 60
/call regen
/return

| This is the GM check it is called about every 10 seconds.
| It beeps at you then /quits the game.

Sub GMcheck  
 	/if (${Spawn[gm].ID}) {  
 		/echo Gm detected  
 		/beep 
 		/beep 
 		/beep  
 		/q 
 		/endmac 
 		/unload 
 		/q  
 	}  
/return  


|This next bit removes you from the expdition if you still have it after 
|  you zone out
|Targets Eldros Danmor warps to him gets the adventure window then it 
| warps back to Nideno and says forgotten halls allowing you to zone in.
|You then warp closer to the rock look at point behind the rock and 
| press use or u, also you click with the mouse so you mouse needs to be
| in the center of the screen. 

Sub event_dzquit
        /doevents
        /call gmcheck
        /disband
	/dzremove Gajar
        /dzremove Gajar
	/twist off
	/delay 2s
	/target Eldros Danmor
	/warp target
	/delay 2s
	/say interested in visiting
	/delay 3s
	/target Nideno Eliagy
	/warp target
	/delay 2s
	/say Forgotten halls
	/delay 2s
        /doevents
	/warp loc 1544 -665 94
	/face loc 1540, -675
	/look 0
	/doortarget
	/delay 10s
	/keypress u
	/keypress u 
	/delay 1s
	/target clear
	/call destroysilver
	/call indz
/return

|In the event of a water landing....
| This camps you out.

Sub Event_PoK 
	/echo sorry i don't know how or why but you died.
        /circle off
        /twist off
        /delay 45s
	/sit on
	/camp desktop 
        /q
	/endmacro 
/return


 Sub Event_MobDied 
 /doevents
/twist off 
/call GMcheck
 /circle off
 /keypress forward
 /delay 1s
 /squelch /declare LootSlot    int inner  0 
 /declare LootCheck   int inner  0 
 /declare LootTotal   int inner  0 
 /target npc corpse radius 200 
 :MovementLoop 
 /face fast nolook 
 /if (${Int[${Target.Distance}]}>13) { 
 /keypress forward hold 
 } 
 /if (${Int[${Target.Distance}]}<13&&${Int[${Target.Distance}]}>11) { 
 /keypress forward 
 } 
 /if (${Int[${Target.Distance}]}<9) { 
 /keypress back 
 } 
 /if (${Int[${Target.Distance}]}>13) { 
 /goto :MovementLoop 
 } 
 /keypress forward 
 /keypress back 
 /delay 5 
 /loot 
 /delay 5 
 /if (!${Corpse.Items}) { 
 /echo NO LOOT!
 /notify LootWnd DoneButton leftmouseup 
/call DestroyCopper
/delay 1s 
/call checkanchor  
 /face heading 270
 /circle on 21
 /keypress forward hold
 /return 
 } 
 /varset LootTotal ${Corpse.Items} 
 /for LootSlot 1 to ${LootTotal} 
 /itemnotify loot${LootSlot} leftmouseup 
 /delay 5 
 /if (${LootAllItems}) { 
 /echo Keeping a ${Cursor.Name}... WOOT! 
 /autoinventory 
 /autoinventory 
 /delay 5 
 } else { 
 /for LootCheck 1 to ${ItemsToLoot.Size} 
 /if (${Cursor.Name.Find[${ItemsToLoot[${LootCheck}]}]}) { 
 /echo Keeping a ${Cursor.Name}... WOOT! 
 /autoinventory 
 /autoinventory 
 /delay 5 
 } 
 /next LootCheck 
 } 
 /if (${Cursor.ID}) { 
 /echo Destroying a ${Cursor.Name}... 
 /destroy 
 /destroy 
 /delay 5 
 } 
 /next LootSlot 
 /delay 5 
 /notify LootWnd DoneButton leftmouseup 
 /delay 2 
 /call checkanchor 
 /face heading 270
 /circle on 21
 /keypress forward hold
/return

Sub CheckAnchor    
 /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) /call MoveToAnchor    
/return 

Sub MoveToAnchor 
/call indz
/return

|----------------------------------------------------------------------------
|SUB: DestroyCopper - Destroy all the copper
|----------------------------------------------------------------------------
Sub DestroyCopper
   /squelch /windowstate InventoryWindow open
   /shift /notify InventoryWindow IW_Money3 leftmouseup
   /delay 1s ${Cursor.ID}>0
   /destroy
   /cleanup
/return

|----------------------------------------------------------------------------
|SUB: DestroySilver - Destroy all the silver
|----------------------------------------------------------------------------
Sub DestroySilver
   /squelch /windowstate InventoryWindow open
   /shift /notify InventoryWindow IW_Money2 leftmouseup
   /delay 1s ${Cursor.ID}>0
   /destroy
   /cleanup
/return

Sub Pet_Buff 

| Put these in the macro your inc this from 
| /declare Pethaste outer "Glyph of Darkness" 
| /declare Shrink outer "Tiny Companion" 

/if (${Me.Pet.ID}) { 
/if (!${Me.PetBuff[Glyph of Darkness]} || (!${Me.PetBuff[Bulwark of Calliav]})) { 
/call PBuffShieldHaste 
} 
} else { 
/echo You dont have a pet! 
} 
/echo Shrinking pet twice!!! 

/call cast ${Shrink} 
/delay 10 
/call cast ${Shrink} 
/echo And im spent! 
/pet taunt on 
/return 

Sub PBuffShieldHaste 

/sit on 
/book 35 
/echo Meming Haste 
/memspell 2 ${Pethaste} 
/memspell 2 ${Pethaste} 
/memspell 2 ${Pethaste} 
/delay 35 
/echo Waiting... 
/sit off 
/delay 325 
/if (!${Me.PetBuff[Glyph of Darkness]}) { 
/echo Pet needed Haste! 
/call Cast ${Pethaste} gem7 15s 
} 
/sit off 
/return 

Sub mana
	/echo Need mana, medding
	/warp loc -599.12 212.05 6.76
	/sit on
	/if (${Me.PctHPs}<=50) {
	/g Heal Me
}
	/if (${Me.PctMana}>=50) /call attack
/return

Sub buffs
	/if (!${Me.Buff[Dark Possession].ID}) { 
      /memspell 9 ${Lich} 
      /call cast ${Lich} gem9     
      /delay 5 
   } 
   /if (!${Me.Buff[Dull Pain].ID}) { 
      /memspell 9 ${Rune} 
      /call cast ${Rune} gem9
/return

Sub fire_dotoff2
	/call fire_dot2
/return

Sub fire_dotoff
	/call fire_dot
/return

Sub magic_dotoff
	/call magic_dot
/return

Sub magic_dot
	/cast 1
	/delay 3s
	/keypress 5
	/delay 10s
	/keypress 9
	/call attack
/return

Sub fire_dot2
	/cast 3
	/delay 3s
	/keypress 5
	/delay 10s
	/keypress 9
	/call attack
/return

Sub fire_dot
	/cast 2
	/delay 3s
	/keypress 5
	/delay 10s
	/keypress 9
	/call attack
/return

Sub pet_haste
	/cast 7
	/delay 6s
	/assist
	/delay 10
	/call attack
/return

Sub attack
	/pet attack
	/delay 10s
	/if (${Target.PctHPs}>=90) /call magic_dot
	/if (${Target.PctHPs}>=80) /call fire_dot2
	/if (${Target.PctHPs}>=65) /call fire_dot
	/if (${Target.PctHPs}>=40) /call magic_dot
	/if (${Target.PctHPs}>=30) /call fire_dot2
/return

Rich (BB code):
| *********************************************************** 
| ******************** FredFlintstone *********************** 
| *********************************************************** 
| Necromancer Ver 0.2.0 
| started 5/10/05 released 6/10/05 updated 7/23/05 
| 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. 
| 
| Ver 0.2.0 Changes 
|   Removed the use of Pet.inc because of the string issues 
| 
| 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; 
|       
| 

#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#*#" 
| ------------------------ Magic Dots ------------------------------------ 
#Event MagicDot1Off "#*#Your Dark Nightmare spell has worn off#*#" 
#Event MagicResisted "#*#Your target resisted the Dark Nightmare spell#*#" 
#Event MagicDot1LandedEvent "#*#mind is consumed in dark nightmares#*#" 
#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] Wilma 
/varset FollowOnly[3] Barney 
/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 "Soulwhisper" 
/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 
| ----------------------- 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 "Miragul's Shroud of Risen Souls" 
/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 Wrack" 
/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 "Algae Covered Stiletto" 
| -------------------- Magic Dots ------------------------------------ 
/declare MagicDot1 outer "Dark Nightmare" 
/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 "Pyre of Mori" 
/declare FireDot1Resisted int outer 0 
/declare FireDot1Landed bool outer FALSE 
/declare FireDot1Resistant bool outer FALSE 
/declare FireDot2 outer "Miragul's Greaves of Risen Souls" 
/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 "Soulspike" 
/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 
   /if (${ManaRobe}) { 
      /if (${Me.PctMana} < 50) { 
         /call NeedMana 
      } 
   } 
   /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 (${CanSOW}) { 
      /if (!${Me.Buff[Bootstrutter's Blessing].ID} && !${Me.Buff[Flight of Eagles].ID} && !${Me.Buff[Spirit of Eagle].ID} && !${Me.Buff[Spirit of Bih`Li].ID}) { 
         /call cast ${Boot} item 
         /delay 5 
      } 
   } 
   /if (!${Me.Buff[Shield of the Eighth].ID}) { 
      /call cast ${Ring} item 
      /delay 5 
   } 
   /if (!${Me.Buff[Form of Rejuvenation].ID}) { 
      /call cast ${Belt} item 
      /delay 5 
   } 
   /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.Buff[Summon Horse].ID}) { 
      /if (${CanMount}) { 
         /call cast ${Mount} item 
         /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}) { 
            /call cast ${Mount} item 
            /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 3600 /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 (${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 
            /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 
            /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 


| ######################### 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... #############################
 
Last edited:
ok i will post things i see .. as i see them .. and explain why for each .. may take me a few days .. but we shall see 8-)

Lets start with events

Rich (BB code):
#turbo
#chat group 
#chat tell
#Event MobDied "#*#has been slain by#*#"
#event MobDied "#*#you have slain#*#"
#event MobDied "#*#corpse lets out a sharp squeak, then topples over#*#"
#event MobDied "#*#corpse lets out a sharp squeak#*#"
#Event TwitchModeOn "#*#TwitchOn#*#" 
#Event TwitchModeOff "#*#TwitchOff#*#" 
#Event TwitchMeOff "#*#Stop Twitching#*#"
#event magic_dotoff "#*#Your Dark Nightmare spell has worn off of#*#"
#event fire_dotoff "#*#Your Pyre of Mori spell has worn off of#*#"
#event fire_dot2off "#*#Your Funeral Pyre of Kelador spell has worn off of#*#"
#event pet_haste "#*#Your pet's Glyph of Darkness spell has worn off#*#"
#event ding "#*#have gained a level! Welcome to level#*#"
#event end "Shutdown12345"
#event dzadd "PERSONYOUWANTTOADD tells you, 'CODEWORD'"
#event invite "#*#invites you to join#*#"  
#event Zoned "#*#You have entered Guild Lobby#*#"
#event dzquit "#*#You have entered Nedaria's Landing#*#" 
#event PoK "You have entered Guild Lobby."

take out

Rich (BB code):
#event MobDied "#*#you have slain#*#"
#event MobDied "#*#corpse lets out a sharp squeak, then topples over#*#"
#event MobDied "#*#corpse lets out a sharp squeak#*#"

and change

#Event MobDied "#*#has been slain by#*#"

to

#Event MobDied "#*#slain by#*#"

I say this to clear up repetiveness....

If your cleric dies.. it should camp..
if you park your cleric back far enough .. the cleric corpse will not be an issue
 
is the cleric in grp with you?

does the cleric have a trigger when it zones to NL to ask for invites?

I am asking.. just to clear out unnecessary events / subs
 
Rich (BB code):
Sub regen

/twist 1 6
:regenloop
/potionbelt activate 1
/sit
/goto :regenloop
/return

this never checks your HP to see when to return to the fight...nor does it check events to see if your stuff has wore off

/if (${Me.PctHPs} == 100) /return

also might want a /delay 3s before you sit.... just to let the potion finish casting
 
Rich (BB code):
#event ding "#*#have gained a level! Welcome to level#*#"
#event end "Shutdown12345"

can be removed.. no sub Event for either in macro

and not really needed IMO
 
the macro that i wrote works the way that i want it to. the reason that there is no updated succor is because when the necro gets below 80% health he says '/g heal me' and the cleric casts pious remedy on him. the cleric is in the group with him, and since its my dad's cleric i dont go afk for hours, so the only thing i need to put into the NECRO mac, for the cleric is twitch, that way i can change the cleric mac to say 'Twitch Me' when he gets to like 30m and then 'Stop Twitching' when he gets up to like 65 or 70m. The reason i decided to write a new macro is because i was having some big issues with changing the necromancer macro. The one that i wrote, casts the dot, then FD, casts the next dot, then FD, and so on. What i want it to do is cast the magic dot (dark nightmare), then FD for like 3sec, then if it resisted, ect. recast, or move on to the next one, fire dot (pyre of mori), and so on. the mac i wrote works he way that i want it to, minus the checks for resists and such.
so basically i want it to dot, fd, if i get hit to FD, twitch cleric when cleric says in group '%m' and stop when he says '%m', and haste the pet. the pet tanks so the pet needs to attack first and get agro, so i had a 5sec delay between the pet attacking and the first dot. i also have it set up to dot at 90, 80, 70 and then like 40 and 30. because otherwise they wear off. there should also be a mana check so the necro doesnt attack anything while being under 20m. im sure you will have more questions so i will answer more when you reply.
 
and the reason i have different 'slain' event is because if the mob dies far away, you dont get 'slain by' you get some 'sqeaking corpse' shit. and the cleric wont die lol, even if the cleric was tanking the mob due to agro he has enough hp/mana to heal himself the whole time (11,000hp and 2,000ac with conviction) and im not worried about him dying. plus i use CH to reduce agro, and cleric has never gotten hit once so far lol.
 
Check it out see what you think

i updated / rewrote your code.. see below

took out unnecessary stuff
- declarations
- subs and stuff that we never called
- twists and circle commands

reorganized the flow a little so its easier to read
still not perfect... but oh well

changed subs and calls
- all dot subs are changed
- added a hp check to regen sub
- renamed sub mana to sub med .. so it would get called
- made regen and med a loop so they would stay in loop till desired hp or mana is reached
- added a mob dist check so you will never be more than 50 from mob
this would add a problem if mob got more than 220 .. you would target another mob ..

EDIT: CHANGED CHAT SUB to TWITCH SUB and added... couldn't leave before i did .. lol

Rich (BB code):
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|~~~~~~~~~~~~~FHNecro.mac~~~~~~~~~~~~~~~~
|~~~~~~~~~~~~Written by SS44~~~~~~~~~~~~~~~
|~~~~~~~~~~~~For RedGuides~~~~~~~~~~~~~~~
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


|Spells:
|	1:Magic DOT
|	2:Fire Dot
|	3:Fire Dot
|	4:FD
|	5:Pet /Shrink
|	6:Lich / Rune / Shielding
|	7:PEt Haste
|	8:Dis Dot 1  / Twitch 1
|	9:Dis Dot 2  / Twitch 2

#turbo

#chat group 
#chat tell

#event dzadd "PERSONYOUWANTTOADD tells you, 'CODEWORD'"
#event invite "#*#invites you to join#*#"
#Event TwitchOn "#*#TwitchOn#*#" 
#Event TwitchOff "#*#TwitchOff#*#" 
#Event TwitchMeOff "#*#Stop Twitching#*#"
#event dot1off "#*#Your Dark Nightmare spell has worn off of#*#"
#event dot2off "#*#Your Pyre of Mori spell has worn off of#*#"
#event dot3off "#*#Your Funeral Pyre of Kelador spell has worn off of#*#"
#event pet_haste "#*#Your pet's Glyph of Darkness spell has worn off#*#"
#event Resist "#*#resisted your#*#"
#Event MobDied "#*#been slain by#*#"
#event Zoned "#*#You have entered Guild Lobby#*#"
#event dzquit "#*#You have entered Nedaria's Landing#*#" 
#event PoK "You have entered Guild Lobby."
|Change this to the         ^^^^^^^^^^^^^^
|zone you are bound in

|-- Destroys Silver if you have more than the given amount! 0=disable
#define DESTROY_SILVER_IF_ABOVE 1
|-- Destroys Copper if you have more than the given amount! 0=disable
#define DESTROY_COPPER_IF_ABOVE 1

#include Spell_routines

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Main

|~~~~~~~~~~~~~~~~~~~~DOTSs~~~~~~~~~~~~~~~~~~~~~~~~  |
/declare Dot1 outer "Dark Nightmare" 
/declare Dot2 outer "Your Pyre of Mori" 
/declare Dot3 outer "Funeral Pyre of Kelador"
|------------------------^^^^^^^^^^^^^^^

|---------------EDIT SPELL NAMES ------------------

|~~~~~~~~~~~~~~~~~~~~Buffs~~~~~~~~~~~~~~~~~~~~~~~~  |
/declare Rune outer "Dull Pain"
/declare Shielding outer "Shadow Guard"
/declare Lich outer "Dark Possession"
/declare Twitch1 string outer "Sedulous Subversion" 
/declare Twitch2 string outer "Covetous Subversion"
/declare FD string outer "FD SPELL HERE"
|-------------------------^^^^^^^^^^^^^

|---------------EDIT SPELL NAMES ------------------

|~~~~~~~~~~~~~~~~~~~Pet Spells~~~~~~~~~~~~~~~~~~~~~~|
/declare Pet outer "Dark Assassin"
/declare Shrink outer "Tiny Companion"
/declare Pethaste outer "Glyph of Darkness" 

 /declare diditresist int global
 /varset diditresist 0
 /declare Twitch int global
 /varset Twitch 0
 /declare LootAllItems int outer 1 
 /declare LootSlot int outer 0 

|We are waiting for the hotkey to start the macro
	:waitforit
	/doevents
	/doevents
	/goto :waitforit
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub indz
	:begin  
	/delay 1s
	/warp loc -599.12 212.05 6.76
	/delay 1s
	/call loopstart
/return


|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_Twitchon

         /rt
         If (${Twist}==0) {
         /if (!${Target.ID}) { 
            /echo is not in zone for me to Twitch! 
            /r Im not even in the same zone as you! 
            /return 
         } 
         /delay 2 
         /if (${Target.Distance}<100) {
            /rt 
            :Twitch_Loop 
               /doevents 
               If (${Twist}==0) {
               /call cast ${Twitch1} gem8 
               /call cast ${Twitch2} gem9 
               /delay 5 
               /goto :Twitch_Loop
               }
            /goto :end
           }
           }else{
           /t ${ChatSender} Your oor sry.           
      } 
}
:end
	/varset Twitch 1
   	/return

Sub Event_Twitchoff
/varset Twitch 1
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub loopstart   
		:loopstart 
		/delay 1s
		/call GMcheck  
		/call buffs
		/if (${Target.Level}>67) /tar npc next 
		/if (${Target.Distance}>220) /keypress esc
		/if (${Target.ID}==FALSE) /tar NPC radius 220 rat
		/if (${Me.PctMana}<=20) /call med
		/if (${Me.PctHPs}<=20) /call succor
		/if (${Me.PctHPs}<=80) /g Heal Me
		/if (${Me.PctHPs}<=40) /potionbelt activate 2
		:mobmoveloop
		/face
		/if (${Int[${Target.Distance}]}>50) { 
                /stand on
     		/keypress forward hold
                /goto :mobmoveloop
                } 	
		/call attack
		/doevents
	/delay 10  
	/goto :loopstart  
/return  

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub med
	:MedLoop
	/echo Need mana, medding
	/warp loc -599.12 212.05 6.76
	/sit on
	/if (${Me.PctHPs}<=50) /g Heal Me
	/if (${Me.PctMana}>=50) /return

/goto :MedLoop

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub succor

	/warp loc 245 -33 0
	/delay 1s
	/fade
	/delay 120s
        /call regen
     /return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub regen

   :regenloop
   /potionbelt activate 1
   /sit
   /if (${Me.PctHPs} == 100) /return
   /goto :regenloop
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub GMcheck  
 	/if (${Spawn[gm].ID}) {  
 		/echo Gm detected  
 		/beep 
 		/beep 
 		/beep  
 		/q 
 		/endmac 
 		/unload 
 		/q  
 	}  
/return  

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|This next bit removes you from the expdition if you still have it after 
|  you zone out
|Targets Eldros Danmor warps to him gets the adventure window then it 
| warps back to Nideno and says forgotten halls allowing you to zone in.
|You then warp closer to the rock look at point behind the rock and 
| press use or u, also you click with the mouse so you mouse needs to be
| in the center of the screen. 

Sub event_dzquit
        /doevents
        /call gmcheck
        /disband
	/dzremove Gajar
        /dzremove Gajar
	/twist off
	/delay 2s
	/target Eldros Danmor
	/warp target
	/delay 2s
	/say interested in visiting
	/delay 3s
	/target Nideno Eliagy
	/warp target
	/delay 2s
	/say Forgotten halls
	/delay 2s
        /doevents
	/warp loc 1544 -665 94
	/face loc 1540, -675
	/look 0
	/doortarget
	/delay 10s
	/keypress u
	/keypress u 
	/delay 1s
	/target clear
	/call destroysilver
	/call indz
/return


|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_PoK 
	/echo sorry i don't know how or why but you died.
        /delay 45s
	/sit on
	/camp desktop 
        /q
	/endmacro 
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|LOOT SUB

 Sub Event_MobDied 
   /doevents
   /twist off 
   /call GMcheck
   /circle off
   /keypress forward
   /delay 1s
   /setvar diditresist 0
   /squelch /declare LootSlot    int inner  0 
   /declare LootCheck   int inner  0 
   /declare LootTotal   int inner  0 
   /target npc corpse radius 200 
   :MovementLoop 
	/face fast nolook 

	/if (${Int[${Target.Distance}]}>13) /keypress forward hold 
 
 	/if (${Int[${Target.Distance}]}<13&&${Int[${Target.Distance}]}>11) /keypress forward 
 	 
 	/if (${Int[${Target.Distance}]}<9) /keypress back 
 	 
 	/if (${Int[${Target.Distance}]}>13) /goto :MovementLoop 
     /keypress forward 
     /keypress back 
     /delay 5 
     /loot 
     /delay 5 
     /if (!${Corpse.Items}) { 
	/echo NO LOOT!
     	/notify LootWnd DoneButton leftmouseup 
     	/call DestroyCopper
     	/delay 1s 
     	/call checkanchor  
     	/return 
     } 
 /varset LootTotal ${Corpse.Items} 
 	/for LootSlot 1 to ${LootTotal} 
 	/itemnotify loot${LootSlot} leftmouseup 
	 /delay 5 
 	/if (${LootAllItems}) { 
 	/echo Keeping a ${Cursor.Name}... WOOT! 
 	/autoinventory 
 	/autoinventory 
 	/delay 5 
 	} else { 
 	/for LootCheck 1 to ${ItemsToLoot.Size} 
 	/if (${Cursor.Name.Find[${ItemsToLoot[${LootCheck}]}]}) { 
 	/echo Keeping a ${Cursor.Name}... WOOT! 
 	/autoinventory 
 	/autoinventory 
 	/delay 5 
 	} 
 	/next LootCheck 
 	} 
 	/if (${Cursor.ID}) { 
 	/echo Destroying a ${Cursor.Name}... 
 	/destroy 
 	/destroy 
 	/delay 5 
 	} 
 	/next LootSlot 
 	/delay 5 
 	/notify LootWnd DoneButton leftmouseup 
 	/delay 2 
 	/call checkanchor 
	/return

Sub CheckAnchor    
 	/if (${Math.Distance[${AnchorY},${AnchorX}]}>12) /call MoveToAnchor    
	/return 

Sub MoveToAnchor 
	/call indz
	/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|SUB: DestroyCopper - Destroy all the copper
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub DestroyCopper
   /squelch /windowstate InventoryWindow open
   /shift /notify InventoryWindow IW_Money3 leftmouseup
   /delay 1s ${Cursor.ID}>0
   /destroy
   /cleanup
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|SUB: DestroySilver - Destroy all the silver
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub DestroySilver
   /squelch /windowstate InventoryWindow open
   /shift /notify InventoryWindow IW_Money2 leftmouseup
   /delay 1s ${Cursor.ID}>0
   /destroy
   /cleanup
/return


|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Pet_Buff 

/if (${Me.Pet.ID}) { 
	/if (!${Me.PetBuff[Glyph of Darkness]} { 
	/call PBuffShieldHaste 
	} 
} else { 
/echo You dont have a pet!
/call cast ${Pet} Gem5 
} 
/echo Shrinking pet twice!!! 

/call cast ${Shrink} Gem5
/delay 10 
/call cast ${Shrink} Gem5
/pet taunt on 
/return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub PBuffShieldHaste 

	/if (!${Me.PetBuff[Glyph of Darkness]}) { 
	/echo Pet needed Haste! 
	/call Cast ${Pethaste} gem7 15s 
	} 
/return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub buffs
	/if (!${Me.Buff[Dark Possession].ID}) { 
        /call cast ${Lich} gem6     
        /delay 5 
        } 
        /if (!${Me.Buff[Dull Pain].ID}) { 
        /call cast ${Rune} gem6
        } 
        /if (!${Me.Buff[Shadow Guard].ID}) { 
        /call cast ${Shielding} gem6
        }
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|DOT SUBS
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Sub dot1off
	/call dot1
/return

Sub dot2off
	/call dot2
/return

Sub dot3off
	/call dot3
/return

Sub dot1
      	:Main_DoT_Loop
	/if (${Me.SpellReady[${Dot1}]}) { 
               /call cast ${Dot1} gem1 
               /doevents
            }
              /if (${diditresist}==1)  /goto :Main_Dot_Loop  
          /setvar diditresist 0
          /echo ${Dot1} is going, on to next spell! 
          /call cast ${FD} Gem4
		/keypress 5
		/delay 10s
		/keypress 9
          /return

Sub dot2
	:Main_DoT_Loop
	/if (${Me.SpellReady[${Dot2}]}) { 
               /call cast ${Dot2} gem1 
               /doevents
            }
              /if (${diditresist}==1)  /goto :Main_Dot_Loop 
          /setvar diditresist 0
	  /echo ${Dot2} is going, on to next spell! 
          /call cast ${FD} Gem4
		/keypress 5
		/delay 10s
		/keypress 9
          /return

Sub dot3
      	:Main_DoT_Loop
	/if (${Me.SpellReady[${Dot3}]}) { 
               /call cast ${Dot3} gem1 
               /doevents
            }
              /if (${diditresist}==1)  /goto :Main_Dot_Loop 
          /setvar diditresist 0 
          /echo ${Dot3} is going, on to next spell! 
          /call cast ${FD} Gem4
		/keypress 5
		/delay 10s
		/keypress 9
          /return

Sub attack
	/pet attack
	/delay 10s
	/if (${Target.PctHPs}>=90) /call dot1
	/if (${Target.PctHPs}>=80) /call dot2
	/if (${Target.PctHPs}>=65) /call dot3
	/if (${Target.PctHPs}>=40) /call dot1
	/if (${Target.PctHPs}>=30) /call dot2
/return
 
Last edited:
This is the error I got right after i started it...

Rich (BB code):
Subroutine cast wasn't found
nec1.mac@398 (buffs): /call cast $(Rune) gem6
nec1.mac@142 (loopstart): /call buffs
nec1.mac@91 (indz)L /call loopstart
nec1.mac@337 (MovetoAnchor): /call indz
nec1.mac@297 (Event_ModDied): /call checkanchor
nec1.mac@80 (Main): /doevents

Also, I use the AA to feign death, its also called Death Peace if you wanted to change it and use that instead of the spell "death peace". But more worried about getting it to work this way first lol. Once we get it to work there will be other requests, because i have no idea how to work resists, fizzles, FD not working, ect lol.
 
okay, i added #include spell_routines.ini, then i got this error..

Rich (BB code):
Unable to add macro line.
/declare 'diditresist' failed. Name already in use.
nec1.mac@75 (Main): /declare diditresist int global

After i got that error I tried to restart the mac again and i keep getting this error, i dont get the line 75 error anymore.

Rich (BB code):
Unable to add macro line.
/declare 'diditresist' failed. Name already in use.
nec1.mac@74 (Main): /declare diditresist int global
 
Last edited:
Yes, i just changed it right after i made those posts...I highlighted it in red below.

Rich (BB code):
#turbo
#chat group 
#chat tell
#event dzadd "PERSONYOUWANTTOADD tells you, 'CODEWORD'"
#event invite "#*#invites you to join#*#"
#Event TwitchModeOn "#*#TwitchOn#*#" 
#Event TwitchModeOff "#*#TwitchOff#*#" 
#Event TwitchMeOff "#*#Stop Twitching#*#"
#event dot1off "#*#Your Dark Nightmare spell has worn off of#*#"
#event dot2off "#*#Your Pyre of Mori spell has worn off of#*#"
#event dot3off "#*#Your Funeral Pyre of Kelador spell has worn off of#*#"
#event pet_haste "#*#Your pet's Glyph of Darkness spell has worn off#*#"
#event Resist "#*#resisted your#*#"
#Event MobDied "#*#been slain by#*#"
#event Zoned "#*#You have entered Guild Lobby#*#"
#event dzquit "#*#You have entered Nedaria's Landing#*#" 
#event PoK "You have entered Guild Lobby."
|Change this to the         ^^^^^^^^^^^^^^
|zone you are bound in

|~~~~~~~~~~~~~~~~~~~~~Spell_Routines~~~~~~~~~~~~~~~~~~
#include spell_routines.inc

|-- Destroys Silver if you have more than the given amount! 0=disable
#define DESTROY_SILVER_IF_ABOVE 1
|-- Destroys Copper if you have more than the given amount! 0=disable
#define DESTROY_COPPER_IF_ABOVE 1
 
close out everything

restart MQ and EQ and try this code..

EDIT found a TWIST /CIRCLE i missed

removed Keypress 5 and 9 .. added /stand on into subs where spell casting is called

CODE moved to last page




I hate rolling though pages to find stuff 8-)
 
Last edited:
keypress 5 is FD, because i dont know the AA # for Death Peace, and 9 is sit, stand for when i am FD because i was just trying to get the mac to work, then i was going to go back and fix what needed fixed lol.
 
Okay, this is what i got from running the macro for the first time... I get this after EVERY dot cast...

Rich (BB code):
DoCommand-Couldn't parse '/setver diditresist 0'
nec1.mac@425 (dot1): /setvar diditresist 0
nec1.mac@466 (attack): /if (${Target.PCTHps}>=90) /call dot1
nec1.mac@156 (loopstart): /call attack
nec1.mac@97 (indz): /call loopstart
nec1.mac@334 (MovetoAnchor): /call indz
nec1.mac@330 (CheckAnchor): /if (${Math.Distance[${Anchor Y}, ${AnchorX}]}.12 /call MovetoAnchor
nec1.mac@294 (Event_MobDied): /call checkanchor
nec1.mac@85 (Main): :waitforit

Doesnt summon pet, trying to cast while FD, cast's lich during fights, casts Rune during fight. Need buff checks, and pet check. Both are in the Necromancer mac by Fredflintstone on my initial post.

Also gave me these errors....

Rich (BB code):
/declare 'diditresist' failed. Name already in use
nec1.mac@77 (main): /declare diditresist in global

Rich (BB code):
/declare 'Twitch' failed. Name already in use
nec1.mac@79 (Main): /declare Twitch int global

Rich (BB code):
DoCommand-Couldn't parse '/setvar 'diditresist 0'
nec1.mac@269 (Event_MobDied): /setvar diditresist 0
nec1.mca@85 (Main): :waitforit

Only other thing was, I had to add '#event MobDied "#*#You have slain#*#"' because when i killed it instead of my pet it says '#*#You have slain#*#' instead of '##slain by#*#' but that was an easy fix. The FD problem can be fixed by delays.
 
do a find replace..

setvar is suppose to be varset

Change the Twitch to Twitching in the

Rich (BB code):
 /declare Twitching int global
 /varset Twitching 0

and i change it also in the sub

sub should look like this

Rich (BB code):
Sub Event_Twitchon

         /rt
         If (${Twisting}==0) {
         /if (!${Target.ID}) { 
            /echo is not in zone for me to Twitch! 
            /r Im not even in the same zone as you! 
            /return 
         } 
         /delay 2 
         /if (${Target.Distance}<100) {
            /rt 
            :Twitch_Loop 
               /doevents 
               If (${Twisting}==0) {
               /call cast ${Twitch1} gem8 
               /call cast ${Twitch2} gem9 
               /delay 5 
               /goto :Twitch_Loop
               }
            /goto :end
           }
           }else{
           /t ${ChatSender} Your oor sry.           
      } 
}
:end
	/varset Twitching 0
   	/return

Sub Event_Twitchoff
/varset Twitching 1
/return

if the diditresist error comes up again .. try changing it to resist and do a find and replace for that also ..
 
if it is just a tweak then i tweak it, if it is a big change like the sub posted above, then i copy/paste. logging necro in as soon as my bard finishes off this rat lol, then will repost with probs (if any) then we can start on the buff checks. I will look in the mac's i have and post the buff checks for you to look over so you dont have to.
 
updated code

Rich (BB code):
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|~~~~~~~~~~~~~FHNecro.mac~~~~~~~~~~~~~~~~
|~~~~~~~~~~~~Written by SS44~~~~~~~~~~~~~~~
|~~~~~~~~~~~~For RedGuides~~~~~~~~~~~~~~~
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


|Spells:
|	1:Magic DOT
|	2:Fire Dot
|	3:Fire Dot
|	4:FD
|	5:Pet /Shrink
|	6:Lich / Rune / Shielding
|	7:PEt Haste
|	8:Dis Dot 1  / Twitch 1
|	9:Dis Dot 2  / Twitch 2

#turbo

#include spell_routines

#chat group 
#chat tell

#event dzadd "PERSONYOUWANTTOADD tells you, 'CODEWORD'"
#event invite "#*#invites you to join#*#"
#Event TwitchOn "#*#TwitchOn#*#" 
#Event TwitchOff "#*#TwitchOff#*#" 
#Event TwitchOff "#*#Stop Twitching#*#"
#event dot1off "#*#Your Dark Nightmare spell has worn off of#*#"
#event dot2off "#*#Your Pyre of Mori spell has worn off of#*#"
#event dot3off "#*#Your Funeral Pyre of Kelador spell has worn off of#*#"
#event pet_haste "#*#Your pet's Glyph of Darkness spell has worn off#*#"
#event Resist "#*#resisted your#*#"
#Event MobDied "#*#been slain by#*#"
#Event MobDied "#*#You have slain#*#"
#event Zoned "#*#You have entered Guild Lobby#*#"
#event dzquit "#*#You have entered Nedaria's Landing#*#" 
#event PoK "You have entered Guild Lobby."
|Change this to the         ^^^^^^^^^^^^^^
|zone you are bound in

|-- Destroys Silver if you have more than the given amount! 0=disable
#define DESTROY_SILVER_IF_ABOVE 1
|-- Destroys Copper if you have more than the given amount! 0=disable
#define DESTROY_COPPER_IF_ABOVE 1

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Main

|~~~~~~~~~~~~~~~~~~~~DOTSs~~~~~~~~~~~~~~~~~~~~~~~~  |
/declare Dot1 outer "Dark Nightmare" 
/declare Dot2 outer "Your Pyre of Mori" 
/declare Dot3 outer "Funeral Pyre of Kelador"
|------------------------^^^^^^^^^^^^^^^

|---------------EDIT SPELL NAMES ------------------

|~~~~~~~~~~~~~~~~~~~~Buffs~~~~~~~~~~~~~~~~~~~~~~~~  |
/declare Rune outer "Dull Pain"
/declare Shielding outer "Shadow Guard"
/declare Lich outer "Dark Possession"
/declare Twitch1 string outer "Sedulous Subversion" 
/declare Twitch2 string outer "Covetous Subversion"
/declare FD string outer "FD SPELL HERE"
|-------------------------^^^^^^^^^^^^^

|---------------EDIT SPELL NAMES ------------------

|~~~~~~~~~~~~~~~~~~~Pet Spells~~~~~~~~~~~~~~~~~~~~~~|
/declare Pet outer "Dark Assassin"
/declare Shrink outer "Tiny Companion"
/declare Pethaste outer "Glyph of Darkness" 

|~~~~~~~~~~~~~~~~~~~various Variables~~~~~~~~~~~~~~~~~~~~~~|
 /declare diditresist int global
 /varset diditresist 0
 /declare Twitching int global
 /varset Twitching 0
 /declare LootAllItems int outer 1 
 /declare LootSlot int outer 0 

|We are waiting for the hotkey to start the macro
	:waitforit
	/doevents
	/doevents
	/goto :waitforit
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub indz
	:begin  
	/delay 1s
	/warp loc -599.12 212.05 6.76
	/delay 1s
	/call loopstart
/return


|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_Twitchon

         /rt
         If (${Twisting}==0) {
         /if (!${Target.ID}) { 
            /echo is not in zone for me to Twitch! 
            /r Im not even in the same zone as you! 
            /return 
         } 
         /delay 2 
         /if (${Target.Distance}<100) {
            /rt 
            :Twitch_Loop 
               /doevents 
               If (${Twisting}==0) {
               /call cast ${Twitch1} gem8 
               /call cast ${Twitch2} gem9 
               /delay 5 
               /goto :Twitch_Loop
               }
            /goto :end
           }
           }else{
           /t ${ChatSender} Your oor sry.           
      } 
}
:end
	/varset Twitching 0
   	/return

Sub Event_Twitchoff
/varset Twitching 1
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub loopstart   
		:loopstart 
		/delay 1s
		/call GMcheck  
                /call pet_buff
		/if (${Target.Level}>67) /tar npc next 
		/if (${Target.Distance}>220) /keypress esc
		/if (${Target.ID}==FALSE) /tar NPC radius 220 rat
		/if (${Me.PctMana}<=20) /call med
		/if (${Me.PctHPs}<=20) /call succor
		/if (${Me.PctHPs}<=80) /g Heal Me
		/if (${Me.PctHPs}<=40) /potionbelt activate 2
		:mobmoveloop
		/face
		/if (${Int[${Target.Distance}]}>50) { 
                /stand on
                /delay 2s
     		/keypress forward hold
                /goto :mobmoveloop
                } 	
		/call attack
		/doevents
	/delay 10  
	/goto :loopstart  
/return  

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub med
	:MedLoop
	/echo Need mana, medding
	/warp loc -599.12 212.05 6.76
	/sit on
	/if (${Me.PctHPs}<=50) /g Heal Me
	/if (${Me.PctMana}>=50) /return

/goto :MedLoop

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub succor

	/warp loc 245 -33 0 
	/stand on
        /delay 2s
	/delay 120s
        /call regen
     /return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub regen

   :regenloop
   /potionbelt activate 1
   /sit
   /if (${Me.PctHPs} == 100) /return
   /goto :regenloop
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub GMcheck  
 	/if (${Spawn[gm].ID}) {  
 		/echo Gm detected  
 		/beep 
 		/beep 
 		/beep  
 		/q 
 		/endmac 
 		/unload 
 		/q  
 	}  
/return  

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|This next bit removes you from the expdition if you still have it after 
|  you zone out
|Targets Eldros Danmor warps to him gets the adventure window then it 
| warps back to Nideno and says forgotten halls allowing you to zone in.
|You then warp closer to the rock look at point behind the rock and 
| press use or u, also you click with the mouse so you mouse needs to be
| in the center of the screen. 

Sub event_dzquit 
	/stand on
        /delay 2s
        /doevents
        /call gmcheck
        /disband
	/dzremove Gajar
        /dzremove Gajar
	/twist off
	/delay 2s
	/target Eldros Danmor
	/warp target
	/delay 2s
	/say interested in visiting
	/delay 3s
	/target Nideno Eliagy
	/warp target
	/delay 2s
	/say Forgotten halls
	/delay 2s
        /doevents
	/warp loc 1544 -665 94
	/face loc 1540, -675
	/look 0
	/doortarget
	/delay 10s
	/keypress u
	/keypress u 
	/delay 1s
	/target clear
	/call destroysilver
	/call indz
/return


|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_PoK 
	/echo sorry i don't know how or why but you died.
        /delay 45s
	/sit on
	/camp desktop 
        /q
	/endmacro 
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|LOOT SUB

 Sub Event_MobDied 
   /doevents 
   /stand on
   /delay 2s
   /call GMcheck
   /keypress forward
   /delay 1s
   /varset diditresist 0
   /squelch /declare LootSlot    int inner  0 
   /declare LootCheck   int inner  0 
   /declare LootTotal   int inner  0 
   /target npc corpse radius 200 
   :MovementLoop 
	/face fast nolook 

	/if (${Int[${Target.Distance}]}>13) /keypress forward hold 
 
 	/if (${Int[${Target.Distance}]}<13&&${Int[${Target.Distance}]}>11) /keypress forward 
 	 
 	/if (${Int[${Target.Distance}]}<9) /keypress back 
 	 
 	/if (${Int[${Target.Distance}]}>13) /goto :MovementLoop 
     /keypress forward 
     /keypress back 
     /delay 5 
     /loot 
     /delay 5 
     /if (!${Corpse.Items}) { 
	/echo NO LOOT!
     	/notify LootWnd DoneButton leftmouseup 
     	/call DestroyCopper
     	/delay 1s 
     	/call checkanchor  
     	/return 
     } 
 /varset LootTotal ${Corpse.Items} 
 	/for LootSlot 1 to ${LootTotal} 
 	/itemnotify loot${LootSlot} leftmouseup 
	 /delay 5 
 	/if (${LootAllItems}) { 
 	/echo Keeping a ${Cursor.Name}... WOOT! 
 	/autoinventory 
 	/autoinventory 
 	/delay 5 
 	} else { 
 	/for LootCheck 1 to ${ItemsToLoot.Size} 
 	/if (${Cursor.Name.Find[${ItemsToLoot[${LootCheck}]}]}) { 
 	/echo Keeping a ${Cursor.Name}... WOOT! 
 	/autoinventory 
 	/autoinventory 
 	/delay 5 
 	} 
 	/next LootCheck 
 	} 
 	/if (${Cursor.ID}) { 
 	/echo Destroying a ${Cursor.Name}... 
 	/destroy 
 	/destroy 
 	/delay 5 
 	} 
 	/next LootSlot 
 	/delay 5 
 	/notify LootWnd DoneButton leftmouseup 
 	/delay 2 
 	/call checkanchor 
        /call buffs
	/return

Sub CheckAnchor    
 	/if (${Math.Distance[${AnchorY},${AnchorX}]}>12) /call MoveToAnchor    
	/return 

Sub MoveToAnchor 
	/call indz
	/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|SUB: DestroyCopper - Destroy all the copper
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub DestroyCopper
   /squelch /windowstate InventoryWindow open
   /shift /notify InventoryWindow IW_Money3 leftmouseup
   /delay 1s ${Cursor.ID}>0
   /destroy
   /cleanup
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|SUB: DestroySilver - Destroy all the silver
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub DestroySilver
   /squelch /windowstate InventoryWindow open
   /shift /notify InventoryWindow IW_Money2 leftmouseup
   /delay 1s ${Cursor.ID}>0
   /destroy
   /cleanup
/return


|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Pet_Buff 

/if (${Me.Pet.ID}) { 
	/if (!${Me.PetBuff[Glyph of Darkness]} { 
	/stand on 
        /delay 2s
	/call PBuffShieldHaste 
	} 
} else { 
/echo You dont have a pet!
/call cast ${Pet} Gem5 
} 
/echo Shrinking pet twice!!! 

/call cast ${Shrink} Gem5
/delay 10 
/call cast ${Shrink} Gem5
/pet taunt on 
/return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub PBuffShieldHaste 

	/if (!${Me.PetBuff[Glyph of Darkness]}) { 
	/stand on 
        /delay 2s
	/echo Pet needed Haste! 
	/call Cast ${Pethaste} gem7 15s 
	} 
/return 

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub buffs
	/if (!${Me.Buff[Dark Possession].ID}) {  
	/stand on
        /delay 2s
        /call cast ${Lich} gem6     
        /delay 5 
        } 
        /if (!${Me.Buff[Dull Pain].ID}) { 
        /call cast ${Rune} gem6
        } 
        /if (!${Me.Buff[Shadow Guard].ID}) { 
        /call cast ${Shielding} gem6
        }
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|DOT SUBS
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Sub dot1off
	/call dot1
/return

Sub dot2off
	/call dot2
/return

Sub dot3off
	/call dot3
/return

Sub dot1
      	:Main_DoT_Loop
	/if (${Me.SpellReady[${Dot1}]}) { 
	       /stand on
               /delay 2s
               /call cast ${Dot1} gem1 
               /doevents
            }
              /if (${diditresist}==1)  /goto :Main_Dot_Loop  
          /varset diditresist 0
          /echo ${Dot1} is going, on to next spell! 
          /call cast ${FD} Gem4
          /return

Sub dot2
	:Main_DoT_Loop
	/if (${Me.SpellReady[${Dot2}]}) { 
	       /stand on 
               /delay 2s
               /call cast ${Dot2} gem1 
               /doevents
            }
              /if (${diditresist}==1)  /goto :Main_Dot_Loop 
          /varset diditresist 0
	  /echo ${Dot2} is going, on to next spell! 
          /call cast ${FD} Gem4
          /return

Sub dot3
      	:Main_DoT_Loop
	/if (${Me.SpellReady[${Dot3}]}) {  
	       /stand on
               /delay 2s
               /call cast ${Dot3} gem1 
               /doevents
            }
              /if (${diditresist}==1)  /goto :Main_Dot_Loop 
          /varset diditresist 0 
          /echo ${Dot3} is going, on to next spell! 
          /call cast ${FD} Gem4
          /return

Sub attack
	/pet attack
	/delay 10s
	/if (${Target.PctHPs}>=90) /call dot1
	/if (${Target.PctHPs}>=80) /call dot2
	/if (${Target.PctHPs}>=65) /call dot3
	/if (${Target.PctHPs}>=40) /call dot1
	/if (${Target.PctHPs}>=30) /call dot2
/return
 
Last edited:
k, i still got that error, which would prolly cause the only thing that was wrong still (minus the FD, buff, pet prob) diditresist still giving probs along with twitching, same code as before. will change like you said to., trying the one you just posted now
 
Okay, problem with the one you just posted....

Rich (BB code):
Failed to parse /if command. Could not find command to execute.
nec3.mac@365 (Pet_Buff): /if (!${Me.PetBuff[Glyph of Darkness]}{
nec3.mac@142 (loopstart): /call pet_buff
nec3.mac@98 (indz): /call loopstart
nec3.mac@335 (MoveToAnchor): /call indz
nec3.mac@331 (CheckAnchor): /if (${Math.Distance[${Anchor Y}, ${Anchor X}]}>12) /call MoveToAnchor
nec3.mac@294 (Event_MobDied): /call checkanchor
nec3.mac@86 (Main): :waitforit
The current macro has ended.
 
ok there is a problem with the pet buff check .. and might even be same with toon buff check .. not sure..

I just used the code you had for that..


Ok i have no clue why declaring those two variables is causing problems..

anyone know a command to flush the variables?

like the

/doevents flush

???
 
in the code at top of page.. it has toon buff check moved.. added the call pet buffs.. and shouldn't see the problem with casting while FD..

i will go back and look at what you posted a bit ago to re look what problem was while Fd...
 
yea, it tries to cast dots while FD. and the necromancer mac has working buff checks in it, the pet/self buff checks work fine on that one, but that was pretty much it on that mac. make sure that you took the code out of the second one, not that piece of shit immitation macro i wrote lol. it also has a check to see if i have a pet, and if it has haste, one more prob with our mac is that it doesnt check (or cast at all) if pet has haste.
 
his pet buffs are in a file called petbuff.inc

so i can not check it agains his code..

try adding .ID

/if (!${Me.PetBuff[Glyph of Darkness].ID} {


like the self buff checks.,.. see if that works


as you can see by the macros i have worked on .. or written .. i never check buffs.. lol

I am going to crash bro ..


so let me know what happens..


and i still can't figure why those two declarations won't work
 
Looking for help with my macro, PLEASE

Users who are viewing this thread

Back
Top