Server.Items.SalvageBag.SalvageIngots C# (CSharp) Méthode

SalvageIngots() private méthode

private SalvageIngots ( Server.Mobile from ) : void
from Server.Mobile
Résultat void
        private void SalvageIngots( Mobile from )
        {
            Item[] tools = from.Backpack.FindItemsByType( typeof( BaseTool ) );

            bool ToolFound = false;
            foreach( Item tool in tools )
            {
                if( tool is BaseTool && ( (BaseTool)tool ).CraftSystem == DefBlacksmithy.CraftSystem )
                    ToolFound = true;
            }

            if( !ToolFound )
            {
                from.SendLocalizedMessage( 1079822 ); // You need a blacksmithing tool in order to salvage ingots.
                return;
            }

            bool anvil, forge;
            DefBlacksmithy.CheckAnvilAndForge( from, 2, out anvil, out forge );

            if( !forge )
            {
                from.SendLocalizedMessage( 1044265 ); // You must be near a forge.
                return;
            }

            int salvaged = 0;
            int notSalvaged = 0;
			
			Container sBag = this;
			
			List<Item> Smeltables = sBag.FindItemsByType<Item>();

            for(int i = Smeltables.Count - 1; i >= 0; i--)
            {
                Item item = Smeltables[ i ];
				
				if( item is BaseArmor )
				{
					if( Resmelt( from, item, ( (BaseArmor)item ).Resource ) )
						salvaged++;
					else
						notSalvaged++;
				}
				else if( item is BaseWeapon )
				{
					if( Resmelt( from, item, ( (BaseWeapon)item ).Resource ) )
						salvaged++;
					else
						notSalvaged++;
				}
			}
			if( m_Failure )
			{
				from.SendLocalizedMessage( 1079975 ); // You failed to smelt some metal for lack of skill.
				m_Failure = false;
			}
			else
				from.SendLocalizedMessage( 1079973, String.Format( "{0}\t{1}", salvaged, salvaged + notSalvaged ) ); // Salvaged: ~1_COUNT~/~2_NUM~ blacksmithed items
		}

Usage Example

Exemple #1
0
            public override void OnClick()
            {
                if (m_Bag.Deleted)
                {
                    return;
                }

                Mobile from = Owner.From;

                if (from.CheckAlive())
                {
                    m_Bag.SalvageIngots(from);
                }
            }