• 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
Resource icon

Release cleanbags.mac 1.1

No permission to download
Joined
Nov 7, 2005
RedCents
1,471¢
Based on my own question here: http://www.redguides.com/community/showthread.php/30993-Macro-to-Clean-Bags-using-Loot-ini about using Ninjadvloot.inc to clean bags, here's my macro which does exactly that.

Anything itemname=Destroy in .ini will be destroyed rest kept.

Default use is
Rich (BB code):
/mac cleanbags
which uses Loot.ini in your macro directory

However, I recommend using custom inis just for destroying:
Rich (BB code):
/mac cleanbags "destroy.ini"
In the example above, if you do not have "destroy.ini" one will be created and you can go edit and run the macro again with same /mac cleanbags "destroy.ini" .

Reason for custom ini is because default Loot.ini might have =Destroy for some item you looted for a bit and then wanted to stop collecting but you still want to keep whatever you looted earlier. Found out the hard way myself. ;)
 

Attachments

Anyone having problem with this Mac? It was working, but now giving me an error fail parse /while command then end Mac. Same with the cleaninventory one too error with while. Any advise or is there a newer Mac to del items

Thank you
 
earykee mind pasting the exact error message?

I assume the macro gets to /echo Destorying all itemName in inventory but then for some reason /while loop fails

Wish I still had the problem of having too much stuff :(
 
earykee mind pasting the exact error message?

I assume the macro gets to /echo Destorying all itemName in inventory but then for some reason /while loop fails

Wish I still had the problem of having too much stuff :(

error im getting is

failed to parse /while command. Parameter after conditions.
cleanbags.mac@59 (DestroyAll(ItemName)): /while etc etc etc

cleanbags.mac@21 (Main): /call cleanbags
the current macro has ended
Usage: /while (<conditions>)
 
Sorry, MQ newb here. I ran this mac and it made the destroy.ini as susggested, but when I enter my items it is not cleaning them out. I am SURE I am doing the .ini wrong, would someone please post an example .ini for this so that I can see the formatting?
 
My macro still works :)

Just downloaded from RG just to be double sure.

the command should be
Code:
/mac cleanbags "destroy.ini"

Main thing that destroy.ini is in the same folder as macro, that would be under /macros.
You can have multiple .ini files for different cleanup tasks.

If you do not specify destroy.ini then cleanbags will use the default ini file

Sample Destroy.ini
 

Attachments

THANK YOU ! I was not putting the =destroy after this, I could not be happier. Running 4 mages i make more Tavons in a day and they are a pain in the butt to keep destroying.
 
if you have the plugin MQ2Cursor you can use it to auto destroy those on creation.

/plugin Mq2cursor
/cursor on
(while the item is on your cursor) /cursor 0
You can also designate it to keep up to a certain amount, like foraged items (while holding roots) /cursor 1000

The plugin pauses when item/merchant/bank windows are open so, if you screw up and want to change the amount, or stop destorying, just open the item window, and then redo the process... or change the INI file (same file that MQ2melee uses... ServerName.CharacterName.ini in the release folder)

Not to detract from using this macro, it looks interesting. Just offering one solution to the Tavon's problem (I personally save 2 of each kind... and later parcel them to traders)
 
Thanks! Someone on these forums made me this avatar :)

BTW I use this sub on my mage, it is from my custom gen.inc file and you can add /call Cauldron8b pretty much from any buff/noncombat section

Code:
Sub Cauldron8b
    /echo hopefully not fighting for cauldron
    /if (!${Me.CombatState.Equal[COMBAT]}) {
  
        /echo attempting to cast cauldron
        |TODO would be nice to check if Cauldron is ready so we do not waste 11 secs
      
        /if (${Cast.Ready[Cauldron of Countless Goods]}) {
            /echo Cauldron Ready we going to rock it
            /cast item "Cauldron of Countless Goods"
            /delay 11s
        }
        |---------------------------------------------------------------
        |--- Comment out what you want to keep, take note if it is LORE.
        |---------------------------------------------------------------
  
        :AutoInvLoop
        /if (${Cursor.ID}) {
            |/if (${Cursor.Name.Equal[Airkin-Baked Croissant]}) /destroy
            /if (${Cursor.Name.Equal[Bulwark of Many Portals]} && (${FindItemCount[Bulwark of Many Portals]}> 4)) /destroy
            /if (${Cursor.Name.Equal[Pail of Slop]}) /destroy
            /if (${Cursor.Name.Equal[Majestic Tonic of Healing]}) /destroy
            /if (${Cursor.Name.Equal[Mardu's Mercurial Visor]}) /destroy
            /if (${Cursor.Name.Equal[Murky Energy Tonic]}) /destroy
            /if (${Cursor.Name.Equal[Wand of Temporal Mastery]}) /destroy
            /if (${Cursor.Name.Equal[Skull of the Spire Servant]}) /destroy
            /if (${Cursor.Name.Equal[Tavon's Polished Gemstone]} && (${FindItemCount[Tavon's Polished Gemstone]}> 4)) /destroy
            /if (${Cursor.Name.Equal[Tavon's Burnished Gemstone]} && (${FindItemCount[Tavon's Burnished Gemstone]}> 4)) /destroy
            /if (${Cursor.Name.Equal[Void Shard]}) /destroy
            /if (${Cursor.Name.Equal[Brightedge]} && (${FindItemCount[Brightedge]}> 8))  /destroy
            /if (${Cursor.Name.Equal[Imprint of the Enhanced Minion]} && (${FindItemCount[Imprint of the Enhanced Minion]}> 8))  /destroy
            /if (${Cursor.Name.Equal[Aircrisp Apple]} && (${FindItemCount[Aircrisp Apple]}> 200))  /destroy
            /if (${Cursor.Name.Equal[Ether-Fused Tea]} && (${FindItemCount[Ether-Fused Tea]}> 200))  /destroy
            /if (${Cursor.Name.Equal[Worlu's Prying Eyes]}) /destroy
            |/if (${Cursor.Name.Equal[Worlu's Windcloak]}) /destroy
            /delay 10
            /if (${Cursor.Name.Equal[Brightedge]} && (${FindItemCount[Brightedge]}> 8))  /destroy
            /delay 10
            /if (${Cursor.ID}) {
                /echo Keeping - (${Cursor.Name}) -
                /mqlog Keeping (${Cursor.Name}) ${Time.Time24} ${Time.Date}
                /autoinventory
                /delay 10
            }
            /goto :AutoInvLoop
        }
    }
/return

Pretty easy to modify on what/how much of the summoned stuff you want to keep.
 
Anyone know how to fix this? Getting "SLOT IS NULL: Could not send notification to 389 leftmouseup"
Despite using autoforage.ini to mark items, I still fill up with junk. This mac was amazing to clean everything using loot.ini but recently stopped working. I used it for years

The only reference to mouse click is a single line -- trying some debugging
INI:
Sub DestroyAll(ItemName)
        /keypress OPEN_INV_BAGS
        /echo Destroying all ${ItemName} in inventory
        /while (${FindItem[=${ItemName}].InvSlot}) {
        /echo ${ItemName} |||| variable is populated with item name
            /shift /itemnotify ${FindItem[=${ItemName}].InvSlot} leftmouseup
            /delay 5
            /if (${Cursor.ID} && ${Cursor.ID} != 13073) /destroy
            /delay 5
        }
        /echo all ${ItemName} should be destroyed
        /keypress CLOSE_INV_BAGS
/return

Replacing the TLO variable with 389 reproduces the error
INI:
/shift /itemnotify 389 leftmouseup

The item it is searching for happens to be dragon claw sliver. I believe this is where it fails because if I try this.... the TLO returns NULL (might be doing this part wrong though)
INI:
/shift /itemnotify ${FindItem[=Dragon Claw Sliver].InvSlot} leftmouseup
>> [MQ2] /shift /itemnotify NULL leftmouseup

So I think the problem is a bad reference to an inventory slot? It does seem to look for a specific slot. I think that last test I have incorrect
 
Last edited:
Yep that was it!
The line just needs to be simplified to this:

INI:
/shift /itemnotify "${ItemName}" leftmouseup

I attached the modified macro incase anyone can't figure that out
 

Attachments

Thanks for finding the fix godsfshrmn !

I noticed it too will update ASAP.

Also, glad to see that there are other people using it besides myself :)

PS Looks like I need to get rid of InvSlot completely as that seems to be deprecated
 
is there away for this to check items i have marked NL and destory them?. i noticed going to some old zones i auto loot alot of crap and go back later and hit NL on them from my inventory but then have to go back and pick up the stacks or e/v and destroy it.
 
You could modify the cleanbags.mac to use NL instead of Destroy

There are two lines (i think Line 40 and Line 52)
Code:
/if (${Ini[${NinjaIniFile},"${LootItem.Left[1]}","${LootItem}"].Equal[Destroy]}) /call DestroyAll "${LootItem}"

So replace Equal[Destroy] with Equal[NL] in those two lines using your favorite text editor(Notepad++ or Visual Studio Code are fine choices)

Code:
/if (${Ini[${NinjaIniFile},"${LootItem.Left[1]}","${LootItem}"].Equal[NL]}) /call DestroyAll "${LootItem}"

If it is actually NoLoot instead of NL, then you would change that :)

Do no change anything else and you should be good to go.
 
Release cleanbags.mac

Users who are viewing this thread

Back
Top
Cart