protected override void OnTarget(Mobile from, object targ) { if (targ is Runebook) { Runebook book = targ as Runebook; if (!book.IsChildOf(from.Backpack)) { from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used. } else if (book == m_SourceBook) { from.SendLocalizedMessage(1115360); // You can't select the same runebook! } else if (book.Openers.Count != 0) { from.SendLocalizedMessage(1115361); // Someone else is using this runebook. } else { if (!from.HasGump(typeof(PenOfWisdomGump))) { from.SendGump(new PenOfWisdomGump(from, m_Pen, m_SourceBook, book, null)); } } } else { from.SendLocalizedMessage(1115333); // This item only works on runebooks or runic atlas. } }
protected override void OnTarget(Mobile from, object targ) { if (targ is Runebook || targ is RunicAtlas) { Runebook book = targ as Runebook; if (!book.IsChildOf(from.Backpack) && book.Movable) { from.SendLocalizedMessage(1115329); // Runebooks you wish to copy must be in your backpack. } else if (!Pen.CheckAccess(from, book) && !book.Movable) { from.SendLocalizedMessage(1115332); // Only the house owner and co-owners can copy the lockdowned runebook with the Pen. } else if (book.Entries.Count == 0) { from.SendLocalizedMessage(1115362); // Can't copy an empty runebook. } else if (book.Openers.Count != 0) { from.SendLocalizedMessage(1115361); // Someone else is using this runebook. } else { from.SendLocalizedMessage(1115363); // Please select the destination runebook. from.Target = new CopyTarget(Pen, book); } } else { from.SendLocalizedMessage(1115333); // This item only works on runebooks or runic atlas. } }
public GateTravelSpell(Mobile caster, Item scroll, RunebookEntry entry, Runebook book) : base(caster, scroll, m_Info) { m_Entry = entry; m_Book = book; m_Scroll = scroll; }
private static Item CreateStarterRunebook() { Runebook book = new Runebook(); book.CurCharges = book.MaxCharges = 20; book.AddEntry(CreateRunebookEntry("New Haven Bank", new Point3D(3487, 2572, 21), Map.Trammel)); book.AddEntry(CreateRunebookEntry("Britain Bank", new Point3D(1428, 1693, 0), Map.Trammel)); book.AddEntry(CreateRunebookEntry("Luna Bank", new Point3D(983, 515, -50), Map.Malas)); book.AddEntry(CreateRunebookEntry("Umbra Bank", new Point3D(2045, 1342, -85), Map.Malas)); book.AddEntry(CreateRunebookEntry("Change Tokuno Arties", new Point3D(678, 1275, 48), Map.Tokuno)); book.AddEntry(CreateRunebookEntry("Taming: Trinsic Area", new Point3D(2103, 2794, 5), Map.Trammel)); book.AddEntry(CreateRunebookEntry("Taming: Bulls Delucia", new Point3D(5208, 3952, 37), Map.Trammel)); book.AddEntry(CreateRunebookEntry("Minoc Mines", new Point3D(2558, 503, 0), Map.Trammel)); book.AddEntry(CreateRunebookEntry("Easy: Old Haven", new Point3D(3637, 2499, 0), Map.Trammel)); book.AddEntry(CreateRunebookEntry("Easy: New Haven Mine", new Point3D(3511, 2778, 27), Map.Trammel)); book.AddEntry(CreateRunebookEntry("Medium: Red Solen Hive", new Point3D(2611, 762, 0), Map.Trammel)); book.AddEntry(CreateRunebookEntry("Medium: Black Solen Hive", new Point3D(1458, 988, 0), Map.Trammel)); book.AddEntry(CreateRunebookEntry("Medium: Covetous", new Point3D(2499, 918, 0), Map.Trammel)); book.AddEntry(CreateRunebookEntry("Medium: Britain Graveyard", new Point3D(1385, 1496, 10), Map.Trammel)); book.AddEntry(CreateRunebookEntry("Hard: Hythloth", new Point3D(4722, 3823, 0), Map.Trammel)); book.AddEntry(CreateRunebookEntry("Stygian Abyss: Underworld", new Point3D(4194, 3268, 0), Map.Trammel)); return(book); }
public bool CheckAccess(Mobile m, Runebook book) { if (!book.IsLockedDown || m.AccessLevel >= AccessLevel.GameMaster) { return(true); } BaseHouse house = BaseHouse.FindHouseAt(book); return(house != null && house.IsCoOwner(m)); }
public override void OnAfterDuped(Item newItem) { Runebook book = newItem as Runebook; if (book == null) return; book.m_Entries = new List<RunebookEntry>(); for (int i = 0; i < this.m_Entries.Count; i++) { RunebookEntry entry = this.m_Entries[i]; book.m_Entries.Add(new RunebookEntry(entry.Location, entry.Map, entry.Description, entry.House)); } }
public override void OnAfterDuped(Item newItem) { Runebook book = newItem as Runebook; if (book == null) { return; } book.m_Entries = new List <RunebookEntry>(); //Currently, when duping, it just copies over the ref over the already made blank ArrayList for (int i = 0; i < m_Entries.Count; i++) { RunebookEntry entry = m_Entries[i]; book.m_Entries.Add(new RunebookEntry(entry.Location, entry.Map, entry.Description, entry.House)); } }
public RunebookSellingGump(Runebook book) : base(0, 0) { this.Dragable = false; this.Closable = true; if (book == null) return; AddPage(0); this.AddBackground(0, 0,520, 420, 5170); int penY = 25; int penX = 125; int textHeight = 20; AddLabel(penX, penY, 38, "Runes in this Runebook"); penY += textHeight + 5; penX = 30; if (book.Entries == null || book.Entries.Count == 0) { AddLabel(penX, penY, 0, "This is an empty runebook..."); return; } AddLabel(penX, penY, 38, " Map Region Coordinates Description"); penY += textHeight; foreach (RunebookEntry entry in book.Entries) { if (entry.Map == null) continue; Region region = Region.Find(entry.Location, entry.Map); AddLabel(penX, penY, 0, entry.Map.Name); penX = 95; if (region != null) AddLabel(penX, penY, 0, region.Name); penX = 200; AddLabel(penX, penY, 0, UberScriptFunctions.Methods.SEXTANTCOORDS(null, entry.Location, entry.Map)); penX = 340; AddLabel(penX, penY, 0, entry.Description); penY += textHeight; penX = 30; } }
public override Item Dupe(int amount) { Runebook book = new Runebook(); book.m_Level = m_Level; book.m_CurCharges = m_CurCharges; book.m_MaxCharges = m_MaxCharges; book.m_DefaultIndex = m_DefaultIndex; book.m_Description = m_Description; book.m_Level = m_Level; book.LootType = this.LootType; for (int i = 0; i < m_Entries.Count; i++) { RunebookEntry entry = m_Entries[i] as RunebookEntry; book.m_Entries.Add(new RunebookEntry(entry.Location, entry.Map, entry.Description, entry.House)); } return(base.Dupe(book, amount)); }
public RunebookGump( Mobile from, Runebook book ) : base(150, 200) { m_Book = book; AddBackground(); AddIndex(); for ( int page = 0; page < 8; ++page ) { AddPage( 2 + page ); AddButton( 125, 14, 2205, 2205, 0, GumpButtonType.Page, 1 + page ); if ( page < 7 ) AddButton( 393, 14, 2206, 2206, 0, GumpButtonType.Page, 3 + page ); for ( int half = 0; half < 2; ++half ) AddDetails( (page * 2) + half, half ); } }
protected override void OnTarget(Mobile from, object target) // Override the protected OnTarget() for our feature { if (m_Deed.Deleted || m_Deed.RootParent != from) { return; } if (target is Runebook) { Runebook item = (Runebook)target; if (item.LootType == LootType.Blessed || item.BlessedFor == from || (Mobile.InsuranceEnabled && item.Insured)) // Check if its already newbied (blessed) { from.SendLocalizedMessage(1045113); // That item is already blessed } else if (item.LootType != LootType.Regular) { from.SendLocalizedMessage(1045114); // You can not bless that item } else if (item.RootParent != from) { from.SendLocalizedMessage(500509); // You cannot bless that object } else { item.LootType = LootType.Blessed; from.SendLocalizedMessage(1010026); // You bless the item.... m_Deed.Delete(); // Delete the bless deed } } else { from.SendLocalizedMessage(500509); // You cannot bless that object } }
public PenOfWisdomGump(Mobile from, PenOfWisdom pen, Runebook sourcebook, Runebook copybook, List <RunebookEntry> list) : base(50, 50) { Container bp = from.Backpack; m_Pen = pen; m_SourceBook = sourcebook; m_CopyBook = copybook; m_MarkScrollAmount = bp.GetAmount(typeof(MarkScroll), true); m_RuneAmount = bp.GetAmount(typeof(RecallRune), true); m_Blank = copybook.MaxEntries - copybook.Entries.Count; if (list == null) { m_Checked = new List <RunebookEntry>(); } else { m_Checked = list; } Closable = false; Disposable = true; Dragable = true; AddPage(0); AddBackground(4, 39, 391, 313, 9200); AddImageTiled(8, 45, 380, 53, 2624); AddHtmlLocalized(7, 50, 380, 53, 1115428, String.Format("{0}\t{1}\t{2}\t{3}", m_MarkScrollAmount.ToString(), m_RuneAmount.ToString(), m_Checked.Count, m_Blank.ToString()), 0xFFFFFF, false, false); // <CENTER>Pen of Wisdom<br>(Mark Scrolls: ~1_VAL~, Runes: ~2_VAL~ | Selected: ~3_VAL~, Blank: ~4_VAL~)</CENTER> AddImageTiled(8, 101, 188, 220, 2624); AddImageTiled(199, 101, 188, 220, 2624); AddButton(12, 325, 4017, 4018, 20, GumpButtonType.Reply, 0); AddLabel(48, 325, 2100, @"Cancel"); AddButton(153, 325, 4011, 4012, 21, GumpButtonType.Reply, 0); AddHtmlLocalized(189, 325, 78, 22, 1115427, 0xFFFFFF, false, false); // Select All AddButton(309, 325, 4023, 4024, 22, GumpButtonType.Reply, 0); AddLabel(344, 325, 2100, @"Okay"); string description; for (int i = 0; i < sourcebook.Entries.Count; i++) { description = sourcebook.Entries[i].Description; if (description == null) { if (i + 1 < 10) { description = "0" + (i + 1).ToString(); } else { description = (i + 1).ToString(); } } if (i < 8) { AddButton(15, 110 + i * 25, m_Checked.Contains(sourcebook.Entries[i]) ? 211 : 210, m_Checked.Contains(sourcebook.Entries[i]) ? 210 : 211, i, GumpButtonType.Reply, 0); AddLabel(45, 110 + i * 25, RunebookGump.GetMapHue(sourcebook.Entries[i].Map), String.Format("{0}", description)); } else { AddButton(205, 110 + ((i - 8) * 25), m_Checked.Contains(sourcebook.Entries[i]) ? 211 : 210, m_Checked.Contains(sourcebook.Entries[i]) ? 210 : 211, i, GumpButtonType.Reply, 0); AddLabel(235, 110 + ((i - 8) * 25), RunebookGump.GetMapHue(sourcebook.Entries[i].Map), String.Format("{0}", description)); } } }
public InternalTimer(Spell spell, Mobile caster, Point3D location, Runebook book) : base(TimeSpan.FromSeconds(0.75)) { m_Spell = spell; m_Caster = caster; m_Location = location; m_Book = book; Priority = TimerPriority.FiftyMS; }
public override Item Dupe( int amount ) { Runebook book = new Runebook(); book.m_Level = m_Level; book.m_CurCharges = m_CurCharges; book.m_MaxCharges = m_MaxCharges; book.m_DefaultIndex = m_DefaultIndex; book.m_Description = m_Description; book.m_Level = m_Level; book.LootType = this.LootType; for( int i = 0; i < m_Entries.Count; i++ ) { RunebookEntry entry = m_Entries[i] as RunebookEntry; book.m_Entries.Add( new RunebookEntry( entry.Location, entry.Map, entry.Description, entry.House ) ); } return base.Dupe( book, amount ); }
public RecallSpell( Mobile caster, Item scroll, RunebookEntry entry, Runebook book ) : base( caster, scroll, m_Info ) { m_Entry = entry; m_Book = book; }
private void DisplayBookLocations(Runebook runebook) { if (runebook == null) return; for (int i = 0; i < runebook.Entries.Count; i++) { RunebookEntry entry = runebook.Entries[i] as RunebookEntry; string locationtext = entry.Description; if (locationtext == null || locationtext.Length < 1) locationtext = String.Format("({0}, {1}, {2})", entry.Location.X, entry.Location.Y, entry.Location.Z); string[] keywordargs = ParseString(locationtext, 15, ":"); //Console.WriteLine("Args={0}", keywordargs.Length); string runesecurity = null; if (keywordargs != null && keywordargs.Length > 1) { locationtext = keywordargs[0]; runesecurity = keywordargs[1]; } if (locationtext.Length > 25) locationtext = locationtext.Substring(0, 25); if (AccessAllowed(runesecurity, m_Mobile)) { AddRadio(210, 35 + (i * 25), 210, 211, false, m_selected * 1000 + i); AddLabel(235, 35 + (i * 25), MapHues[entry.Map.MapIndex], locationtext); } else AddLabel(235, 35 + (i * 25), 0, "--Not Accessable--"); } }
public RangerPhoenixFlightSpell( Mobile caster, Item scroll, RunebookEntry entry, Runebook book ) : base(caster, scroll, m_Info) { m_Entry = entry; m_Book = book; }
public StarterBagMageGargoyle() { Container cont; this.Name = "Starter Bag - Mage"; cont = new Bag(); cont.Name = "PowerScrolls Bag"; // Power Scrolls PlaceItemIn(cont, 30, 35, new PowerScroll(SkillName.Meditation, 105)); PlaceItemIn(cont, 60, 35, new PowerScroll(SkillName.Magery, 105)); PlaceItemIn(cont, 90, 35, new PowerScroll(SkillName.EvalInt, 105)); PlaceItemIn(cont, 30, 68, new PowerScroll(SkillName.Necromancy, 105)); PlaceItemIn(cont, 45, 68, new PowerScroll(SkillName.SpiritSpeak, 105)); PlaceItemIn(this, 0, 0, cont); for (int i = 0; i < cont.Items.Count; i++) { cont.Items[i].LootType = LootType.Blessed; } cont = new Bag(); cont.Name = "Gear Bag"; // Armor PlaceItemIn(cont, 30, 35, new GargishLeatherArms()); PlaceItemIn(cont, 30, 68, new GargishLeatherChest()); PlaceItemIn(cont, 45, 68, new GargishLeatherKilt()); PlaceItemIn(cont, 45, 68, new GargishPlateWingArmor()); PlaceItemIn(cont, 45, 68, new GargishRobe()); // Jewelry PlaceItemIn(cont, 90, 68, new GargishNecklace()); PlaceItemIn(cont, 30, 118, new GargishEarrings()); PlaceItemIn(cont, 60, 118, new GargishRing()); PlaceItemIn(cont, 90, 100, new GargishBracelet()); PlaceItemIn(this, 50, 0, cont); for (int i = 0; i < cont.Items.Count; i++) { BaseArmor armor = cont.Items[i] as BaseArmor; BaseJewel jewel = cont.Items[i] as BaseJewel; BaseClothing clothes = cont.Items[i] as BaseClothing; if (armor != null) { armor.Attributes.LowerRegCost = 12; armor.Hue = 1154; armor.Insured = false; armor.TimesImbued = 50; armor.LootType = LootType.Blessed; armor.Weight = 0; } else if (jewel != null) { jewel.Attributes.LowerRegCost = 12; jewel.Attributes.RegenMana = 1; jewel.Hue = 1152; jewel.Insured = false; jewel.TimesImbued = 50; jewel.LootType = LootType.Blessed; } else if (clothes != null) { clothes.Attributes.LowerRegCost = 12; clothes.LootType = LootType.Blessed; clothes.TimesImbued = 50; } } cont = new Bag(); cont.Name = "Book Bag"; PlaceItemIn(cont, 30, 35, new Spellbook()); PlaceItemIn(cont, 60, 35, new NecromancerSpellbook()); Runebook runebook = new Runebook(5); runebook.CurCharges = runebook.MaxCharges; PlaceItemIn(cont, 90, 35, runebook); for (int i = 0; i < 3; ++i) PlaceItemIn(cont, 45 + (i * 10), 75, new RecallRune()); PlaceItemIn(this, 100, 0, cont); for (int i = 0; i < cont.Items.Count; i++) { Spellbook spellBook = cont.Items[i] as Spellbook; if (spellBook != null) { spellBook.SkillBonuses.SetValues(0, SkillName.Meditation, 100); spellBook.Attributes.CastSpeed = 1; spellBook.Hue = 1152; } } }
public static void GetListOfItems(Mobile from) { //List of Item Locations Message //***Put item into Backpack #region Backpack from.SendMessage("You will find new items in your Backpack."); from.Backpack.AddItem(new KillBook()); //http://www.runuo.com/forums/custom-script-releases/80034-book-kills.html from.Backpack.AddItem(new AnNoxGuideBook()); #endregion //***Drop item on the Ground #region Ground //put item under player on the ground from.SendMessage("You will find new items on the ground near by."); new SewingKit().MoveToWorld(from.Location, from.Map); new Bible().MoveToWorld(from.Location, from.Map); //http://www.runuo.com/forums/custom-script-releases/71826-runuo-2-0-rc1-lokais-xml-bible-system.html new BeltranGuideBook().MoveToWorld(from.Location, from.Map); //http://www.runuo.com/forums/runuo-post-archive/34074-osi-library-books.html new PrimerArmsBook().MoveToWorld(from.Location, from.Map); //http://www.runuo.com/forums/runuo-post-archive/34074-osi-library-books.html //put item near player on the ground new BagOfDresses().MoveToWorld(new Point3D(from.X + Utility.RandomMinMax(-5, 5), from.Y + Utility.RandomMinMax(-5, 5), from.Z), from.Map); new BagOfJewlery().MoveToWorld(new Point3D(from.X + Utility.RandomMinMax(-5, 5), from.Y + Utility.RandomMinMax(-5, 5), from.Z), from.Map); new BagOfShirts().MoveToWorld(new Point3D(from.X + Utility.RandomMinMax(-5, 5), from.Y + Utility.RandomMinMax(-5, 5), from.Z), from.Map); new BagOfPants().MoveToWorld(new Point3D(from.X + Utility.RandomMinMax(-5, 5), from.Y + Utility.RandomMinMax(-5, 5), from.Z), from.Map); new BagOfShoes().MoveToWorld(new Point3D(from.X + Utility.RandomMinMax(-5, 5), from.Y + Utility.RandomMinMax(-5, 5), from.Z), from.Map); new BagOfCloaks().MoveToWorld(new Point3D(from.X + Utility.RandomMinMax(-5, 5), from.Y + Utility.RandomMinMax(-5, 5), from.Z), from.Map); new BagOfHats().MoveToWorld(new Point3D(from.X + Utility.RandomMinMax(-5, 5), from.Y + Utility.RandomMinMax(-5, 5), from.Z), from.Map); #endregion //***Put item into Bank #region Bank from.SendMessage("You will find new items in your Bank."); BankBox bank = from.BankBox; Container cont; // Begin box of money cont = new WoodenBox(); cont.Name = "Money Box"; cont.ItemID = 0xE7D; cont.Hue = 0x489; PlaceItemIn(cont, 64, 51, new BankCheck(5000)); PlaceItemIn(cont, 16, 115, new Factions.Silver(1000)); PlaceItemIn(cont, 34, 115, new Gold(1000)); PlaceItemIn(bank, 18, 169, cont); // Begin bag of archery ammo cont = new Bag(); cont.Name = "Bag Of Archery Ammo"; PlaceItemIn(cont, 48, 76, new Arrow(50)); PlaceItemIn(cont, 72, 76, new Bolt(50)); PlaceItemIn(bank, 118, 124, cont); // Begin bag of raw materials cont = new Bag(); cont.Hue = 0x835; cont.Name = "Raw Materials Bag"; PlaceItemIn(cont, 92, 84, new Leather(50)); PlaceItemIn(cont, 30, 118, new Cloth(50)); PlaceItemIn(cont, 30, 84, new Board(50)); PlaceItemIn(cont, 57, 80, new BlankScroll(50)); PlaceItemIn(bank, 98, 169, cont); // 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)); PlaceItemIn(cont, 105, 105, new BookOfBushido()); //Default ctor = full PlaceItemIn(cont, 125, 105, new BookOfNinjitsu()); //Default ctor = full Runebook runebook = new Runebook(10); runebook.CurCharges = runebook.MaxCharges; PlaceItemIn(cont, 145, 105, runebook); Item toHue = new BagOfReagents(50); toHue.Hue = 0x2D; toHue.Name = "Bag of Basic Reagents"; PlaceItemIn(cont, 45, 150, toHue); toHue = new BagOfNecroReagents(50); toHue.Hue = 0x488; toHue.Name = "Bag of Necro Reagents"; PlaceItemIn(cont, 65, 150, toHue); toHue = new BagOfAllReagents(50); toHue.Hue = 0x2D; toHue.Name = "Bag of All Reagents"; PlaceItemIn(cont, 140, 150, toHue); for (int i = 0; i < 9; ++i) { PlaceItemIn(cont, 45 + (i * 10), 75, new RecallRune()); } PlaceItemIn(cont, 141, 74, new FireHorn()); PlaceItemIn(bank, 78, 169, cont); #endregion }
public NaturesPassageSpell( Mobile caster, Item scroll, RunebookEntry entry, Runebook book ) : base( caster, scroll, m_Info ) { m_Entry = entry; m_Book = book; }
public bool AddRunebook(Mobile m, Runebook book, bool message) { if (m == null || m.Deleted || book == null || book.Deleted) { return false; } bool mrb = Insensitive.Equals(book.GetType().Name, "InternalRunebook"); if (book.Entries.Count == 0) { if (!mrb && message) { m.SendMessage("That rune book is empty."); } return false; } if (Entries.Count >= Entries.Capacity) { if (!mrb && message) { m.SendMessage("The category \"{0}\" can't hold more runes.", _Name); } return false; } if (Entries.Count + book.Entries.Count > Entries.Capacity) { if (!mrb && message) { m.SendMessage("That rune book won't fit in the category \"{0}\".", _Name); } return false; } var bEntries = new Queue<RunebookEntry>(book.Entries); Entries.ForEach( (e, x, y) => { if (e != null || bEntries.Count <= 0) { return; } var be = bEntries.Dequeue(); Entries.SetContent(x, y, new RuneCodexEntry(book.Name, be.Description, be.Location.ToMapPoint(be.Map))); }); if (mrb) { book.Entries.Clear(); return true; } book.Delete(); if (message) { m.SendMessage("You add the rune book to the category \"{0}\".", _Name); } return true; }
// adam: not called for production servers private static void FillBankbox( Mobile m ) { BankBox bank = m.BankBox; if ( bank == null ) return; Container cont; // Begin box of money cont = new WoodenBox(); cont.ItemID = 0xE7D; cont.Hue = 0x489; PlaceItemIn( cont, 16, 51, new BankCheck( 1000000 ) ); //edited by sam PlaceItemIn( cont, 28, 51, new BankCheck( 250000 ) ); //edited by sam PlaceItemIn( cont, 40, 51, new BankCheck( 125000 ) ); //edited by sam PlaceItemIn( cont, 52, 51, new BankCheck( 75000 ) ); //edited by sam PlaceItemIn( cont, 64, 51, new BankCheck( 32500 ) ); //edited by sam 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( 60000 ) ) ); PlaceItemIn( cont, 90, 35, MakeNewbie( new DovetailSaw( 60000 ) ) ); PlaceItemIn( cont, 30, 68, MakeNewbie( new Scissors() ) ); PlaceItemIn( cont, 45, 68, MakeNewbie( new MortarPestle( 60000 ) ) ); PlaceItemIn( cont, 75, 68, MakeNewbie( new ScribesPen( 60000 ) ) ); PlaceItemIn( cont, 90, 68, MakeNewbie( new SmithHammer( 60000 ) ) ); PlaceItemIn( cont, 30, 118, MakeNewbie( new TwoHandedAxe() ) ); PlaceItemIn( cont, 90, 118, MakeNewbie( new SewingKit( 60000 ) ) ); 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( 60000 ) ) ); PlaceItemIn( cont, 72, 76, MakeNewbie( new Bolt( 60000 ) ) ); 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.Felucca ) ) ); PlaceItemIn( cont, 45, 35, MakeNewbie( new TreasureMap( 2, Map.Felucca ) ) ); PlaceItemIn( cont, 60, 35, MakeNewbie( new TreasureMap( 3, Map.Felucca ) ) ); PlaceItemIn( cont, 75, 35, MakeNewbie( new TreasureMap( 4, Map.Felucca ) ) ); PlaceItemIn( cont, 90, 35, MakeNewbie( new TreasureMap( 5, Map.Felucca ) ) ); PlaceItemIn( cont, 30, 50, MakeNewbie( new TreasureMap( 1, Map.Felucca ) ) ); PlaceItemIn( cont, 45, 50, MakeNewbie( new TreasureMap( 2, Map.Felucca ) ) ); PlaceItemIn( cont, 60, 50, MakeNewbie( new TreasureMap( 3, Map.Felucca ) ) ); PlaceItemIn( cont, 75, 50, MakeNewbie( new TreasureMap( 4, Map.Felucca ) ) ); PlaceItemIn( cont, 90, 50, MakeNewbie( new TreasureMap( 5, Map.Felucca ) ) ); PlaceItemIn( cont, 55, 100, MakeNewbie( new Lockpick( 60000 ) ) ); 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, 30, 35, MakeNewbie( new DullCopperIngot( 60000 ) ) ); PlaceItemIn( cont, 37, 35, MakeNewbie( new ShadowIronIngot( 60000 ) ) ); PlaceItemIn( cont, 44, 35, MakeNewbie( new CopperIngot( 60000 ) ) ); PlaceItemIn( cont, 51, 35, MakeNewbie( new BronzeIngot( 60000 ) ) ); PlaceItemIn( cont, 58, 35, MakeNewbie( new GoldIngot( 60000 ) ) ); PlaceItemIn( cont, 65, 35, MakeNewbie( new AgapiteIngot( 60000 ) ) ); PlaceItemIn( cont, 72, 35, MakeNewbie( new VeriteIngot( 60000 ) ) ); PlaceItemIn( cont, 79, 35, MakeNewbie( new ValoriteIngot( 60000 ) ) ); PlaceItemIn( cont, 86, 35, MakeNewbie( new IronIngot( 60000 ) ) ); PlaceItemIn( cont, 29, 55, MakeNewbie( new Leather( 60000 ) ) ); PlaceItemIn( cont, 44, 55, MakeNewbie( new SpinedLeather( 60000 ) ) ); PlaceItemIn( cont, 59, 55, MakeNewbie( new HornedLeather( 60000 ) ) ); PlaceItemIn( cont, 74, 55, MakeNewbie( new BarbedLeather( 60000 ) ) ); PlaceItemIn( cont, 35, 100, MakeNewbie( new Cloth( 60000 ) ) ); PlaceItemIn( cont, 67, 89, MakeNewbie( new Board( 60000 ) ) ); PlaceItemIn( cont, 88, 91, MakeNewbie( new BlankScroll( 60000 ) ) ); 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 ) ); Runebook runebook = new Runebook( 10 ); runebook.CurCharges = runebook.MaxCharges; PlaceItemIn( cont, 105, 105, runebook ); Item toHue = new BagOfReagents( 65000 ); toHue.Hue = 0x2D; PlaceItemIn( cont, 45, 150, toHue ); 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 }
public bool Drop(Mobile m, RuneCodexCategory cat, bool message) { if (m == null || m.Deleted || cat == null) { return false; } if (cat.Entries == null || cat.Entries.Count == 0) { if (message) { m.SendMessage("The category \"{0}\" is empty.", cat.Name); } return false; } int cost = CloneEntryChargeCost * cat.Entries.Count; if (!ConsumeCharges(cost)) { if (message) { m.SendMessage("This action requires {0:#,0} charge{1}.", cost, cost != 1 ? "s" : String.Empty); } return false; } var entries = new Queue<RuneCodexEntry>(cat.Entries.Not(e => e == null)); Runebook book = new Runebook(); int count = 1; while (entries.Count > 0) { var entry = entries.Dequeue(); if (entry == null) { continue; } book.Entries.Add( new RunebookEntry( entry.Location, entry.Location, entry.Name, BaseHouse.FindHouseAt(entry.Location, entry.Location, 16))); if (book.Entries.Count < 16 && entries.Count > 0) { continue; } m.AddToBackpack(book); if (entries.Count == 0) { continue; } book = new Runebook(); ++count; } if (message) { m.SendMessage( "You created {0:#,0} rune book{1} and consumed {2:#,0} charge{3} from the codex.", count, count != 1 ? "s" : String.Empty, cost, cost != 1 ? "s" : String.Empty); } return true; }
public virtual bool AddRunebook(Mobile m, Runebook book, RuneCodexCategory cat, bool message) { if (m == null || m.Deleted || book == null || book.Deleted || !book.IsAccessibleTo(m)) { return false; } if (cat == null) { PlayerMobile pm = m as PlayerMobile; cat = pm != null && Users.ContainsKey(pm) ? (Users[pm].Category ?? Categories[Users[pm].CategoryPoint.X, Users[pm].CategoryPoint.Y]) : Categories[0, 0]; } if (book.Entries == null || book.Entries.Count == 0) { if (message) { m.SendMessage("That rune book is empty."); } return false; } if (Categories.Count >= Categories.Capacity) { if (message) { m.SendMessage("This rune codex can't hold more categories."); } return false; } if (cat != null && cat.AddRunebook(m, book, message)) { InvalidateProperties(); return true; } return false; }
public RuneLibraryDungeons(Mobile from) { library = new ArrayList(); readLine(); Runebook rb = new Runebook(0); int nameStart = 1; int nameEnd = 1; for (int i = 0; i < size; i++) { if (rb.Entries.Count == 16) { rb.Name = "Dungeons " + nameStart + " - " + (nameEnd - 1); library.Add(rb); rb = new Runebook(0); nameStart = nameEnd; } int x = int.Parse(xs[i]); int y = int.Parse(ys[i]); int z = int.Parse(zs[i]); Point3D targ = new Point3D(x, y, z); RecallRune rr = new RecallRune(); rr.Target = targ; rr.TargetMap = Map.Felucca; rr.Description = mapNames[i] + " " + mapLastnames[i]; rr.House = null; rr.Marked = true; rb.OnDragDrop(from, rr); nameEnd++; } rb.Name = "Dungeons " + nameStart + " - " + (nameEnd - 1); library.Add(rb); int height = 6; int offx; int offy; int offz; for (int p = 0; p < library.Count; p++) { Runebook librarybook = (Runebook)library[p]; librarybook.Movable = true; librarybook.MaxCharges = 10; librarybook.CurCharges = 10; if (p < 4) { offx = from.Location.X - 1; offy = from.Location.Y - 1; offz = from.Location.Z + height; } else if (p >= 4 && p < 5) { offx = from.Location.X; offy = from.Location.Y - 1; offz = from.Location.Z + height + 2; height += 2; } else if (p >= 5 && p < 9) { offx = from.Location.X; offy = from.Location.Y - 1; offz = from.Location.Z + height; } else { offx = from.Location.X + 1; offy = from.Location.Y - 1; offz = from.Location.Z + height; } Point3D loc = new Point3D(offx, offy, offz); librarybook.MoveToWorld(loc, from.Map); if (height == 0) { height = 8; } height -= 2; } }
public static void RemoveRunebook_Callback(Mobile from, bool okay, MasterRunebook master, InternalRunebook book, int id) { if (okay) { Container pack = from.Backpack; if (pack == null || pack.Deleted) { from.SendMessage("Unable to find a backpack in which to place a new Runebook."); return; } int count = book.Entries.Count; if (count > 0) { if (from.AccessLevel < AccessLevel.GameMaster) { if (from.Backpack.ConsumeTotal(new Type[] { typeof(BlankScroll), typeof(RecallScroll), typeof(GateTravelScroll) }, new int[] { 10, 1, 1 }) >= 0) { from.SendMessage("You do not have the materials needed to create the runebook."); return; } if (from.CheckSkill(SkillName.Inscribe, 100, 120)) { from.SendMessage("You failed to extract the book. Some materials were lost."); return; } } Runebook runebook = new Runebook(book.MaxCharges); for (int x = 0; x < count; x++) { RunebookEntry rbe = new RunebookEntry( ((RunebookEntry)book.Entries[0]).Location, ((RunebookEntry)book.Entries[0]).Map, ((RunebookEntry)book.Entries[0]).Description, ((RunebookEntry)book.Entries[0]).House); runebook.Entries.Add(rbe); book.Entries.RemoveAt(0); } runebook.CurCharges = book.CurCharges; runebook.Name = book.Name; book.Name = string.Format("Book #{0}", ((int)(id + 1)).ToString()); pack.DropItem(runebook); from.SendMessage("Runebook extracted. Some materials were used."); } else { from.SendMessage("You cannot remove an empty Runebook."); } from.CloseGump(typeof(InternalRunebookGump)); from.SendGump(new InternalRunebookGump(from, book, master, id)); } else { from.CloseGump(typeof(InternalRunebookGump)); from.SendGump(new InternalRunebookGump(from, book, master, id)); } }
public CopyTarget(PenOfWisdom pen, Runebook book) : base(12, false, TargetFlags.None) { Pen = pen; SourceBook = book; }
public UndeadTravelByPoisonSpell( Mobile caster, Item scroll, RunebookEntry entry, Runebook book ) : base(caster, scroll, m_Info) { m_Entry = entry; m_Book = book; }
public StarterBagMage() { Container cont; this.Name = "Starter Bag - Mage"; cont = new Bag(); cont.Name = "PowerScrolls Bag"; // Power Scrolls PlaceItemIn(cont, 30, 35, new PowerScroll(SkillName.Meditation, 105)); PlaceItemIn(cont, 60, 35, new PowerScroll(SkillName.Magery, 105)); PlaceItemIn(cont, 90, 35, new PowerScroll(SkillName.EvalInt, 105)); PlaceItemIn(cont, 30, 68, new PowerScroll(SkillName.Necromancy, 105)); PlaceItemIn(cont, 45, 68, new PowerScroll(SkillName.SpiritSpeak, 105)); PlaceItemIn(this, 0, 0, cont); for (int i = 0; i < cont.Items.Count; i++) { cont.Items[i].LootType = LootType.Blessed; } cont = new Bag(); cont.Name = "Gear Bag"; // Armor PlaceItemIn(cont, 30, 35, new LeatherArms()); PlaceItemIn(cont, 60, 35, new LeatherGloves()); PlaceItemIn(cont, 90, 35, new LeatherCap()); PlaceItemIn(cont, 30, 68, new LeatherChest()); PlaceItemIn(cont, 45, 68, new LeatherLegs()); // Jewelry PlaceItemIn(cont, 75, 68, new GoldNecklace()); PlaceItemIn(cont, 90, 68, new GoldEarrings()); PlaceItemIn(cont, 30, 118, new GoldBracelet()); PlaceItemIn(cont, 60, 118, new GoldRing()); PlaceItemIn(this, 50, 0, cont); for (int i = 0; i < cont.Items.Count; i++) { BaseArmor armor = cont.Items[i] as BaseArmor; BaseJewel jewel = cont.Items[i] as BaseJewel; if (armor != null) { armor.Attributes.LowerRegCost = 12; armor.LootType = LootType.Newbied; armor.Hue = 1154; armor.Insured = false; armor.TimesImbued = 50; armor.LootType = LootType.Blessed; armor.Weight = 0; } else if (jewel != null) { jewel.Attributes.LowerRegCost = 12; jewel.Attributes.RegenMana = 1; jewel.LootType = LootType.Newbied; jewel.Hue = 1152; jewel.Insured = false; jewel.TimesImbued = 50; jewel.LootType = LootType.Blessed; } } cont = new Bag(); cont.Name = "Book Bag"; PlaceItemIn(cont, 30, 35, new Spellbook()); PlaceItemIn(cont, 60, 35, new NecromancerSpellbook()); Runebook runebook = new Runebook(5); runebook.CurCharges = runebook.MaxCharges; PlaceItemIn(cont, 90, 35, runebook); for (int i = 0; i < 3; ++i) { PlaceItemIn(cont, 45 + (i * 10), 75, new RecallRune()); } PlaceItemIn(this, 100, 0, cont); for (int i = 0; i < cont.Items.Count; i++) { Spellbook spellBook = cont.Items[i] as Spellbook; if (spellBook != null) { spellBook.SkillBonuses.SetValues(0, SkillName.Meditation, 100); spellBook.Attributes.CastSpeed = 1; spellBook.Hue = 1152; } } }
private static Item CreateStarterRunebook() { Runebook book = new Runebook(); book.CurCharges = book.MaxCharges = 20; book.AddEntry( CreateRunebookEntry( "New Haven Bank", new Point3D( 3487, 2572, 21 ), Map.Trammel ) ); book.AddEntry( CreateRunebookEntry( "Britain Bank", new Point3D( 1428, 1693, 0 ), Map.Trammel ) ); book.AddEntry( CreateRunebookEntry( "Luna Bank", new Point3D( 983, 515, -50 ), Map.Malas ) ); book.AddEntry( CreateRunebookEntry( "Umbra Bank", new Point3D( 2045, 1342, -85 ), Map.Malas ) ); book.AddEntry( CreateRunebookEntry( "Change Tokuno Arties", new Point3D( 678, 1275, 48 ), Map.Tokuno ) ); book.AddEntry( CreateRunebookEntry( "Taming: Trinsic Area", new Point3D( 2103, 2794, 5 ), Map.Trammel ) ); book.AddEntry( CreateRunebookEntry( "Taming: Bulls Delucia", new Point3D( 5208, 3952, 37 ), Map.Trammel ) ); book.AddEntry( CreateRunebookEntry( "Minoc Mines", new Point3D( 2558, 503, 0 ), Map.Trammel ) ); book.AddEntry( CreateRunebookEntry( "Easy: Old Haven", new Point3D( 3637, 2499, 0 ), Map.Trammel ) ); book.AddEntry( CreateRunebookEntry( "Easy: New Haven Mine", new Point3D( 3511, 2778, 27 ), Map.Trammel ) ); book.AddEntry( CreateRunebookEntry( "Medium: Red Solen Hive", new Point3D( 2611, 762, 0 ), Map.Trammel ) ); book.AddEntry( CreateRunebookEntry( "Medium: Black Solen Hive", new Point3D( 1458, 988, 0 ), Map.Trammel ) ); book.AddEntry( CreateRunebookEntry( "Medium: Covetous", new Point3D( 2499, 918, 0 ), Map.Trammel ) ); book.AddEntry( CreateRunebookEntry( "Medium: Britain Graveyard", new Point3D( 1385, 1496, 10 ), Map.Trammel ) ); book.AddEntry( CreateRunebookEntry( "Hard: Hythloth", new Point3D( 4722, 3823, 0 ), Map.Trammel ) ); book.AddEntry( CreateRunebookEntry( "Stygian Abyss: Underworld", new Point3D( 4194, 3268, 0 ), Map.Trammel ) ); return book; }
public override void InitOutfit() { AddItem( new LongPants( 0x322 ) ); AddItem( new Shoes(GetRandomHue()) ); AddItem( new FancyShirt( 0x47E ) ); AddItem( new GoldRing() ); AddItem( new FloppyHat(GetRandomHue()) ); Runebook runebook = new Runebook(); runebook.Hue = 0x47E; runebook.Name = "Fight Book"; AddItem( runebook ); }
private static void FillBankbox( Mobile m ) { BankBox bank = m.BankBox; if ( bank == null ) return; bank.MaxItems = int.MaxValue; // 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; Container cont2; // Begin box of money cont = new WoodenBox(); cont.ItemID = 0xE7D; cont.Hue = 0x489; PlaceItemIn( cont, 17, 52, new BankCheck( 1000000 ) ); PlaceItemIn( cont, 28, 52, new BankCheck( 1000000 ) ); PlaceItemIn( cont, 17, 91, new Factions.Silver( 9000 ) ); PlaceItemIn( cont, 34, 91, new Gold( 60000 ) ); PlaceItemIn( bank, 38, 142, cont ); // End box of money // Begin box of Magery Items cont = new WoodenBox(); cont.ItemID = 0xE7D; cont.Name = "Magery Items"; cont.Hue = 1195; // Begin bag of spell casting stuff cont2 = new Backpack(); cont2.Hue = 0x480; cont2.Name = "Spell Casting Stuff"; PlaceItemIn( cont2, 45, 107, new Spellbook( UInt64.MaxValue ) ); PlaceItemIn( cont2, 64, 107, new NecromancerSpellbook( (UInt64) 0xFFFF ) ); PlaceItemIn( cont2, 83, 107, new BookOfChivalry( (UInt64) 0x3FF ) ); PlaceItemIn( cont2, 102, 107, new BookOfBushido() ); //Default ctor = full PlaceItemIn( cont2, 121, 107, new BookOfNinjitsu() ); //Default ctor = full PlaceItemIn( cont2, 102, 149, new SpellweavingSpellbook( (UInt64) 0xFFFF ) ); PlaceItemIn( cont2, 121, 149, new MysticismSpellbook( (UInt64) 0xFFFF ) ); Runebook runebook = new Runebook( 20 ); runebook.CurCharges = runebook.MaxCharges; PlaceItemIn( cont2, 141, 107, runebook ); Item toHue = new BagOfReagents( 5000 ); toHue.Hue = 0x2D; PlaceItemIn( cont2, 45, 128, toHue ); toHue = new BagOfNecroReagents( 3000 ); toHue.Hue = 0x488; PlaceItemIn( cont2, 64, 128, toHue ); toHue = new BagOfMysticReagents( 3000 ); toHue.Hue = 0x48F; PlaceItemIn( cont2, 141, 128, toHue ); for ( int i = 0; i < 6; ++i ) PlaceItemIn( cont2, 45 + ( i * 10 ), 74, new RecallRune() ); PlaceItemIn( cont, 47, 91, cont2 ); // End bag of spell casting stuff // Begin bag of potion kegs cont2 = new Backpack(); cont2.Name = "Various Potion Kegs"; PlaceItemIn( cont2, 45, 149, MakePotionKeg( PotionEffect.CureGreater, 0x2D ) ); PlaceItemIn( cont2, 69, 149, MakePotionKeg( PotionEffect.HealGreater, 0x499 ) ); PlaceItemIn( cont2, 93, 149, MakePotionKeg( PotionEffect.PoisonDeadly, 0x46 ) ); PlaceItemIn( cont2, 117, 149, MakePotionKeg( PotionEffect.RefreshGreater, 0x21 ) ); PlaceItemIn( cont2, 141, 149, MakePotionKeg( PotionEffect.ExplosionGreater, 0x74 ) ); PlaceItemIn( cont2, 93, 82, new Bottle( 1000 ) ); PlaceItemIn( cont, 78, 91, cont2 ); // End bag of potion kegs GoldRing ring = new GoldRing(); ring.Name = "Ring Of Arcane Tactics"; ring.Attributes.CastRecovery = 3; ring.Attributes.CastSpeed = 1; PlaceItemIn( cont, 109, 90, ring ); GoldBracelet bracelet = new GoldBracelet(); bracelet.Name = "Farmer's Band Of Mastery"; bracelet.Attributes.CastRecovery = 3; bracelet.Attributes.CastSpeed = 1; PlaceItemIn( cont, 139, 95, bracelet ); PlaceItemIn( bank, 63, 142, cont ); // End box of Magery Items // Begin bag of ethereals cont = new Backpack(); cont.Hue = 0x490; cont.Name = "Bag Of Ethy's!"; cont.DropItem( new EtherealHorse() ); cont.DropItem( new EtherealOstard() ); cont.DropItem( new EtherealLlama() ); cont.DropItem( new EtherealKirin() ); cont.DropItem( new EtherealUnicorn() ); cont.DropItem( new EtherealRidgeback() ); cont.DropItem( new EtherealSwampDragon() ); cont.DropItem( new EtherealBeetle() ); PlaceItemIn( bank, 43, 124, cont ); // End bag of ethereals // Begin box of Artifacts cont = new WoodenBox(); cont.ItemID = 0xE7D; cont.Hue = 1170; cont.Name = "Artifacts"; // Begin bag of minor artifacts cont2 = new Bag(); cont2.Hue = 1167; cont2.Name = "Minor Artifacts"; cont2.DropItem( new LunaLance() ); cont2.DropItem( new VioletCourage() ); cont2.DropItem( new CavortingClub() ); cont2.DropItem( new CaptainQuacklebushsCutlass() ); cont2.DropItem( new NightsKiss() ); cont2.DropItem( new ShipModelOfTheHMSCape() ); cont2.DropItem( new AdmiralsHeartyRum() ); cont2.DropItem( new CandelabraOfSouls() ); cont2.DropItem( new IolosLute() ); cont2.DropItem( new GwennosHarp() ); cont2.DropItem( new ArcticDeathDealer() ); cont2.DropItem( new EnchantedTitanLegBone() ); cont2.DropItem( new NoxRangersHeavyCrossbow() ); cont2.DropItem( new BlazeOfDeath() ); cont2.DropItem( new DreadPirateHat() ); cont2.DropItem( new BurglarsBandana() ); cont2.DropItem( new GoldBricks() ); cont2.DropItem( new AlchemistsBauble() ); cont2.DropItem( new PhillipsWoodenSteed() ); cont2.DropItem( new PolarBearMask() ); cont2.DropItem( new BowOfTheJukaKing() ); cont2.DropItem( new GlovesOfThePugilist() ); cont2.DropItem( new OrcishVisage() ); cont2.DropItem( new StaffOfPower() ); cont2.DropItem( new ShieldOfInvulnerability() ); cont2.DropItem( new HeartOfTheLion() ); cont2.DropItem( new ColdBlood() ); cont2.DropItem( new GhostShipAnchor() ); cont2.DropItem( new SeahorseStatuette() ); cont2.DropItem( new WrathOfTheDryad() ); cont2.DropItem( new PixieSwatter() ); PlaceItemIn( cont, 17, 83, cont2 ); // End bag of minor artifacts // Begin Bag of Major Artifacts cont2 = new Bag(); cont2.Hue = 1266; cont2.Name = "Major Artifacts"; cont2.DropItem( new GauntletsOfNobility() ); cont2.DropItem( new MidnightBracers() ); cont2.DropItem( new VoiceOfTheFallenKing() ); cont2.DropItem( new OrnateCrownOfTheHarrower() ); cont2.DropItem( new HelmOfInsight() ); cont2.DropItem( new HolyKnightsBreastplate() ); cont2.DropItem( new ArmorOfFortune() ); cont2.DropItem( new TunicOfFire() ); cont2.DropItem( new LeggingsOfBane() ); cont2.DropItem( new ArcaneShield() ); cont2.DropItem( new Aegis() ); cont2.DropItem( new RingOfTheVile() ); cont2.DropItem( new BraceletOfHealth() ); cont2.DropItem( new RingOfTheElements() ); cont2.DropItem( new OrnamentOfTheMagician() ); cont2.DropItem( new DivineCountenance() ); cont2.DropItem( new JackalsCollar() ); cont2.DropItem( new HuntersHeaddress() ); cont2.DropItem( new HatOfTheMagi() ); cont2.DropItem( new ShadowDancerLeggings() ); cont2.DropItem( new SpiritOfTheTotem() ); cont2.DropItem( new BladeOfInsanity() ); cont2.DropItem( new AxeOfTheHeavens() ); cont2.DropItem( new TheBeserkersMaul() ); cont2.DropItem( new Frostbringer() ); cont2.DropItem( new BreathOfTheDead() ); cont2.DropItem( new TheDragonSlayer() ); cont2.DropItem( new BoneCrusher() ); cont2.DropItem( new StaffOfTheMagi() ); cont2.DropItem( new SerpentsFang() ); cont2.DropItem( new LegacyOfTheDreadLord() ); cont2.DropItem( new TheTaskmaster() ); cont2.DropItem( new TheDryadBow() ); cont2.DropItem( new TitansHammer() ); cont2.DropItem( new InquisitorsResolution() ); cont2.DropItem( new BladeOfTheRighteous() ); cont2.DropItem( new ZyronicClaw() ); PlaceItemIn( cont, 90, 83, cont2 ); // End Bag of Major Artifacts // Begin bag of Tokuno minor artifacts cont2 = new Bag(); cont2.Hue = 1281; cont2.Name = "Tokuno Minor Artifacts"; cont2.DropItem( new PeasantsBokuto() ); cont2.DropItem( new DragonNunchaku() ); cont2.DropItem( new TheDestroyer() ); cont2.DropItem( new HanzosBow() ); cont2.DropItem( new Exiler() ); cont2.DropItem( new PilferedDancerFans() ); cont2.DropItem( new DemonForks() ); cont2.DropItem( new BlackLotusHood() ); cont2.DropItem( new DaimyosHelm() ); cont2.DropItem( new ArmsOfTacticalExcellence() ); cont2.DropItem( new AncientFarmersKasa() ); cont2.DropItem( new GlovesOfTheSun() ); cont2.DropItem( new LegsOfStability() ); cont2.DropItem( new AncientSamuraiDo() ); cont2.DropItem( new PigmentsOfTokuno() ); cont2.DropItem( new FluteOfRenewal() ); cont2.DropItem( new AncientUrn() ); cont2.DropItem( new HonorableSwords() ); cont2.DropItem( new ChestOfHeirlooms() ); cont2.DropItem( new TomeOfEnlightenment() ); PlaceItemIn( cont, 53, 83, cont2 ); // End bag of Tokuno minor artifacts // Begin bag of Tokuno major artifacts cont2 = new Bag(); cont2.Hue = 1281; cont2.Name = "Tokuno Major Artifacts"; cont2.DropItem( new DarkenedSky() ); cont2.DropItem( new KasaOfRajin() ); cont2.DropItem( new RuneBeetleCarapace() ); cont2.DropItem( new Stormgrip() ); cont2.DropItem( new SwordOfStampede() ); cont2.DropItem( new SwordsOfProsperity() ); cont2.DropItem( new TheHorselord() ); cont2.DropItem( new TomeOfLostKnowledge() ); cont2.DropItem( new WindsEdge() ); cont2.DropItem( new PigmentsOfTokunoMajor( PigmentsType.ParagonGold, 50 ) ); cont2.DropItem( new PigmentsOfTokunoMajor( PigmentsType.VioletCouragePurple, 50 ) ); cont2.DropItem( new PigmentsOfTokunoMajor( PigmentsType.InvulnerabilityBlue, 50 ) ); cont2.DropItem( new PigmentsOfTokunoMajor( PigmentsType.LunaWhite, 50 ) ); cont2.DropItem( new PigmentsOfTokunoMajor( PigmentsType.DryadGreen, 50 ) ); cont2.DropItem( new PigmentsOfTokunoMajor( PigmentsType.ShadowDancerBlack, 50 ) ); cont2.DropItem( new PigmentsOfTokunoMajor( PigmentsType.BerserkerRed, 50 ) ); cont2.DropItem( new PigmentsOfTokunoMajor( PigmentsType.NoxGreen, 50 ) ); cont2.DropItem( new PigmentsOfTokunoMajor( PigmentsType.RumRed, 50 ) ); cont2.DropItem( new PigmentsOfTokunoMajor( PigmentsType.FireOrange, 50 ) ); PlaceItemIn( cont, 127, 83, cont2 ); // End bag of Tokuno major artifacts // Begin bag of ML Minor artifacts cont2 = new Bag(); cont2.Hue = 1167; cont2.Name = "Minor Artifacts"; cont2.DropItem( new AegisOfGrace() ); cont2.DropItem( new BladeDance() ); cont2.DropItem( new BloodwoodSpirit() ); cont2.DropItem( new Bonesmasher() ); cont2.DropItem( new Boomstick() ); cont2.DropItem( new BrightsightLenses() ); cont2.DropItem( new FeyLeggings() ); cont2.DropItem( new FleshRipper() ); cont2.DropItem( new HelmOfSwiftness() ); cont2.DropItem( new PadsOfTheCuSidhe() ); cont2.DropItem( new QuiverOfRage() ); cont2.DropItem( new QuiverOfTheElements() ); cont2.DropItem( new RaedsGlory() ); cont2.DropItem( new RighteousAnger() ); cont2.DropItem( new RobeOfTheEclipse() ); cont2.DropItem( new RobeOfTheEquinox() ); cont2.DropItem( new SoulSeeker() ); cont2.DropItem( new TalonBite() ); cont2.DropItem( new TotemOfTheVoid() ); cont2.DropItem( new WildfireBow() ); cont2.DropItem( new Windsong() ); PlaceItemIn( cont, 140, 83, cont2 ); // End bag of ML Minor artifacts PlaceItemIn( bank, 63, 106, cont ); // End box of Artifacts // Begin box of General Resources cont = new WoodenBox(); cont.ItemID = 0xE7D; cont.Hue = 1193; cont.Name = "Genereal Resources"; // Begin bag of raw materials cont2 = new Bag(); cont2.Name = "Raw Materials Bag"; PlaceItemIn( cont2, 92, 60, new BarbedLeather( 5000 ) ); PlaceItemIn( cont2, 92, 68, new HornedLeather( 5000 ) ); PlaceItemIn( cont2, 92, 76, new SpinedLeather( 5000 ) ); PlaceItemIn( cont2, 92, 84, new Leather( 5000 ) ); PlaceItemIn( cont2, 30, 118, new Cloth( 5000 ) ); PlaceItemIn( cont2, 30, 84, new Board( 5000 ) ); PlaceItemIn( cont2, 57, 80, new BlankScroll( 500 ) ); PlaceItemIn( cont2, 57, 80, new Bone( 100 ) ); PlaceItemIn( cont2, 30, 35, new DullCopperIngot( 5000 ) ); PlaceItemIn( cont2, 37, 35, new ShadowIronIngot( 5000 ) ); PlaceItemIn( cont2, 44, 35, new CopperIngot( 5000 ) ); PlaceItemIn( cont2, 51, 35, new BronzeIngot( 5000 ) ); PlaceItemIn( cont2, 58, 35, new GoldIngot( 5000 ) ); PlaceItemIn( cont2, 65, 35, new AgapiteIngot( 5000 ) ); PlaceItemIn( cont2, 72, 35, new VeriteIngot( 5000 ) ); PlaceItemIn( cont2, 79, 35, new ValoriteIngot( 5000 ) ); PlaceItemIn( cont2, 86, 35, new IronIngot( 5000 ) ); PlaceItemIn( cont2, 30, 59, new RedScales( 5000 ) ); PlaceItemIn( cont2, 36, 59, new YellowScales( 5000 ) ); PlaceItemIn( cont2, 42, 59, new BlackScales( 5000 ) ); PlaceItemIn( cont2, 48, 59, new GreenScales( 5000 ) ); PlaceItemIn( cont2, 54, 59, new WhiteScales( 5000 ) ); PlaceItemIn( cont2, 60, 59, new BlueScales( 5000 ) ); PlaceItemIn( cont, 40, 93, cont2 ); // End bag of raw materials // Begin bag of tools cont2 = new Bag(); cont2.Name = "Tool Bag"; cont2.DropItem( new TinkerTools( 30000 ) ); cont2.DropItem( new HousePlacementTool() ); cont2.DropItem( new DovetailSaw( 30000 ) ); cont2.DropItem( new Scissors() ); cont2.DropItem( new MortarPestle( 30000 ) ); cont2.DropItem( new ScribesPen( 30000 ) ); cont2.DropItem( new SmithHammer( 30000 ) ); cont2.DropItem( new TwoHandedAxe() ); cont2.DropItem( new FletcherTools( 30000 ) ); cont2.DropItem( new SewingKit( 30000 ) ); cont2.DropItem( new Clippers( 30000 ) ); PlaceItemIn( cont, 90, 93, cont2 ); // End bag of tools // Begin bag of runic tools cont2 = new Backpack(); cont2.Name = "Runic Tool Bag"; PlaceItemIn( cont2, 54, 74, new RunicHammer( CraftResource.DullCopper, 30000 ) ); PlaceItemIn( cont2, 64, 74, new RunicHammer( CraftResource.ShadowIron, 30000 ) ); PlaceItemIn( cont2, 74, 74, new RunicHammer( CraftResource.Copper, 30000 ) ); PlaceItemIn( cont2, 84, 74, new RunicHammer( CraftResource.Bronze, 30000 ) ); PlaceItemIn( cont2, 94, 74, new RunicHammer( CraftResource.Gold, 30000 ) ); PlaceItemIn( cont2, 104, 74, new RunicHammer( CraftResource.Agapite, 30000 ) ); PlaceItemIn( cont2, 114, 74, new RunicHammer( CraftResource.Verite, 30000 ) ); PlaceItemIn( cont2, 124, 74, new RunicHammer( CraftResource.Valorite, 30000 ) ); PlaceItemIn( cont2, 54, 90, new RunicSewingKit( CraftResource.SpinedLeather, 30000 ) ); PlaceItemIn( cont2, 64, 90, new RunicSewingKit( CraftResource.HornedLeather, 30000 ) ); PlaceItemIn( cont2, 74, 90, new RunicSewingKit( CraftResource.BarbedLeather, 30000 ) ); PlaceItemIn( cont2, 54, 107, new RunicFletchersTools( CraftResource.Oak, 30000 ) ); PlaceItemIn( cont2, 69, 107, new RunicFletchersTools( CraftResource.Ash, 30000 ) ); PlaceItemIn( cont2, 83, 107, new RunicFletchersTools( CraftResource.Yew, 30000 ) ); PlaceItemIn( cont2, 97, 107, new RunicFletchersTools( CraftResource.Heartwood, 30000 ) ); PlaceItemIn( cont2, 93, 90, new RunicDovetailSaw( CraftResource.Oak, 30000 ) ); PlaceItemIn( cont2, 102, 90, new RunicDovetailSaw( CraftResource.Ash, 30000 ) ); PlaceItemIn( cont2, 112, 90, new RunicDovetailSaw( CraftResource.Yew, 30000 ) ); PlaceItemIn( cont2, 122, 90, new RunicDovetailSaw( CraftResource.Heartwood, 30000 ) ); PlaceItemIn( cont, 65, 67, cont2 ); // End bag of runic tools // Begin bag of recipes cont2 = new Bag(); cont2.Name = "Bag of Recipes"; cont2.Hue = 2301; for ( int i = 0; i <= 92; i++ ) cont2.DropItem( new RecipeScroll( i ) ); PlaceItemIn( cont, 115, 93, cont2 ); // End bag of recipes // Begin bag of archery ammo cont2 = new Bag(); cont2.Name = "Bag Of Archery Ammo"; PlaceItemIn( cont2, 48, 76, new Arrow( 5000 ) ); PlaceItemIn( cont2, 72, 76, new Bolt( 5000 ) ); PlaceItemIn( cont, 65, 93, cont2 ); // End bag of archery ammo // Begin bag of Wood cont2 = new Bag(); cont2.Hue = 1321; cont2.Name = "Bag of Wood"; cont2.DropItem( new AshBoard( 500 ) ); cont2.DropItem( new YewBoard( 500 ) ); cont2.DropItem( new OakBoard( 500 ) ); cont2.DropItem( new HeartwoodBoard( 500 ) ); cont2.DropItem( new BloodwoodBoard( 500 ) ); cont2.DropItem( new FrostwoodBoard( 500 ) ); PlaceItemIn( cont, 139, 93, cont2 ); // End bag of Wood // Begin Bag of Imbuing Materials cont2 = new Bag(); cont2.Hue = 0x4B; cont2.Name = "Bag of Imbuing Materials"; foreach ( ImbuingResource resource in Enum.GetValues( typeof( ImbuingResource ) ) ) { try { Type type = ScriptCompiler.FindTypeByFullName( String.Format( "Server.Items.{0}", resource.ToString() ) ); Item item = (Item) Activator.CreateInstance( type ); item.Amount = 1000; cont2.DropItem( item ); } catch { } } PlaceItemIn( cont, 16, 67, cont2 ); // End Bag of Imbuing Materials // Begin Bag of Elven Materials cont2 = new Bag(); cont2.Hue = 1195; cont2.Name = "Bag of Elven Materials"; cont2.DropItem( new BarkFragment( 200 ) ); cont2.DropItem( new Blight( 200 ) ); cont2.DropItem( new BlueDiamond( 200 ) ); cont2.DropItem( new BrilliantAmber( 200 ) ); cont2.DropItem( new CapturedEssence( 200 ) ); cont2.DropItem( new Corruption( 200 ) ); cont2.DropItem( new DarkSapphire( 200 ) ); cont2.DropItem( new DiseasedBark( 200 ) ); cont2.DropItem( new DreadHornMane( 200 ) ); cont2.DropItem( new EcruCitrine( 200 ) ); cont2.DropItem( new EnchantedSwitch( 200 ) ); cont2.DropItem( new EyeOfTheTravesty( 200 ) ); cont2.DropItem( new FireRuby( 200 ) ); cont2.DropItem( new GrizzledBones( 200 ) ); cont2.DropItem( new HollowPrism( 200 ) ); cont2.DropItem( new JeweledFiligree( 200 ) ); cont2.DropItem( new LardOfParoxysmus( 200 ) ); cont2.DropItem( new LuminescentFungi( 200 ) ); cont2.DropItem( new Muculent( 200 ) ); cont2.DropItem( new ParasiticPlant( 200 ) ); cont2.DropItem( new PerfectEmerald( 200 ) ); cont2.DropItem( new PristineDreadHorn( 200 ) ); cont2.DropItem( new Putrefaction( 200 ) ); cont2.DropItem( new RunedPrism( 200 ) ); cont2.DropItem( new Scourge( 200 ) ); cont2.DropItem( new SwitchItem( 200 ) ); cont2.DropItem( new Taint( 200 ) ); cont2.DropItem( new Turquoise( 200 ) ); cont2.DropItem( new WhitePearl( 200 ) ); PlaceItemIn( cont, 40, 67, cont2 ); // End Bag of Elven Materials PlaceItemIn( bank, 88, 142, cont ); // End box of General Resources // Begin box of Armor Set Pieces cont = new WoodenBox(); cont.ItemID = 0xE7D; cont.Hue = 1194; cont.Name = "Armor Set Pieces"; // Begin Bag of Juggernaut Set cont2 = new Bag(); cont2.Hue = 1177; cont2.Name = "Juggernaut Set"; cont2.DropItem( new MalekisHonor() ); cont2.DropItem( new Evocaricus() ); PlaceItemIn( cont, 17, 63, cont2 ); // End Bag of Juggernaut Set // Begin Bag of Hunter Set Armor cont2 = new Bag(); cont2.Hue = 1177; cont2.Name = "Hunter Set Armor"; cont2.DropItem( new HunterGloves() ); cont2.DropItem( new HunterLeggings() ); cont2.DropItem( new HunterSleeves() ); cont2.DropItem( new HunterTunic() ); PlaceItemIn( cont, 40, 63, cont2 ); // End Bag of Hunter Set Armor // Begin Bag of Paladin Set Armor cont2 = new Bag(); cont2.Hue = 1177; cont2.Name = "Paladin Set Armor"; cont2.DropItem( new PlateOfHonorArms() ); cont2.DropItem( new PlateOfHonorChest() ); cont2.DropItem( new PlateOfHonorGloves() ); cont2.DropItem( new PlateOfHonorGorget() ); cont2.DropItem( new PlateOfHonorHelm() ); cont2.DropItem( new PlateOfHonorLegs() ); PlaceItemIn( cont, 65, 63, cont2 ); // End Bag of Paladin Set Armor // Begin Bag of Necromancer Set Armor cont2 = new Bag(); cont2.Hue = 1177; cont2.Name = "Necromancer Set Armor"; cont2.DropItem( new DeathsEssenceGloves() ); cont2.DropItem( new DeathsEssenceHelm() ); cont2.DropItem( new DeathsEssenceLeggings() ); cont2.DropItem( new DeathsEssenceSleeves() ); cont2.DropItem( new DeathsEssenceTunic() ); PlaceItemIn( cont, 90, 63, cont2 ); // End Bag of Necromancer Set Armor // Begin Bag of Acolyte Set Armor cont2 = new Bag(); cont2.Hue = 1177; cont2.Name = "Acolyte Set Armor"; cont2.DropItem( new AcolyteGloves() ); cont2.DropItem( new AcolyteLeggings() ); cont2.DropItem( new AcolyteSleeves() ); cont2.DropItem( new AcolyteTunic() ); PlaceItemIn( cont, 115, 63, cont2 ); // End Bag of Acolyte Set Armor // Begin Bag of Marksman Set cont2 = new Bag(); cont2.Hue = 1177; cont2.Name = "Marksman Set"; cont2.DropItem( new Feathernock() ); cont2.DropItem( new Swiftflight() ); PlaceItemIn( cont, 139, 63, cont2 ); // End Bag of Marksman Set // Begin Bag of Monstrous Interred Grizzle Set Armor cont2 = new Bag(); cont2.Hue = 1177; cont2.Name = "Monstrous Interred Grizzle Set Armor"; cont2.DropItem( new GauntletsOfTheGrizzle() ); cont2.DropItem( new GreavesOfTheGrizzle() ); cont2.DropItem( new SkullHelmOfTheGrizzle() ); cont2.DropItem( new TunicOfTheGrizzle() ); cont2.DropItem( new VambracesOfTheGrizzle() ); PlaceItemIn( cont, 17, 89, cont2 ); // End Bag of Monstrous Interred Grizzle Set Armor // Begin Bag of Warrior Set Armor cont2 = new Bag(); cont2.Hue = 1177; cont2.Name = "Warrior Set Armor"; cont2.DropItem( new DarkwoodChest() ); cont2.DropItem( new DarkwoodCrown() ); cont2.DropItem( new DarkwoodGauntlets() ); cont2.DropItem( new DarkwoodGorget() ); cont2.DropItem( new DarkwoodPauldrons() ); cont2.DropItem( new DarkwoodLeggings() ); PlaceItemIn( cont, 40, 89, cont2 ); // End Bag of Warrior Set Armor // Begin Bag of Mage Set Armor cont2 = new Bag(); cont2.Hue = 1177; cont2.Name = "Mage Set Armor"; cont2.DropItem( new LeafweaveGloves() ); cont2.DropItem( new LeafweaveLeggings() ); cont2.DropItem( new LeafweaveSleeves() ); cont2.DropItem( new LeafweaveTunic() ); PlaceItemIn( cont, 65, 89, cont2 ); // End Bag of Mage Set Armor // Begin Bag of Assassin Set Armor cont2 = new Bag(); cont2.Hue = 1177; cont2.Name = "Assassin Set Armor"; cont2.DropItem( new AssassinGloves() ); cont2.DropItem( new AssassinLeggings() ); cont2.DropItem( new AssassinSleeves() ); cont2.DropItem( new AssassinTunic() ); PlaceItemIn( cont, 90, 89, cont2 ); // End Bag of Assassin Set Armor // Begin Bag of Myrmidon Set Armor cont2 = new Bag(); cont2.Hue = 1177; cont2.Name = "Myrmidon Set Armor"; cont2.DropItem( new MyrmidonArms() ); cont2.DropItem( new MyrmidonChest() ); cont2.DropItem( new MyrmidonGloves() ); cont2.DropItem( new MyrmidonGorget() ); cont2.DropItem( new MyrmidonHelm() ); cont2.DropItem( new MyrmidonLegs() ); PlaceItemIn( cont, 115, 89, cont2 ); // End Bag of Myrmidon Set Armor PlaceItemIn( bank, 113, 142, cont ); // End box of Armor Set Pieces PlaceItemIn( bank, 118, 111, new ChargerOfTheFallen() ); }
public SallosRunebook(Runebook book) : base(0x02, ((book.Entries.Count-2) * 6) + 13) { m_Stream.Write((int)book.Serial); m_Stream.Write(false); m_Stream.Write((byte)0); m_Stream.Write((byte)0); m_Stream.Write((byte)0); m_Stream.Write((byte)book.Entries.Count); foreach (var entry in book.Entries) { m_Stream.Write(false); m_Stream.Write((Int16)entry.Location.X); m_Stream.Write((Int16)entry.Location.Y); m_Stream.Write((byte)entry.Map.MapIndex); } m_Stream.Write((int)0); }
public override bool OnDragDrop(Mobile from, Item dropped) { if (dropped is RecallScroll) { Item scrolls = dropped as Item; int amount = scrolls.Amount; if (amount <= 0) { return(false); //amount should not be zero, but better safe than sorry. } int count = 0; //this keeps track of the count of scrolls added to each runebook int total = 0; //this keeps track of the total added to all runebooks for (int x = 0; x < 51; x++) { if (Books[x].Entries.Count < 16) //check each runebook { if (Books[x].CurCharges < Books[x].MaxCharges) //if there is space for more charges... { from.Send(new PlaySound(0x249, from.Location)); if (amount > (Books[x].MaxCharges - Books[x].CurCharges)) //if the amount of scrolls is > than space free { count = Books[x].MaxCharges - Books[x].CurCharges; scrolls.Consume(count); Books[x].CurCharges = Books[x].MaxCharges; total += count; amount -= count; } else //otherwise we just add/delete whatever scrolls are left { Books[x].CurCharges += amount; scrolls.Delete(); total += amount; amount = 0; } } } if (amount <= 0) { from.SendMessage("{0} Recall Scrolls were added.", total.ToString()); return(true); } } } else if (dropped is RecallRune) { for (int x = 0; x < 51; x++) { if (Books[x].Entries.Count < 16) { RecallRune rune = (RecallRune)dropped; if (rune.Marked && rune.TargetMap != null) { Books[x].Entries.Add(new RunebookEntry(rune.Target, rune.TargetMap, rune.Description, rune.House)); dropped.Delete(); from.Send(new PlaySound(0x42, GetWorldLocation())); string desc = rune.Description; if (desc == null || (desc = desc.Trim()).Length == 0) { desc = "(indescript)"; } from.SendMessage(desc); return(true); } else { from.SendLocalizedMessage(502409); // This rune does not have a marked location. } } } from.SendLocalizedMessage(502401); // This runebook is full. } else if (dropped is Runebook) { if (((Runebook)dropped).Entries.Count > 0) { for (int x = 0; x < 51; x++) { if (Books[x].Entries.Count == 0) { Runebook rb = dropped as Runebook; for (int y = 0; y < rb.Entries.Count; y++) { RunebookEntry rune = rb.Entries[y] as RunebookEntry; Books[x].Entries.Add(new RunebookEntry(rune.Location, rune.Map, rune.Description, rune.House)); } Books[x].Name = rb.Name; dropped.Delete(); return(true); } } from.SendLocalizedMessage(502401); // This runebook is full. } else { from.SendMessage("Unable to add a blank runebook."); } } return(false); }
public static bool ADDRUNEBOOKENTRY( TriggerObject trigObject, Runebook book, string description, Map map, Point3D location) { if (book == null || map == null || map == Map.Internal || location == Point3D.Zero || book.Entries.Count >= 16) { return false; } if (description == null) { description = String.Empty; } book.Entries.Add(new RunebookEntry(location, map, description, null, 0)); return true; }
public SacredJourneySpell(Mobile caster, Item scroll, RunebookEntry entry, Runebook book) : base(caster, scroll, m_Info) { this.m_Entry = entry; this.m_Book = book; }
public static bool REMOVERUNEBOOKENTRY(TriggerObject trigObject, Runebook book, RunebookEntry entry) { return book != null && entry != null && book.Entries.Remove(entry); }
public PenOfWisdomGump(Mobile from, PenOfWisdom pen, Runebook sourcebook, Runebook copybook, List <RunebookEntry> list) : base(50, 50) { Container bp = from.Backpack; Pen = pen; SourceBook = sourcebook; CopyBook = copybook; MarkScrollAmount = bp.GetAmount(typeof(MarkScroll), true); RuneAmount = bp.GetAmount(typeof(RecallRune), true); Blank = copybook.MaxEntries - copybook.Entries.Count; if (list == null) { Checked = new List <RunebookEntry>(); } else { Checked = list; } Closable = false; Disposable = true; Dragable = true; int entrycount = SourceBook.Entries.Count; int y = entrycount <= 16 ? 0 : 25; AddPage(0); AddBackground(4, 39, 391, 313 + y, 9200); AddImageTiled(8, 45, 380, 53, 2624); AddHtmlLocalized(7, 50, 380, 53, 1115428, string.Format("@{0}@{1}@{2}@{3}", MarkScrollAmount.ToString(), RuneAmount.ToString(), Checked.Count, Blank.ToString()), EntryColor, false, false); // <CENTER>Pen of Wisdom<br>(Mark Scrolls: ~1_VAL~, Runes: ~2_VAL~ | Selected: ~3_VAL~, Blank: ~4_VAL~)</CENTER> AddImageTiled(8, 101, 188, 220, 2624); AddImageTiled(199, 101, 188, 220, 2624); AddButton(12, 325 + y, 4017, 4018, 20, GumpButtonType.Reply, 0); AddHtmlLocalized(48, 326 + y, 78, 20, 1006045, EntryColor, false, false); // Cancel AddButton(153, 325 + y, 4011, 4012, 21, GumpButtonType.Reply, 0); AddHtmlLocalized(189, 326 + y, 78, 20, 1115427, EntryColor, false, false); // Select All AddButton(309, 325 + y, 4023, 4024, 22, GumpButtonType.Reply, 0); AddHtmlLocalized(344, 326 + y, 78, 20, 1156596, EntryColor, false, false); // Okay string description; int page = 1; int yy = 0; AddPage(page); for (int i = 0; i < entrycount; i++) { if (page > 1) { AddButton(50, 325, 4014, 4015, 0, GumpButtonType.Page, page - 1); AddHtmlLocalized(85, 326, 150, 20, 1011067, EntryColor, false, false); // Previous page } description = SourceBook.Entries[i].Description; if (description == null) { if (i + 1 < 10) { description = "0" + (i + 1).ToString(); } else { description = (i + 1).ToString(); } } if (yy < 8) { AddButton(15, 110 + (yy * 25), Checked.Contains(SourceBook.Entries[i]) ? 211 : 210, Checked.Contains(SourceBook.Entries[i]) ? 210 : 211, i, GumpButtonType.Reply, 0); AddLabelCropped(45, 110 + (yy * 25), 115, 17, RunebookGump.GetMapHue(SourceBook.Entries[i].Map), string.Format("{0}", description)); } else { AddButton(205, 110 + ((yy - 8) * 25), Checked.Contains(SourceBook.Entries[i]) ? 211 : 210, Checked.Contains(SourceBook.Entries[i]) ? 210 : 211, i, GumpButtonType.Reply, 0); AddLabelCropped(235, 110 + ((yy - 8) * 25), 115, 17, RunebookGump.GetMapHue(SourceBook.Entries[i].Map), string.Format("{0}", description)); } yy++; bool pages = (i + 1) % 16 == 0; if (pages && entrycount - 1 != i) { AddButton(200, 325, 4005, 4006, 0, GumpButtonType.Page, page + 1); AddHtmlLocalized(235, 326, 150, 20, 1011066, EntryColor, false, false); // Next page page++; AddPage(page); yy = 0; } } }
public static ArrayList GETRUNEBOOKENTRIES(TriggerObject trigObject, Runebook book) { return book != null ? new ArrayList(book.Entries) : new ArrayList(); }
private bool validateRunebook(Mobile from, Runebook runebook) { for (int i = 0; i < m_RuneBooks.Count; i++) { if (((Item)m_RuneBooks[i]) == runebook) { from.SendMessage("That runebook is already in this library."); return false; } } return true; }
public RuneLibraryDungeonsTrammel (Mobile from) { library = new ArrayList(); readLine(); Runebook rb = new Runebook(0); int nameStart = 1; int nameEnd = 1; for( int i=0; i<size; i++ ) { if( rb.Entries.Count == 16 ) { rb.Name = "Dungeons Trammel " + nameStart + " - " + (nameEnd-1); library.Add(rb); rb = new Runebook(0); nameStart = nameEnd; } int x = int.Parse(xs[i]); int y = int.Parse(ys[i]); int z = int.Parse(zs[i]); Point3D targ = new Point3D(x, y, z); RecallRune rr = new RecallRune(); rr.Target = targ; rr.TargetMap = Map.Trammel; rr.Description = mapNums[i] + " " + mapNames[i]; rr.House = null; rr.Marked = true; rb.OnDragDrop(from, rr ); nameEnd++; } rb.Name = "Dungeons Trammel " + nameStart + " - " + (nameEnd-1); library.Add(rb); int height = 6; int offx; int offy; int offz; for(int p=0; p<library.Count; p++) { Runebook librarybook = (Runebook)library[p]; librarybook.Movable = false; librarybook.MaxCharges = 12; librarybook.CurCharges = 12; if(p < 4) { offx = from.Location.X-1; offy = from.Location.Y-1; offz = from.Location.Z+height; } else if(p >= 4 && p < 5) { offx = from.Location.X; offy = from.Location.Y-1; offz = from.Location.Z+height+2; height += 2; } else if(p >= 5 && p < 9) { offx = from.Location.X; offy = from.Location.Y-1; offz = from.Location.Z+height; } else { offx = from.Location.X+1; offy = from.Location.Y-1; offz = from.Location.Z+height; } Point3D loc = new Point3D(offx, offy, offz); librarybook.MoveToWorld(loc, from.Map); if( height == 0 ) height = 8; height -= 2; } }
private static void FillBankAOS( Mobile m ) { BankBox bank = m.BankBox; // The new AOS bankboxes don't have powerscrolls, they are automatically 'applied': for ( int i = 0; i < PowerScroll.Skills.Count; ++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, 16, 115, new Factions.Silver( 9000 ) ); PlaceItemIn( cont, 34, 115, 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, 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, new TinkerTools( 1000 ) ); PlaceItemIn( cont, 60, 35, new HousePlacementTool() ); PlaceItemIn( cont, 90, 35, new DovetailSaw( 1000 ) ); PlaceItemIn( cont, 30, 68, new Scissors() ); PlaceItemIn( cont, 45, 68, new MortarPestle( 1000 ) ); PlaceItemIn( cont, 75, 68, new ScribesPen( 1000 ) ); PlaceItemIn( cont, 90, 68, new SmithHammer( 1000 ) ); PlaceItemIn( cont, 30, 118, new TwoHandedAxe() ); PlaceItemIn( cont, 60, 118, new FletcherTools( 1000 ) ); PlaceItemIn( cont, 90, 118, new SewingKit( 1000 ) ); PlaceItemIn( cont, 36, 51, new RunicHammer( CraftResource.DullCopper, 1000 ) ); PlaceItemIn( cont, 42, 51, new RunicHammer( CraftResource.ShadowIron, 1000 ) ); PlaceItemIn( cont, 48, 51, new RunicHammer( CraftResource.Copper, 1000 ) ); PlaceItemIn( cont, 54, 51, new RunicHammer( CraftResource.Bronze, 1000 ) ); PlaceItemIn( cont, 61, 51, new RunicHammer( CraftResource.Gold, 1000 ) ); PlaceItemIn( cont, 67, 51, new RunicHammer( CraftResource.Agapite, 1000 ) ); PlaceItemIn( cont, 73, 51, new RunicHammer( CraftResource.Verite, 1000 ) ); PlaceItemIn( cont, 79, 51, new RunicHammer( CraftResource.Valorite, 1000 ) ); PlaceItemIn( cont, 36, 55, new RunicSewingKit( CraftResource.SpinedLeather, 1000 ) ); PlaceItemIn( cont, 42, 55, new RunicSewingKit( CraftResource.HornedLeather, 1000 ) ); PlaceItemIn( cont, 48, 55, new RunicSewingKit( CraftResource.BarbedLeather, 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, new Arrow( 5000 ) ); PlaceItemIn( cont, 72, 76, 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, new TreasureMap( 1, Map.Trammel ) ); PlaceItemIn( cont, 45, 35, new TreasureMap( 2, Map.Trammel ) ); PlaceItemIn( cont, 60, 35, new TreasureMap( 3, Map.Trammel ) ); PlaceItemIn( cont, 75, 35, new TreasureMap( 4, Map.Trammel ) ); PlaceItemIn( cont, 90, 35, new TreasureMap( 5, Map.Trammel ) ); PlaceItemIn( cont, 90, 35, new TreasureMap( 6, Map.Trammel ) ); PlaceItemIn( cont, 30, 50, new TreasureMap( 1, Map.Trammel ) ); PlaceItemIn( cont, 45, 50, new TreasureMap( 2, Map.Trammel ) ); PlaceItemIn( cont, 60, 50, new TreasureMap( 3, Map.Trammel ) ); PlaceItemIn( cont, 75, 50, new TreasureMap( 4, Map.Trammel ) ); PlaceItemIn( cont, 90, 50, new TreasureMap( 5, Map.Trammel ) ); PlaceItemIn( cont, 90, 50, new TreasureMap( 6, Map.Trammel ) ); PlaceItemIn( cont, 55, 100, new Lockpick( 30 ) ); PlaceItemIn( cont, 60, 100, 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, new BarbedLeather( 5000 ) ); PlaceItemIn( cont, 92, 68, new HornedLeather( 5000 ) ); PlaceItemIn( cont, 92, 76, new SpinedLeather( 5000 ) ); PlaceItemIn( cont, 92, 84, new Leather( 5000 ) ); PlaceItemIn( cont, 30, 118, new Cloth( 5000 ) ); PlaceItemIn( cont, 30, 84, new Board( 5000 ) ); PlaceItemIn( cont, 57, 80, new BlankScroll( 500 ) ); PlaceItemIn( cont, 30, 35, new DullCopperIngot( 5000 ) ); PlaceItemIn( cont, 37, 35, new ShadowIronIngot( 5000 ) ); PlaceItemIn( cont, 44, 35, new CopperIngot( 5000 ) ); PlaceItemIn( cont, 51, 35, new BronzeIngot( 5000 ) ); PlaceItemIn( cont, 58, 35, new GoldIngot( 5000 ) ); PlaceItemIn( cont, 65, 35, new AgapiteIngot( 5000 ) ); PlaceItemIn( cont, 72, 35, new VeriteIngot( 5000 ) ); PlaceItemIn( cont, 79, 35, new ValoriteIngot( 5000 ) ); PlaceItemIn( cont, 86, 35, new IronIngot( 5000 ) ); PlaceItemIn( cont, 30, 59, new RedScales( 5000 ) ); PlaceItemIn( cont, 36, 59, new YellowScales( 5000 ) ); PlaceItemIn( cont, 42, 59, new BlackScales( 5000 ) ); PlaceItemIn( cont, 48, 59, new GreenScales( 5000 ) ); PlaceItemIn( cont, 54, 59, new WhiteScales( 5000 ) ); PlaceItemIn( cont, 60, 59, 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 ) ); PlaceItemIn( cont, 105, 105, new BookOfBushido() ); //Default ctor = full PlaceItemIn( cont, 125, 105, new BookOfNinjitsu() ); //Default ctor = full Runebook runebook = new Runebook( 10 ); runebook.CurCharges = runebook.MaxCharges; PlaceItemIn( cont, 145, 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, new RecallRune() ); PlaceItemIn( cont, 141, 74, new FireHorn() ); PlaceItemIn( bank, 78, 169, cont ); // End bag of spell casting stuff // Begin bag of ethereals cont = new Backpack(); cont.Hue = 0x490; cont.Name = "Bag Of Ethy's!"; PlaceItemIn( cont, 45, 66, new EtherealHorse() ); PlaceItemIn( cont, 69, 82, new EtherealOstard() ); PlaceItemIn( cont, 93, 99, new EtherealLlama() ); PlaceItemIn( cont, 117, 115, new EtherealKirin() ); PlaceItemIn( cont, 45, 132, new EtherealUnicorn() ); PlaceItemIn( cont, 69, 66, new EtherealRidgeback() ); PlaceItemIn( cont, 93, 82, new EtherealSwampDragon() ); PlaceItemIn( cont, 117, 99, new EtherealBeetle() ); PlaceItemIn( bank, 38, 124, cont ); // End bag of ethereals // Begin first bag of artifacts cont = new Backpack(); cont.Hue = 0x48F; cont.Name = "Bag of Artifacts"; PlaceItemIn( cont, 45, 66, new TitansHammer() ); PlaceItemIn( cont, 69, 82, new InquisitorsResolution() ); PlaceItemIn( cont, 93, 99, new BladeOfTheRighteous() ); PlaceItemIn( cont, 117, 115, new ZyronicClaw() ); PlaceItemIn( bank, 58, 124, cont ); // End first bag of artifacts // Begin second bag of artifacts cont = new Backpack(); cont.Hue = 0x48F; cont.Name = "Bag of Artifacts"; PlaceItemIn( cont, 45, 66, new GauntletsOfNobility() ); PlaceItemIn( cont, 69, 82, new MidnightBracers() ); PlaceItemIn( cont, 93, 99, new VoiceOfTheFallenKing() ); PlaceItemIn( cont, 117, 115, new OrnateCrownOfTheHarrower() ); PlaceItemIn( cont, 45, 132, new HelmOfInsight() ); PlaceItemIn( cont, 69, 66, new HolyKnightsBreastplate() ); PlaceItemIn( cont, 93, 82, new ArmorOfFortune() ); PlaceItemIn( cont, 117, 99, new TunicOfFire() ); PlaceItemIn( cont, 45, 115, new LeggingsOfBane() ); PlaceItemIn( cont, 69, 132, new ArcaneShield() ); PlaceItemIn( cont, 93, 66, new Aegis() ); PlaceItemIn( cont, 117, 82, new RingOfTheVile() ); PlaceItemIn( cont, 45, 99, new BraceletOfHealth() ); PlaceItemIn( cont, 69, 115, new RingOfTheElements() ); PlaceItemIn( cont, 93, 132, new OrnamentOfTheMagician() ); PlaceItemIn( cont, 117, 66, new DivineCountenance() ); PlaceItemIn( cont, 45, 82, new JackalsCollar() ); PlaceItemIn( cont, 69, 99, new HuntersHeaddress() ); PlaceItemIn( cont, 93, 115, new HatOfTheMagi() ); PlaceItemIn( cont, 117, 132, new ShadowDancerLeggings() ); PlaceItemIn( cont, 45, 66, new SpiritOfTheTotem() ); PlaceItemIn( cont, 69, 82, new BladeOfInsanity() ); PlaceItemIn( cont, 93, 99, new AxeOfTheHeavens() ); PlaceItemIn( cont, 117, 115, new TheBeserkersMaul() ); PlaceItemIn( cont, 45, 132, new Frostbringer() ); PlaceItemIn( cont, 69, 66, new BreathOfTheDead() ); PlaceItemIn( cont, 93, 82, new TheDragonSlayer() ); PlaceItemIn( cont, 117, 99, new BoneCrusher() ); PlaceItemIn( cont, 45, 115, new StaffOfTheMagi() ); PlaceItemIn( cont, 69, 132, new SerpentsFang() ); PlaceItemIn( cont, 93, 66, new LegacyOfTheDreadLord() ); PlaceItemIn( cont, 117, 82, new TheTaskmaster() ); PlaceItemIn( cont, 45, 99, new TheDryadBow() ); PlaceItemIn( bank, 78, 124, cont ); // End second bag of artifacts // Begin bag of minor artifacts cont = new Backpack(); cont.Hue = 0x48F; cont.Name = "Bag of Minor Artifacts"; PlaceItemIn( cont, 45, 66, new LunaLance() ); PlaceItemIn( cont, 69, 82, new VioletCourage() ); PlaceItemIn( cont, 93, 99, new CavortingClub() ); PlaceItemIn( cont, 117, 115, new CaptainQuacklebushsCutlass() ); PlaceItemIn( cont, 45, 132, new NightsKiss() ); PlaceItemIn( cont, 69, 66, new ShipModelOfTheHMSCape() ); PlaceItemIn( cont, 93, 82, new AdmiralsHeartyRum() ); PlaceItemIn( cont, 117, 99, new CandelabraOfSouls() ); PlaceItemIn( cont, 45, 115, new IolosLute() ); PlaceItemIn( cont, 69, 132, new GwennosHarp() ); PlaceItemIn( cont, 93, 66, new ArcticDeathDealer() ); PlaceItemIn( cont, 117, 82, new EnchantedTitanLegBone() ); PlaceItemIn( cont, 45, 99, new NoxRangersHeavyCrossbow() ); PlaceItemIn( cont, 69, 115, new BlazeOfDeath() ); PlaceItemIn( cont, 93, 132, new DreadPirateHat() ); PlaceItemIn( cont, 117, 66, new BurglarsBandana() ); PlaceItemIn( cont, 45, 82, new GoldBricks() ); PlaceItemIn( cont, 69, 99, new AlchemistsBauble() ); PlaceItemIn( cont, 93, 115, new PhillipsWoodenSteed() ); PlaceItemIn( cont, 117, 132, new PolarBearMask() ); PlaceItemIn( cont, 45, 66, new BowOfTheJukaKing() ); PlaceItemIn( cont, 69, 82, new GlovesOfThePugilist() ); PlaceItemIn( cont, 93, 99, new OrcishVisage() ); PlaceItemIn( cont, 117, 115, new StaffOfPower() ); PlaceItemIn( cont, 45, 132, new ShieldOfInvulnerability() ); PlaceItemIn( cont, 69, 66, new HeartOfTheLion() ); PlaceItemIn( cont, 93, 82, new ColdBlood() ); PlaceItemIn( cont, 117, 99, new GhostShipAnchor() ); PlaceItemIn( cont, 45, 115, new SeahorseStatuette() ); PlaceItemIn( cont, 69, 132, new WrathOfTheDryad() ); PlaceItemIn( cont, 93, 66, new PixieSwatter() ); for( int i = 0; i < 10; i++ ) PlaceItemIn( cont, 117, 128, new MessageInABottle( Utility.RandomBool() ? Map.Trammel : Map.Felucca, 4 ) ); PlaceItemIn( bank, 18, 124, cont ); if( Core.SE ) { cont = new Bag(); cont.Hue = 0x501; cont.Name = "Tokuno Minor Artifacts"; PlaceItemIn( cont, 42, 70, new Exiler() ); PlaceItemIn( cont, 38, 53, new HanzosBow() ); PlaceItemIn( cont, 45, 40, new TheDestroyer() ); PlaceItemIn( cont, 92, 80, new DragonNunchaku() ); PlaceItemIn( cont, 42, 56, new PeasantsBokuto() ); PlaceItemIn( cont, 44, 71, new TomeOfEnlightenment() ); PlaceItemIn( cont, 35, 35, new ChestOfHeirlooms() ); PlaceItemIn( cont, 29, 0, new HonorableSwords() ); PlaceItemIn( cont, 49, 85, new AncientUrn() ); PlaceItemIn( cont, 51, 58, new FluteOfRenewal() ); PlaceItemIn( cont, 70, 51, new PigmentsOfTokuno() ); PlaceItemIn( cont, 40, 79, new AncientSamuraiDo() ); PlaceItemIn( cont, 51, 61, new LegsOfStability() ); PlaceItemIn( cont, 88, 78, new GlovesOfTheSun() ); PlaceItemIn( cont, 55, 62, new AncientFarmersKasa() ); PlaceItemIn( cont, 55, 83, new ArmsOfTacticalExcellence() ); PlaceItemIn( cont, 50, 85, new DaimyosHelm() ); PlaceItemIn( cont, 52, 78, new BlackLotusHood() ); PlaceItemIn( cont, 52, 79, new DemonForks() ); PlaceItemIn( cont, 33, 49, new PilferedDancerFans() ); PlaceItemIn( bank, 58, 124, cont ); } if( Core.SE ) //This bag came only after SE. { cont = new Bag(); cont.Name = "Bag of Bows"; PlaceItemIn( cont, 31, 84, new Bow() ); PlaceItemIn( cont, 78, 74, new CompositeBow() ); PlaceItemIn( cont, 53, 71, new Crossbow() ); PlaceItemIn( cont, 56, 39, new HeavyCrossbow() ); PlaceItemIn( cont, 82, 72, new RepeatingCrossbow() ); PlaceItemIn( cont, 49, 45, new Yumi() ); for( int i = 0; i < cont.Items.Count; i++ ) { BaseRanged bow = cont.Items[i] as BaseRanged; if( bow != null ) { bow.Attributes.WeaponSpeed = 35; bow.Attributes.WeaponDamage = 35; } } PlaceItemIn( bank, 108, 135, cont ); } }
private static void FillBankAOS(Mobile m) { BankBox bank = m.BankBox; // 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 = 325; Container cont; //Here is where you can add new stuff to bank box, but need to follow the numbers... // Begin box of money cont = new WoodenBox(); cont.ItemID = 0xE7D; cont.Hue = 0x489; //Example...PlaceItemIn(cont, 16, 51, new VikingSword() );See how first number is //always 12 away... PlaceItemIn(cont, 28, 51, new Scissors()); PlaceItemIn(cont, 40, 51, new EtherealUnicorn()); PlaceItemIn(cont, 52, 51, new EtherealHorse()); PlaceItemIn(cont, 64, 51, new BankCheck(100000)); //PlaceItemIn(cont, 76, 51, new NewCharStartupArmorBag()); ///PlaceItemIn(cont, 88, 51, new LargeMarbleDeed()); 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, 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, new TinkerTools( 1000 ) ); PlaceItemIn( cont, 60, 35, new HousePlacementTool() ); PlaceItemIn( cont, 90, 35, new DovetailSaw( 1000 ) ); PlaceItemIn( cont, 30, 68, new Scissors() ); PlaceItemIn( cont, 45, 68, new MortarPestle( 1000 ) ); PlaceItemIn( cont, 75, 68, new ScribesPen( 1000 ) ); PlaceItemIn( cont, 90, 68, new SmithHammer( 1000 ) ); PlaceItemIn( cont, 30, 118, new TwoHandedAxe() ); PlaceItemIn( cont, 60, 118, new FletcherTools( 1000 ) ); PlaceItemIn( cont, 90, 118, new SewingKit( 1000 ) ); PlaceItemIn( cont, 36, 51, new RunicHammer( CraftResource.DullCopper, 1000 ) ); PlaceItemIn( cont, 42, 51, new RunicHammer( CraftResource.ShadowIron, 1000 ) ); PlaceItemIn( cont, 48, 51, new RunicHammer( CraftResource.Copper, 1000 ) ); PlaceItemIn( cont, 54, 51, new RunicHammer( CraftResource.Bronze, 1000 ) ); PlaceItemIn( cont, 61, 51, new RunicHammer( CraftResource.Gold, 1000 ) ); PlaceItemIn( cont, 67, 51, new RunicHammer( CraftResource.Agapite, 1000 ) ); PlaceItemIn( cont, 73, 51, new RunicHammer( CraftResource.Verite, 1000 ) ); PlaceItemIn( cont, 79, 51, new RunicHammer( CraftResource.Valorite, 1000 ) ); PlaceItemIn( cont, 36, 55, new RunicSewingKit( CraftResource.SpinedLeather, 1000 ) ); PlaceItemIn( cont, 42, 55, new RunicSewingKit( CraftResource.HornedLeather, 1000 ) ); PlaceItemIn( cont, 48, 55, new RunicSewingKit( CraftResource.BarbedLeather, 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, new Arrow( 5000 ) ); PlaceItemIn( cont, 72, 76, 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, new TreasureMap( 1, Map.Trammel ) ); PlaceItemIn( cont, 45, 35, new TreasureMap( 2, Map.Trammel ) ); PlaceItemIn( cont, 60, 35, new TreasureMap( 3, Map.Trammel ) ); PlaceItemIn( cont, 75, 35, new TreasureMap( 4, Map.Trammel ) ); PlaceItemIn( cont, 90, 35, new TreasureMap( 5, Map.Trammel ) ); PlaceItemIn( cont, 90, 35, new TreasureMap( 6, Map.Trammel ) ); PlaceItemIn( cont, 30, 50, new TreasureMap( 1, Map.Trammel ) ); PlaceItemIn( cont, 45, 50, new TreasureMap( 2, Map.Trammel ) ); PlaceItemIn( cont, 60, 50, new TreasureMap( 3, Map.Trammel ) ); PlaceItemIn( cont, 75, 50, new TreasureMap( 4, Map.Trammel ) ); PlaceItemIn( cont, 90, 50, new TreasureMap( 5, Map.Trammel ) ); PlaceItemIn( cont, 90, 50, new TreasureMap( 6, Map.Trammel ) ); PlaceItemIn( cont, 55, 100, new Lockpick( 30 ) ); PlaceItemIn( cont, 60, 100, 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, new BarbedLeather( 5000 ) ); PlaceItemIn( cont, 92, 68, new HornedLeather( 5000 ) ); PlaceItemIn( cont, 92, 76, new SpinedLeather( 5000 ) ); PlaceItemIn( cont, 92, 84, new Leather( 5000 ) ); PlaceItemIn( cont, 30, 118, new Cloth( 5000 ) ); PlaceItemIn( cont, 30, 84, new Board( 5000 ) ); PlaceItemIn( cont, 57, 80, new BlankScroll( 500 ) ); PlaceItemIn( cont, 30, 35, new DullCopperIngot( 5000 ) ); PlaceItemIn( cont, 37, 35, new ShadowIronIngot( 5000 ) ); PlaceItemIn( cont, 44, 35, new CopperIngot( 5000 ) ); PlaceItemIn( cont, 51, 35, new BronzeIngot( 5000 ) ); PlaceItemIn( cont, 58, 35, new GoldIngot( 5000 ) ); PlaceItemIn( cont, 65, 35, new AgapiteIngot( 5000 ) ); PlaceItemIn( cont, 72, 35, new VeriteIngot( 5000 ) ); PlaceItemIn( cont, 79, 35, new ValoriteIngot( 5000 ) ); PlaceItemIn( cont, 86, 35, new IronIngot( 5000 ) ); PlaceItemIn( cont, 30, 59, new RedScales( 5000 ) ); PlaceItemIn( cont, 36, 59, new YellowScales( 5000 ) ); PlaceItemIn( cont, 42, 59, new BlackScales( 5000 ) ); PlaceItemIn( cont, 48, 59, new GreenScales( 5000 ) ); PlaceItemIn( cont, 54, 59, new WhiteScales( 5000 ) ); PlaceItemIn( cont, 60, 59, 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 RecallRune(10) ); //PlaceItemIn( cont, 105, 105, new BookOfBushido() ); //Default ctor = full //PlaceItemIn( cont, 125, 105, new BookOfNinjitsu() ); //Default ctor = full Runebook runebook = new Runebook(10); runebook.CurCharges = runebook.MaxCharges; PlaceItemIn(cont, 145, 105, runebook); Item toHue = new BagOfReagents(50); toHue.Hue = 0x2D; PlaceItemIn(cont, 45, 150, toHue); toHue = new BagOfNecroReagents(50); 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, new RecallRune() ); //PlaceItemIn( cont, 141, 74, new FireHorn() ); PlaceItemIn(bank, 78, 169, cont); }
public InternalPrompt( Runebook book ) { m_Book = book; }
public static void GetListOfItems(Mobile from) { //List of Item Locations Message //***Put item into Backpack #region Backpack from.SendMessage("You will find new items in your Backpack."); from.Backpack.AddItem(new KillBook()); //http://www.runuo.com/forums/custom-script-releases/80034-book-kills.html from.Backpack.AddItem(new AnNoxGuideBook()); #endregion //***Drop item on the Ground #region Ground //put item under player on the ground from.SendMessage("You will find new items on the ground near by."); new SewingKit().MoveToWorld(from.Location, from.Map); new Bible().MoveToWorld(from.Location, from.Map); //http://www.runuo.com/forums/custom-script-releases/71826-runuo-2-0-rc1-lokais-xml-bible-system.html new BeltranGuideBook().MoveToWorld(from.Location, from.Map); //http://www.runuo.com/forums/runuo-post-archive/34074-osi-library-books.html new PrimerArmsBook().MoveToWorld(from.Location, from.Map); //http://www.runuo.com/forums/runuo-post-archive/34074-osi-library-books.html //put item near player on the ground new BagOfDresses().MoveToWorld(new Point3D(from.X + Utility.RandomMinMax(-5, 5), from.Y + Utility.RandomMinMax(-5, 5), from.Z), from.Map); new BagOfJewlery().MoveToWorld(new Point3D(from.X + Utility.RandomMinMax(-5, 5), from.Y + Utility.RandomMinMax(-5, 5), from.Z), from.Map); new BagOfShirts().MoveToWorld(new Point3D(from.X + Utility.RandomMinMax(-5, 5), from.Y + Utility.RandomMinMax(-5, 5), from.Z), from.Map); new BagOfPants().MoveToWorld(new Point3D(from.X + Utility.RandomMinMax(-5, 5), from.Y + Utility.RandomMinMax(-5, 5), from.Z), from.Map); new BagOfShoes().MoveToWorld(new Point3D(from.X + Utility.RandomMinMax(-5, 5), from.Y + Utility.RandomMinMax(-5, 5), from.Z), from.Map); new BagOfCloaks().MoveToWorld(new Point3D(from.X + Utility.RandomMinMax(-5, 5), from.Y + Utility.RandomMinMax(-5, 5), from.Z), from.Map); new BagOfHats().MoveToWorld(new Point3D(from.X + Utility.RandomMinMax(-5, 5), from.Y + Utility.RandomMinMax(-5, 5), from.Z), from.Map); #endregion //***Put item into Bank #region Bank from.SendMessage("You will find new items in your Bank."); BankBox bank = from.BankBox; Container cont; // Begin box of money cont = new WoodenBox(); cont.Name = "Money Box"; cont.ItemID = 0xE7D; cont.Hue = 0x489; PlaceItemIn(cont, 64, 51, new BankCheck(5000)); PlaceItemIn(cont, 16, 115, new Factions.Silver(1000)); PlaceItemIn(cont, 34, 115, new Gold(1000)); PlaceItemIn(bank, 18, 169, cont); // Begin bag of archery ammo cont = new Bag(); cont.Name = "Bag Of Archery Ammo"; PlaceItemIn(cont, 48, 76, new Arrow(50)); PlaceItemIn(cont, 72, 76, new Bolt(50)); PlaceItemIn(bank, 118, 124, cont); // Begin bag of raw materials cont = new Bag(); cont.Hue = 0x835; cont.Name = "Raw Materials Bag"; PlaceItemIn(cont, 92, 84, new Leather(50)); PlaceItemIn(cont, 30, 118, new Cloth(50)); PlaceItemIn(cont, 30, 84, new Board(50)); PlaceItemIn(cont, 57, 80, new BlankScroll(50)); PlaceItemIn(bank, 98, 169, cont); // 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)); PlaceItemIn(cont, 105, 105, new BookOfBushido()); //Default ctor = full PlaceItemIn(cont, 125, 105, new BookOfNinjitsu()); //Default ctor = full Runebook runebook = new Runebook(10); runebook.CurCharges = runebook.MaxCharges; PlaceItemIn(cont, 145, 105, runebook); Item toHue = new BagOfReagents(50); toHue.Hue = 0x2D; toHue.Name = "Bag of Basic Reagents"; PlaceItemIn(cont, 45, 150, toHue); toHue = new BagOfNecroReagents(50); toHue.Hue = 0x488; toHue.Name = "Bag of Necro Reagents"; PlaceItemIn(cont, 65, 150, toHue); toHue = new BagOfAllReagents(50); toHue.Hue = 0x2D; toHue.Name = "Bag of All Reagents"; PlaceItemIn(cont, 140, 150, toHue); for (int i = 0; i < 9; ++i) PlaceItemIn(cont, 45 + (i * 10), 75, new RecallRune()); PlaceItemIn(cont, 141, 74, new FireHorn()); PlaceItemIn(bank, 78, 169, cont); #endregion }