Server.Gumps.PlayerVendorBuyGump.OnResponse C# (CSharp) Méthode

OnResponse() public méthode

public OnResponse ( Server.Network.NetState state, RelayInfo info ) : void
state Server.Network.NetState
info RelayInfo
Résultat void
		public override void OnResponse( NetState state, RelayInfo info )
		{
			Mobile from = state.Mobile;

			if ( !m_Vendor.CanInteractWith( from, false ) )
				return;

			if ( m_Vendor.IsOwner( from ) )
			{
				m_Vendor.SayTo( from, 503212 ); // You own this shop, just take what you want.
				return;
			}

			if ( info.ButtonID == 1 )
			{
				m_Vendor.Say( from.Name );

				if ( !m_VI.Valid || !m_VI.Item.IsChildOf( m_Vendor.Backpack ) )
				{
					m_Vendor.SayTo( from, 503216 ); // You can't buy that.
					return;
				}

				int totalGold = 0;

				if ( from.Backpack != null )
					totalGold += from.Backpack.GetAmount( typeof( Gold ) );
				
				totalGold += Banker.GetBalance( from );

				if ( totalGold < m_VI.Price )
				{
					m_Vendor.SayTo( from, 503205 ); // You cannot afford this item.
				}
				else if ( !from.PlaceInBackpack( m_VI.Item ) )
				{
					m_Vendor.SayTo( from, 503204 ); // You do not have room in your backpack for this.
				}
				else
				{
					int leftPrice = m_VI.Price;

					if ( from.Backpack != null )
						leftPrice -= from.Backpack.ConsumeUpTo( typeof( Gold ), leftPrice );

					if ( leftPrice > 0 )
						Banker.Withdraw( from, leftPrice );

					m_Vendor.HoldGold += m_VI.Price;

					from.SendLocalizedMessage( 503201 ); // You take the item.
				}
			}
			else
			{
				from.SendLocalizedMessage( 503207 ); // Cancelled purchase.
			}
		}
	}