Good point. Here is a simple change to make them not auto equip.
In zone\inventory.cpp around line 381
Change
Code:
// #1: Try to auto equip
if (try_worn && inst.IsEquipable(GetBaseRace(), GetClass()) && inst.GetItem()->ReqLevel<=level)
to
Code:
// #1: Try to auto equip
if (try_worn && inst.IsEquipable(GetBaseRace(), GetClass()) && inst.GetItem()->ReqLevel<=level && !inst.GetItem()->Attuneable)
And this will set the instnodrop flag upon zoning if the item was equipped somehow (like with MQ) and bypasses the popup window.
in common\shareddb.cpp around line 483
Change
Code:
if (item) {
sint16 put_slot_id = SLOT_INVALID;
ItemInst inst(item, charges);
if (instnodrop)
inst.SetInstNoDrop(true);
if (color > 0)
inst.SetColor(color);
if(charges==255)
inst.SetCharges(-1);
else
to
Code:
if (item) {
sint16 put_slot_id = SLOT_INVALID;
ItemInst inst(item, charges);
if (instnodrop || (slot_id >= 0 && slot_id <= 21 && inst.GetItem()->Attuneable))
inst.SetInstNoDrop(true);
if (color > 0)
inst.SetColor(color);
if(charges==255)
inst.SetCharges(-1);
else