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

OnClick() public méthode

public OnClick ( ) : void
Résultat void
			public override void OnClick()
			{
				if (!m_Mobile.Deleted && m_Mobile.Controlled && m_From.CheckAlive())
				{
					if (m_Mobile.IsDeadPet && (m_Order == OrderType.Guard || m_Order == OrderType.Attack || m_Order == OrderType.Transfer || m_Order == OrderType.Drop))
						return;

					bool isOwner = (m_From == m_Mobile.ControlMaster);
					bool isFriend = (!isOwner && m_Mobile.IsPetFriend(m_From));

					if (!isOwner && !isFriend)
						return;
					else if (isFriend && m_Order != OrderType.Follow && m_Order != OrderType.Stay && m_Order != OrderType.Stop)
						return;

					switch (m_Order)
					{
						case OrderType.Follow:
						case OrderType.Attack:
						case OrderType.Transfer:
						case OrderType.Friend:
						case OrderType.Unfriend:
							{
								if (m_Order == OrderType.Transfer && m_From.HasTrade)
									m_From.SendLocalizedMessage(1010507); // You cannot transfer a pet with a trade pending
								else if (m_Order == OrderType.Friend && m_From.HasTrade)
									m_From.SendLocalizedMessage(1070947); // You cannot friend a pet with a trade pending
								else
									m_AI.BeginPickTarget(m_From, m_Order);

								break;
							}
						case OrderType.Release:
							{
								if (m_Mobile.Summoned)
									goto default;
								else
									m_From.SendGump(new Gumps.ConfirmReleaseGump(m_From, m_Mobile));

								break;
							}
						default:
							{
								if (m_Mobile.CheckControlChance(m_From))
									m_Mobile.ControlOrder = m_Order;

								break;
							}
					}
				}
			}
		}
BaseAI.InternalEntry