I use the Grandmaster's Satchel often when I hunt, but if I camp and switch toons when I return the norent stuff is gone. This had been annoying me for a long time and I finally went digging, finding the following...
First off, in the client_process.cpp there is this function (I just included the beginning part of the function, starting at line 664. The NoRentExpired function can be found in the zonedb.cpp file beginning at line 742.):
Code:
void Client::BulkSendInventoryItems()
{
// Search all inventory buckets for items
bool deletenorent=database.NoRentExpired(GetName());
// Worn items and Inventory items
sint16 slot_id = 0;
if(deletenorent){//client was offline for more than 30 minutes, delete no rent items
RemoveNoRent();
}
...it checks when you log in and it does what it should. Well, it would do what it should if the following IF statement wasn't in the same file, different function: (In the Client::Process() function at lines 597-599.)
Code:
if (!zoning) {
RemoveNoRent(); //Get rid of ze no rent stuff if logging out
}
This effectively removes all norent items when you log out, then that first function that checks for the 30 minutes will never find anything to delete. I commented out this IF statement and now the satchels work as advertised. I can switch toons and return with the bags still there. If I log and come back hours later, they are gone, just like they should be.