• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->

Question - How to not take no drop / no trade items with MQ2autoLoot? (1 Viewer)

Joined
Mar 24, 2018
RedCents
4,520¢
My tank keeps taking no-trade items that I could use on other characters, is there a way to prevent that? I tried setting NoDropDefault=ignore but it didn't seem to help.
 
Yeah, I have turned it off for now, and just using the in game adv loot window. But it would be good to go back to this sometime because I liked how it auto destroyed junk, auto sold stuff for selling, and would distribute quest items and stuff. Really useful! But I gotta find a way around this issue.
 
There currently isn't an easy way to solve this problem till you have looted the item. The advloot struct has this data:

Rich (BB code):
typedef struct _LOOTITEM
{
/*0x00*/ DWORD	ItemID;
/*0x04*/ CHAR	Name[0x40];
/*0x44*/ DWORD	IconID;
/*0x48*/ BYTE  IsStackable;
/*0x49*/ BYTE   Unknown0x49[0x3];
/*0x4c*/ DWORD  MaxStack;
/*0x50*/ BYTE   NoDrop;
/*0x51*/ BYTE   Unknown0x51[0x3];
/*0x54*/ DWORD  ComboID;
/*0x58*/ DWORD  LootID;
/*0x5c*/ eAdvLootState State;
/*0x60*/ BYTE	bAutoRoll;
/*0x61*/ BYTE	ActivelyManaged; // User has the manage Window up
/*0x62*/ BYTE	ContextMenu;     // item has a context menu
/*0x63*/ BYTE	AskRandomMode; //item is in AskRandom mode
/*0x64*/ BYTE   CLootInProgress;
/*0x65*/ BYTE   PLootInProgress;
/*0x66*/ BYTE   Unknown0x66[0x6];
/*0x6c*/ struct _LOOTDETAILS	*LootDetails;
/*0x70*/ BYTE	Unknown0x70[0x8];
/*0x78*/ DWORD	AskTimer;
/*0x7c*/ BYTE	AutoRoll;
/*0x7d*/ BYTE	Unknown0x7d;
/*0x7e*/ BYTE	Need;
/*0x7f*/ BYTE	Greed;
/*0x80*/ BYTE	No;
/*0x81*/ BYTE	AlwaysNeed;
/*0x82*/ BYTE	AlwaysGreed;
/*0x83*/ BYTE	Never;
/*0x84*/
} LOOTITEM,*PLOOTITEM;

If you already have the item the item can be looked up based on the item ID to determine the classes that can use it. Of course at the point where you already have looted the item, most likely your loot.ini entry has been set to the no drop default is and you should manual set the item to the correct classes.

While I believe it would be possible to access that information without having already looted the item, I don't have the required skills to access that information in a way that is efficient/reasonable.
 
I'm not sure how the indexing is setup for this. But if you have an item set to ignore, could you not just shift the min index up 1. IE: Item 1 is NoDrop and mq2autoloot is set to ignore the item, if going through a loop
Rich (BB code):
public int i = 0;
public int j = 0;
for (i=j; i<sizeofarray;i++) {
    if (itemisnodrop && NoDropIgnore) {
        j++;
    } else {
       dootherlootstuff;
   }
}

IE: Shift the Min Index up by one to actually ignore the item. I realize this doesn't account for the item at index 1 being given manually. But the idea is there.

I suppose one could always keep the name of the item in an vector, and set the min index to the size of the vector +1 so that it skips no drop items as long as the items are still there.
 
Question - How to not take no drop / no trade items with MQ2autoLoot?

Users who are viewing this thread

Back
Top