View Single Post
  #43  
Old 09-30-2015, 03:27 PM
AdrianD
Discordant
 
Join Date: Dec 2013
Posts: 297
Default

I think I figured the pet rules to work as they should. It took way too long to figure out but, I learned a bit more about the system.

Everything appears to work although client crashed twice during testing. I logged into the emu well over a dozen times.

I am unsure if these rules will trump suspended minion AA. I will need to test that another time.

I put a couple very simple lines into two places and reverted everything I did previous.

Code:
near <void Client::BulkSendInventoryItems()> \zone\client_process.cpp(848)

// added 9/30/15 no rent check (this may need fixing when introducing suspended minion)
		if (!RuleB(Pets, PetLogPersistence))

			SetPet(0);

near <void Client::Handle_OP_ZoneChange(const EQApplicationPacket *app) {> \zone\zoning.cpp(192)

// added 9/30/15 - removes pet on zoning (not on logging)
		if (!RuleB(Pets, PetZonePersistence))

			SetPet(0);
The first occurs within the <deletenorent> code. I searched this area when I originally tried to do this a day or two ago but, was unsure of code to put in. It was also suggested by Uleat.

The following was put in just before what appears to send the client to the new coords, when zoning. This was a little more tricky because I didn't know how the zoning process worked. I ended up turning on all the logsys features to sleuth it out. Rencro made mention of this although at the time, I couldn't make sense of it.

If this could be improved, please let me know.

Thanks for your help.
Reply With Quote