public override void OnClick() { if (m_From.CheckAlive() && m_Book.IsChildOf(m_From.Backpack)) { m_From.Prompt = new NameBookPrompt(m_Book); m_From.SendLocalizedMessage(1062479); } }
public override void OnResponse(Mobile from, string text) { if (text.Length > 40) { text = text.Substring(0, 40); } if (from.CheckAlive() && m_Book.IsChildOf(from.Backpack)) { m_Book.BookName = Utility.FixHtml(text.Trim()); from.SendMessage("The power scroll book's name has been changed."); } }
public PowerScrollBookGump(PlayerMobile from, PowerScrollBook book, int page, ArrayList list) : base(12, 24) { from.CloseGump(typeof(PowerScrollBookGump)); from.CloseGump(typeof(PowerScrollFilterGump)); m_From = from; m_Book = book; m_Page = page; if (list == null) { list = new ArrayList(book.Entries.Count); for (int i = 0; i < book.Entries.Count; ++i) { object obj = book.Entries[i]; if (CheckFilter(obj)) list.Add(obj); } } m_List = list; int index = GetIndexForPage(page); int count = GetCountForIndex(index); int tableIndex = 0; PlayerVendor pv = book.RootParent as PlayerVendor; bool canDrop = book.IsChildOf(from.Backpack); bool canBuy = (pv != null); bool canPrice = (canDrop || canBuy); if (canBuy) { VendorItem vi = pv.GetVendorItem(book); canBuy = (vi != null && !vi.IsForSale); } int width = 600; if (!canPrice) width = 516; X = (624 - width) / 2; AddPage(0); AddBackground(10, 10, width, 439, 5054); AddImageTiled(18, 20, width - 17, 420, 2624); if (canPrice) { AddImageTiled(573, 64, 24, 352, 200); AddImageTiled(493, 64, 78, 352, 1416); } if (canDrop) AddImageTiled(24, 64, 32, 352, 1416); AddImageTiled(58, 64, 36, 352, 200); AddImageTiled(96, 64, 133, 352, 1416); AddImageTiled(231, 64, 80, 352, 200); AddImageTiled(313, 64, 100, 352, 1416); AddImageTiled(415, 64, 76, 352, 200); for (int i = index; i < (index + count) && i >= 0 && i < list.Count; ++i) { object obj = list[i]; if (!CheckFilter(obj)) continue; AddImageTiled(24, 94 + (tableIndex * 32), canPrice ? 573 : 489, 2, 2624); if (obj is PowerScrollBookEntry) ++tableIndex; } AddAlphaRegion(18, 20, width - 17, 420); AddImage(5, 5, 10460); AddImage(width - 15, 5, 10460); AddImage(5, 424, 10460); AddImage(width - 15, 424, 10460); AddHtmlLocalized(canPrice ? 266 : 224, 32, 200, 32, 1062220, LabelColor, false, false); AddLabel(137, 64, 1149, @"Skill Name"); AddLabel(331, 64, 1149, @"Skill Value"); AddButton(35, 32, 4005, 4007, 1, GumpButtonType.Reply, 0); AddHtmlLocalized(70, 32, 200, 32, 1062476, LabelColor, false, false); PowerScrollFilter f = (book.Filter); if (f.IsDefault) AddHtmlLocalized(canPrice ? 470 : 386, 32, 120, 32, 1062475, 16927, false, false); else if (from.UseOwnFilter) AddHtmlLocalized(canPrice ? 470 : 386, 32, 120, 32, 1062451, 16927, false, false); else AddHtmlLocalized(canPrice ? 470 : 386, 32, 120, 32, 1062230, 16927, false, false); AddButton(375, 416, 4017, 4018, 0, GumpButtonType.Reply, 0); AddHtmlLocalized(410, 416, 120, 20, 1011441, LabelColor, false, false); if (canDrop) AddHtmlLocalized(26, 64, 50, 32, 1062212, LabelColor, false, false); if (canPrice) { AddHtmlLocalized(516, 64, 200, 32, 1062218, LabelColor, false, false); if (canBuy) AddHtmlLocalized(576, 64, 200, 32, 1062219, LabelColor, false, false); else AddHtmlLocalized(576, 64, 200, 32, 1062227, LabelColor, false, false); } tableIndex = 0; if (page > 0) { AddButton(75, 416, 4014, 4016, 2, GumpButtonType.Reply, 0); AddHtmlLocalized(110, 416, 150, 20, 1011067, LabelColor, false, false); } if (GetIndexForPage(page + 1) < list.Count) { AddButton(225, 416, 4005, 4007, 3, GumpButtonType.Reply, 0); AddHtmlLocalized(260, 416, 150, 20, 1011066, LabelColor, false, false); } for (int i = index; i < (index + count) && i >= 0 && i < list.Count; ++i) { object obj = list[i]; if (!CheckFilter(obj)) continue; if (obj is PowerScrollBookEntry) { PowerScrollBookEntry e = (PowerScrollBookEntry)obj; int y = 96 + (tableIndex++ * 32); if (canDrop) AddButton(35, y + 2, 5602, 5606, 4 + (i * 2), GumpButtonType.Reply, 0); if (canDrop || (canBuy && e.Price > 0)) { AddButton(579, y + 2, 2117, 2118, 5 + (i * 2), GumpButtonType.Reply, 0); AddLabel(495, y, 1152, e.Price.ToString("N0")); } AddLabel(103, y, 1149, from.Skills[e.Skill].Name); AddLabel(350, y, 1152, e.SkillValue.ToString()); } } }
public PowerScrollBookGump(PlayerMobile from, PowerScrollBook book, int page, ArrayList list) : base(12, 24) { from.CloseGump(typeof(PowerScrollBookGump)); from.CloseGump(typeof(PowerScrollFilterGump)); m_From = from; m_Book = book; m_Page = page; if (list == null) { list = new ArrayList(book.Entries.Count); for (int i = 0; i < book.Entries.Count; ++i) { object obj = book.Entries[i]; if (CheckFilter(obj)) { list.Add(obj); } } } m_List = list; int index = GetIndexForPage(page); int count = GetCountForIndex(index); int tableIndex = 0; PlayerVendor pv = book.RootParent as PlayerVendor; bool canDrop = book.IsChildOf(from.Backpack); bool canBuy = (pv != null); bool canPrice = (canDrop || canBuy); if (canBuy) { VendorItem vi = pv.GetVendorItem(book); canBuy = (vi != null && !vi.IsForSale); } int width = 600; if (!canPrice) { width = 516; } X = (624 - width) / 2; AddPage(0); AddBackground(10, 10, width, 439, 5054); AddImageTiled(18, 20, width - 17, 420, 2624); if (canPrice) { AddImageTiled(573, 64, 24, 352, 200); AddImageTiled(493, 64, 78, 352, 1416); } if (canDrop) { AddImageTiled(24, 64, 32, 352, 1416); } AddImageTiled(58, 64, 36, 352, 200); AddImageTiled(96, 64, 133, 352, 1416); AddImageTiled(231, 64, 80, 352, 200); AddImageTiled(313, 64, 100, 352, 1416); AddImageTiled(415, 64, 76, 352, 200); for (int i = index; i < (index + count) && i >= 0 && i < list.Count; ++i) { object obj = list[i]; if (!CheckFilter(obj)) { continue; } AddImageTiled(24, 94 + (tableIndex * 32), canPrice ? 573 : 489, 2, 2624); if (obj is PowerScrollBookEntry) { ++tableIndex; } } AddAlphaRegion(18, 20, width - 17, 420); AddImage(5, 5, 10460); AddImage(width - 15, 5, 10460); AddImage(5, 424, 10460); AddImage(width - 15, 424, 10460); AddHtmlLocalized(canPrice ? 266 : 224, 32, 200, 32, 1062220, LabelColor, false, false); AddLabel(137, 64, 1149, @"Skill Name"); AddLabel(331, 64, 1149, @"Skill Value"); AddButton(35, 32, 4005, 4007, 1, GumpButtonType.Reply, 0); AddHtmlLocalized(70, 32, 200, 32, 1062476, LabelColor, false, false); PowerScrollFilter f = (book.Filter); if (f.IsDefault) { AddHtmlLocalized(canPrice ? 470 : 386, 32, 120, 32, 1062475, 16927, false, false); } else if (from.UseOwnFilter) { AddHtmlLocalized(canPrice ? 470 : 386, 32, 120, 32, 1062451, 16927, false, false); } else { AddHtmlLocalized(canPrice ? 470 : 386, 32, 120, 32, 1062230, 16927, false, false); } AddButton(375, 416, 4017, 4018, 0, GumpButtonType.Reply, 0); AddHtmlLocalized(410, 416, 120, 20, 1011441, LabelColor, false, false); if (canDrop) { AddHtmlLocalized(26, 64, 50, 32, 1062212, LabelColor, false, false); } if (canPrice) { AddHtmlLocalized(516, 64, 200, 32, 1062218, LabelColor, false, false); if (canBuy) { AddHtmlLocalized(576, 64, 200, 32, 1062219, LabelColor, false, false); } else { AddHtmlLocalized(576, 64, 200, 32, 1062227, LabelColor, false, false); } } tableIndex = 0; if (page > 0) { AddButton(75, 416, 4014, 4016, 2, GumpButtonType.Reply, 0); AddHtmlLocalized(110, 416, 150, 20, 1011067, LabelColor, false, false); } if (GetIndexForPage(page + 1) < list.Count) { AddButton(225, 416, 4005, 4007, 3, GumpButtonType.Reply, 0); AddHtmlLocalized(260, 416, 150, 20, 1011066, LabelColor, false, false); } for (int i = index; i < (index + count) && i >= 0 && i < list.Count; ++i) { object obj = list[i]; if (!CheckFilter(obj)) { continue; } if (obj is PowerScrollBookEntry) { PowerScrollBookEntry e = (PowerScrollBookEntry)obj; int y = 96 + (tableIndex++ *32); if (canDrop) { AddButton(35, y + 2, 5602, 5606, 4 + (i * 2), GumpButtonType.Reply, 0); } if (canDrop || (canBuy && e.Price > 0)) { AddButton(579, y + 2, 2117, 2118, 5 + (i * 2), GumpButtonType.Reply, 0); AddLabel(495, y, 1152, e.Price.ToString("N0")); } AddLabel(103, y, 1149, from.Skills[e.Skill].Name); AddLabel(350, y, 1152, e.SkillValue.ToString()); } } }
public override void OnResponse(Server.Network.NetState sender, RelayInfo info) { int index = info.ButtonID; switch (index) { case 0: { break; } case 1: { m_From.SendGump(new PowerScrollFilterGump(m_From, m_Book)); break; } case 2: { if (m_Page > 0) { m_From.SendGump(new PowerScrollBookGump(m_From, m_Book, m_Page - 1, m_List)); } return; } case 3: { if (GetIndexForPage(m_Page + 1) < m_List.Count) { m_From.SendGump(new PowerScrollBookGump(m_From, m_Book, m_Page + 1, m_List)); } break; } default: { bool canDrop = m_Book.IsChildOf(m_From.Backpack); bool canPrice = canDrop || (m_Book.RootParent is PlayerVendor); index -= 4; int type = index % 2; index /= 2; if (index < 0 || index >= m_List.Count) { break; } object obj = m_List[index]; if (!m_Book.Entries.Contains(obj)) { m_From.SendLocalizedMessage(1062382); break; } if (type == 0) { if (m_Book.IsChildOf(m_From.Backpack)) { Item item = Reconstruct(obj); if (item != null) { m_From.AddToBackpack(item); m_From.SendMessage("The power scroll has been placed in your backpack."); m_Book.Entries.Remove(obj); m_Book.InvalidateProperties(); if (m_Book.Entries.Count > 0) { m_From.SendGump(new PowerScrollBookGump(m_From, m_Book, 0, null)); } else { m_From.SendLocalizedMessage(1062381); } } else { m_From.SendMessage("Internal error. The power scroll could not be reconstructed."); } } } else { if (m_Book.IsChildOf(m_From.Backpack)) { m_From.Prompt = new SetPricePrompt(m_Book, obj, m_Page, m_List); m_From.SendMessage("Type in a price for the power scroll:"); } else if (m_Book.RootParent is PlayerVendor) { PlayerVendor pv = (PlayerVendor)m_Book.RootParent; VendorItem vi = pv.GetVendorItem(m_Book); int price = 0; if (vi != null && !vi.IsForSale) { if (obj is PowerScrollBookEntry) { price = ((PowerScrollBookEntry)obj).Price; } } if (price == 0) { m_From.SendLocalizedMessage(1062382); } else { m_From.SendGump(new PowerScrollBuyGump(m_From, m_Book, obj, price)); } } } break; } } }