Loot Macro

TheCompany

New member
Joined
Oct 25, 2006
Messages
22
Reaction score
0
Points
0
Okay I've been searching all through these people's macro's who have autolooting built in, as well as searching for the macro/plugins themselves but still can't quite get them to do what i tell them!

It appears that MQ2advloot does what i want, and the thread says that I can make use of a radius however, when I initiate the radius command given in the thread it doesn't actually use a radius, still warps around the entire zone.

I just need it within one room that I'm killing mobs in while afk, I heard there's a feet command for ninjadvloot but, I can't even tell if ninjadvloot is a plugin or a macro, much less how to use it.

So what do you guys use to suck up loot while afk merc`ing?

ini a+ but not required :]
 
/target corpse radius 65?

That would target any corpse in the area. Some form of that is generally what I use...
 
there's gotta be a macro already made for this, or a plugin i mean I know there is, no sense in me writing my own >< right?
 
What exactly are you needing. Are you wanting a macro that loots whenever there is a corpse in the area? I can work on it later, however im sure someone will write/link one before I can. We users of MMOBugs love to show off the largeness of our epeens =)
 
Right, I am looking for a macro to loot all corpses within a small radius (300? its been a while since I had to know EQs pixel distance)

an INI to delete bad shit, delete nodrops (summoned pet weapons), keep good shit, would be pro+ but I'll live without.
 
Last edited:
300 is a pretty large distance, if your killing near camp you would want 80 max.

Oh you will need to create an INI called PullLoot.ini and put it in the same folder. It needs to look like this:


[Loot]
Loot1=Legend
Loot2=Elaborate
Loot3=Versluierd
Loot4=Pearl
Loot5=Diamond
Loot6=Blue
Loot7=Song
Loot8=Parchment
Loot9=Rune
Loot10=Defiant
Loot11=Faceted

Just an example, just put the name of the loot you want there.


Something like(majority of this stolen from pull.mac) might work:
Code:
Sub Main
    /call ReadINI PullLoot.ini "${Zone.Name}" Loot
    /call lootage
/return

Sub lootage
   :lootloop
     /if (${SpawnCount[corpse radius 80]} > 0) {
     /target corpse radius 80
     /if (${Target.ID} && ${Target.Distance} <100 && ${Target.Type.Equal[Corpse]}) /moveto ID
     /delay 5s ${Target.Distance} < 20
    /call lootmob
}
/goto :lootloop
/return


Sub LootMob 
   /doevents 
   /declare LootSlot    int inner  0 
   /declare LootCheck   int inner  0 
   /declare LootTotal   int inner  0 
   /keypress forward 
   /keypress back 
   /fastdrop on 
   /lootn never 
   /Echo Looting 
   /loot 
   /varset CheckBuffs 1 
   /delay 1s 
   /if (!${Corpse.Items}) { 
      /echo NO LOOT! Cheap Bastard! 
      /notify LootWnd DoneButton leftmouseup 
      /return 
   } else { 
      /varset LootTotal ${Corpse.Items} 
      /for LootSlot 1 to ${LootTotal} 
      /nomodkey /shift /itemnotify loot${LootSlot} leftmouseup 
      /delay 1s 
      /if (${RV_LootAllItems}) { 
          
         /autoinventory 
         /delay 1s 
      } else { 
         /for LootCheck 1 to ${RV_LootArray.Size} 
            /if (${Cursor.Name.Find[${RV_LootArray[${LootCheck}]}]}) { 
               /echo Keeping a ${Cursor.Name}... WOOT! 
               /varcalc RV_LootStats[${LootCheck}] ${RV_LootStats[${LootCheck}]}+1 
               /autoinventory 
               /delay 1s 
            } 
         /next LootCheck 
      } 
      /if (${Cursor.ID}) { 
         /echo Destroying a ${Cursor.Name}... 
         /destroy 
         /delay 1s 
      } 
   /next LootSlot 
   /notify LootWnd DoneButton leftmouseup 
   } 
/return

Sub ReadINI(FileName,Loot,ArrayType) 
   /echo Attempting to Read Information from ${FileName}... 
   /declare nValues     int local  1 
   /declare nArray      int local  0 
   /declare KeySet      string local  ${Ini[${FileName}]} 
   /if (${Ini[${FileName},Loot,-1,NO].Equal[NO]}) { 
      /echo "${SectionName}" is not a Valid Section for FILE:${FileName}, ending macro... 
      /delay 1s 
      /return 
   } 
   :CounterLoop 
      /if (${String[${Ini[${FileName},Loot,${ArrayType}${nValues}]}].Equal[null]}) { 
         /varcalc nValues ${nValues}-1 
         /goto :MakeArray 
      } 
      /varcalc nValues ${nValues}+1 
      /goto :CounterLoop 
   :MakeArray 
      /if (!${nValues}) /return 
      /if (${FileName.Equal["PullLoot.ini"]}&&${nValues}>0) { 
         /echo Declaring Loot Array... 
         /declare RV_LootArray[${nValues}]  string outer 
         /declare RV_LootStats[${nValues}]  string outer 
      } 
      /for nArray 1 to ${nValues} 
      /if (${FileName.Equal["PullLoot.ini"]}) { 
         /varset RV_LootArray[${nArray}] ${Ini[${FileName},Loot,${ArrayType}${nArray}]} 
         /varset RV_LootStats[${nArray}] 0 
      } 
      /next nArray 
      /echo Information Read Successfully from ${FileName}... 
      /delay 1s 
/return


Somebody else correct my errors =p
 
Last edited:
300 is a pretty damn good sized radius. That you will need to use warping to get to corpses or actually path to them every time. (thats not practical)
 
Okay I've been searching all through these people's macro's who have autolooting built in, as well as searching for the macro/plugins themselves but still can't quite get them to do what i tell them!

It appears that MQ2advloot does what i want, and the thread says that I can make use of a radius however, when I initiate the radius command given in the thread it doesn't actually use a radius, still warps around the entire zone.

I just need it within one room that I'm killing mobs in while afk, I heard there's a feet command for ninjadvloot but, I can't even tell if ninjadvloot is a plugin or a macro, much less how to use it.

So what do you guys use to suck up loot while afk merc`ing?

ini a+ but not required :]

The correct usage is "/advloot lootall 500" that will loot all corpses within a 500 radius. (large)
 
The correct usage is "/advloot lootall 500" that will loot all corpses within a 500 radius. (large)

Thanks, that was a rookie mistake.

looks like i have to input that command whenever I want it to loot? it won't loot new corpses? (ie when I'm afk)
 
If you are afk, you should have a macro running and you'll need to mod the macro to have that command in appropriate places. If you are just merc afking then you can make a very simple macro:

Code:
Sub main
   /hidecorpse looted
   :mainLoop
      /if (${Me.CombatState.NotEqual[combat]} && ${SpawnCount[corpse radius 500]}) /advloot lootall 500
   /goto :mainLoop
/return

Of course change both 500 numbers to whatever radius you want to loot around you. I find a good camp radius is between 75 to 125 depending on if you are in an open or closed area.
 
Last edited:
If you are afk, you should have a macro running and you'll need to mod the macro to have that command in appropriate places. If you are just merc afking then you can make a very simple macro:

Code:
Sub main
   /hidecorpse looted
   :mainLoop
      /if (!${Me.CombatState.Equal[combat]} && ${SpawnCount[corpse radius 500]}) /advloot lootall 500
   /goto :mainLoop
/return

Of course change both 500 numbers to whatever radius you want to loot around you. I find a good camp radius is between 75 to 125 depending on if you are in an open or closed area.

nevermind I just realised and scrolled to the right and read the /adv lootall 500 command i couldn't see before $ thank you sir.
 
Last edited:
I made one small change to that code, it wont effect the results, but I put some bad coding practice in there so fixed it lol. !${Me.CombatState.Equal[combat]} is the same as ${Me.CombatState.NotEqual[combat]}, but it's better to use the latter, if for no other reason than it's easier to read :) hehe
 
If you are afk, you should have a macro running and you'll need to mod the macro to have that command in appropriate places. If you are just merc afking then you can make a very simple macro:

Code:
Sub main
   /hidecorpse looted
   :mainLoop
      /if (${Me.CombatState.NotEqual[combat]} && ${SpawnCount[corpse radius 500]}) /advloot lootall 500
   /goto :mainLoop
/return

Of course change both 500 numbers to whatever radius you want to loot around you. I find a good camp radius is between 75 to 125 depending on if you are in an open or closed area.

Code:
Sub main
   /hidecorpse looted
   :mainLoop
      /if (${Me.CombatState.NotEqual[combat]} && ${SpawnCount[corpse radius 500]} [COLOR="Red"]&& !${AdvLoot.Active}[/COLOR]) /advloot lootall 500
   /goto :mainLoop
/return
 
Last edited:
I use a setup that does pretty much what you are looking for (autolooting corpses nearby without using stealth or warp). I already posted the macro with instructions on how I use it in this thread.

I hope this will work for you.
 
Code:
Sub main
   /hidecorpse looted
   :mainLoop
      /if (${Me.CombatState.NotEqual[combat]} && ${SpawnCount[corpse radius 500]} [COLOR="Red"]&& !${AdvLoot.Active}[/COLOR]) /advloot lootall 500
   /goto :mainLoop
/return

what does your edit do?