|
||
|
|||||||
| Server Support on Windows Get (and give) support on general questions related to the RunUO server itself. |
![]() |
|
|
Thread Tools | Display Modes |
|
|
#6 (permalink) |
|
UO Gamers: Demise Administrator
Join Date: Oct 2002
Location: Swamp
Age: 29
Posts: 10,819
|
http://www.runuo.com/forum/viewforum.php?f=20
You can also use the Forum Search feature and look up charactercreation on only the FAQ forum.
__________________
psz Demise' Creator (Retired) The RunUO.com Forum Moderator Team Former Official RunUO Scripter (Retired) Websites: My 360 Blog My Gaming Site(Old Link) My Gaming Site(New Link) |
|
|
|
|
|
#8 (permalink) |
|
UO Gamers: Demise Administrator
Join Date: Oct 2002
Location: Swamp
Age: 29
Posts: 10,819
|
It's on page two of the link I posted
![]()
__________________
psz Demise' Creator (Retired) The RunUO.com Forum Moderator Team Former Official RunUO Scripter (Retired) Websites: My 360 Blog My Gaming Site(Old Link) My Gaming Site(New Link) |
|
|
|
|
|
#10 (permalink) |
|
UO Gamers: Demise Administrator
Join Date: Oct 2002
Location: Swamp
Age: 29
Posts: 10,819
|
Complete char creation w/o powerscrolls and stuff..
__________________
psz Demise' Creator (Retired) The RunUO.com Forum Moderator Team Former Official RunUO Scripter (Retired) Websites: My 360 Blog My Gaming Site(Old Link) My Gaming Site(New Link) |
|
|
|
|
|
#15 (permalink) |
|
Guest
Posts: n/a
|
what do i take out of this to make it work? could somone take it out and re copy and paste?
using System; using Server; using Server.Items; using Server.Mobiles; using Server.Network; using Server.Accounting; namespace Server.Misc { public class CharacterCreation { public static void Initialize() { // Register our event handler EventSink.CharacterCreated += new CharacterCreatedEventHandler( EventSink_CharacterCreated ); } private static void AddBackpack( Mobile m ) { Container pack = m.Backpack; if ( pack == null ) { pack = new Backpack(); pack.Movable = false; m.AddItem( pack ); } PackItem( new RedBook( "a book", m.Name, 20, true ) ); PackItem( new Gold( 1000 ) ); // Starting gold can be customized here PackItem( new Dagger() ); PackItem( new Candle() ); } private static Item MakeNewbie( Item item ) { if ( !Core.AOS ) item.LootType = LootType.Newbied; return item; } private static void PlaceItemIn( Container parent, int x, int y, Item item ) { parent.AddItem( item ); item.Location = new Point3D( x, y, 0 ); } private static Item MakePotionKeg( PotionEffect type, int hue ) { PotionKeg keg = new PotionKeg(); keg.Held = 100; keg.Type = type; keg.Hue = hue; return MakeNewbie( keg ); } private static void FillBankAOS( Mobile m ) { BankBox bank = m.BankBox; if ( bank == null ) return; // The new AOS bankboxes don't have powerscrolls, they are automatically 'applied': for ( int i = 0; i < PowerScroll.Skills.Length; ++i ) m.Skills[PowerScroll.Skills[i]].Cap = 120.0; m.StatCap = 250; Container cont; // Begin box of money cont = new WoodenBox(); cont.ItemID = 0xE7D; cont.Hue = 0x489; PlaceItemIn( cont, 16, 51, new BankCheck( 500000 ) ); PlaceItemIn( cont, 28, 51, new BankCheck( 250000 ) ); PlaceItemIn( cont, 40, 51, new BankCheck( 100000 ) ); PlaceItemIn( cont, 52, 51, new BankCheck( 100000 ) ); PlaceItemIn( cont, 64, 51, new BankCheck( 50000 ) ); PlaceItemIn( cont, 34, 115, MakeNewbie( new Gold( 60000 ) ) ); PlaceItemIn( bank, 18, 169, cont ); // End box of money // Begin bag of potion kegs cont = new Backpack(); cont.Name = "Various Potion Kegs"; PlaceItemIn( cont, 45, 149, MakePotionKeg( PotionEffect.CureGreater, 0x2D ) ); PlaceItemIn( cont, 69, 149, MakePotionKeg( PotionEffect.HealGreater, 0x499 ) ); PlaceItemIn( cont, 93, 149, MakePotionKeg( PotionEffect.PoisonDeadly, 0x46 ) ); PlaceItemIn( cont, 117, 149, MakePotionKeg( PotionEffect.RefreshTotal, 0x21 ) ); PlaceItemIn( cont, 141, 149, MakePotionKeg( PotionEffect.ExplosionGreater, 0x74 ) ); PlaceItemIn( cont, 93, 82, MakeNewbie( new Bottle( 1000 ) ) ); PlaceItemIn( bank, 53, 169, cont ); // End bag of potion kegs // Begin bag of tools cont = new Bag(); cont.Name = "Tool Bag"; PlaceItemIn( cont, 30, 35, MakeNewbie( new TinkerTools( 1000 ) ) ); PlaceItemIn( cont, 60, 35, new HousePlacementTool() ); PlaceItemIn( cont, 90, 35, MakeNewbie( new DovetailSaw( 1000 ) ) ); PlaceItemIn( cont, 30, 68, MakeNewbie( new Scissors() ) ); PlaceItemIn( cont, 45, 68, MakeNewbie( new MortarPestle( 1000 ) ) ); PlaceItemIn( cont, 75, 68, MakeNewbie( new ScribesPen( 1000 ) ) ); PlaceItemIn( cont, 90, 68, MakeNewbie( new SmithHammer( 1000 ) ) ); PlaceItemIn( cont, 30, 118, MakeNewbie( new TwoHandedAxe() ) ); PlaceItemIn( cont, 60, 118, MakeNewbie( new FletcherTools( 1000 ) ) ); PlaceItemIn( cont, 90, 118, MakeNewbie( new SewingKit( 1000 ) ) ); PlaceItemIn( bank, 118, 169, cont ); // End bag of tools // Begin bag of archery ammo cont = new Bag(); cont.Name = "Bag Of Archery Ammo"; PlaceItemIn( cont, 48, 76, MakeNewbie( new Arrow( 5000 ) ) ); PlaceItemIn( cont, 72, 76, MakeNewbie( new Bolt( 5000 ) ) ); PlaceItemIn( bank, 118, 124, cont ); // End bag of archery ammo // Begin bag of treasure maps cont = new Bag(); cont.Name = "Bag Of Treasure Maps"; PlaceItemIn( cont, 30, 35, MakeNewbie( new TreasureMap( 1, Map.Trammel ) ) ); PlaceItemIn( cont, 45, 35, MakeNewbie( new TreasureMap( 2, Map.Trammel ) ) ); PlaceItemIn( cont, 60, 35, MakeNewbie( new TreasureMap( 3, Map.Trammel ) ) ); PlaceItemIn( cont, 75, 35, MakeNewbie( new TreasureMap( 4, Map.Trammel ) ) ); PlaceItemIn( cont, 90, 35, MakeNewbie( new TreasureMap( 5, Map.Trammel ) ) ); PlaceItemIn( cont, 30, 50, MakeNewbie( new TreasureMap( 1, Map.Trammel ) ) ); PlaceItemIn( cont, 45, 50, MakeNewbie( new TreasureMap( 2, Map.Trammel ) ) ); PlaceItemIn( cont, 60, 50, MakeNewbie( new TreasureMap( 3, Map.Trammel ) ) ); PlaceItemIn( cont, 75, 50, MakeNewbie( new TreasureMap( 4, Map.Trammel ) ) ); PlaceItemIn( cont, 90, 50, MakeNewbie( new TreasureMap( 5, Map.Trammel ) ) ); PlaceItemIn( cont, 55, 100, MakeNewbie( new Lockpick( 30 ) ) ); PlaceItemIn( cont, 60, 100, MakeNewbie( new Pickaxe() ) ); PlaceItemIn( bank, 98, 124, cont ); // End bag of treasure maps // Begin bag of raw materials cont = new Bag(); cont.Hue = 0x835; cont.Name = "Raw Materials Bag"; PlaceItemIn( cont, 92, 60, MakeNewbie( new BarbedLeather( 5000 ) ) ); PlaceItemIn( cont, 92, 68, MakeNewbie( new HornedLeather( 5000 ) ) ); PlaceItemIn( cont, 92, 76, MakeNewbie( new SpinedLeather( 5000 ) ) ); PlaceItemIn( cont, 92, 84, MakeNewbie( new Leather( 5000 ) ) ); PlaceItemIn( cont, 30, 118, MakeNewbie( new Cloth( 5000 ) ) ); PlaceItemIn( cont, 30, 84, MakeNewbie( new Board( 5000 ) ) ); PlaceItemIn( cont, 57, 80, MakeNewbie( new BlankScroll( 500 ) ) ); PlaceItemIn( cont, 30, 35, MakeNewbie( new DullCopperIngot( 5000 ) ) ); PlaceItemIn( cont, 37, 35, MakeNewbie( new ShadowIronIngot( 5000 ) ) ); PlaceItemIn( cont, 44, 35, MakeNewbie( new CopperIngot( 5000 ) ) ); PlaceItemIn( cont, 51, 35, MakeNewbie( new BronzeIngot( 5000 ) ) ); PlaceItemIn( cont, 58, 35, MakeNewbie( new GoldIngot( 5000 ) ) ); PlaceItemIn( cont, 65, 35, MakeNewbie( new AgapiteIngot( 5000 ) ) ); PlaceItemIn( cont, 72, 35, MakeNewbie( new VeriteIngot( 5000 ) ) ); PlaceItemIn( cont, 79, 35, MakeNewbie( new ValoriteIngot( 5000 ) ) ); PlaceItemIn( cont, 86, 35, MakeNewbie( new IronIngot( 5000 ) ) ); PlaceItemIn( cont, 30, 59, MakeNewbie( new RedScales( 5000 ) ) ); PlaceItemIn( cont, 36, 59, MakeNewbie( new YellowScales( 5000 ) ) ); PlaceItemIn( cont, 42, 59, MakeNewbie( new BlackScales( 5000 ) ) ); PlaceItemIn( cont, 48, 59, MakeNewbie( new GreenScales( 5000 ) ) ); PlaceItemIn( cont, 54, 59, MakeNewbie( new WhiteScales( 5000 ) ) ); PlaceItemIn( cont, 60, 59, MakeNewbie( new BlueScales( 5000 ) ) ); PlaceItemIn( bank, 98, 169, cont ); // End bag of raw materials // Begin bag of spell casting stuff cont = new Backpack(); cont.Hue = 0x480; cont.Name = "Spell Casting Stuff"; PlaceItemIn( cont, 45, 105, new Spellbook( UInt64.MaxValue ) ); PlaceItemIn( cont, 65, 105, new NecromancerSpellbook( (UInt64)0xFFFF ) ); PlaceItemIn( cont, 85, 105, new BookOfChivalry( (UInt64)0x3FF ) ); Runebook runebook = new Runebook( 10 ); runebook.CurCharges = runebook.MaxCharges; PlaceItemIn( cont, 105, 105, runebook ); Item toHue = new BagOfReagents( 150 ); toHue.Hue = 0x2D; PlaceItemIn( cont, 45, 150, toHue ); toHue = new BagOfNecroReagents( 150 ); toHue.Hue = 0x488; PlaceItemIn( cont, 65, 150, toHue ); PlaceItemIn( cont, 140, 150, new BagOfAllReagents( 500 ) ); for ( int i = 0; i < 9; ++i ) PlaceItemIn( cont, 45 + (i * 10), 75, MakeNewbie( new RecallRune() ) ); PlaceItemIn( bank, 78, 169, cont ); // End bag of spell casting stuff } private static void FillBankbox( Mobile m ) { if ( Core.AOS ) { FillBankAOS( m ); return; } BankBox bank = m.BankBox; if ( bank != null ) { bank.DropItem( new BankCheck( 1000000 ) ); // Full spellbook Spellbook book = new Spellbook(); book.Content = ulong.MaxValue; bank.DropItem( book ); Bag bag = new Bag(); for ( int i = 0; i < 5; ++i ) bag.DropItem( new Moonstone( MoonstoneType.Felucca ) ); // Felucca moonstones bank.DropItem( bag ); bag = new Bag(); for ( int i = 0; i < 5; ++i ) bag.DropItem( new Moonstone( MoonstoneType.Trammel ) ); // Trammel moonstones bank.DropItem( bag ); // Treasure maps bank.DropItem( new TreasureMap( 1, Map.Trammel ) ); bank.DropItem( new TreasureMap( 2, Map.Trammel ) ); bank.DropItem( new TreasureMap( 3, Map.Trammel ) ); bank.DropItem( new TreasureMap( 4, Map.Trammel ) ); bank.DropItem( new TreasureMap( 5, Map.Trammel ) ); // Bag containing 50 of each reagent bank.DropItem( new BagOfReagents( 50 ) ); // Craft tools bank.DropItem( MakeNewbie( new Scissors() ) ); bank.DropItem( MakeNewbie( new SewingKit( 1000 ) ) ); bank.DropItem( MakeNewbie( new SmithHammer( 1000 ) ) ); bank.DropItem( MakeNewbie( new FletcherTools( 1000 ) ) ); bank.DropItem( MakeNewbie( new DovetailSaw( 1000 ) ) ); bank.DropItem( MakeNewbie( new MortarPestle( 1000 ) ) ); bank.DropItem( MakeNewbie( new ScribesPen( 1000 ) ) ); bank.DropItem( MakeNewbie( new TinkerTools( 1000 ) ) ); // A few dye tubs bank.DropItem( new Dyes() ); bank.DropItem( new DyeTub() ); bank.DropItem( new DyeTub() ); bank.DropItem( new BlackDyeTub() ); DyeTub darkRedTub = new DyeTub(); darkRedTub.DyedHue = 0x485; darkRedTub.Redyable = false; bank.DropItem( darkRedTub ); // Some food bank.DropItem( MakeNewbie( new Apple( 1000 ) ) ); // Resources bank.DropItem( MakeNewbie( new Feather( 1000 ) ) ); bank.DropItem( MakeNewbie( new BoltOfCloth( 1000 ) ) ); bank.DropItem( MakeNewbie( new BlankScroll( 1000 ) ) ); bank.DropItem( MakeNewbie( new Hides( 1000 ) ) ); bank.DropItem( MakeNewbie( new Bandage( 1000 ) ) ); bank.DropItem( MakeNewbie( new Bottle( 1000 ) ) ); bank.DropItem( MakeNewbie( new Log( 1000 ) ) ); bank.DropItem( MakeNewbie( new IronIngot( 5000 ) ) ); bank.DropItem( MakeNewbie( new DullCopperIngot( 5000 ) ) ); bank.DropItem( MakeNewbie( new ShadowIronIngot( 5000 ) ) ); bank.DropItem( MakeNewbie( new CopperIngot( 5000 ) ) ); bank.DropItem( MakeNewbie( new BronzeIngot( 5000 ) ) ); bank.DropItem( MakeNewbie( new GoldIngot( 5000 ) ) ); bank.DropItem( MakeNewbie( new AgapiteIngot( 5000 ) ) ); bank.DropItem( MakeNewbie( new VeriteIngot( 5000 ) ) ); bank.DropItem( MakeNewbie( new ValoriteIngot( 5000 ) ) ); // Reagents bank.DropItem( MakeNewbie( new BlackPearl( 1000 ) ) ); bank.DropItem( MakeNewbie( new Bloodmoss( 1000 ) ) ); bank.DropItem( MakeNewbie( new Garlic( 1000 ) ) ); bank.DropItem( MakeNewbie( new Ginseng( 1000 ) ) ); bank.DropItem( MakeNewbie( new MandrakeRoot( 1000 ) ) ); bank.DropItem( MakeNewbie( new Nightshade( 1000 ) ) ); bank.DropItem( MakeNewbie( new SulfurousAsh( 1000 ) ) ); bank.DropItem( MakeNewbie( new SpidersSilk( 1000 ) ) ); // Some extra starting gold bank.DropItem( MakeNewbie( new Gold( 9000 ) ) ); // 5 blank recall runes for ( int i = 0; i < 5; ++i ) bank.DropItem( MakeNewbie( new RecallRune() ) ); AddPowerScrolls( bank ); } } private static void AddPowerScrolls( BankBox bank ) { Bag bag = new Bag(); for ( int i = 0; i < PowerScroll.Skills.Length; ++i ) bag.DropItem( new PowerScroll( PowerScroll.Skills[i], 120.0 ) ); bag.DropItem( new StatCapScroll( 250 ) ); bank.DropItem( bag ); } private static void AddShirt( Mobile m, int shirtHue ) { int hue = Utility.ClipDyedHue( shirtHue & 0x3FFF ); switch ( Utility.Random( 2 ) ) { case 0: EquipItem( new Shirt( hue ), true ); break; case 1: EquipItem( new FancyShirt( hue ), true ); break; } } private static void AddPants( Mobile m, int pantsHue ) { int hue = Utility.ClipDyedHue( pantsHue & 0x3FFF ); if ( m.Female ) { EquipItem( new Skirt( hue ), true ); } else { switch ( Utility.Random( 2 ) ) { case 0: EquipItem( new LongPants( hue ), true ); break; case 1: EquipItem( new ShortPants( hue ), true ); break; } } } private static void AddShoes( Mobile m ) { EquipItem( new Shoes( Utility.RandomYellowHue() ), true ); } private static void AddHair( Mobile m, int itemID, int hue ) { Item item; switch ( itemID & 0x3FFF ) { case 0x2044: item = new Mohawk( hue ); break; case 0x2045: item = new PageboyHair( hue ); break; case 0x2046: item = new BunsHair( hue ); break; case 0x2047: item = new Afro( hue ); break; case 0x2048: item = new ReceedingHair( hue ); break; case 0x2049: item = new TwoPigTails( hue ); break; case 0x204A: item = new KrisnaHair( hue ); break; case 0x203B: item = new ShortHair( hue ); break; case 0x203C: item = new LongHair( hue ); break; case 0x203D: item = new PonyTail( hue ); break; default: return; } m.AddItem( item ); } private static void AddBeard( Mobile m, int itemID, int hue ) { if ( m.Female ) return; Item item; switch ( itemID & 0x3FFF ) { case 0x203E: item = new LongBeard( hue ); break; case 0x203F: item = new ShortBeard( hue ); break; case 0x2040: item = new Goatee( hue ); break; case 0x2041: item = new Mustache( hue ); break; case 0x204B: item = new MediumShortBeard( hue ); break; case 0x204C: item = new MediumLongBeard( hue ); break; case 0x204D: item = new Vandyke( hue ); break; default: return; } m.AddItem( item ); } private static Mobile CreateMobile( Account a ) { for ( int i = 0; i < 5; ++i ) if ( a[i] == null ) return (a[i] = new PlayerMobile()); return null; } private static void EventSink_CharacterCreated( CharacterCreatedEventArgs args ) { 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 = ((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; 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 ( !Core.AOS || (args.Profession != 4 && args.Profession != 5) ) { AddShirt( newChar, args.ShirtHue ); AddPants( newChar, args.PantsHue ); AddShoes( newChar ); } FillBankbox( newChar ); //CityInfo city = args.City; CityInfo city = new CityInfo( "Britain", "Sweet Dreams Inn", 1496, 1628, 10 ); newChar.Location = city.Location; newChar.Map = Map.Felucca; Console.WriteLine( "Login: {0}: New character being created (account={1})", args.State, ((Account)args.Account).Username ); Console.WriteLine( " - Character: {0} (serial={1})", newChar.Name, newChar.Serial ); Console.WriteLine( " - Started: {0} {1}", city.City, city.Location ); new WelcomeTimer( newChar ).Start(); } private static void FixStats( ref int str, ref int dex, ref int intel ) { int vStr = str - 10; int vDex = dex - 10; int vInt = intel - 10; if ( vStr < 0 ) vStr = 0; if ( vDex < 0 ) vDex = 0; if ( vInt < 0 ) vInt = 0; int total = vStr + vDex + vInt; if ( total == 0 || total == 50 ) return; double scalar = 50 / (double)total; vStr = (int)(vStr * scalar); vDex = (int)(vDex * scalar); vInt = (int)(vInt * scalar); FixStat( ref vStr, (vStr + vDex + vInt) - 50 ); FixStat( ref vDex, (vStr + vDex + vInt) - 50 ); FixStat( ref vInt, (vStr + vDex + vInt) - 50 ); str = vStr + 10; dex = vDex + 10; intel = vInt + 10; } private static void FixStat( ref int stat, int diff ) { stat += diff; if ( stat < 0 ) stat = 0; else if ( stat > 50 ) stat = 50; } private static void SetStats( Mobile m, int str, int dex, int intel ) { FixStats( ref str, ref dex, ref intel ); if ( str < 10 || str > 60 || dex < 10 || dex > 60 || intel < 10 || intel > 60 || (str + dex + intel) != 80 ) { str = 10; dex = 10; intel = 10; } m.InitStats( str, dex, intel ); } private static void SetName( Mobile m, string name ) { name = name.Trim(); if ( !NameVerification.Validate( name, 2, 16, true, true, true, 1, NameVerification.SpaceDashPeriodQuote ) ) name = "Generic Player"; m.Name = name; } private static bool ValidSkills( SkillNameValue[] skills ) { int total = 0; for ( int i = 0; i < skills.Length; ++i ) { if ( skills[i].Value < 0 || skills[i].Value > 50 ) return false; total += skills[i].Value; for ( int j = i + 1; j < skills.Length; ++j ) { if ( skills[j].Value > 0 && skills[j].Name == skills[i].Name ) return false; } } return ( total == 100 ); } private static Mobile m_Mobile; private static void SetSkills( Mobile m, SkillNameValue[] skills, int prof ) { switch ( prof ) { case 1: // Warrior { skills = new SkillNameValue[] { new SkillNameValue( SkillName.Anatomy, 30 ), new SkillNameValue( SkillName.Healing, 45 ), new SkillNameValue( SkillName.Swords, 35 ), new SkillNameValue( SkillName.Tactics, 50 ) }; break; } case 2: // Magician { skills = new SkillNameValue[] { new SkillNameValue( SkillName.EvalInt, 30 ), new SkillNameValue( SkillName.Wrestling, 30 ), new SkillNameValue( SkillName.Magery, 50 ), new SkillNameValue( SkillName.Meditation, 50 ) }; break; } case 3: // Blacksmith { skills = new SkillNameValue[] { new SkillNameValue( SkillName.Mining, 30 ), new SkillNameValue( SkillName.ArmsLore, 30 ), new SkillNameValue( SkillName.Blacksmith, 50 ), new SkillNameValue( SkillName.Tinkering, 50 ) }; break; } case 4: // Necromancer { if ( !Core.AOS ) goto default; skills = new SkillNameValue[] { new SkillNameValue( SkillName.Necromancy, 50 ), new SkillNameValue( SkillName.Focus, 30 ), new SkillNameValue( SkillName.SpiritSpeak, 30 ), new SkillNameValue( SkillName.Swords, 30 ), new SkillNameValue( SkillName.Tactics, 20 ) }; break; } case 5: // Paladin { if ( !Core.AOS ) goto default; skills = new SkillNameValue[] { new SkillNameValue( SkillName.Chivalry, 51 ), new SkillNameValue( SkillName.Swords, 49 ), new SkillNameValue( SkillName.Focus, 30 ), new SkillNameValue( SkillName.Tactics, 30 ) }; break; } default: { if ( !ValidSkills( skills ) ) return; break; } } bool addSkillItems = true; switch ( prof ) { case 1: // Warrior { EquipItem( new LeatherChest() ); break; } case 4: // Necromancer { Container regs = new BagOfNecroReagents( 50 ); if ( !Core.AOS ) { foreach ( Item item in regs.Items ) item.LootType = LootType.Newbied; } PackItem( regs ); regs.LootType = LootType.Regular; EquipItem( new BoneHarvester() ); EquipItem( new BoneHelm() ); EquipItem( NecroHue( new LeatherChest() ) ); EquipItem( NecroHue( new LeatherArms() ) ); EquipItem( NecroHue( new LeatherGloves() ) ); EquipItem( NecroHue( new LeatherGorget() ) ); EquipItem( NecroHue( new LeatherLegs() ) ); EquipItem( NecroHue( new Skirt() ) ); EquipItem( new Sandals( 0x8FD ) ); Spellbook book = new NecromancerSpellbook( (ulong)0x8981 ); // animate dead, evil omen, pain spike, summon familiar, wraith form PackItem( book ); book.LootType = LootType.Blessed; addSkillItems = false; break; } case 5: // Paladin { EquipItem( new Broadsword() ); EquipItem( new Helmet() ); EquipItem( new PlateGorget() ); EquipItem( new RingmailArms() ); EquipItem( new RingmailChest() ); EquipItem( new RingmailLegs() ); EquipItem( new ThighBoots( 0x748 ) ); EquipItem( new Cloak( 0xCF ) ); EquipItem( new BodySash( 0xCF ) ); Spellbook book = new BookOfChivalry( (ulong)0x3FF ); PackItem( book ); book.LootType = LootType.Blessed; break; } } for ( int i = 0; i < skills.Length; ++i ) { SkillNameValue snv = skills[i]; if ( snv.Value > 0 && snv.Name != SkillName.Stealth && snv.Name != SkillName.RemoveTrap ) { Skill skill = m.Skills[snv.Name]; if ( skill != null ) { skill.BaseFixedPoint = snv.Value * 10; if ( addSkillItems ) AddSkillItems( snv.Name ); } } } } private static void EquipItem( Item item ) { EquipItem( item, false ); } private static void EquipItem( Item item, bool mustEquip ) { if ( !Core.AOS ) item.LootType = LootType.Newbied; if ( m_Mobile != null && m_Mobile.EquipItem( item ) ) return; Container pack = m_Mobile.Backpack; if ( !mustEquip && pack != null ) pack.DropItem( item ); else item.Delete(); } private static void PackItem( Item item ) { if ( !Core.AOS ) item.LootType = LootType.Newbied; Container pack = m_Mobile.Backpack; if ( pack != null ) pack.DropItem( item ); else item.Delete(); } private static void PackInstrument() { switch ( Utility.Random( 6 ) ) { case 0: PackItem( new Drums() ); break; case 1: PackItem( new Harp() ); break; case 2: PackItem( new LapHarp() ); break; case 3: PackItem( new Lute() ); break; case 4: PackItem( new Tambourine() ); break; case 5: PackItem( new TambourineTassel() ); break; } } private static void PackScroll( int circle ) { switch ( Utility.Random( 8 ) * (circle * 8) ) { case 0: PackItem( new ClumsyScroll() ); break; case 1: PackItem( new CreateFoodScroll() ); break; case 2: PackItem( new FeeblemindScroll() ); break; case 3: PackItem( new HealScroll() ); break; case 4: PackItem( new MagicArrowScroll() ); break; case 5: PackItem( new NightSightScroll() ); break; case 6: PackItem( new ReactiveArmorScroll() ); break; case 7: PackItem( new WeakenScroll() ); break; case 8: PackItem( new AgilityScroll() ); break; case 9: PackItem( new CunningScroll() ); break; case 10: PackItem( new CureScroll() ); break; case 11: PackItem( new HarmScroll() ); break; case 12: PackItem( new MagicTrapScroll() ); break; case 13: PackItem( new MagicUnTrapScroll() ); break; case 14: PackItem( new ProtectionScroll() ); break; case 15: PackItem( new StrengthScroll() ); break; case 16: PackItem( new BlessScroll() ); break; case 17: PackItem( new FireballScroll() ); break; case 18: PackItem( new MagicLockScroll() ); break; case 19: PackItem( new PoisonScroll() ); break; case 20: PackItem( new TelekinisisScroll() ); break; case 21: PackItem( new TeleportScroll() ); break; case 22: PackItem( new UnlockScroll() ); break; case 23: PackItem( new WallOfStoneScroll() ); break; } } private static Item NecroHue( Item item ) { item.Hue = 0x2C3; return item; } private static void AddSkillItems( SkillName skill ) { switch ( skill ) { case SkillName.Alchemy: { PackItem( new Bottle( 4 ) ); PackItem( new MortarPestle() ); EquipItem( new Robe( Utility.RandomPinkHue() ) ); break; } case SkillName.Anatomy: { PackItem( new Bandage( 3 ) ); EquipItem( new Robe( Utility.RandomYellowHue() ) ); break; } case SkillName.AnimalLore: { EquipItem( new ShepherdsCrook() ); EquipItem( new Robe( Utility.RandomBlueHue() ) ); break; } case SkillName.Archery: { PackItem( new Arrow( 25 ) ); EquipItem( new Bow() ); break; } case SkillName.ArmsLore: { switch ( Utility.Random( 3 ) ) { case 0: EquipItem( new Kryss() ); break; case 1: EquipItem( new Katana() ); break; case 2: EquipItem( new Club() ); break; } break; } case SkillName.Begging: { EquipItem( new GnarledStaff() ); break; } case SkillName.Blacksmith: { PackItem( new Tongs() ); PackItem( new Pickaxe() ); PackItem( new Pickaxe() ); PackItem( new IronIngot( 50 ) ); EquipItem( new HalfApron( Utility.RandomYellowHue() ) ); break; } case SkillName.Fletching: { PackItem( new Board( 14 ) ); PackItem( new Feather( 5 ) ); PackItem( new Shaft( 5 ) ); break; } case SkillName.Camping: { // TODO: Bedroll PackItem( new Kindling( 5 ) ); break; } case SkillName.Carpentry: { PackItem( new Board( 10 ) ); PackItem( new Saw() ); EquipItem( new HalfApron( Utility.RandomYellowHue() ) ); break; } case SkillName.Cartography: { PackItem( new BlankMap() ); PackItem( new BlankMap() ); PackItem( new BlankMap() ); PackItem( new BlankMap() ); PackItem( new Sextant() ); break; } case SkillName.Cooking: { PackItem( new Kindling( 2 ) ); PackItem( new RawLambLeg() ); PackItem( new RawChickenLeg() ); PackItem( new RawFishSteak() ); PackItem( new SackFlour() ); PackItem( new Pitcher( BeverageType.Water ) ); break; } case SkillName.DetectHidden: { EquipItem( new Cloak( 0x455 ) ); break; } case SkillName.Discordance: { PackInstrument(); break; } case SkillName.Fencing: { EquipItem( new Kryss() ); break; } case SkillName.Fishing: { EquipItem( new FishingPole() ); EquipItem( new FloppyHat( Utility.RandomYellowHue() ) ); break; } case SkillName.Healing: { PackItem( new Bandage( 50 ) ); PackItem( new Scissors() ); break; } case SkillName.Herding: { EquipItem( new ShepherdsCrook() ); break; } case SkillName.Hiding: { EquipItem( new Cloak( 0x455 ) ); break; } case SkillName.Inscribe: { PackItem( new BlankScroll( 2 ) ); PackItem( new BlueBook() ); break; } case SkillName.ItemID: { EquipItem( new GnarledStaff() ); break; } case SkillName.Lockpicking: { PackItem( new Lockpick( 20 ) ); break; } case SkillName.Lumberjacking: { EquipItem( new Hatchet() ); break; } case SkillName.Macing: { EquipItem( new Club() ); break; } case SkillName.Magery: { BagOfReagents regs = new BagOfReagents( 30 ); if ( !Core.AOS ) { foreach ( Item item in regs.Items ) item.LootType = LootType.Newbied; } PackItem( regs ); regs.LootType = LootType.Regular; PackScroll( 0 ); PackScroll( 1 ); PackScroll( 2 ); Spellbook book = new Spellbook( (ulong)0x382A8C38 ); EquipItem( book ); book.LootType = LootType.Blessed; EquipItem( new Robe( Utility.RandomBlueHue() ) ); EquipItem( new WizardsHat() ); break; } case SkillName.Mining: { PackItem( new Pickaxe() ); break; } case SkillName.Musicianship: { PackInstrument(); break; } case SkillName.Parry: { EquipItem( new WoodenShield() ); break; } case SkillName.Peacemaking: { PackInstrument(); break; } case SkillName.Poisoning: { PackItem( new LesserPoisonPotion() ); PackItem( new LesserPoisonPotion() ); break; } case SkillName.Provocation: { PackInstrument(); break; } case SkillName.Snooping: { PackItem( new Lockpick( 20 ) ); break; } case SkillName.SpiritSpeak: { EquipItem( new Cloak( 0x455 ) ); break; } case SkillName.Stealing: { PackItem( new Lockpick( 20 ) ); break; } case SkillName.Swords: { EquipItem( new Katana() ); break; } case SkillName.Tactics: { EquipItem( new Katana() ); break; } case SkillName.Tailoring: { PackItem( new BoltOfCloth() ); PackItem( new SewingKit() ); break; } case SkillName.Tracking: { if ( m_Mobile != null ) { Item shoes = m_Mobile.FindItemOnLayer( Layer.Shoes ); if ( shoes != null ) shoes.Delete(); } EquipItem( new Boots( Utility.RandomYellowHue() ) ); EquipItem( new SkinningKnife() ); break; } case SkillName.Veterinary: { PackItem( new Bandage( 5 ) ); PackItem( new Scissors() ); break; } case SkillName.Wrestling: { EquipItem( new LeatherGloves() ); break; } } } } } |
|
|
|
#16 (permalink) |
|
Join Date: Jul 2003
Posts: 287
|
well go to line 420 and see whats there or tell us what the error is not just the line # but my guess just from looking at it would be this [code:1]}; [/code:1] remove the [code:1];[/code:1] from it and it should be fine but i may be wrong
__________________
yes this is what i do in my spare time....after all it is my time to do as i see fit... |
|
|
|
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|