public static void FixPlayer( PlayerMobile mob )
		{
			if ( mob != null )
			{
				Server.Skills skills = mob.Skills;

				int totalDecrease = 0;

				for ( int i = 0; i < skills.Length; i++ )
				{
					Skill skill = skills[i];

					if ( skill.CapFixedPoint > 1000 )
						skill.CapFixedPoint = 1000;

					if ( skill.BaseFixedPoint > 1000 )
					{
						totalDecrease += skill.BaseFixedPoint - 1000;
						skill.BaseFixedPoint = 1000;
					}
				}

				mob.SkillsCap = 7000;

				int totalGiveSkill = Math.Min( totalDecrease, 7000 - skills.Total );

				if ( totalGiveSkill > 0 )
				{
					EtherealSoulStone stone = new EtherealSoulStone( mob.Account.Username );
					stone.SkillValue = (totalGiveSkill / 10.0);
					mob.AddToBackpack( stone );
				}
			}
		}
		public SkillTransferGump(EtherealSoulStone soulstone, Mobile from)
			: base(20, 30)
		{
			m_SoulStone = soulstone;

			AddPage(0);
			AddBackground(0, 0, 260, 351, 5054);

			AddImageTiled(10, 10, 240, 23, 0x52);
			AddImageTiled(11, 11, 238, 21, 0xBBC);

			AddLabel(45, 11, 0, "Select a skill to raise");

			AddPage(1);

			int page = 1;
			int index = 0;

			Skills skills = from.Skills;

			int number;

			if (from.EraSA)
			{
				number = 0;
			}
			else if (from.EraML)
			{
				number = 3;
			}
			else if (from.EraSE)
			{
				number = 4;
			}
			else if (from.EraAOS)
			{
				number = 6;
			}
			else
			{
				number = 9;
			}

			for (int i = 0; i < (skills.Length - number); ++i)
			{
				if (index >= FieldsPerPage)
				{
					AddButton(231, 13, 0x15E1, 0x15E5, 0, GumpButtonType.Page, page + 1);

					++page;
					index = 0;

					AddPage(page);

					AddButton(213, 13, 0x15E3, 0x15E7, 0, GumpButtonType.Page, page - 1);
				}

				Skill skill = skills[i];

				if ( /*(skill.Base + m_SoulStone.SkillValue) <= skill.Cap*/ skill.Base < skill.Cap && skill.Lock != SkillLock.Locked &&
																			skill.Lock != SkillLock.Down)
				{
					AddImageTiled(10, 32 + (index * 22), 240, 23, 0x52);
					AddImageTiled(11, 33 + (index * 22), 238, 21, 0xBBC);

					AddLabelCropped(13, 33 + (index * 22), 150, 21, 0, skill.Name);
					AddImageTiled(180, 34 + (index * 22), 50, 19, 0x52);
					AddImageTiled(181, 35 + (index * 22), 48, 17, 0xBBC);
					AddLabelCropped(182, 35 + (index * 22), 234, 21, 0, skill.Base.ToString("F1"));

					if (from.AccessLevel >= AccessLevel.Player)
					{
						AddButton(231, 35 + (index * 22), 0x15E1, 0x15E5, i + 1, GumpButtonType.Reply, 0);
					}
					else
					{
						AddImage(231, 35 + (index * 22), 0x2622);
					}

					++index;
				}
			}
		}
        public SkillTransferGump(EtherealSoulStone soulstone, Mobile from)
            : base(20, 30)
        {
            m_SoulStone = soulstone;

            AddPage(0);
            AddBackground(0, 0, 260, 351, 5054);

            AddImageTiled(10, 10, 240, 23, 0x52);
            AddImageTiled(11, 11, 238, 21, 0xBBC);

            AddLabel(45, 11, 0, "Select a skill to raise");

            AddPage(1);

            int page  = 1;
            int index = 0;

            Skills skills = from.Skills;

            int number;

            if (from.EraSA)
            {
                number = 0;
            }
            else if (from.EraML)
            {
                number = 3;
            }
            else if (from.EraSE)
            {
                number = 4;
            }
            else if (from.EraAOS)
            {
                number = 6;
            }
            else
            {
                number = 9;
            }

            for (int i = 0; i < (skills.Length - number); ++i)
            {
                if (index >= FieldsPerPage)
                {
                    AddButton(231, 13, 0x15E1, 0x15E5, 0, GumpButtonType.Page, page + 1);

                    ++page;
                    index = 0;

                    AddPage(page);

                    AddButton(213, 13, 0x15E3, 0x15E7, 0, GumpButtonType.Page, page - 1);
                }

                Skill skill = skills[i];

                if (/*(skill.Base + m_SoulStone.SkillValue) <= skill.Cap*/ skill.Base < skill.Cap && skill.Lock != SkillLock.Locked &&
                    skill.Lock != SkillLock.Down)
                {
                    AddImageTiled(10, 32 + (index * 22), 240, 23, 0x52);
                    AddImageTiled(11, 33 + (index * 22), 238, 21, 0xBBC);

                    AddLabelCropped(13, 33 + (index * 22), 150, 21, 0, skill.Name);
                    AddImageTiled(180, 34 + (index * 22), 50, 19, 0x52);
                    AddImageTiled(181, 35 + (index * 22), 48, 17, 0xBBC);
                    AddLabelCropped(182, 35 + (index * 22), 234, 21, 0, skill.Base.ToString("F1"));

                    if (from.AccessLevel >= AccessLevel.Player)
                    {
                        AddButton(231, 35 + (index * 22), 0x15E1, 0x15E5, i + 1, GumpButtonType.Reply, 0);
                    }
                    else
                    {
                        AddImage(231, 35 + (index * 22), 0x2622);
                    }

                    ++index;
                }
            }
        }