Server.Mobiles.BaseAI.DoOrderFriend C# (CSharp) Méthode

DoOrderFriend() public méthode

public DoOrderFriend ( ) : bool
Résultat bool
		public virtual bool DoOrderFriend()
		{
			Mobile from = m_Mobile.ControlMaster;
			Mobile to = m_Mobile.ControlTarget;

			if (from == null || to == null || from == to || from.Deleted || to.Deleted || !to.Player)
			{
				m_Mobile.PublicOverheadMessage(MessageType.Regular, 0x3B2, 502039); // *looks confused*
			}
			else
			{
				if (from.CanBeBeneficial(to, true))
				{
					NetState fromState = from.NetState, toState = to.NetState;

					if (fromState != null && toState != null)
					{
						if (from.HasTrade)
						{
							from.SendLocalizedMessage(1070947); // You cannot friend a pet with a trade pending
						}
						else if (to.HasTrade)
						{
							to.SendLocalizedMessage(1070947); // You cannot friend a pet with a trade pending
						}
						else if (m_Mobile.IsPetFriend(to))
						{
							from.SendLocalizedMessage(1049691); // That person is already a friend.
						}
						else if (!m_Mobile.AllowNewPetFriend)
						{
							from.SendLocalizedMessage(1005482); // Your pet does not seem to be interested in making new friends right now.
						}
						else
						{
							// ~1_NAME~ will now accept movement commands from ~2_NAME~.
							from.SendLocalizedMessage(1049676, String.Format("{0}\t{1}", m_Mobile.Name, to.Name));

							/* ~1_NAME~ has granted you the ability to give orders to their pet ~2_PET_NAME~.
							 * This creature will now consider you as a friend.
							 */
							to.SendLocalizedMessage(1043246, String.Format("{0}\t{1}", from.Name, m_Mobile.Name));

							m_Mobile.AddPetFriend(to);

							m_Mobile.ControlTarget = to;
							m_Mobile.ControlOrder = OrderType.Follow;

							return true;
						}
					}
				}
			}

			m_Mobile.ControlTarget = from;
			m_Mobile.ControlOrder = OrderType.Follow;

			return true;
		}