protected override void OnTarget(Mobile from, object targeted)
            {
                if (targeted == m_Ticket)
                {
                    from.SendLocalizedMessage(501928);                       // You can't target the same ticket!
                }
                else if (targeted is NewPlayerTicket)
                {
                    NewPlayerTicket theirTicket = targeted as NewPlayerTicket;
                    Mobile          them        = theirTicket.m_Owner;

                    if (them == null || them.Deleted)
                    {
                        from.SendLocalizedMessage(501930);                           // That is not a valid ticket.
                    }
                    else
                    {
                        from.SendGump(new InternalGump(from, m_Ticket));
                        them.SendGump(new InternalGump(them, theirTicket));
                    }
                }
                else if (targeted is Item && ((Item)targeted).ItemID == 0x14F0)
                {
                    from.SendLocalizedMessage(501931);                       // You need to find another ticket marked NEW PLAYER.
                }
                else
                {
                    from.SendLocalizedMessage(501929);                       // You will need to select a ticket.
                }
            }
            public InternalGump(Mobile from, NewPlayerTicket ticket) : base(50, 50)
            {
                m_From   = from;
                m_Ticket = ticket;

                AddBackground(0, 0, 400, 385, 0xA28);

                AddHtmlLocalized(30, 45, 340, 70, 1013011, true, true);                   // Choose the gift you prefer. WARNING: if you cancel, and your partner does not, you will need to find another matching ticket!

                AddButton(46, 128, 0xFA5, 0xFA7, 1, GumpButtonType.Reply, 0);
                AddHtmlLocalized(80, 130, 320, 35, 1013012, false, false);                   // A sextant

                AddButton(46, 163, 0xFA5, 0xFA7, 2, GumpButtonType.Reply, 0);
                AddHtmlLocalized(80, 165, 320, 35, 1013013, false, false);                   // A coupon for a single hair restyling

                AddButton(46, 198, 0xFA5, 0xFA7, 3, GumpButtonType.Reply, 0);
                AddHtmlLocalized(80, 200, 320, 35, 1013014, false, false);                   // A spellbook with all 1st - 4th spells.

                AddButton(46, 233, 0xFA5, 0xFA7, 4, GumpButtonType.Reply, 0);
                AddHtmlLocalized(80, 235, 320, 35, 1013015, false, false);                   // A wand of fireworks

                AddButton(46, 268, 0xFA5, 0xFA7, 5, GumpButtonType.Reply, 0);
                AddHtmlLocalized(80, 270, 320, 35, 1013016, false, false);                   // A spyglass

                AddButton(46, 303, 0xFA5, 0xFA7, 6, GumpButtonType.Reply, 0);
                AddHtmlLocalized(80, 305, 320, 35, 1013017, false, false);                   // Dyes and a dye tub

                AddButton(120, 340, 0xFA5, 0xFA7, 0, GumpButtonType.Reply, 0);
                AddHtmlLocalized(154, 342, 100, 35, 1011012, false, false);                   // CANCEL
            }
Exemplo n.º 3
0
            public InternalGump(Mobile from, NewPlayerTicket ticket) : base(50, 50)
            {
                m_From   = from;
                m_Ticket = ticket;

                AddBackground(0, 0, 400, 350, 0xA28);

                AddHtmlLocalized(30, 45, 340, 70, 1013011, true, true);                   // Choose the gift you prefer. WARNING: if you cancel, and your partner does not, you will need to find another matching ticket!

                AddButton(46, 128, 0xFA5, 0xFA7, 1, GumpButtonType.Reply, 0);
                AddHtml(80, 130, 320, 35, "A talking parrot", false, false);                   // Talking parrot

                AddButton(46, 163, 0xFA5, 0xFA7, 2, GumpButtonType.Reply, 0);
                AddHtml(80, 165, 320, 35, "A Lord Blackthorne action figure", false, false);                   // Lord Blackthorne action figure

                AddButton(46, 198, 0xFA5, 0xFA7, 3, GumpButtonType.Reply, 0);
                AddHtml(80, 200, 320, 35, "A magic crystal ball", false, false);                   // A magic crystal ball.

                AddButton(46, 233, 0xFA5, 0xFA7, 4, GumpButtonType.Reply, 0);
                AddHtmlLocalized(80, 235, 320, 35, 1013015, false, false);                   // A wand of fireworks

                AddButton(46, 268, 0xFA5, 0xFA7, 5, GumpButtonType.Reply, 0);
                AddHtml(80, 270, 320, 35, "A deck of tarot poker cards", false, false); // A deck of tarot poker cards

                AddButton(120, 305, 0xFA5, 0xFA7, 0, GumpButtonType.Reply, 0);
                AddHtmlLocalized(154, 307, 100, 35, 1011012, false, false);                   // CANCEL
            }
            public InternalGump(Mobile from, NewPlayerTicket ticket) : base(50, 50)
            {
                m_From   = from;
                m_Ticket = ticket;

                AddBackground(0, 0, 400, 385, 0xA28);

                AddHtml(30, 45, 340, 70, "Thank you for helping us defeat this vile evil, for your courageousness we have given you a choice of rewards, you may choose only one though!", true, false);

                AddButton(46, 128, 0xFA5, 0xFA7, 1, GumpButtonType.Reply, 0);
                AddHtml(80, 129, 240, 24, "a 225 stat ball", true, false);
                //AddLabel( 80, 128, 0x489, "a 225 stat ball" );  //# 1test

                //AddButton( 46, 163, 0xFA5, 0xFA7, 2, GumpButtonType.Reply, 0 );
                //AddHtml(80,164,240,24,"a random blood pentagram part",true,false);
                //AddLabel( 80, 163, 0x489, "a clothing bless deed" );  //# 1test

                AddButton(46, 163, 0xFA5, 0xFA7, 5, GumpButtonType.Reply, 0);
                AddHtml(80, 164, 240, 24, "a skin tone deed", true, false);

                AddButton(46, 198, 0xFA5, 0xFA7, 3, GumpButtonType.Reply, 0);
                AddHtml(80, 199, 240, 24, "a promotional token", true, false);

                AddButton(46, 233, 0xFA5, 0xFA7, 4, GumpButtonType.Reply, 0);
                AddHtml(80, 234, 240, 24, "an ethereal beetle", true, false);

                AddButton(46, 269, 0xFA5, 0xFA7, 6, GumpButtonType.Reply, 0);
                AddHtml(80, 269, 240, 24, "a special hair dye", true, false);

                //AddButton( 46, 268, 0xFA5, 0xFA7, 5, GumpButtonType.Reply, 0 );
                //AddHtml(80,269,240,24,"a Skin Tone Deed",true,false);
                //AddLabel( 80, 268, 0x489, "a skin tone deed" );  //# 1test

                //AddButton( 46, 303, 0xFA5, 0xFA7, 6, GumpButtonType.Reply, 0 );
                //AddLabel( 50, 320, 0x489, "a wreath deed" );  //# 1test

                AddButton(120, 310, 0xFA5, 0xFA7, 0, GumpButtonType.Reply, 0);
                AddHtmlLocalized(154, 312, 100, 35, 1011012, false, false);                   // CANCEL
            }
			public InternalGump( Mobile from, NewPlayerTicket ticket ) : base( 50, 50 )
			{
				m_From = from;
				m_Ticket = ticket;

				AddBackground( 0, 0, 400, 385, 0xA28 );

				AddHtml(30, 45, 340, 70,"Thank you for helping us defeat this vile evil, for your courageousness we have given you a choice of rewards, you may choose only one though!",true,false);

				AddButton( 46, 128, 0xFA5, 0xFA7, 1, GumpButtonType.Reply, 0 );
				AddHtml(80,129,240,24,"a 225 stat ball",true,false);
				//AddLabel( 80, 128, 0x489, "a 225 stat ball" );  //# 1test

				//AddButton( 46, 163, 0xFA5, 0xFA7, 2, GumpButtonType.Reply, 0 );
				//AddHtml(80,164,240,24,"a random blood pentagram part",true,false);
				//AddLabel( 80, 163, 0x489, "a clothing bless deed" );  //# 1test

				AddButton(46, 163, 0xFA5, 0xFA7, 5, GumpButtonType.Reply, 0);
				AddHtml(80, 164, 240, 24, "a skin tone deed", true, false);

				AddButton( 46, 198, 0xFA5, 0xFA7, 3, GumpButtonType.Reply, 0 );
				AddHtml(80,199,240,24,"a promotional token",true,false);

				AddButton( 46, 233, 0xFA5, 0xFA7, 4, GumpButtonType.Reply, 0 );
				AddHtml(80,234,240,24,"an ethereal beetle",true,false);

				AddButton( 46, 269, 0xFA5, 0xFA7, 6, GumpButtonType.Reply, 0 );
				AddHtml(80,269,240,24,"a special hair dye",true,false);

				//AddButton( 46, 268, 0xFA5, 0xFA7, 5, GumpButtonType.Reply, 0 );
				//AddHtml(80,269,240,24,"a Skin Tone Deed",true,false);
				//AddLabel( 80, 268, 0x489, "a skin tone deed" );  //# 1test

				//AddButton( 46, 303, 0xFA5, 0xFA7, 6, GumpButtonType.Reply, 0 );
				//AddLabel( 50, 320, 0x489, "a wreath deed" );  //# 1test

				AddButton( 120, 310, 0xFA5, 0xFA7, 0, GumpButtonType.Reply, 0 );
				AddHtmlLocalized( 154, 312, 100, 35, 1011012, false, false ); // CANCEL
			}
 public InternalTarget(NewPlayerTicket ticket) : base(2, false, TargetFlags.None)
 {
     m_Ticket = ticket;
 }
        private static void EventSink_CharacterCreated( CharacterCreatedEventArgs args )
        {
            if ( !VerifyProfession( args.Profession ) )
                args.Profession = 0;

            Mobile newChar = CreateMobile( args.Account as Account );

            if ( newChar == null )
            {
                log.Error(String.Format("Login: {0}: Character creation failed, account full", args.State));
                return;
            }

            args.Mobile = newChar;
            m_Mobile = newChar;

            newChar.Player = true;
            newChar.AccessLevel = ((Account)args.Account).AccessLevel;
            newChar.Female = args.Female;
            newChar.Body = newChar.Female ? 0x191 : 0x190;
            newChar.Hue = Utility.ClipSkinHue( args.Hue & 0x3FFF ) | 0x8000;
            newChar.Hunger = 20;

            bool young = false;

            if ( newChar is PlayerMobile )
            {
                PlayerMobile pm = (PlayerMobile) newChar;

                pm.Profession = args.Profession;

                if ( pm.AccessLevel == AccessLevel.Player && ((Account)pm.Account).Young )
                    young = pm.Young = true;
            }

            SetName( newChar, args.Name );

            AddBackpack( newChar );

            SetStats( newChar, args.Str, args.Dex, args.Int );
            SetSkills( newChar, args.Skills, args.Profession );

            AddHair( newChar, args.HairID, Utility.ClipHairHue( args.HairHue & 0x3FFF ) );
            AddBeard( newChar, args.BeardID, Utility.ClipHairHue( args.BeardHue & 0x3FFF ) );

            if ( args.Profession <= 3 )
            {
                AddShirt( newChar, args.ShirtHue );
                AddPants( newChar, args.PantsHue );
                AddShoes( newChar );
            }

            if( TestCenter.Enabled )
                FillBankbox( newChar );

            if ( young && newChar.BankBox != null )
            {
                NewPlayerTicket ticket = new NewPlayerTicket();
                ticket.Owner = newChar;
                newChar.BankBox.DropItem( ticket );
            }

            CityInfo city = GetStartLocation( args, young );
            //CityInfo city = new CityInfo( "Britain", "Sweet Dreams Inn", 1496, 1628, 10, Map.Felucca );

            newChar.MoveToWorld( city.Location, city.Map );

            log.Info(String.Format("Login: {0}: New character being created (account={1})",
                                   args.State, ((Account)args.Account).Username));
            log.Info(String.Format(" - Character: {0} (serial={1})",
                                   newChar.Name, newChar.Serial));
            log.Info(String.Format(" - Started: {0} {1} in {2}",
                                   city.City, city.Location, city.Map.ToString()));

            new WelcomeTimer( newChar ).Start();
        }
Exemplo n.º 8
0
			public InternalTarget( NewPlayerTicket ticket ) : base( 2, false, TargetFlags.None )
			{
				m_Ticket = ticket;
			}
Exemplo n.º 9
0
			public InternalGump( Mobile from, NewPlayerTicket ticket ) : base( 50, 50 )
			{
				m_From = from;
				m_Ticket = ticket;

				AddBackground( 0, 0, 400, 385, 0xA28 );

				AddHtmlLocalized( 30, 45, 340, 70, 1013011, true, true ); // Choose the gift you prefer. WARNING: if you cancel, and your partner does not, you will need to find another matching ticket!

				AddButton( 46, 128, 0xFA5, 0xFA7, 1, GumpButtonType.Reply, 0 );
				AddHtmlLocalized( 80, 130, 320, 35, 1013012, false, false ); // A sextant

				AddButton( 46, 163, 0xFA5, 0xFA7, 2, GumpButtonType.Reply, 0 );
				AddHtmlLocalized( 80, 165, 320, 35, 1013013, false, false ); // A coupon for a single hair restyling

			//	AddButton( 46, 198, 0xFA5, 0xFA7, 3, GumpButtonType.Reply, 0 );
			//	AddHtmlLocalized( 80, 200, 320, 35, 1013014, false, false ); // A spellbook with all 1st - 4th spells.

				AddButton( 46, 233, 0xFA5, 0xFA7, 3, GumpButtonType.Reply, 0 );
				AddHtmlLocalized( 80, 235, 320, 35, 1013015, false, false ); // A wand of fireworks

				AddButton( 46, 268, 0xFA5, 0xFA7, 4, GumpButtonType.Reply, 0 );
				AddHtmlLocalized( 80, 270, 320, 35, 1013016, false, false ); // A spyglass

				AddButton( 46, 303, 0xFA5, 0xFA7, 5, GumpButtonType.Reply, 0 );
				AddHtmlLocalized( 80, 305, 320, 35, 1013017, false, false ); // Dyes and a dye tub

				AddButton( 120, 340, 0xFA5, 0xFA7, 0, GumpButtonType.Reply, 0 );
				AddHtmlLocalized( 154, 342, 100, 35, 1011012, false, false ); // CANCEL
			}
        private static void EventSink_CharacterCreated(CharacterCreatedEventArgs args)
        {
            if (!VerifyProfession(args.Profession))
            {
                args.Profession = 0;
            }

            NetState state = args.State;

            if (state == null)
            {
                return;
            }

            Mobile newChar = CreateMobile(args.Account as Account);

            if (newChar == null)
            {
                Utility.PushColor(ConsoleColor.Red);
                Console.WriteLine("Login: {0}: Character creation failed, account full", state);
                Utility.PopColor();
                return;
            }

            args.Mobile = newChar;
            m_Mobile = newChar;

            newChar.Player = true;
            newChar.AccessLevel = args.Account.AccessLevel;
            newChar.Female = args.Female;
            //newChar.Body = newChar.Female ? 0x191 : 0x190;

            if (Core.Expansion >= args.Race.RequiredExpansion)
            {
                newChar.Race = args.Race;	//Sets body
            }
            else
            {
                newChar.Race = Race.DefaultRace;
            }

            //newChar.Hue = Utility.ClipSkinHue( args.Hue & 0x3FFF ) | 0x8000;
            newChar.Hue = newChar.Race.ClipSkinHue(args.Hue & 0x3FFF) | 0x8000;

            newChar.Hunger = Config.Get("CharacterCreation.Hunger", 0);
            newChar.Thirst = Config.Get("CharacterCreation.Thirst", 0);
            newChar.SkillsCap = Config.Get("CharacterCreation.SkillCap", 0);
            newChar.StatCap = Config.Get("CharacterCreation.StatCap", 0);
            newChar.FollowersMax = Config.Get("CharacterCreation.FollowersMax", 0);

            bool young = false;

            if (newChar is PlayerMobile)
            {
                PlayerMobile pm = (PlayerMobile)newChar;

                pm.Profession = args.Profession;

                if (pm.IsPlayer() && ((Account)pm.Account).Young)
                {
                    young = pm.Young = Config.Get("CharacterCreation.YoungEnabled", true);
                }

                if (pm.Race == Race.Gargoyle) // Gargoyles start with 2000 loyalty points
                {
                    pm.Exp = Config.Get("CharacterCreation.GargoyleExp", 0);
                }
            }

            SetName(newChar, args.Name);

            AddBackpack(newChar);

            SetStats(newChar, state, args.Str, args.Dex, args.Int);
            SetSkills(newChar, args.Skills, args.Profession);

            Race race = newChar.Race;

            if (race.ValidateHair(newChar, args.HairID))
            {
                newChar.HairItemID = args.HairID;
                newChar.HairHue = race.ClipHairHue(args.HairHue & 0x3FFF);
            }

            if (race.ValidateFacialHair(newChar, args.BeardID))
            {
                newChar.FacialHairItemID = args.BeardID;
                newChar.FacialHairHue = race.ClipHairHue(args.BeardHue & 0x3FFF);
            }
            #region Enhance Client
            if (race.ValidateFace(newChar, args.FaceID))
            {
                newChar.FaceItemID = args.FaceID;
                newChar.FaceHue = args.FaceHue;
            }
            #endregion

            if (args.Profession <= 3)
            {
                AddShirt(newChar, args.ShirtHue);
                AddPants(newChar, args.PantsHue);
                AddShoes(newChar);
            }

            if (young)
            {
                NewPlayerTicket ticket = new NewPlayerTicket();
                ticket.Owner = newChar;
                newChar.BankBox.DropItem(ticket);
            }

            CityInfo city = GetStartLocation(args, young);

            newChar.MoveToWorld(city.Location, city.Map);

            Utility.PushColor(ConsoleColor.Green);
            Console.WriteLine("Login: {0}: New character being created (account={1})", state, args.Account.Username);
            Utility.PopColor();
            Utility.PushColor(ConsoleColor.DarkGreen);
            Console.WriteLine(" - Character: {0} (serial={1})", newChar.Name, newChar.Serial);
            Console.WriteLine(" - Started: {0} {1} in {2}", city.City, city.Location, city.Map.ToString());
            Utility.PopColor();

            new WelcomeTimer(newChar).Start();

            if (XmlSpawner.PointsEnabled)
            {
                XmlAttach.AttachTo(newChar, new XmlPoints());
            }

            if (XmlSpawner.FactionsEnabled)
            {
                XmlAttach.AttachTo(newChar, new XmlMobFactions());
            }
        }
		private static void EventSink_CharacterCreated( CharacterCreatedEventArgs args )
		{
			if ( !VerifyProfession( args.Profession ) )
				args.Profession = 0;

			Mobile newChar = CreateMobile( args.Account as Account );

			if ( newChar == null )
			{
				Console.WriteLine( "Login: {0}: Character creation failed, account full", args.State );
				return;
			}

			args.Mobile = newChar;
			m_Mobile = newChar;

			newChar.Player = true;
			newChar.AccessLevel = args.Account.AccessLevel;
			newChar.Female = args.Female;
			//newChar.Body = newChar.Female ? 0x191 : 0x190;

			if( Core.Expansion >= args.Race.RequiredExpansion )
				newChar.Race = args.Race;	//Sets body
			else
				newChar.Race = Race.DefaultRace;

			//newChar.Hue = Utility.ClipSkinHue( args.Hue & 0x3FFF ) | 0x8000;
			newChar.Hue = newChar.Race.ClipSkinHue( args.Hue & 0x3FFF ) | 0x8000;

			newChar.Hunger = 20;
			newChar.Skills.Cap = 58000;
			newChar.BonusMaxWeight = 1374;
			bool young = false;

			if ( newChar is PlayerMobile )
			{
				PlayerMobile pm = (PlayerMobile) newChar;

				pm.Profession = args.Profession;

				if ( pm.AccessLevel == AccessLevel.Player && ((Account)pm.Account).Young )
					young = pm.Young = true;
			}

			SetName( newChar, args.Name );

			AddBackpack( newChar );

			SetStats( newChar, args.Str, args.Dex, args.Int );
			SetSkills( newChar, args.Skills, args.Profession );

			Race race = newChar.Race;

			if( race.ValidateHair( newChar, args.HairID ) )
			{
				newChar.HairItemID = args.HairID;
				newChar.HairHue = race.ClipHairHue( args.HairHue & 0x3FFF );
			}

			if( race.ValidateFacialHair( newChar, args.BeardID ) )
			{
				newChar.FacialHairItemID = args.BeardID;
				newChar.FacialHairHue = race.ClipHairHue( args.BeardHue & 0x3FFF );
			}

			if ( args.Profession <= 3 )
			{
				AddShirt( newChar, args.ShirtHue );
				AddPants( newChar, args.PantsHue );
				AddShoes( newChar );
			}

//STUFFIADDED


			
			{
			Container cont = new WoodenBox();
			Container bank = newChar.BankBox;
			cont.ItemID = 0xE7D;
			cont.Hue = 0x489;
			cont.Name = "Money Box";

			PlaceItemIn( cont, 16, 51, new BankCheck( 4000 ) );
			PlaceItemIn( bank, 26, 1, cont );
			PlaceItemIn( bank, 36, 5, new Bandage( 50 ) );
			PlaceItemIn( bank, 46, 10, new BagOfReagents() );
			}

//StuffIAdded
			if( TestCenter.Enabled )
				FillBankbox( newChar );

			if ( young )
			{
				NewPlayerTicket ticket = new NewPlayerTicket();
				ticket.Owner = newChar;
				newChar.BankBox.DropItem( ticket );
			}

			CityInfo city = GetStartLocation( args, young );
			//CityInfo city = new CityInfo( "Britain", "Sweet Dreams Inn", 1496, 1628, 10, Map.Felucca );

			newChar.MoveToWorld( city.Location, city.Map );

			Console.WriteLine( "Login: {0}: New character being created (account={1})", args.State, args.Account.Username );
			Console.WriteLine( " - Character: {0} (serial={1})", newChar.Name, newChar.Serial );
			Console.WriteLine( " - Started: {0} {1} in {2}", city.City, city.Location, city.Map.ToString() );

			new WelcomeTimer( newChar ).Start();
		}
Exemplo n.º 12
0
		private static void EventSink_CharacterCreated( CharacterCreatedEventArgs args )
		{
			if( !VerifyProfession( args.Profession ) )
				args.Profession = 0;

            NetState state = args.State;

            if (state == null)
                return;

			Mobile newChar = CreateMobile( args.Account as Account );

			if( newChar == null )
			{
                Console.WriteLine("Login: {0}: Character creation failed, account full", state);
                return;
			}

			args.Mobile = newChar;
			m_Mobile = newChar;

			newChar.Player = true;
			newChar.AccessLevel = args.Account.AccessLevel;
			newChar.Female = args.Female;
			//newChar.Body = newChar.Female ? 0x191 : 0x190;

			if( Core.Expansion >= args.Race.RequiredExpansion )
				newChar.Race = args.Race; //Sets body
			else
				newChar.Race = Race.DefaultRace;

			//newChar.Hue = Utility.ClipSkinHue( args.Hue & 0x3FFF ) | 0x8000;
			newChar.Hue = newChar.Race.ClipSkinHue( args.Hue & 0x3FFF ) | 0x8000;

			newChar.Hunger = 20;

			bool young = false;

			PlayerMobile pm = null;
			if( newChar is PlayerMobile )
			{
				pm = (PlayerMobile)newChar;

				pm.Profession = args.Profession;

				if( pm.AccessLevel == AccessLevel.Player && ((Account)pm.Account).Young )
					young = pm.Young = true;

                #region Nasir - Set Original Values For RaceReset

			    pm.OriginalHairHue = args.HairHue;
			    pm.OriginalHairItemID = args.HairID;
			    pm.OriginalHue = args.Hue;

                #endregion
            }

			SetName( newChar, args.Name );

            //We use player backpacks on INX

            Container pB = new PlayerBackpack(newChar);
            pB.Movable = false;
            newChar.AddItem(pB);


			AddBackpack( newChar );

            //SetStats(newChar, state, 100, 100, 100);
            //SetSkills( newChar, args.Skills, args.Profession );

            // Max stats
            newChar.Str = 100; newChar.Int = 100; newChar.Dex = 100;
            newChar.Hits = 100; newChar.Mana = 100; newChar.Stam = 100;
			
            Race race = newChar.Race;

			if( race.ValidateHair( newChar, args.HairID ) )
			{
				newChar.HairItemID = args.HairID;
				newChar.HairHue = race.ClipHairHue( args.HairHue & 0x3FFF );
			}

			if( race.ValidateFacialHair( newChar, args.BeardID ) )
			{
				newChar.FacialHairItemID = args.BeardID;
				newChar.FacialHairHue = race.ClipHairHue( args.BeardHue & 0x3FFF );
			}
            /*
			if( args.Profession <= 3 )
			{
				AddShirt( newChar, args.ShirtHue );
				AddPants( newChar, args.PantsHue );
				AddShoes( newChar );
			}
            */
			if( TestCenter.Enabled )
				FillBankbox( newChar );

			if( young)
			{
				NewPlayerTicket ticket = new NewPlayerTicket();
				ticket.Owner = newChar;
				newChar.BankBox.DropItem( ticket );
			}

			//IN:X Settings
            newChar.EquipItem( new XtremePlateChest());
            newChar.EquipItem( new XtremePlateArms());
            newChar.EquipItem( new XtremePlateGloves());
            newChar.EquipItem( new XtremePlateGorget());
            newChar.EquipItem( new XtremePlateHelm());
            newChar.EquipItem( new XtremePlateLegs());
            newChar.EquipItem( new Bardicheofvanquishing());
            newChar.EquipItem( new Doublet(0x47e));
            newChar.EquipItem( new Skirt(0x47e));
            newChar.EquipItem( new HalfApron(2535)); 
			newChar.StatCap = 300;
			newChar.SkillsCap = 54000; //Iza - changed from 52000 to 54000 for proper all skills cap.
            Server.Skills skills = newChar.Skills;

			for ( int i = 0; i < skills.Length; ++i )
				skills[i].Base = 100f;

			//CityInfo city = GetStartLocation( args, false );
            CityInfo city = new CityInfo("Green Acres", "Duel Pit", 5705, 1131, 0, Map.Felucca);

           	newChar.MoveToWorld( city.Location, city.Map );

            
            pB.Movable = false;
            newChar.AddItem(pB);
          
            /*
            AddShirt(newChar, args.ShirtHue);
            AddPants(newChar, args.PantsHue);
            AddShoes(newChar);
            

            AddBackpack(newChar);
            */

			//if ((newChar.Account).AccessLevel <= AccessLevel.GameMaster)
			//{
			//    (newChar).AccessLevel = AccessLevel.GameMaster;
			//    (newChar.Account).AccessLevel = AccessLevel.GameMaster;
			//}

			//Unicode//ASCII speech
			Account acct = newChar.Account as Account;
			if( pm != null && acct != null && acct.HardwareInfo != null )
			{
				string lang = acct.HardwareInfo.Language.ToUpper();

				//Ugliness...list.Contains()?
				if( lang.Equals( "ENG" ) || lang.Equals( "ENA" ) || lang.Equals( "ENC" ) || lang.Equals( "ENZ" ) || lang.Equals( "ENT" ) || lang.Equals( "ENU" ) || lang.Equals( "ENI" ) || lang.Equals( "ENW" ) || lang.Equals( "ENI" ) || lang.Equals( "ENS" ) || lang.Equals( "ENJ" ) || lang.Equals( "ENB" ) || lang.Equals( "ENL" ) || lang.Equals( "ENP" ) )
					pm.UseUnicodeSpeech = false;
				else
					pm.UseUnicodeSpeech = true;
			}
			else if( pm != null )
				pm.UseUnicodeSpeech = true;

            Console.WriteLine("Login: {0}: New character being created (account={1})", state, args.Account.Username);
            Console.WriteLine(" - Character: {0} (serial={1})", newChar.Name, newChar.Serial);
			Console.WriteLine( " - Started: {0} {1} in {2}", city.City, city.Location, city.Map );

//			BetaChar( newChar );
//			new WelcomeTimer( newChar ).Start();
		}
Exemplo n.º 13
0
        private static void EventSink_CharacterCreated(CharacterCreatedEventArgs args)
        {
            if (!VerifyProfession(args.Profession))
                args.Profession = 0;

            NetState state = args.State;

            if (state == null)
                return;

            Mobile newChar = CreateMobile(args.Account as Account);

            if (newChar == null)
            {
                Utility.PushColor(ConsoleColor.Red);
                Console.WriteLine("Login: {0}: Character creation failed, account full", state);
                Utility.PopColor();
                return;
            }

            args.Mobile = newChar;
            m_Mobile = newChar;

            newChar.Player = true;
            newChar.AccessLevel = args.Account.AccessLevel;
            newChar.Female = args.Female;
            //newChar.Body = newChar.Female ? 0x191 : 0x190;

            if (Core.Expansion >= args.Race.RequiredExpansion)
                newChar.Race = args.Race;	//Sets body
            else
                newChar.Race = Race.DefaultRace;

            //newChar.Hue = Utility.ClipSkinHue( args.Hue & 0x3FFF ) | 0x8000;
            newChar.Hue = newChar.Race.ClipSkinHue(args.Hue & 0x3FFF) | 0x8000;

            newChar.Hunger = 20;

            bool young = false;

            if (newChar is PlayerMobile)
            {
                PlayerMobile pm = (PlayerMobile)newChar;
                pm.AutoRenewInsurance = true;
                double skillcap = Config.Get("PlayerCaps.SkillCap", 1000.0d) / 10;
                if (skillcap != 100.0)
                {
                    for (int i = 0; i < Enum.GetNames(typeof(SkillName)).Length; ++i)
                        pm.Skills[i].Cap = skillcap;
                }
                pm.Profession = args.Profession;

                if (pm.IsPlayer() && ((Account)pm.Account).Young)
                    young = pm.Young = true;
            }

            SetName(newChar, args.Name);

            AddBackpack(newChar);

            SetStats(newChar, state, args.Str, args.Dex, args.Int);
            SetSkills(newChar, args.Skills, args.Profession);

            Race race = newChar.Race;

            if (race.ValidateHair(newChar, args.HairID))
            {
                newChar.HairItemID = args.HairID;
                newChar.HairHue = race.ClipHairHue(args.HairHue & 0x3FFF);
            }

            if (race.ValidateFacialHair(newChar, args.BeardID))
            {
                newChar.FacialHairItemID = args.BeardID;
                newChar.FacialHairHue = race.ClipHairHue(args.BeardHue & 0x3FFF);
            }

            if (args.Profession <= 3)
            {
                AddShirt(newChar, args.ShirtHue);
                AddPants(newChar, args.PantsHue);
                AddShoes(newChar);
            }

            if (TestCenter.Enabled)
                TestCenter.FillBankbox(newChar);

            if (young)
            {
                NewPlayerTicket ticket = new NewPlayerTicket();
                ticket.Owner = newChar;
                newChar.BankBox.DropItem(ticket);
            }

            CityInfo city = GetStartLocation(args, young);

            newChar.MoveToWorld(city.Location, city.Map);

            Utility.PushColor(ConsoleColor.Green);
            Console.WriteLine("Login: {0}: New character being created (account={1})", state, args.Account.Username);
            Utility.PopColor();
            Utility.PushColor(ConsoleColor.DarkGreen);
            Console.WriteLine(" - Character: {0} (serial={1})", newChar.Name, newChar.Serial);
            Console.WriteLine(" - Started: {0} {1} in {2}", city.City, city.Location, city.Map.ToString());
            Utility.PopColor();

            new WelcomeTimer(newChar).Start();

			if (XmlSpawner.PointsEnabled)
				XmlAttach.AttachTo(newChar, new XmlPoints());
			if(XmlSpawner.FactionsEnabled)
				XmlAttach.AttachTo(newChar, new XmlMobFactions());
        }
		private static void EventSink_CharacterCreated( CharacterCreatedEventArgs args )
		{
			if ( !VerifyProfession( args.Profession ) )
				args.Profession = 0;

			Mobile newChar = CreateMobile( args.Account as Account );

			if ( newChar == null )
			{
				Console.WriteLine( "Login: {0}: Character creation failed, account full", args.State );
				return;
			}

			args.Mobile = newChar;
			m_Mobile = newChar;

			newChar.Player = true;
			newChar.AccessLevel = args.Account.AccessLevel;
			newChar.Female = args.Female;
			//newChar.Body = newChar.Female ? 0x191 : 0x190;

			if( Core.Expansion >= args.Race.RequiredExpasnion )
				newChar.Race = args.Race;	//Sets body
			else
				newChar.Race = Race.DefaultRace;

			//newChar.Hue = Utility.ClipSkinHue( args.Hue & 0x3FFF ) | 0x8000;
			newChar.Hue = newChar.Race.ClipSkinHue( args.Hue & 0x3FFF ) | 0x8000;

			newChar.Hunger = 20;

            newChar.Skills.Cap = 108000;
            newChar.FollowersMax = 10;
            newChar.Skills[SkillName.Alchemy].Cap = 2000;
            newChar.Skills[SkillName.Anatomy].Cap = 2000;
            newChar.Skills[SkillName.AnimalLore].Cap = 2000;
            newChar.Skills[SkillName.ItemID].Cap = 2000;
            newChar.Skills[SkillName.ArmsLore].Cap = 2000;
            newChar.Skills[SkillName.Parry].Cap = 2000;
            newChar.Skills[SkillName.Begging].Cap = 2000;
            newChar.Skills[SkillName.Blacksmith].Cap = 2000;
            newChar.Skills[SkillName.Fletching].Cap = 2000;
            newChar.Skills[SkillName.Peacemaking].Cap = 2000;
            newChar.Skills[SkillName.Camping].Cap = 2000;
            newChar.Skills[SkillName.Carpentry].Cap = 2000;
            newChar.Skills[SkillName.Cartography].Cap = 2000;
            newChar.Skills[SkillName.Cooking].Cap = 2000;
            newChar.Skills[SkillName.DetectHidden].Cap = 2000;
            newChar.Skills[SkillName.Discordance].Cap = 2000;
            newChar.Skills[SkillName.EvalInt].Cap = 2000;
            newChar.Skills[SkillName.Healing].Cap = 2000;
            newChar.Skills[SkillName.Fishing].Cap = 2000;
            newChar.Skills[SkillName.Forensics].Cap = 2000;
            newChar.Skills[SkillName.Herding].Cap = 2000;
            newChar.Skills[SkillName.Hiding].Cap = 2000;
            newChar.Skills[SkillName.Provocation].Cap = 2000;
            newChar.Skills[SkillName.Inscribe].Cap = 2000;
            newChar.Skills[SkillName.Lockpicking].Cap = 2000;
            newChar.Skills[SkillName.Magery].Cap = 2000;
            newChar.Skills[SkillName.MagicResist].Cap = 2000;
            newChar.Skills[SkillName.Tactics].Cap = 2000;
            newChar.Skills[SkillName.Snooping].Cap = 2000;
            newChar.Skills[SkillName.Musicianship].Cap = 2000;
            newChar.Skills[SkillName.Poisoning].Cap = 2000;
            newChar.Skills[SkillName.Archery].Cap = 2000;
            newChar.Skills[SkillName.SpiritSpeak].Cap = 2000;
            newChar.Skills[SkillName.Stealing].Cap = 2000;
            newChar.Skills[SkillName.Tailoring].Cap = 2000;
            newChar.Skills[SkillName.AnimalTaming].Cap = 2000;
            newChar.Skills[SkillName.TasteID].Cap = 2000;
            newChar.Skills[SkillName.Tinkering].Cap = 2000;
            newChar.Skills[SkillName.Tracking].Cap = 2000;
            newChar.Skills[SkillName.Veterinary].Cap = 2000;
            newChar.Skills[SkillName.Swords].Cap = 2000;
            newChar.Skills[SkillName.Macing].Cap = 2000;
            newChar.Skills[SkillName.Fencing].Cap = 2000;
            newChar.Skills[SkillName.Wrestling].Cap = 2000;
            newChar.Skills[SkillName.Lumberjacking].Cap = 2000;
            newChar.Skills[SkillName.Mining].Cap = 2000;
            newChar.Skills[SkillName.Meditation].Cap = 2000;
            newChar.Skills[SkillName.Stealth].Cap = 2000;
            newChar.Skills[SkillName.RemoveTrap].Cap = 2000;
            newChar.Skills[SkillName.Necromancy].Cap = 2000;
            newChar.Skills[SkillName.Focus].Cap = 2000;
            newChar.Skills[SkillName.Chivalry].Cap = 2000;
            newChar.StatCap = 9000;

			bool young = false;

			if ( newChar is PlayerMobile )
			{
				PlayerMobile pm = (PlayerMobile) newChar;

				pm.Profession = args.Profession;

				if ( pm.AccessLevel == AccessLevel.Player && ((Account)pm.Account).Young )
					young = pm.Young = true;
			}

			SetName( newChar, args.Name );

			AddBackpack( newChar );

			SetStats( newChar, args.Str, args.Dex, args.Int );
			SetSkills( newChar, args.Skills, args.Profession );

			Race race = newChar.Race;

			if( race.ValidateHair( newChar, args.HairID ) )
			{
				newChar.HairItemID = args.HairID;
				newChar.HairHue = race.ClipHairHue( args.HairHue & 0x3FFF );
			}

			if( race.ValidateFacialHair( newChar, args.BeardID ) )
			{
				newChar.FacialHairItemID = args.BeardID;
				newChar.FacialHairHue = race.ClipHairHue( args.BeardHue & 0x3FFF );
			}

			if ( args.Profession <= 3 )
			{
				AddShirt( newChar, args.ShirtHue );
				AddPants( newChar, args.PantsHue );
				AddShoes( newChar );
			}

			if( TestCenter.Enabled )
				FillBankbox( newChar );

			if ( young && newChar.BankBox != null )
			{
				NewPlayerTicket ticket = new NewPlayerTicket();
				ticket.Owner = newChar;
				newChar.BankBox.DropItem( ticket );
			}

			CityInfo city = GetStartLocation( args, young );
			//CityInfo city = new CityInfo( "Britain", "Sweet Dreams Inn", 1496, 1628, 10, Map.Felucca );

			newChar.MoveToWorld( city.Location, city.Map );

			Console.WriteLine( "Login: {0}: New character being created (account={1})", args.State, args.Account.Username );
			Console.WriteLine( " - Character: {0} (serial={1})", newChar.Name, newChar.Serial );
			Console.WriteLine( " - Started: {0} {1} in {2}", city.City, city.Location, city.Map.ToString() );

            new WelcomeTimer(newChar).Start();

            // mod to attach the MobFactions attachment automatically to new chars
            XmlAttach.AttachTo(newChar, new XmlMobFactions());
            // mod to attach the XmlPoints attachment automatically to new chars
            XmlAttach.AttachTo(newChar, new XmlPoints());

		}
Exemplo n.º 15
0
        private static void EventSink_CharacterCreated(CharacterCreatedEventArgs args)
        {
            if (!VerifyProfession(args.Profession))
                args.Profession = 0;

            Mobile newChar = CreateMobile(args.Account as Account);

            if (newChar == null)
            {
                Console.WriteLine("Login: {0}: Character creation failed, account full", args.State);
                return;
            }

            args.Mobile = newChar;
            m_Mobile = newChar;

            newChar.Player = true;
            newChar.AccessLevel = args.Account.AccessLevel;
            newChar.Female = args.Female;
            //newChar.Body = newChar.Female ? 0x191 : 0x190;

            if (Core.Expansion >= args.Race.RequiredExpansion)
                newChar.Race = args.Race;	//Sets body
            else
                newChar.Race = Race.DefaultRace;

            //newChar.Hue = Utility.ClipSkinHue( args.Hue & 0x3FFF ) | 0x8000;
            newChar.Hue = newChar.Race.ClipSkinHue(args.Hue & 0x3FFF) | 0x8000;

            #region GeNova: KR Support
            newChar.FaceHue = newChar.Hue;
            #endregion

            newChar.Hunger = 20;

            bool young = false;

            if (newChar is PlayerMobile)
            {
                PlayerMobile pm = (PlayerMobile)newChar;

                pm.Profession = args.Profession;

                if (pm.AccessLevel == AccessLevel.Player && ((Account)pm.Account).Young)
                    young = pm.Young = true;
            }

            SetName(newChar, args.Name);

            AddBackpack(newChar);

            SetStats(newChar, args.Str, args.Dex, args.Int);
            SetSkills(newChar, args.Skills, args.Profession);

            Race race = newChar.Race;

            if (race.ValidateHair(newChar, args.HairID))
            {
                newChar.HairItemID = args.HairID;
                newChar.HairHue = race.ClipHairHue(args.HairHue & 0x3FFF);
            }

            if (race.ValidateFacialHair(newChar, args.BeardID))
            {
                newChar.FacialHairItemID = args.BeardID;
                newChar.FacialHairHue = race.ClipHairHue(args.BeardHue & 0x3FFF);
            }

            #region GeNova: KR Supports
            if (race.ValidateFace(newChar, args.FaceID))
            {
                newChar.FaceItemID = args.FaceID;
                newChar.FaceHue = args.FaceHue;
            }
            #endregion

            if (args.Profession <= 3)
            {
                #region GeNova: KR Supports
                if (args.ShirtHue.Equals(0) && args.PantsHue.Equals(0))
                {
                    /*in UO: KR is not possible to choose a colour of the items below.*/
                    int clothesHue = Utility.RandomDyedHue();
                    AddShirt(newChar, clothesHue);
                    AddPants(newChar, clothesHue);
                }
                #endregion
                else
                {
                    AddShirt(newChar, args.ShirtHue);
                    AddPants(newChar, args.PantsHue);
                }
                AddShoes(newChar);
            }

            if (TestCenter.Enabled)
                FillBankbox(newChar);

            if (young)
            {
                NewPlayerTicket ticket = new NewPlayerTicket();
                ticket.Owner = newChar;
                newChar.BankBox.DropItem(ticket);
            }

            CityInfo city = GetStartLocation(args, young);
            //CityInfo city = new CityInfo( "Britain", "Sweet Dreams Inn", 1496, 1628, 10, Map.Felucca );

            newChar.MoveToWorld(city.Location, city.Map);

            Console.WriteLine("Login: {0}: New character being created (account={1})", args.State, args.Account.Username);
            Console.WriteLine(" - Character: {0} (serial={1})", newChar.Name, newChar.Serial);
            Console.WriteLine(" - Started: {0} {1} in {2}", city.City, city.Location, city.Map.ToString());

            // GeNova: setando nome do personagem para PersonagemDesconhecido.NomePadrao.
            SetName(newChar, PersonagemDesconhecido.NomePadrao);

            new WelcomeTimer(newChar).Start();
        }
Exemplo n.º 16
0
        private static void EventSink_CharacterCreated( CharacterCreatedEventArgs args )
        {
            if ( !VerifyProfession( args.Profession ) )
                args.Profession = 0;

            Mobile newChar = CreateMobile( args.Account as Account );

            if ( newChar == null )
            {
                Console.WriteLine( "Login: {0}: Character creation failed, account full", args.State );
                return;
            }

            args.Mobile = newChar;
            m_Mobile = newChar;

            newChar.Player = true;
            newChar.AccessLevel = args.Account.AccessLevel;
            newChar.Female = args.Female;
            //newChar.Body = newChar.Female ? 0x191 : 0x190;

            if( Core.Expansion >= args.Race.RequiredExpansion )
                newChar.Race = args.Race;	//Sets body
            else
                newChar.Race = Race.DefaultRace;

            //newChar.Hue = Utility.ClipSkinHue( args.Hue & 0x3FFF ) | 0x8000;
            newChar.Hue = newChar.Race.ClipSkinHue( args.Hue & 0x3FFF ) | 0x8000;

            newChar.Hunger = 20;
            newChar.Skills.Cap = 61100; //na85 - 47 skills * 130 pts per skill = 6110 plus an extra zero for the 0.x
                                        //should this be 47*150?  Need to look into AOS.cs and obeycap boolean's behaviour

            SetAllSkillcaps( newChar, 130.0 ); //na85

            bool young = false;

            if ( newChar is PlayerMobile )
            {
                PlayerMobile pm = (PlayerMobile) newChar;

                pm.Profession = args.Profession;

                if ( pm.AccessLevel == AccessLevel.Player && ((Account)pm.Account).Young )
                    young = pm.Young = false; //na85 - disables Young player status because it's easymode bullshit
            }

            SetName( newChar, args.Name );

            AddBackpack( newChar );

            SetStats( newChar, args.Str, args.Dex, args.Int );
            SetSkills( newChar, args.Skills, args.Profession );

            Race race = newChar.Race;

            if( race.ValidateHair( newChar, args.HairID ) )
            {
                newChar.HairItemID = args.HairID;
                newChar.HairHue = race.ClipHairHue( args.HairHue & 0x3FFF );
            }

            if( race.ValidateFacialHair( newChar, args.BeardID ) )
            {
                newChar.FacialHairItemID = args.BeardID;
                newChar.FacialHairHue = race.ClipHairHue( args.BeardHue & 0x3FFF );
            }

            if ( args.Profession <= 3 )
            {
                AddShirt( newChar, args.ShirtHue );
                AddPants( newChar, args.PantsHue );
                AddShoes( newChar );
            }

            if( TestCenter.Enabled )
                FillBankbox( newChar );

            if ( young )
            {
                NewPlayerTicket ticket = new NewPlayerTicket();
                ticket.Owner = newChar;
                newChar.BankBox.DropItem( ticket );
            }

            CityInfo city = GetStartLocation( args, young );
            //CityInfo city = new CityInfo( "Britain", "Sweet Dreams Inn", 1496, 1628, 10, Map.Felucca );

            newChar.MoveToWorld( city.Location, city.Map );

            Console.WriteLine( "Login: {0}: New character being created (account={1})", args.State, args.Account.Username );
            Console.WriteLine( " - Character: {0} (serial={1})", newChar.Name, newChar.Serial );
            Console.WriteLine( " - Started: {0} {1} in {2}", city.City, city.Location, city.Map.ToString() );

            new WelcomeTimer( newChar ).Start();
        }
Exemplo n.º 17
0
        private static void EventSink_CharacterCreated( CharacterCreatedEventArgs args )
        {
            if ( !VerifyProfession( args.Profession ) )
                args.Profession = 0;

            NetState state = args.State;

            if ( state == null )
                return;

            Mobile newChar = CreateMobile( args.Account as Account );

            if ( newChar == null )
            {
                Console.WriteLine( "Login: {0}: Character creation failed, account full", state );
                return;
            }

            args.Mobile = newChar;
            m_Mobile = newChar;

            newChar.Player = true;
            newChar.AccessLevel = args.Account.AccessLevel;
            newChar.Female = args.Female;
            //newChar.Body = newChar.Female ? 0x191 : 0x190;

            if( Core.Expansion >= args.Race.RequiredExpansion )
                newChar.Race = args.Race;	//Sets body
            else
                newChar.Race = Race.DefaultRace;

            //newChar.Hue = Utility.ClipSkinHue( args.Hue & 0x3FFF ) | 0x8000;
            newChar.Hue = newChar.Race.ClipSkinHue( args.Hue & 0x3FFF ) | 0x8000;

            newChar.Hunger = 20;

            bool young = false;

            if ( newChar is PlayerMobile )
            {
                PlayerMobile pm = (PlayerMobile) newChar;

                pm.Profession = args.Profession;

                if ( pm.AccessLevel == AccessLevel.Player && ((Account)pm.Account).Young )
                    young = pm.Young = true;
            }

            SetName( newChar, args.Name );

            AddBackpack( newChar );

            SetStats( newChar, state, args.Str, args.Dex, args.Int );
            SetSkills( newChar, args.Skills, args.Profession );

            Race race = newChar.Race;

            if( race.ValidateHair( newChar, args.HairID ) )
            {
                newChar.HairItemID = args.HairID;
                newChar.HairHue = race.ClipHairHue( args.HairHue & 0x3FFF );
            }

            if( race.ValidateFacialHair( newChar, args.BeardID ) )
            {
                newChar.FacialHairItemID = args.BeardID;
                newChar.FacialHairHue = race.ClipHairHue( args.BeardHue & 0x3FFF );
            }

            if ( args.Profession <= 3 )
            {
                AddShirt( newChar, args.ShirtHue );
                AddPants( newChar, args.PantsHue );
                AddShoes( newChar );
            }

            if( TestCenter.Enabled )
                FillBankbox( newChar );

            if ( young )
            {
                NewPlayerTicket ticket = new NewPlayerTicket();
                ticket.Owner = newChar;
                newChar.BankBox.DropItem( ticket );
            }

            CityInfo city = GetStartLocation( args, young );

            newChar.MoveToWorld( city.Location, city.Map );

            Console.WriteLine( "Login: {0}: New character being created (account={1})", state, args.Account.Username );
            Console.WriteLine( " - Character: {0} (serial={1})", newChar.Name, newChar.Serial );
            Console.WriteLine( " - Started: {0} {1} in {2}", city.City, city.Location, city.Map.ToString() );

            new WelcomeTimer( newChar ).Start();
        }
Exemplo n.º 18
0
			public InternalGump( Mobile from, NewPlayerTicket ticket ) : base( 50, 50 )
			{
				m_From = from;
				m_Ticket = ticket;

				AddBackground( 0, 0, 400, 350, 0xA28 );

				AddHtmlLocalized( 30, 45, 340, 70, 1013011, true, true ); // Choose the gift you prefer. WARNING: if you cancel, and your partner does not, you will need to find another matching ticket!

				AddButton( 46, 128, 0xFA5, 0xFA7, 1, GumpButtonType.Reply, 0 );
				AddHtml( 80, 130, 320, 35, "A talking parrot", false, false ); // Talking parrot

				AddButton( 46, 163, 0xFA5, 0xFA7, 2, GumpButtonType.Reply, 0 );
				AddHtml( 80, 165, 320, 35, "A Lord Blackthorne action figure", false, false ); // Lord Blackthorne action figure

				AddButton( 46, 198, 0xFA5, 0xFA7, 3, GumpButtonType.Reply, 0 );
				AddHtml( 80, 200, 320, 35, "A magic crystal ball", false, false ); // A magic crystal ball.

				AddButton( 46, 233, 0xFA5, 0xFA7, 4, GumpButtonType.Reply, 0 );
				AddHtmlLocalized( 80, 235, 320, 35, 1013015, false, false ); // A wand of fireworks

				AddButton( 46, 268, 0xFA5, 0xFA7, 5, GumpButtonType.Reply, 0 );
                AddHtml(80, 270, 320, 35, "A deck of tarot poker cards", false, false); // A deck of tarot poker cards

				AddButton( 120, 305, 0xFA5, 0xFA7, 0, GumpButtonType.Reply, 0 );
				AddHtmlLocalized( 154, 307, 100, 35, 1011012, false, false ); // CANCEL
			}