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 }
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(); }
public InternalTarget( NewPlayerTicket ticket ) : base( 2, false, TargetFlags.None ) { m_Ticket = 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, 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(); }
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(); }
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()); }
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(); }
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(); }
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(); }
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 }