• 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

Extreme Loot Helper!!!!!!

hamburgerhelper

New member
Joined
Jan 22, 2005
RedCents
161¢
Ok, this is a custom macro I made for my druid lootwhore who I sit outside the group to loot the mobs I slay on bard..

Small adjustments can be made to make this an in-group looter, and you will need to customize some stuff as well for this to work!

List of things it should do!!
Anchor - Current Loc Where Macro is Started
Cast Spells on Target's Target in Your Spell List
Tell Forwarding to Master
Able to Reset Macro
GM Detect
Master Make Bot Camp
Waits 2.5min After Target is Dead to Loot
After Corpse is Looted Target Will Return to Anchor
Ini Loot
If Dead macro will camp to save rez timer

Also Get this spell_routines.inc


Lootwhore.mac
Rich (BB code):
|Macro Lootwhore.mac
|Macro Made By Hamburgerhelper
|For use of Redguides ONLY
|My brain hurts
|Usage /mac Lootwhore "Mastersname"
|Commands: /tell "lootwhore" Camp out now - Makes Bot Camp
|          /tell "lootwhore" Reset Mac - Resets Mac


#Event MobDied "#*# has been slain by#*#" 
#Event Tell "#*#tells you#*#"
#Event MobDied "#*#You have slain#*#"
#Event Event_zone "#*#You have Entered#*#"
#event reset "#*#Reset mac#*#" 
#event camp "#*#Camp out now#*#"

#include spell_routines.inc 
#turbo 10
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Main 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Change This Stuff ---------------------------
|Spell List
/declare Spell1 string outer "" 
/declare Spell2 string outer "" 
/declare Spell3 string outer "" 
/declare Spell4 string outer "" 
/declare Spell5 string outer ""
/declare Spell6 string outer "Nature Walkers Scimitar" 
 
|loot all items? (0 no, 1 yes) 
 /declare LootAllItems     int outer  1 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Loot Array Information. 
 /call ReadINI HunterLoot.ini "${Zone.Name}" Loot 
 /if (!${Defined[ItemsToLoot]}) { 
 /echo No Loot Array Created... 
 } 
|Variables that you don't need to worry about. 
 /deletevar Master 
 /declare Spell1Gem string outer "gem1"
 /declare Spell2Gem string outer "gem2"
 /declare Spell3Gem string outer "gem3"
 /declare Spell4Gem string outer "gem4"
 /declare Spell5Gem string outer "gem5"
 /declare Spell6Gem string outer "item"
 /declare Master string Global
 /varset Master ${Param0}
 /declare LootSlot         int outer  0 
 /declare MyXLOCA int outer 0 
 /declare MyYLOCA int outer 0 
 /declare AnchorX int outer ${Me.X} 
 /declare AnchorY int outer ${Me.Y}
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 /echo Starting Looting Macro. 
 :loop
 /call GMcheck  
 /doevents
 /delay 5 
 /goto :loop 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|SUB: Looting 
 Sub Event_MobDied 
 /delay 150s
 /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 checkanchor  
 /delay 5
 /call sit
 /delay 10
 /call kill
/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 
 /delay 5
 /call sit
 /delay 10
 /call kill
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|SUB: Reading from an INI File 
Sub ReadINI(FileName,SectionName,ArrayType) 
 /echo Attempting to Read Section "${SectionName}" Zone Information from ${FileName}... 
 /delay 1s 
 /if (${Ini[${FileName},${SectionName},-1,NO].Equal[NO]}) { 
 /echo "${SectionName}" is not a Valid Section for FILE:${FileName}, ending macro... 
 /delay 1s 
 /return 
 } 
 /declare nValues     int local  1 
 /declare nArray      int local  0 
 /declare KeySet      string local  ${Ini[${FileName},${SectionName}]} 
 :CounterLoop 
 /if (${String[${Ini[${FileName},${SectionName},${ArrayType}${nValues}]}].Equal[null]}) { 
 /varcalc nValues ${nValues}-1 
 /goto :MakeArray 
 } 
 /varcalc nValues ${nValues}+1 
 /goto :CounterLoop  
 :MakeArray 
 /if (${FileName.Equal["HunterLoot.ini"]}&&${nValues}>0) { 
 /echo Declaring Loot Array... 
 /declare ItemsToLoot[${nValues}]  string outer 
 } 
 /for nArray 1 to ${nValues} 
 /if (${FileName.Equal["HunterLoot.ini"]}) { 
 /squelch /varset ItemsToLoot[${nArray}] ${Ini[${FileName},${SectionName},${ArrayType}${nArray}]} 
 } 
 /next nArray 
 /echo "${SectionName}" Zone Information Read Successfully from ${FileName}... 
 /delay 1s 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub CheckAnchor    
 /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) /call MoveToAnchor    
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub MoveToAnchor 
 /declare iCount int local 
 /varset iCount 0 
 /echo Moving to Anchor at Loc: ${AnchorY}, ${AnchorX}. 
:AnchorMoveLoop  
 /delay 1 
 /doevents 
 /face nolook loc ${AnchorY},${AnchorX} 
 /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) { 
 /keypress forward hold 
 } else { 
 /keypress forward 
 /face away loc ${AnchorY},${AnchorX} 
 /return 
 } 
 /if (${iCount}>2) { 
 /face nolook loc ${AnchorY},${AnchorX} 
 /varset iCount 0 
 } 
 /varcalc iCount ${iCount}+1 
 /goto :AnchorMoveLoop 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_zone 
 /echo ZONE! Ending macro! 
 /keypress instant_camp
 /endmacro 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub sit 
 /if (${Me.State.NotEqual[SIT]}) { 
 /sit 
 } 
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Kill 
 /tar ${Master}
 /assist 
 /if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20) /call cast "${Spell1}" gem1
 /if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20) /call cast "${Spell2}" gem2
 /if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20) /call cast "${Spell3}" gem3 
 /if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20) /call cast "${Spell4}" gem4 
 /if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20) /call cast "${Spell5}" gem5 
 /if ((${Target.PctHPs}<70) /call cast "${Spell6}" item 
 /if (${sit}) /sit 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_reset 
/Tell ${Master} Resetting in 5
/delay 5s 
/tar ${Master}
/macro lootwhore ${Master} 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_tell
 /tell ${Master} ${Sender} told Me, '${ChatText}' 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_camp 
 /camp 
 /endmac 
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub GMcheck
/if (${Spawn[gm].ID}) {
/mqlog GM Fuggin up plan
/keypress instant_camp
/endmac
}
/return


Hunterloot.ini
Rich (BB code):
[Eastern Plains of Karana] 
Loot1=Silk 
Loot2=High Quality 
Loot3=Medium Quality 
Loot4=Feather 

[East Commonlands] 
Loot1=Spiderling Silk 

[The Feerrott] 
Loot1=Spiderling Silk
 
Last edited:
Edit These to your Character

Rich (BB code):
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Change This Stuff ---------------------------
|Spell List
/declare Spell1 string outer "" 
/declare Spell2 string outer "" 
/declare Spell3 string outer "" 
/declare Spell4 string outer "" 
/declare Spell5 string outer ""
/declare Spell6 string outer "Nature Walkers Scimitar" 
 
|loot all items? (0 no, 1 yes) 
 /declare LootAllItems     int outer  1 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Rich (BB code):
 /declare Spell1Gem string outer "gem1"
 /declare Spell2Gem string outer "gem2"
 /declare Spell3Gem string outer "gem3"
 /declare Spell4Gem string outer "gem4"
 /declare Spell5Gem string outer "gem5"
 /declare Spell6Gem string outer "item"

Time before loot
Rich (BB code):
/delay 150s

When to cast
Rich (BB code):
 /if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20)/call cast "${Spell1}" gem1 
 /if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20)/call cast "${Spell2}" gem2  
 /if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20)/call cast "${Spell3}" gem3  
 /if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20)/call cast "${Spell4}" gem4  
 /if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20)/call cast "${Spell5}" gem5  
 /if ((${Target.PctHPs}<70)/call cast "${Spell6}" gem6
 
Last edited:
Working Great Now..

Any Comments, things you would like to see added, ECT. ECT. post away!!
 
Last edited:
just curious on where and loc your applying this and also what your combo your boxin with cause i'm thinkin of maybe addin this mac to chanter and usin my plassist mac for my cleric and hunter mac for bst

boxin,
65 beastlord (crank those aa bitatch)
52 cleric (goal 60 by april 1st)
51 Chanter (goal 60 by april 1st)

i'm thinkin this be a good mac to use in PoInn for tinkerin gear and xp
 
Tried using this and I got two errors, wondered if any could help me with.

first one was: Couldn't open spell_routines from folder and it gave my default folder. So i took this that #include statment out of the macro just trying to get further into the macro and thinking that it was already loaded in my compile (i used sid's compile).

Second one was:
Subroutine ReadINI wastn't found. Below is that from the macro but not sure how to fix that.

/call ReadINI HunterLoot.ini "${Zone.Name}" Loot

I do have the hunterloot.ini createdin my macro folder. Though there isn't an entry for the zone i'm testing in, was hoping to get to the no array part of the macro but havn't gotten that far yet.

This is how the macro looks right now on my machine with it striped a bit just to test with my necro as the looter, and my lowbie bard doing some minor kills in warrens as a testing ground to try and make this work. Any help would be great thanks

Forsaken

Rich (BB code):
#Event MobDied "#*# has been slain by#*#" 
#Event Tell "#*#tells you#*#"
#Event MobDied "#*#You have slain#*#"
#Event Event_zone "#*#You have Entered#*#"
#event reset "#*#Reset mac#*#" 
#event camp "#*#Camp out now#*#"
 
#turbo 10
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Main 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Change This Stuff ---------------------------
|Spell List
/declare Spell1 string outer "Neurotoxin" 
/declare Spell6 string outer "Scythe of the Shadowed Soul" 
 
|loot all items? (0 no, 1 yes) 
 /declare LootAllItems     int outer  1 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Loot Array Information. 
 /call ReadINI HunterLoot.ini "${Zone.Name}" Loot 
 /if (!${Defined[ItemsToLoot]}) { 
 /echo No Loot Array Created... 
 } 
|Variables that you don't need to worry about. 
 /deletevar Master 
 /declare Spell1Gem string outer "gem1"
 /declare Spell6Gem string outer "item"
 /declare Master string Global
 /varset Master ${Param0}
 /declare LootSlot         int outer  0 
 /declare MyXLOCA int outer 0 
 /declare MyYLOCA int outer 0 
 /declare AnchorX int outer ${Me.X} 
 /declare AnchorY int outer ${Me.Y}
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 /echo Starting Looting Macro. 
 :loop
 /call GMcheck  
 /doevents
 /delay 5 
 /goto :loop 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|SUB: Looting 
 Sub Event_MobDied 
 /delay 150s
 /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, Cheep Bastage!
 /notify LootWnd DoneButton leftmouseup 
 /call checkanchor  
 /delay 5
 /call sit
 /delay 10
 /call kill
/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 
 /delay 5
 /call sit
 /delay 10
 /call kill
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|SUB: Reading from an INI File 
Sub   hhhhhh
 /echo Attempting to Read Section "${SectionName}" Zone Information from ${FileName}... 
 /delay 1s 
 /if (${Ini[${FileName},${SectionName},-1,NO].Equal[NO]}) { 
 /echo "${SectionName}" is not a Valid Section for FILE:${FileName}, ending macro... 
 /delay 1s 
 /return 
 } 
 /declare nValues     int local  1 
 /declare nArray      int local  0 
 /declare KeySet      string local  ${Ini[${FileName},${SectionName}]} 
 :CounterLoop 
 /if (${String[${Ini[${FileName},${SectionName},${ArrayType}${nValues}]}].Equal[null]}) { 
 /varcalc nValues ${nValues}-1 
 /goto :MakeArray 
 } 
 /varcalc nValues ${nValues}+1 
 /goto :CounterLoop  
 :MakeArray 
 /if (${FileName.Equal["HunterLoot.ini"]}&&${nValues}>0) { 
 /echo Declaring Loot Array... 
 /declare ItemsToLoot[${nValues}]  string outer 
 } 
 /for nArray 1 to ${nValues} 
 /if (${FileName.Equal["HunterLoot.ini"]}) { 
 /squelch /varset ItemsToLoot[${nArray}] ${Ini[${FileName},${SectionName},${ArrayType}${nArray}]} 
 } 
 /next nArray 
 /echo "${SectionName}" Zone Information Read Successfully from ${FileName}... 
 /delay 1s 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub CheckAnchor    
 /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) /call MoveToAnchor    
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub MoveToAnchor 
 /declare iCount int local 
 /varset iCount 0 
 /echo Moving to Anchor at Loc: ${AnchorY}, ${AnchorX}. 
:AnchorMoveLoop  
 /delay 1 
 /doevents 
 /face nolook loc ${AnchorY},${AnchorX} 
 /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) { 
 /keypress forward hold 
 } else { 
 /keypress forward 
 /face away loc ${AnchorY},${AnchorX} 
 /return 
 } 
 /if (${iCount}>2) { 
 /face nolook loc ${AnchorY},${AnchorX} 
 /varset iCount 0 
 } 
 /varcalc iCount ${iCount}+1 
 /goto :AnchorMoveLoop 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_zone 
 /echo ZONE! Ending macro! 
 /keypress instant_camp
 /endmacro 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub sit 
 /if (${Me.State.NotEqual[SIT]}) { 
 /sit 
 } 
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Kill 
 /tar ${Master}
 /assist 
 /if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20) /call cast "${Spell1}" gem1
 /if ((${Target.PctHPs}<70) /call cast "${Spell6}" item 
 /if (${sit}) /sit 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_reset 
/Tell ${Master} Resetting in 5
/delay 5s 
/tar ${Master}
/macro lootwhore ${Master} 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_tell
 /tell ${Master} ${Sender} told Me, '${ChatText}' 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_camp 
 /camp 
 /endmac 
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub GMcheck
/if (${Spawn[gm].ID}) {
/mqlog GM Fuggin up the plan
/keypress instant_camp
/endmac
}
/return
 
Flipping through here looking for a simple mac that will target the mobs my main has targeted. Then when the mobs dies alt will stand move to corps loot all items even nodrop then return to his spot and then start all over. Im thinking I have looked over the mac I have seen some that come close but call for the alt to cast and so on. I dont know alot about the make up of macros or I would try to make my own. Any how if anyone can point me in the right direction that would be great. Thanks.
 
Tried to use this in and out of the group. It doesnt seem to work. First i get the error about the hunter ini file. But i want it to loot everything so i dont want to include that file correct? Then it gives me an error about an if statement in line 205. It also doesnt use my druid to cast spells at all. This is my mostly unedited macro you put up, possibly i messed something crucial up.

|Macro Lootwhore.mac
|Macro Made By Hamburgerhelper
|For use of Redguides ONLY
|My brain hurts
|Usage /mac Lootwhore "Mastersname"
|Commands: /tell "lootwhore" Camp out now - Makes Bot Camp
| /tell "lootwhore" Reset Mac - Resets Mac


#Event MobDied "#*# has been slain by#*#"
#Event Tell "#*#tells you#*#"
#Event MobDied "#*#You have slain#*#"
#Event Event_zone "#*#You have Entered#*#"
#event reset "#*#Reset mac#*#"
#event camp "#*#Camp out now#*#"

#include spell_routines.inc
#turbo 10
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Main
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Change This Stuff ---------------------------
|Spell List
/declare Spell1 string outer "Starfire"

|loot all items? (0 no, 1 yes)
/declare LootAllItems int outer 1
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Loot Array Information.
/call ReadINI HunterLoot.ini "${Zone.Name}" Loot
/if (!${Defined[ItemsToLoot]}) {
/echo No Loot Array Created...
}
|Variables that you don't need to worry about.
/deletevar Master
/declare Spell1Gem string outer "gem1"
/declare Spell2Gem string outer "gem2"
/declare Spell3Gem string outer "gem3"
/declare Spell4Gem string outer "gem4"
/declare Spell5Gem string outer "gem5"
/declare Spell6Gem string outer "item"
/declare Master string Global
/varset Master ${Param0}
/declare LootSlot int outer 0
/declare MyXLOCA int outer 0
/declare MyYLOCA int outer 0
/declare AnchorX int outer ${Me.X}
/declare AnchorY int outer ${Me.Y}
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/echo Starting Looting Macro.
:loop
/call GMcheck
/doevents
/delay 5
/goto :loop
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|SUB: Looting
Sub Event_MobDied
/delay 150s
/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 checkanchor
/delay 5
/call sit
/delay 10
/call kill
/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
/delay 5
/call sit
/delay 10
/call kill
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|SUB: Reading from an INI File
Sub ReadINI(FileName,SectionName,ArrayType)
/echo Attempting to Read Section "${SectionName}" Zone Information from ${FileName}...
/delay 1s
/if (${Ini[${FileName},${SectionName},-1,NO].Equal[NO]}) {
/echo "${SectionName}" is not a Valid Section for FILE:${FileName}, ending macro...
/delay 1s
/return
}
/declare nValues int local 1
/declare nArray int local 0
/declare KeySet string local ${Ini[${FileName},${SectionName}]}
:CounterLoop
/if (${String[${Ini[${FileName},${SectionName},${ArrayType}${nValues}]}].Equal[null]}) {
/varcalc nValues ${nValues}-1
/goto :MakeArray
}
/varcalc nValues ${nValues}+1
/goto :CounterLoop
:MakeArray
/if (${FileName.Equal["HunterLoot.ini"]}&&${nValues}>0) {
/echo Declaring Loot Array...
/declare ItemsToLoot[${nValues}] string outer
}
/for nArray 1 to ${nValues}
/if (${FileName.Equal["HunterLoot.ini"]}) {
/squelch /varset ItemsToLoot[${nArray}] ${Ini[${FileName},${SectionName},${ArrayType}${nArray}]}
}
/next nArray
/echo "${SectionName}" Zone Information Read Successfully from ${FileName}...
/delay 1s
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub CheckAnchor
/if (${Math.Distance[${AnchorY},${AnchorX}]}>12) /call MoveToAnchor
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub MoveToAnchor
/declare iCount int local
/varset iCount 0
/echo Moving to Anchor at Loc: ${AnchorY}, ${AnchorX}.
:AnchorMoveLoop
/delay 1
/doevents
/face nolook loc ${AnchorY},${AnchorX}
/if (${Math.Distance[${AnchorY},${AnchorX}]}>12) {
/keypress forward hold
} else {
/keypress forward
/face away loc ${AnchorY},${AnchorX}
/return
}
/if (${iCount}>2) {
/face nolook loc ${AnchorY},${AnchorX}
/varset iCount 0
}
/varcalc iCount ${iCount}+1
/goto :AnchorMoveLoop
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_zone
/echo ZONE! Ending macro!
/keypress instant_camp
/endmacro
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub sit
/if (${Me.State.NotEqual[SIT]}) {
/sit
}
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Kill
/tar ${Master}
/assist
/if ((${Target.PctHPs}<80&&${Me.PctMana}>90&&${Me.PctMana}>20) /call cast "${Spell1}" gem1
/if (${sit}) /sit
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_reset
/Tell ${Master} Resetting in 5
/delay 5s
/tar ${Master}
/macro lootwhore ${Master}
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_tell
/tell ${Master} ${Sender} told Me, '${ChatText}'
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_camp
/camp desk
/endmac
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub GMcheck
/if (${Spawn[gm].ID}) {
/mqlog GM Fuggin up plan
/endmac
/unload
/q
}
/return
 
Forgot to state Im running the macro that JumJum5 made slightly modified for more dots. This is an extremely smooth macro for forgotten halls, bard went from 34 to 48 in 2 days there. I have to manually get a new expedition every 6 hrs or so but other than that I havent ever died and love it. Plan to stay at this spot until im 65 with a few aa and can zone int vexed.

This macro made for www.Redguides.com
| Don't steal it or we'll punch your fase!
#turbo
#event camp "personingroup tells the group, 'lets roll'
#event dzadd "personyouwanttoadd tells you, 'add me'
#event invite "#*#invites you to join#*#"
#Event Zoned "#*#You have entered#*#"


Sub Main
:begin
/face heading 270
/delay 2s
/warp loc -573.50 162.80 2.15
/circle on 26
/keypress forward hold
/twist 1 6 8 1 4 7 1 5 6 1 8 4 1 7 5

:loopstart
/doevents
/call GMcheck
/if (${Target.Level}>67) /tar npc next
/if (${Target.Distance}>220) /keypress esc
/if (${Target.ID}==FALSE) /tar NPC radius 220 rat
/if (${Me.PctHPs}<=30) /call succor
/delay 10
/goto :loopstart
/return

Sub succor

/warp loc 245 -33 0
/circle off
/twist 1 5
/delay 60
:loopheal
/if (${Me.PctHPs}>80) {
/face heading 270
/warp loc -573.50 162.80 2.15
/circle on 26
/keypress forward hold
/twist 1 6 8 1 4 7 1 5 6 1 8 4 1 7 5
/return
}
/delay 60
/goto :loopheal
/return


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

Sub event_camp
/sit
/camp desk
/return

sub event_zoned
/delay 5s
/sit
/camp desk
/endmac
/return

sub event_dzadd
/dzadd personyouwanttoadd
/return

sub event_invite
 
Enigma, can you list what each of your Songs are?

I normally just twist 5 Songs.

/twist 1 2 3 1 4 5

1) Selos
2) Chant of XXX
3) Chant of XXX
4) Chant of XXX
5) Chant of XXX
 
My bard wasnt 49 yet so i had to keep twisting in selos. And I wanted to keep a smooth set of dots going continuously. I basicly keep the 4 chants going plus a heal for when i get smacked around some. Been running this macro for 3 days no with no deaths.

On another note, now my bard is high enough to start lvling up my alt. I want to have my alt sit there and loot and cast a few spells as long as mana isnt a problem to help. Anyone have a chance to look over this code above and see why it wont loot?
 
[QOUTE=enigma883]Tried to use this in and out of the group. It doesnt seem to work. First i get the error about the hunter ini file. But i want it to loot everything so i dont want to include that file correct? Then it gives me an error about an if statement in line 205. It also doesnt use my druid to cast spells at all. This is my mostly unedited macro you put up, possibly i messed something crucial up.[/QOUTE]

You have to have the "HunterLoot.ini" file the same directory as your macro. The line " /declare LootAllItems int outer 1 " has you looting everything but there are still references that require the ini file to build the loot array.

Your druid doesn't cast anything because the "/if ((${Target.PctHPs}<80&&${Me.PctMana}>90&&${Me.PctMana}>20) /call cast "${Spell1}" gem1 ". If I was doing this I would the second part as "/cast ${Spell1}" But that doesn't use the features of the spell_routines.inc Try replacing the varable with the name of the actual spell. If that doesn't work then try /cast "Starfire" in your MQ2 (without the macro) if it casts then the problem is probably in the spell_routines.inc file. On a side note make sure that you Starfire spell is in your first slot (I'm sure you already have it there.)

Let me know if this works for you.

Note: Keep in mind that your conditional statement requires the following:
Target's HP < 80%, My Mana > 90%, and My mana > 20% in order to cast the spell. The second one is pointless since the third one is mana greater than 20%, it should be:
Rich (BB code):
/if ((${Target.PctHPs}<80 && ${Me.PctMana}>20) /call cast "${Spell1}" gem1
 
Ok made those changes, just changing that part to /cast "Starfire" worked, assuming this works as i just typed it and my druid cast like they should have. Now i get spammed by the msg "Due to complete misuse of the String Top-Level Object, it has been removed. And the macro does nothing either.
 
Yah on that one MQ2 removed an "abused" use of the TLO. Thankfully there is an easy fix for that one too.

Old line (bad stuff in red):

/if (${String[${Ini[${FileName},${SectionName},${ArrayType}${nValues}]}].Equal[null]}) {

New Line:

/if (${Ini[${FileName},${SectionName},${ArrayType}${nValues}].Equal[null]}) {

I think there is only this one reference, so changing it should be all that you need although, if you still get spam just look for any other references that are like the red highlights.
 
i am trying this now... with the PL toon in grp

changed delay to 50

REMed out the call kill lines using |

do i need to edit the hunterloot.ini?

is thereanything else i need to change.. i am just looking for a lootwhore.. to loot the nice little corpses.. he he
 
OK new question reguarding this mac

I have REMed " | " out the /call sub kill lines... and have just never bothered to work them back into the macro.

BUT the only problem i am having is that with the bard Speed song on the Lootwhore toon... He ends up running all over the place trying to get back to his point of origin

My Question
is there a line i can add to the loot portion of this macro that will click off the bard speed?

I have watched the lootwhore toon... and when i click off the bard speed it works like a champ



Rich (BB code):
|Macro Lootwhore.mac
|Macro Made By Hamburgerhelper
|For use of Redguides ONLY
|My brain hurts
|Usage /mac Lootwhore "Mastersname"
|Commands: /tell "lootwhore" Camp out now - Makes Bot Camp
|          /tell "lootwhore" Reset Mac - Resets Mac


#Event MobDied "#*# has been slain by#*#" 
#Event Tell "#*#tells you#*#"
#Event MobDied "#*#You have slain#*#"
#Event Event_zone "#*#You have entered#*#"
#event reset "#*#Reset mac#*#" 
#event camp "#*#Camp out now#*#"
|#event buff "Your #*# Shield #*# spell has worn off#*#"

#include spell_routines.inc 
#turbo 10
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Main 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Change This Stuff ---------------------------
|Spell List
/declare Spell1 string outer "Shock of Spikes" 
/declare Spell2 string outer "Summon Food" 
/declare Spell3 string outer "Summon Drink" 
/declare Spell4 string outer "" 
/declare Spell5 string outer "Shield of Flame"
/declare Spell6 string outer "" 
/echo
 
|loot all items? (0 no, 1 yes) 
 /declare LootAllItems     int outer  1 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Loot Array Information. 
 /call ReadINI HunterLoot.ini "${Zone.Name}" Loot 
 /if (!${Defined[ItemsToLoot]}) { 
 /echo No Loot Array Created... 
 } 
|Variables that you don't need to worry about. 
 /deletevar Master 
 /declare Spell1Gem string outer "gem1"
 /declare Spell2Gem string outer "gem2"
 /declare Spell3Gem string outer "gem3"
 /declare Spell4Gem string outer "gem4"
 /declare Spell5Gem string outer "gem5"
 /declare Spell6Gem string outer "item"
 /declare Master string Global
 /varset Master ${Param0}
 /declare LootSlot         int outer  0 
 /declare MyXLOCA int outer 0 
 /declare MyYLOCA int outer 0 
 /declare AnchorX int outer ${Me.X} 
 /declare AnchorY int outer ${Me.Y}
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 /echo Starting Looting Macro. 
 :loop
 /call GMcheck  
 /doevents
| /call kill
 /delay 5
 /goto :loop 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|SUB: Looting 
 Sub Event_MobDied 
 /delay 10s
 /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 checkanchor  
 /delay 5
 /call sit
 /delay 10
/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 
 /autoinventory
 /delay 5 
 } else { 
 /for LootCheck 1 to ${ItemsToLoot.Size} 
 /if (${Cursor.Name.Find[${ItemsToLoot[${LootCheck}]}]}) { 
 /echo Keeping a ${Cursor.Name}... WOOT! 
 /autoinventory 
 /autoinventory 
 /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 
 /delay 5
 /call sit
 /delay 10
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|SUB: Reading from an INI File 
Sub ReadINI(FileName,SectionName,ArrayType) 
 /echo Attempting to Read Section "${SectionName}" Zone Information from ${FileName}... 
 /delay 1s 
 /if (${Ini[${FileName},${SectionName},-1,NO].Equal[NO]}) { 
 /echo "${SectionName}" is not a Valid Section for FILE:${FileName}, ending macro... 
 /delay 1s 
 /return 
 } 
 /declare nValues     int local  1 
 /declare nArray      int local  0 
 /declare KeySet      string local  ${Ini[${FileName},${SectionName}]} 
 :CounterLoop 
 /if (${String[${Ini[${FileName},${SectionName},${ArrayType}${nValues}]}].Equal[null]}) { 
 /varcalc nValues ${nValues}-1 
 /goto :MakeArray 
 } 
 /varcalc nValues ${nValues}+1 
 /goto :CounterLoop  
 :MakeArray 
 /if (${FileName.Equal["HunterLoot.ini"]}&&${nValues}>0) { 
 /echo Declaring Loot Array... 
 /declare ItemsToLoot[${nValues}]  string outer 
 } 
 /for nArray 1 to ${nValues} 
 /if (${FileName.Equal["HunterLoot.ini"]}) { 
 /squelch /varset ItemsToLoot[${nArray}] ${Ini[${FileName},${SectionName},${ArrayType}${nArray}]} 
 } 
 /next nArray 
 /echo "${SectionName}" Zone Information Read Successfully from ${FileName}... 
 /delay 1s 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub CheckAnchor    
 /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) /call MoveToAnchor    
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub MoveToAnchor 
 /declare iCount int local 
 /varset iCount 0 
 /echo Moving to Anchor at Loc: ${AnchorY}, ${AnchorX}. 
:AnchorMoveLoop  
 /delay 15 
 /doevents 
 /face nolook loc ${AnchorY},${AnchorX} 
 /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) { 
 /keypress forward hold 
 } else { 
 /keypress forward 
 /face away loc ${AnchorY},${AnchorX} 
 /return 
 } 
 /if (${iCount}>2) { 
 /face nolook loc ${AnchorY},${AnchorX} 
 /varset iCount 0 
 } 
 /varcalc iCount ${iCount}+1 
 /goto :AnchorMoveLoop 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_zone 
 /echo ZONE! Ending macro! 
 /twist off
 /circle off
 /sit
 /camp desktop
 /endmacro 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub sit 
 /if (${Me.State.NotEqual[SIT]}) { 
 /sit 
 } 
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Kill 
 /assist ${Master}
 /delay 5
 /if (${Target.PctHPs}<65&&${Me.PctMana}>20) /call cast "Shock of Spikes" gem1
| /if (${Target.PctHPs}<65&&${Me.PctMana}>20) /call cast "SPELL2" gem2
| /if (${Target.PctHPs}<=69&&${Me.PctMana}>20) /call cast "SPELL3" gem3 
| /if (${Target.PctHPs}<=69&&${Me.PctMana}>20) /call cast "SPELL4" gem4 
| /if (${Target.PctHPs}<=69&&${Me.PctMana}>20) /call cast "SPELL5" gem4  
| /if (${Target.PctHPs}<=69) /call cast "ItemName" item 
  /call sit
 /delay 10 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_reset 
/Tell ${Master} Resetting in 5
/delay 5s 
/tar ${Master}
/macro lootwhore ${Master} 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_tell
 /tell ${Master} ${Sender} told Me, '${ChatText}' 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_camp 
 /camp desktop
 /endmac 
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub GMcheck
/if (${Spawn[gm].ID}) { 
/echo Gm detected 
/beep 
/beep 
/beep 
/endmac 
/unload 
/q
}
/return

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub Buff
 /tar${Master}
 /delay 5s
 /if ((${Target.PctHPs}<70&&${Me.PctMana}>90&&${Me.PctMana}>20) /call cast "${Spell5}" gem5 
  /if (${sit}) /sit 
/return 
}
 
Not gonna read thru the whole macro, but here's the snippet you'll want. I use this to see if invis song is playing and click it off if it is...

Rich (BB code):
/if (${Me.Buff[Shauri`s Sonorous Clouding].Duration}) {
    /notify BuffWindow Buff${Math.Calc[${Me.Buff["Shauri`s Sonorous Clouding"].ID}-1].Int} leftmouseup
}

-SimpleMynd
 
this is a moded lootwhore mac.. i have so many variations.. i need to name them separate lol

will post a healer one later today

this is LOOT + PET DPS + cast spells

see the remarks at the begginning if you want to edit .. toon in grp or out

MAKE SURE YOU HAVE THE WORKING SPELL_ROUTINES.inc


Rich (BB code):
|Macro Lootpetdps.mac 
|modified by Army Soldier
|Original from Lootwhore.mac
|Macro Made By Hamburgerhelper
|For use of Redguides ONLY
|
|Usage /mac Lootpetdps "Mastersname"
|Commands: /tell "lootwhore" Camp out now - Makes Bot Camp
|          /tell "lootwhore" Reset Mac - Resets Mac
|Spells: gem 1 = pet buff (haste, speed or whatever)
|        gem 2-4 = DD or DOT spell up to you
|~~~~~~
|EDIT TIME
|~~~~~~
|HIT CTRL-G- 
|goto line 72 and edit delay
|goto line 226 and REM out the pet buff spell if your not using a pet  
|goto lines 241 (DD 1) 247 (DD 2) 253 (DD 3)
|           you can REM out any if your not using 3 nukes
|           or change the cast line to hotkeys "/keypress #

#Event MobDied "#*# has been slain by#*#" 
#Event Tell "#*#tells you#*#"
#Event MobDied "#*#You have slain#*#"
#Event Zoned "#*#You have entered#*#"
#event reset "#*#Reset mac#*#" 
#event camp "#*#Camp out now#*#"


#include spell_routines.inc 
#turbo 10
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Main 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Change This Stuff ---------------------------
|Spell List
/declare Spell1 string outer "" 
/declare Spell2 string outer "" 
/declare Spell3 string outer "" 
/declare Spell4 string outer "" 
/declare Spell5 string outer ""
/declare Spell6 string outer "Nature Walkers Scimitar" 
 
|loot all items? (0 no, 1 yes) 
 /declare LootAllItems     int outer  1 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|Loot Array Information. 
 /call ReadINI HunterLoot.ini "${Zone.Name}" Loot 
 /if (!${Defined[ItemsToLoot]}) { 
 /echo No Loot Array Created... 
 } 
|Variables that you don't need to worry about. 
 /deletevar Master 
 /declare Spell1Gem string outer "gem1"
 /declare Spell2Gem string outer "gem2"
 /declare Spell3Gem string outer "gem3"
 /declare Spell4Gem string outer "gem4"
 /declare Spell5Gem string outer "gem5"
 /declare Spell6Gem string outer "item"
 /declare Master string Global
 /varset Master ${Param0}
 /declare LootSlot         int outer  0 
 /declare MyXLOCA int outer 0 
 /declare MyYLOCA int outer 0 
 /declare AnchorX int outer ${Me.X} 
 /declare AnchorY int outer ${Me.Y}
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 /echo Starting Looting Macro. 
 :loop
 /call GMcheck  
 /doevents
 /delay 5 
 /goto :loop 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|SUB: Looting 
 Sub Event_MobDied 
 /delay 150s
|-------^^^
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|EDIT THIS FOR DELAY
| if toon is in grp .. change to 5s
| if toon is outside grp .. change to 150s
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 /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 checkanchor  
 /delay 5
 /call sit
 /delay 10
/call kill
/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 
 /delay 5
 /call sit
 /delay 10
/call kill
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|SUB: Reading from an INI File 
Sub ReadINI(FileName,SectionName,ArrayType) 
 /echo Attempting to Read Section "${SectionName}" Zone Information from ${FileName}... 
 /delay 1s 
 /if (${Ini[${FileName},${SectionName},-1,NO].Equal[NO]}) { 
 /echo "${SectionName}" is not a Valid Section for FILE:${FileName}, ending macro... 
 /delay 1s 
 /return 
 } 
 /declare nValues     int local  1 
 /declare nArray      int local  0 
 /declare KeySet      string local  ${Ini[${FileName},${SectionName}]} 
 :CounterLoop 
 /if (${String[${Ini[${FileName},${SectionName},${ArrayType}${nValues}]}].Equal[null]}) { 
 /varcalc nValues ${nValues}-1 
 /goto :MakeArray 
 } 
 /varcalc nValues ${nValues}+1 
 /goto :CounterLoop  
 :MakeArray 
 /if (${FileName.Equal["HunterLoot.ini"]}&&${nValues}>0) { 
 /echo Declaring Loot Array... 
 /declare ItemsToLoot[${nValues}]  string outer 
 } 
 /for nArray 1 to ${nValues} 
 /if (${FileName.Equal["HunterLoot.ini"]}) { 
 /squelch /varset ItemsToLoot[${nArray}] ${Ini[${FileName},${SectionName},${ArrayType}${nArray}]} 
 } 
 /next nArray 
 /echo "${SectionName}" Zone Information Read Successfully from ${FileName}... 
 /delay 1s 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub CheckAnchor    
 /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) /call MoveToAnchor    
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub MoveToAnchor 
 /declare iCount int local 
 /varset iCount 0 
 /echo Moving to Anchor at Loc: ${AnchorY}, ${AnchorX}. 
:AnchorMoveLoop  
 /delay 1 
 /doevents 
 /face nolook loc ${AnchorY},${AnchorX} 
 /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) { 
 /keypress forward hold 
 } else { 
 /keypress forward 
 /face away loc ${AnchorY},${AnchorX} 
 /return 
 } 
 /if (${iCount}>2) { 
 /face nolook loc ${AnchorY},${AnchorX} 
 /varset iCount 0 
 } 
 /varcalc iCount ${iCount}+1 
 /goto :AnchorMoveLoop 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 sub event_zoned  
 /delay 5s  
 /sit  
 /camp desk  
 /endmac 
 /return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sub sit 
 /if (${Me.State.NotEqual[SIT]}) { 
 /sit 
 } 
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Kill 
 /call cast "${Spell1}" gem1
 /doevents flush
 /delay 5s
 /squelch /target clear
 /delay 1
 /tar ${Master}
 /assist 
 :CAST_PET
    /delay 1
    /if (${Target.PctHPs} > 50) /goto :CAST_PET
    /pet attack
    /pet taunt off
    /delay 5s
    /sit on
 :CAST_DD
    /delay 1
    /if (${Target.PctHPs} > 45) /goto :CAST_DD
    /call cast "${Spell2}" gem2
    /delay 8s
    /sit on
 :CAST_DD1
    /delay 1
    /if (${Target.PctHPs} > 40) /goto :CAST_DD1
    /call cast "${Spell3}" gem3
    /delay 7s
    /sit on
:CAST_DD2
    /delay 1
    /if (${Target.PctHPs} > 35) /goto :CAST_DD2
    /call cast "${Spell4}" gem4
    /delay 7s
    /sit on
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_reset 
/Tell ${Master} Resetting in 5
/delay 5s 
/tar ${Master}
/macro lootwhore ${Master} 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_tell
 /tell ${Master} ${Sender} told Me, '${ChatText}' 
/return 
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sub Event_camp 
 /camp 
 /endmac 
/return
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Sub GMcheck
/if (${Spawn[gm].ID}) {
/mqlog GM Fuggin up plan
/keypress instant_camp
/endmac
}
/return
 
I keep getting the "No Loot Array Created..." msg. Ive got the Hunterloot.ini and the macro in the same directory, and i've set up the loot for PoV, still wont work. Any tips? Thanks. Its for a Monk btw
 
Holy shit! this still exists?? Been a century since I did this, and it's been revised the heck out of since this post as well, runs flawless and has option to help/or just loot and return to safe point... If I can get my old comp together again i'll post it.
 
Extreme Loot Helper!!!!!!

Users who are viewing this thread

Back
Top
Cart