• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Emu Mage AFK Hunt Macro

HardOne

Member
Joined
Jan 15, 2006
RedCents
61¢
Made this to Powerlevel my tons easily. Once again its customized for the Scars of Amerous server.


Rich (BB code):
|------------------------------------------------------------|
|		    Includes
|------------------------------------------------------------|
#Include spell_routines.inc
|------------------------------------------------------------|
|		    Events
|------------------------------------------------------------|
#Chat Chat
#Chat tell
#Event DEATH "You have entered#*#"
#Event DEATH "You have been slain#*#"  
#Event CHAT "#*# tells you, '#*#"
#Event GROUP "<#1#> #2#"
#Event COH "<#*#> coh #1#"
#Event COH "#*# tells you, 'coh #1#"
#Event HELP "[MQ2] help"
#Event SFG "<#1#> sfg"
#Event HATE "<#1#> hate"
#Event CRYSTAL "<#1#> crystal"
#Event ACRYLIA "<#1#> acry"
#Event FIRE "<#1#> fire"
#Event FAYDARK "<#1#> faydark"
#Event BUTCHER "<#1#> butcher"
#Event UNREST "<#1#> unrest"
#Event KITHICOR "<#1#> kithicor"
#Event KEEP "<#1#> keep"
#Event LAIR "<#1#> lair"
#Event OVERTHERE "<#1#> overthere"
#Event LAKE "<#1#> lake"
#Event MAZE "<#1#> maze"
#Event MARR "<#1#> marr"
#Event SOLUSEK "<#1#> solusek"

Sub Main 
|-----------SPELLS------------------------------------------|
   /Declare SlowNuke  		outer	"Fickle Inferno"
   /Declare FastNuke  		outer	"Scalding Sands"
   /Declare PBAE      		outer	"Wind of the Desert"
   /Declare AENuke    		outer	"Rain of Thunderbolts"
   /Declare PetHeal   		outer	"Renewal of Aenda"
   /Declare PetSummon 		outer	"Essence of Air"
   /Declare PetBuff   		outer	"Burnout VI"
   /Declare ProcBuff  		outer	"Burning Aura"
   /Declare DS        		outer	"Magmaskin"
   /Declare COH				outer	"Call of the Hero"
|-----------IRC----------------------------------------------|
   /Declare UseIRC			outer	TRUE
   /Declare IRCServerAddr	outer	"127.0.0.1"
   /Declare IRCPort			outer	"6667"
   /Declare IRCChannel		outer	"#Bot"
|-----------PERCENT TO DO THINGS-----------------------------|
   /Declare HealAt    		outer	30
   /Declare ManaAt    		outer	5
   /Declare PetHealAt 		outer   60
|-----------OTHER--------------------------------------------|   
   /Declare UseEpic			outer	TRUE
   /Declare Epic			outer	"Staff of Elemental Essence"
   /Declare EpicPetBuff		outer	"Elemental Conjunction"
   /Declare GateItem		outer	"Newbie Charm"
   /Declare Radius    		outer   400
   /Declare PetDS			outer	TRUE
   /Declare PetProc			outer   FALSE
|-----------STOP EDITING-------------------------------------|   
   /Declare CoHealing timer outer	0
   /Declare CoMana    timer outer	0
   /Declare EpicTimer timer outer	0
|------------------------------------------------------------|
|		    Main Loop (Start of Macro)
|------------------------------------------------------------|
   /echo
   /echo Mage Hunter Bot 2.0 started!
   /echo Type /echo Help for more details!
   /echo  
	/if (${UseIRC}) /iconnect ${IRCServerAddr} ${IRCPort} ${IRCChannel} ${Me} 
		/call MemSpells
	
   :MyMainLoop 
   /if (${Me.Casting.ID}) /goto :MyMainloop 
   /doevents 
   /call FindMobs
   /call Checks
   /goto :MyMainLoop 
/return

Sub Checks
	/call PetBuffs
	/call PetHealth
	/call CheckMyHealth
	/call CheckMyMana
/return

sub FindMobs 
/target npc radius ${Radius} zradius 50 alert 1
/delay 10
/if (${Target.Type.Equal[NPC]} && ${Target.Distance}<${Radius}) {
	/call Attack
} Else {
}
/return

Sub Attack
:GetClose
/if (${Target.Distance}>100) {
		/call Checks	
			/face
				/keypress up hold
					/delay 5
						/keypress up
	/goto :GetClose
} Else {
/goto :AttackLoop
}
	 /popup Killing (${Target})!
	:Attack_Loop
			/if (${Target.Type.Equal[NPC]} && ${Target.Distance}<200) {
				/pet Attack
				/call cast ${FastNuke} gem2
				/delay 40
					/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :Attack_Loop
					/if (${Macro.Return.Equal["CAST_NOTARGET"]}) /return	
					/if (${Macro.Return.Equal["CAST_RESISTED"]}) /goto :Attack_Loop
					/if (!${Macro.Return.Equal["CAST_SUCCESS"]}) /goto :Attack_Loop
					/call Checks
				:Attack2_Loop					
				/if (${Target.Type.Equal[NPC]} && ${Target.Distance}<200) {
				/pet Attack
				/call cast ${SlowNuke} gem1
				/delay 40
					/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :Attack2_Loop
					/if (${Macro.Return.Equal["CAST_NOTARGET"]}) /return
					/if (${Macro.Return.Equal["CAST_RESISTED"]}) /goto :Attack2_Loop
					/if (!${Macro.Return.Equal["CAST_SUCCESS"]}) /goto :Attack2_Loop
					}
					/call Checks					
			/goto :Attack_Loop
} Else {
}
/return

Sub CheckMyHealth
/if (${Me.PctHPs}<30 && ${CoHealing}==0) {
:HealMe_Loop
	/target myself
	/delay 5
	/call cast "Charm of Healing" item 
	/delay 20	
					/if (${Macro.Return.Equal["CAST_NOTREADY"]}) {
					/varset CoHeal ${FindItem["Charm of Healing"].Timer}
					/return
						}
				/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :HealMe_Loop
				/if (!${Macro.Return.Equal["CAST_SUCCESS"]}) /goto :HealMe_Loop
				/if (${Macro.Return.Equal["CAST_SUCCESS"]}) /varset EpicTimer ${FindItem["Charm of Healing"].Timer}
}
/return  

Sub CheckMyMana
/if (${Me.PctMana}<5 && ${CoMana}==0) {
:COMana_Loop
	/target myself
	/delay 5
	/call cast "Charm of Mana" item 
	/delay 20
					/if (${Macro.Return.Equal["CAST_NOTREADY"]}) {
					/varset CoMana ${FindItem["Charm of Mana"].Timer}
					/return
						}
				/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :COMana_Loop
				/if (!${Macro.Return.Equal["CAST_SUCCESS"]}) /goto :COMana_Loop
				/if (${Macro.Return.Equal["CAST_SUCCESS"]}) /varset CoMana ${FindItem["Charm of Mana"].Timer}
}
/return

Sub MakePet
:MakePet_Loop
/if (!${Me.Pet.ID}) {
	/echo Summoning your pet with spell: ${PetSummon}
	/call Cast ${PetSummon}
		/delay 20
				/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :MakePet_Loop
				/if (!${Macro.Return.Equal["CAST_SUCCESS"]}) /goto :MakePet_Loop
} 
/return

Sub PetHealth
/if (${Me.Pet.ID}) { 
:PetHeal_Loop
/if (${Me.Pet.PctHPs}<${PetHealAt}) {
	/echo Healing your pet with spell: ${PetHeal}
		/call Cast ${PetHeal} gem5
			/delay 20
				/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :PetHeal_Loop
				/if (!${Macro.Return.Equal["CAST_SUCCESS"]}) /goto :PetHeal_Loop	
	}
} 
/return

Sub PetBuffs
/if (${Me.Pet.ID}) { 
/if (!${Me.PetBuff[${PetBuff}]}) { 
/target ${Me.Pet}
/echo Pet needed ${PetBuff}! 
/call Cast ${PetBuff} gem7
} 
/if (!${Me.PetBuff[${DS}]} && ${PetDS}) { 
/target ${Me.Pet}
/echo Pet needed ${DS}!  
/call Cast ${DS} gem9
}
:Epic_Loop
/if (!${Me.PetBuff[${EpicPetBuff}]} && ${UseEpic} && ${EpicTimer}==0) { 
/target ${Me.Pet}
/echo Pet needed ${EpicPetBuff}!  
/call Cast ${Epic} item
/delay 20
					/if (${Macro.Return.Equal["CAST_NOTREADY"]}) {
					/varset EpicTimer ${FindItem[${Epic}].Timer}
					/return
						}
				/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :Epic_Loop
				/if (!${Macro.Return.Equal["CAST_SUCCESS"]}) /goto :Epic_Loop
				/if (${Macro.Return.Equal["CAST_SUCCESS"]}) /varset EpicTimer ${FindItem[${Epic}].Timer}
						}
} else { 
/echo You dont have a pet! Making one!
	/call MakePet
} 
/return 

|------------------------------------------------------------|
|		    Memorize your spells
|------------------------------------------------------------|
Sub MemSpells  
	/if (${UseIRC}) /i say -- Memming Spells --
   /if ( !${Me.Gem[${SlowNuke}]} ) { 
      /memspell 1 ${SlowNuke} 
      /delay 150 
      } 
   /if ( !${Me.Gem[${FastNuke}]} ) { 
      /memspell 2 ${FastNuke} 
      /delay 150 
      } 
   /if ( !${Me.Gem[${PBAE}]} ) { 
      /memspell 3 ${PBAE} 
      /delay 150 
      } 
   /if ( !${Me.Gem[${AENuke}]} ) { 
      /memspell 4 ${AENuke} 
      /delay 150 
      } 
   /if ( !${Me.Gem[${PetHeal}]} ) { 
      /memspell 5 ${PetHeal} 
      /delay 150 
      } 
   /if ( !${Me.Gem[${PetSummon}]} ) { 
      /memspell 6 ${PetSummon} 
      /delay 150 
      } 
   /if ( !${Me.Gem[${PetHaste}]} ) { 
      /memspell 7 ${PetHaste} 
      /delay 150 
      } 
   /if ( !${Me.Gem[${ProcBuff}]} ) { 
      /memspell 8 ${ProcBuff} 
      /delay 150 
      } 
   /if ( !${Me.Gem[${DS}]} ) { 
      /memspell 9 ${DS} 
      /delay 150 
      }  
/return 

|------------------------------------------------------------|
|		    Find Person who just sent you a tell
|------------------------------------------------------------| 
Sub FindExactPC(string name)
   /declare nameid int local
   /declare counter int local 1
   :FindNext
   /if (!${NearestSpawn[${counter}, pc ${name}].ID}) /return NOT_FOUND
   /varset nameid ${NearestSpawn[${counter}, pc ${name}].ID}
   /if (${Spawn[${nameid}].CleanName.Equal[${name}]}) {
      /target id ${nameid}
      /delay 1s ${Target.ID}==${nameid}
      /if (${Target.ID}==${nameid}) /return TARGET_SUCCESS
   }
   /varcalc counter ${counter}+1
   /if (${NearestSpawn[${counter}, pc ${name}].ID}) /goto :FindNext
/return NOT_FOUND

Sub Event_Chat(string ChatType,string Sender,string ChatText)
   /if ((!${ChatType.Equal[${mychannel}]})&&(!${ChatType.Equal[TELL]})) /return
   /if (!${Spawn[${Sender}].ID}) {
      /e ${Sender} is not in the zone
      /return
   }
|------------------------------------------------------------|
|------------------------------------------------------------|
|		    Help Menu!				     													
|------------------------------------------------------------|
   /if ((${ChatText.Equal[Help]})) {
      /call FindExactPC ${Sender}
      /if (${String[${Macro.Return}].NotEqual[TARGET_SUCCESS]}) /return
      /if (${Target.Distance}<=${patchhealrange}) {
				/t ${Sender} ---------Janki Help Menu---------
					/delay 25
				/t ${Sender} HEAL, HOT, HP, And For more info on each command tell me (Example) E-HEAL!
      } else /tell ${Sender} your OOR
   }
|------------------------------------------------------------|
|------------------------------------------------------------|
|		    END of Event Procedures!                 						 |
|------------------------------------------------------------|
/return


|------------------------------------------------------------|
|		    Events
|------------------------------------------------------------|

|------------------------------------------------------------|
|This is called when you type /echo help.  Did I forget anything, probably?
Sub Event_HELP
/echo ----- Macro Information ------
/echo "/echo Master <Tank Name>" Sets who the bot will heal/assist.
/echo "/echo HealAt <Percent>" Sets the macro to Heal at selected Percentage.
/echo "/echo AssistAt <Percent>" Sets the macro to Assist at selected Percentage.
/echo "/echo Follow <TRUE / FALSE>" Sets if the bot will follow the Tank.
/echo "/echo Assist <TRUE or FALSE>" turns on/off auto-assisting.
/echo "/echo Sit <TRUE / FALSE>" turns on/off sitting when Follow is FALSE.
/echo "/echo Coh <Character Name>" Will target name and Call of the hero.
/echo ------------------------------
/return
|------------------------------------------------------------|
|The upcoming subroutines are called via an echo to turn on/off the options for the macro
Sub Event_MASTER(Zero, Name)
	/echo ============================================
	/echo Changing Master to ${Name}
	/echo ============================================
	/target ${Name} pc
		/delay 5 ${Target}==${Name}
			/target ${Name} pc
   /if (!${Target.ID}) { 
	/echo Failed to target the new Master! 
		/return
	} else { 
		/if (${Target.Type.Equal[PC]}) { 
			/varset Master ${Target}
			/varset MasterID ${Target.ID} 
				/echo I am now ${Master} 's Bitch.
			} else {
				/if (${Target.Type.Equal[NPC]}) {
				/echo Failed to target the New Master or New Master was an NPC/Corpse. 
					/return
							} 
					}
}
/return
|------------------------------------------------------------|
|The upcoming subroutines are called via an echo to turn on/off the options for the macro
Sub Event_ASSISTAT(Zero, PercentAssA)
	/echo ============================================
	/echo Changing AssistAt to ${PercentAssA}
	/echo ============================================
	/varset AssistAt ${PercentAssA}
/return
|------------------------------------------------------------|
|The upcoming subroutines are called via an echo to turn on/off the options for the macro
Sub Event_SIT(Zero, TFS)
	/echo ============================================
	/echo Changing Sit to ${TFS}
	/echo ============================================
	/varset Sit ${TFS}
/return
|------------------------------------------------------------|
|The upcoming subroutines are called via an echo to turn on/off the options for the macro
Sub Event_ASSIST(Zero, TFA)
	/echo ============================================
	/echo Changing Assist to ${TFA}
	/echo ============================================
	/varset Assist ${TFA}
/return
|------------------------------------------------------------|
|The upcoming subroutines are called via an echo to turn on/off the options for the macro
Sub Event_HEALAT(Zero, PercentHA)
	/echo ============================================
	/echo Changing HealAt to ${PercentHA}
	/echo ============================================
	/varset HealAt ${PercentHA}
/return
|------------------------------------------------------------|
|The upcoming subroutines are called via an echo to turn on/off the options for the macro
Sub Event_FOLLOW(Zero, TFF)
	/echo ============================================
	/echo Changing Follow to ${TFF}
	/echo ============================================
	/varset Follow ${TFF}
/return
|------------------------------------------------------------|
|The upcoming subroutines are called via an echo to turn on/off the options for the macro
Sub Event_COH(Zero, COHT)
	/echo ============================================
	/echo Call of the Hero on: ${COHT}
	/echo ============================================
		/target ${COHT} pc
			/delay 5 ${Target}==${COHT}
				/target ${COHT} pc
   /if (!${Target.ID}) { 
	/echo Failed to target the person to COH! 
		/return
	} else { 
		/if (${Target.Type.Equal[PC]}) { 
			:COH_Loop
				/call cast ${COH} gem4
					/delay 20
						/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :COH_Loop
						/if (!${Macro.Return.Equal["CAST_SUCCESS"]}) /goto :COH_Loop
										}
			}					
/return
|------------------------------------------------------------|
|The upcoming subroutines are called via an echo to turn on/off the options for the macro
Sub Event_DEATH(Zero, Death)
	/echo ============================================
	/echo Ohh shit! We died or zoned!
	/echo ============================================
	/end
/return
|------------------------------------------------------------|

Sub Event_SFG(Zero, SFGP)
|------------------------------------------------------------|
|		    SFG!				     													
|------------------------------------------------------------|
			:gosfg_Loop
			/call cast ${GateItem} item
			/delay 5 !${Me.Casting.ID}
						/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :gosfg_Loop
						/if (!${Macro.Return.Equal["CAST_SUCCESS"]}) /goto :gosfg_Loop
   /return
|------------------------------------------------------------
Sub Event_FAYDARK(Zero, FAYP)
|------------------------------------------------------------|
|		    Faydark!				     													
|------------------------------------------------------------|
			/target Sorin npc
			/stick 5
			/delay 15
				/say faydark
	/return
|------------------------------------------------------------
Sub Event_CRYSTAL(Zero, CRYP)
|------------------------------------------------------------|
|		    Crystal!				     													
|------------------------------------------------------------|
			/target Sorin npc
			/stick 5
			/delay 15
				/say crystal
	/return
|------------------------------------------------------------
Sub Event_ACRYLIA(Zero, ACRP)
|------------------------------------------------------------|
|		    Acrylia!				     													
|------------------------------------------------------------|
			/target Sorin npc
			/stick 5
			/delay 15
				/say acrylia
   /return
|------------------------------------------------------------
Sub Event_BUTCHER(Zero, BUTP)
|------------------------------------------------------------|
|		    Butcher!				     													
|------------------------------------------------------------|
			/target Sorin npc
			/stick 5
			/delay 15
				/say butcher
   /return
|------------------------------------------------------------
Sub Event_FIRE(Zero, FIRP)
|------------------------------------------------------------|
|		    Keep!				     													
|------------------------------------------------------------|
			/target Sorin npc
			/stick 5
			/delay 15
				/say fire
   /return
|------------------------------------------------------------
Sub Event_KEEP(Zero, KEEP)
|------------------------------------------------------------|
|		    Keep!				     													
|------------------------------------------------------------|
			/target Sorin npc
			/stick 5
			/delay 15
				/say keep
   /return
|------------------------------------------------------------
Sub Event_LAIR(Zero, LIAP)
|------------------------------------------------------------|
|		    Lair!				     													
|------------------------------------------------------------|
			/target Sorin npc
			/stick 5
			/delay 15
				/say lair
   /return
|------------------------------------------------------------
Sub Event_OVERTHERE(Zero, OVEP)
|------------------------------------------------------------|
|		    Overthere!				     													
|------------------------------------------------------------|
			/target Sorin npc
			/stick 5
			/delay 15
				/say overthere
   /return
|------------------------------------------------------------
Sub Event_HATE(Zero, HATP)
|------------------------------------------------------------|
|		    Hate!				     													
|------------------------------------------------------------|
			/target Sorin npc
			/stick 5
			/delay 15
				/say hate
   /return
|------------------------------------------------------------
Sub Event_UNREST(Zero, UNRP)
|------------------------------------------------------------|
|		    Unrest!				     													
|------------------------------------------------------------|
			/target "Aeridin of the Conclave" npc
			/stick 5
			/delay 15
				/say unrest
   /return
|------------------------------------------------------------
Sub Event_KITHICOR(Zero, KITP)
|------------------------------------------------------------|
|		    Kitchicor!				     													
|------------------------------------------------------------|
			/target "Aeridin of the Conclave" npc
			/stick 5
			/delay 15
				/say kitchicor
   /return
|------------------------------------------------------------
Sub Event_LAKE(Zero, LAKP)
|------------------------------------------------------------|
|		    Lake!				     													
|------------------------------------------------------------|
			/target "Aeridin of the Conclave" npc
			/stick 5
			/delay 15
				/say lake
   /return
|------------------------------------------------------------
Sub Event_MAZE(Zero, MAZP)
|------------------------------------------------------------|
|		    Maze!				     													
|------------------------------------------------------------|
			/target "Aeridin of the Conclave" npc
			/stick 5
			/delay 15
				/say maze
   /return
|------------------------------------------------------------
Sub Event_MARR(Zero, MARP)
|------------------------------------------------------------|
|		    Marr!				     													
|------------------------------------------------------------|
			/target "Aeridin of the Conclave" npc
			/stick 5
			/delay 15
				/say marr
   /return
|------------------------------------------------------------
Sub Event_SOLUSEK(Zero, SOLP)
|------------------------------------------------------------|
|		    solusek!				     													
|------------------------------------------------------------|
			/target "Aeridin of the Conclave" npc
			/stick 5
			/delay 15
				/say solusek
	/return
|------------------------------------------------------------
 
Last edited:
Emu Mage AFK Hunt Macro

Users who are viewing this thread

Back
Top
Cart