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
Hunterloot.ini
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:

