• 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

Hunter.mac + loot

antiflux

New member
Joined
Mar 24, 2011
RedCents
11¢
This is a necromancer based warp+kill+loot macro for farming low level zones for trade skill items mostly. It is adapted from the DranikLoyalistFaction macro. Replace "Vayphi" with your DPS/tank mercs name.

Rich (BB code):
#include spell_routines.inc
#include ninjadvloot.inc

#event Wall "You cannot see your target."
#event Died "You have been slain#*#"

Sub Main

/call SetupAdvLootVars

:loop

/call CheckBuffs

/squelch /target npc corpse

/if (${Target.Type.Equal[corpse]}) {
	/echo Corpse found.
	/call lootLoop
} else {
	/echo No corpses found, getting next target.
	/squelch /target npc
	/call attackLoop
}

/goto :loop

Sub lootLoop
	/echo Looting corpse.
	/warp target 
	/call lootcorpse
	/delay 1
/return

Sub attackLoop
	/attack
	/if (!${Me.Casting.ID}) /pet attack
:combatLoop

   /if (${Target.Type.Equal[NPC]}) /face fast nolook
   /if (${Target.Distance}>5) {
		/warp target 
      		:moveloop
      	/if (${Target.ID}) /face     	  		
   }   		
	
		/if (${Me.AltAbilityReady[Rise of Bones]} && !${Me.Casting.ID}) /aa act Rise of Bones
		/if (${Me.AltAbilityReady[Reluctant Benevolence]} && !${Me.Casting.ID}) /aa act Reluctant Benevolence
		/if (${Me.SpellReady[7]} && ${Target.PctHPs}>75 &&	!${Me.Casting.ID} && ${Target.Type.Equal[NPC]}) /cast 7
		/if (${Me.SpellReady[1]} && ${Target.PctHPs}>40 && !${Me.Casting.ID} && ${Target.Type.Equal[NPC]}) /call Cast "Divert Essence Rk. II"
		/if (${Target.Type.Equal[NPC]}) /goto :combatLoop
		/delay 1

/if (${Me.XTarget}>0) {
	/echo Clearing extended targets.
	/assist Vayphi
	/goto :combatLoop
}

/if (${Me.XTarget}>0 && ${Target.Type.Equal[NULL]}) {	
	/echo Clearing extended targets
	/assist Vayphi
	/goto :combatLoop
}

/if (${Me.XTarget}>0 && ${Target.Type.Equal[Corpse]}) {	
	/echo Clearing extended targets
	/assist Vayphi
	/goto :combatLoop
}

/if (${Me.XTarget}>0 && ${Target.Type.Equal[NPC]}) {	
	/goto :combatLoop
}

/if (${Me.XTarget}==0) {
	/return
	/echo No more extended targets, area clear.
}

/return

Sub CheckBuffs

/if (${Spell[Shield of Dreams Rk. II].Stacks} && !${Me.Buff[Shield of Dreams Rk. II].ID} && !${Me.Moving}) /call Cast "Shield of Dreams Rk. II"  
/if (${Spell[Dead Men Floating].Stacks} && !${Me.Buff[Dead Men Floating].ID} && !${Me.Moving}) /call Cast "Dead Men Floating" 
/if (${Spell[Necrotic Boils Rk. II].Stacks} && !${Me.Buff[Necrotic Boils Rk. II].ID} && !${Me.Moving}) {
		/tar ${Me.Name}
		/call Cast "Necrotic Boils Rk. II"
}
/if (${Spell[Form of Endurance VIII].Stacks} && !${Me.Buff[Form of Endurance VIII].ID} && !${Me.Moving}) /call Cast "Humanoid Leather Mask" item
/if (${Spell[Knowledge of the Past VI].Stacks} && !${Me.Buff[Knowledge of the Past VI].ID} && !${Me.Moving}) /call Cast "Royal Knight's Earring" item
/if (${Spell[Myrmidon's Skill IV].Stacks} && !${Me.Buff[Myrmidon's Skill IV].ID} && !${Me.Moving}) /call Cast "Transistor Torque" item
/if (${Spell[Illusionary Spikes III].Stacks} && !${Me.Buff[Illusionary Spikes III].ID} && !${Me.Moving}) /call Cast "Servant's Cloak" item
/if (${Me.AltAbilityReady[Fortify Companion]} && !${Me.Casting.ID} && !${Me.Moving}) /call Cast "Fortify Companion" alt
/if (${Me.AltAbilityReady[Death Bloom]} && ${Me.PctMana}<80 && !${Me.Casting.ID} && !${Me.Moving}) /call Cast "Death Bloom" alt

/return

Sub Event_Died
	/endmac
/return

/if (!${Target.Type.Equal[NPC]}) /keypress esc
/if (${Target.ID} || ${Me.CombatState.Equal[COMBAT]}) /call attackLoop

/goto :loop
/return
 
Last edited:
To stop spamming melee use

/if (!${Me.Combat}) /attack on


/delay X or /delay Xs is part of what your looking for to set delays BUT.....

/if (${Me.SpellReady[1]} is how you would check to see if spell gem 1 is ready to cast again

/if ${Me.AltAbilityReady[Death Bloom]} is how to check if your AA is ready

I experiment alot.. and i do things like:
/echo ${Me.AltAbilityReady[Death Bloom]} to test out what values i get.


hope that helps

ARMY
 
Thanks, I have already started modifying it with your suggestions. I will post my results later.
 
I am a little supervised looting is working at all. Try this to fix and set up ninjadvloot correctly.

1. Add /call SetupAdvLootVars to set up the ninjadvloot variables and you can add an inventory free space check to skip over looting when inventory is full ${Me.FreeInventory}>=1

Rich (BB code):
Sub Main

/declare doMelee	int outer 1

/call SetupAdvLootVars

2. change /call loopcorpse to /call LootMobs
Rich (BB code):
/warp target 
/if (${Me.FreeInventory}>=1) /call LootMobs
/goto :loop
3. Also this line is kind of weird. The Diety is used to check for pc corpses since they are they only ones with gods lol
Rich (BB code):
/if (!${Target.Deity.ID}!=0) {
but ! mean not so this lines says if Target NOT Diety ID or 0 NOT Equal 0. Its a little convoluted. All it needs to be is below or NOT Anything but 0
Rich (BB code):
/if (!${Target.Deity.ID}) {
4. This line is also invalid since Equal looks for a text string and Target.Type would only ever return Corpse never NPC Corpse and the ! makes no sense here either
Rich (BB code):
/if (!${Target.Type.Equal[NPC corpse]}) /call lootcorpse
To fix this try
Rich (BB code):
/if (${Target.Type.Equal[corpse]} && !${Target.Deity.ID} && ${Me.FreeInventory}>=1) /call LootMobs
 
Ok I removed the PC corpse check for now and added a bunch of checks for spell casts, etc to remove spam. Works pretty well right now. I have updated the code in the original post. Haven't had time to implement your suggestions Maskoi but thank you so much for the help guys, I'm learning quickly.

Things to do: Add buffs and item clicky buffs, check for PC corpses, ignore quest NPCs...
 
use something like this for buff check

=/if (${Spell[Unliving Ward].Stacks} && !${Me.Buff[Unliving Ward].ID} && !${Me.Moving}) /casting "Doomstone Band of Seeing"
 
Thanks again for all the help, I have updated the code in the first post. I feel my methods are pretty crude, but it seems to be working well for what I am using it for (farming low level zones for tradeskill items). A few questions if someone can answer please: Is there a string with current mercenaries name? I couldn't find one. Also, how can i check the status of a buff on my pet? Couldn't figure that one out either.
 
Hunter.mac + loot

Users who are viewing this thread

Back
Top
Cart