[FIXED] Befriended Pack Animal Bug

Here we stuff all the bugs we've managed to squash/squish/squelch.
Post Reply
stranf
UOX3 Guru
Posts: 939
Joined: Wed Jan 04, 2006 3:59 pm
Has thanked: 0
Been thanked: 0

Befriended Pack Animal Bug

Post by stranf »

If you set another PC as a "friend" of one of your pack animals,
the "befriended" PC can command the animal, place ore in the animals pack, and do everything just fine.

But, unfortunatly for our would-be smith, the Llama refuses to allow him to take his hard earned ore out of the pack!!! it says, "you can not pick that up"

Only when the real owner shows up and removes the ore can it be used.

Is there any way to allow a befriended PC to take items out of the pack that he/she may have placed inside?

UOx3 v. 3.7

Thanks everyone!
Maarc
Developer
Posts: 576
Joined: Sat Mar 27, 2004 6:22 am
Location: Fleet, UK
Has thanked: 0
Been thanked: 0
Contact:

Post by Maarc »

I might have a bead on this in the code, had a quick look. Not at a stage I can test yet. For those that can compile:

cPlayerAction.cpp, CPIGetItem::Handle, change this:

Code: Select all

			if( iOwner != ourChar && ( ( !ourChar->IsGM() && iOwner->GetOwnerObj() != ourChar ) ) || !objInRange( ourChar, iOwner, DIST_NEARBY ) )
to this

Code: Select all

			bool otherPackCheck = (iOwner != ourChar);
			if( otherPackCheck )	// okay, not our owner!
			{
				otherPackCheck = !ourChar->IsGM();
				if( otherPackCheck )	// not a GM either
				{
					if( iOwner->GetOwnerObj() == ourChar )
						otherPackCheck = false;
					else if( Npcs->checkPetFriend( ourChar, static_cast<CChar>(iOwner) ) )
						otherPackCheck = false;
				}
			}
//			if( iOwner != ourChar && ( ( !ourChar->IsGM() && iOwner->GetOwnerObj() != ourChar ) ) || !objInRange( ourChar, iOwner, DIST_NEARBY ) )
			if( otherPackCheck || !objInRange( ourChar, iOwner, DIST_NEARBY ) )
Give it a whirl ... it compiles, so that must be a good thing :)
Post Reply