public CatSelGump(string sys, ACCGumpParams subParams, PGLocation loc) : base(0, 0) { if (sys == null || subParams == null || loc == null || m_CategoryList == null) { return; } Sys = sys; if (subParams is PGGumpParams) { Params = subParams as PGGumpParams; } Loc = loc; AddPage(0); AddBackground(640, 0, 160, 400, 5120); for (int i = 0; i < PGSystem.CategoryList.Count; i++) { PGCategory PGC = m_CategoryList[i]; if (PGC != null) { AddButton(650, 10 + i * 30, 2501, 2501, 1 + i, GumpButtonType.Reply, 0); AddLabel(675, 10 + i * 30, 1153, PGC.Name); } } }
public SysChoiceGump(string sys, ACCGumpParams subParams, List <PGCategory> list) : base(0, 0) { Sys = sys; if (subParams is PGGumpParams) { Params = subParams as PGGumpParams; } List = list; AddPage(0); AddBackground(250, 245, 300, 90, 5120); AddLabel(282, 260, 1153, "Overwrite or Add To current system?"); AddButton(280, 290, 2445, 2445, 1, GumpButtonType.Reply, 0); AddButton(410, 290, 2445, 2445, 2, GumpButtonType.Reply, 0); AddLabel(300, 291, 1153, "Overwrite"); AddLabel(442, 291, 1153, "Add To"); }
/* ID's * 101 = Button List Mobiles * 102 = Button List Items * 103 = Button List Types * 104 = Button Previous * 105 = Button Next * 106 = Button Back to List * 1000+ = Button Selections */ public override void OnResponse(NetState state, RelayInfo info, ACCGumpParams subParams) { if (!Running || info.ButtonID == 0) { return; } if (subParams is CMGumpParams) { Params = subParams as CMGumpParams; } CMGumpParams newParams = new CMGumpParams(); //Switch to List Mobiles if (info.ButtonID == 101) { newParams.PageName = Pages.ListMobiles; } //Switch to List Items else if (info.ButtonID == 102) { newParams.PageName = Pages.ListItems; } //Previous Page else if (info.ButtonID == 104) { newParams.PageIndex = Params.PageIndex - 1; } //Next Page else if (info.ButtonID == 105) { newParams.PageIndex = Params.PageIndex + 1; } //Back to List else if (info.ButtonID == 106) { newParams.PageName = Pages.Home; } //Select Item from List else if (info.ButtonID >= 1000) { int selectedID = info.ButtonID - 1000; if (selectedID < 0 || selectedID >= m_DictionaryOfModuleLists.Count) { return; } switch ((int)Params.PageName) { //Change page to List Modules with serial of selected item case (int)Pages.ListItems: { if (selectedID < 0 || selectedID >= m_ItemList.Count) { return; } newParams.PageName = Pages.ListModulesFor; newParams.SelectedSerial = m_ItemList[selectedID].Serial; newParams.PageIndex = 0; break; } //Change page to List Modules with serial of selected mobile case (int)Pages.ListMobiles: { if (selectedID < 0 || selectedID >= m_MobileList.Count) { return; } newParams.PageName = Pages.ListModulesFor; newParams.SelectedSerial = m_MobileList[selectedID].Serial; newParams.PageIndex = 0; break; } //Open the Edit Module Gump //Not implemented yet case (int)Pages.ListModulesFor: { if (selectedID < 0 || selectedID >= m_ModuleList.Count) { return; } if (m_ModuleList[selectedID] == null) { return; } Timer.DelayCall(TimeSpan.FromSeconds(1.0), new TimerStateCallback(SendEMG), state.Mobile); break; } } } state.Mobile.SendGump(new ACCGump(state.Mobile, this.ToString(), newParams)); }
public override void Gump(Mobile from, Gump gump, ACCGumpParams subParams) { gump.AddButton(190, 40, 2445, 2445, 101, GumpButtonType.Reply, 0); gump.AddLabel(204, 42, 1153, "List Mobiles"); gump.AddButton(310, 40, 2445, 2445, 102, GumpButtonType.Reply, 0); gump.AddLabel(331, 42, 1153, "List Items"); gump.AddButton(430, 40, 2445, 2445, 103, GumpButtonType.Reply, 0); gump.AddLabel(450, 42, 1153, "List Types"); // gump.AddButton( 190, 70, 2445, 2445, 104, GumpButtonType.Reply, 0 ); // gump.AddLabel( 208, 72, 1153, "Add Module" ); // gump.AddButton( 310, 70, 2445, 2445, 105, GumpButtonType.Reply, 0 ); // gump.AddLabel( 326, 72, 1153, "Edit Module" ); // gump.AddButton( 430, 70, 2445, 2445, 106, GumpButtonType.Reply, 0 ); // gump.AddLabel( 439, 72, 1153, "Delete Module" ); if (subParams == null || !(subParams is CMGumpParams)) { gump.AddHtml(215, 15, 300, 25, "<basefont size=7 color=white><center>Central Memory</center></font>", false, false); gump.AddHtml(140, 95, 450, 250, "<basefont color=white><center>Welcome to the Central Memory Admin Gump!</center><br>With this gump, you can see a list of all entries that the CM contains. You can add new Modules or modify or delete existing Modules.<br><br>Make your selection from the top buttons, either List Mobiles or Items. This will bring up a list of all Mobiles or Items that the CM is keeping track of.<br><br>You may then select one of the entries to list the Modules that are stored to that entry. You can then add, modify or remove modules to that entry.</font>", false, false); return; } Params = subParams as CMGumpParams; switch ((int)Params.PageName) { #region ListMobiles case (int)Pages.ListMobiles: gump.AddLabel(120, 95, 1153, "Listing all Mobiles:"); m_MobileList = GetMobiles(); if (m_MobileList == null || m_MobileList.Count == 0) { return; } if (Params.PageIndex < 0) { Params.PageIndex = 0; } if (Params.PageIndex > 0) { gump.AddButton(120, 332, 4014, 4015, 104, GumpButtonType.Reply, 0); } if ((Params.PageIndex + 1) * 21 <= m_MobileList.Count) { gump.AddButton(540, 332, 4005, 4006, 105, GumpButtonType.Reply, 0); } for (int i = Params.PageIndex * 21, r = 0, c = 0; i < m_MobileList.Count; i++) { if (m_MobileList[i] == null) { continue; } gump.AddButton(120 + c * 155, 125 + r * 30, 2501, 2501, 1000 + i, GumpButtonType.Reply, 0); gump.AddLabel(130 + c * 155, 126 + r * 30, 1153, (m_MobileList[i].Name == null ? m_MobileList[i].Serial.ToString() : m_MobileList[i].Name)); } break; #endregion //ListMobiles #region ListItems case (int)Pages.ListItems: gump.AddLabel(120, 95, 1153, "Listing all Items:"); m_ItemList = GetItems(); if (m_ItemList == null || m_ItemList.Count == 0) { return; } if (Params.PageIndex < 0) { Params.PageIndex = 0; } if (Params.PageIndex > 0) { gump.AddButton(120, 332, 4014, 4015, 104, GumpButtonType.Reply, 0); } if ((Params.PageIndex + 1) * 21 <= m_ItemList.Count) { gump.AddButton(540, 332, 4005, 4006, 105, GumpButtonType.Reply, 0); } for (int i = Params.PageIndex * 21, r = 0, c = 0; i < m_ItemList.Count; i++) { if (m_ItemList[i] == null) { continue; } gump.AddButton(120 + c * 155, 125 + r * 30, 2501, 2501, 1000 + i, GumpButtonType.Reply, 0); gump.AddLabel(130 + c * 155, 126 + r * 30, 1153, (m_ItemList[i].Name == null ? m_ItemList[i].Serial.ToString() : m_ItemList[i].Name)); } break; #endregion //ListItems #region ListModulesFor case (int)Pages.ListModulesFor: if (!m_DictionaryOfModuleLists.ContainsKey(Params.SelectedSerial)) { gump.AddLabel(120, 95, 1153, "This entity no longer exists in the Central Memory!"); return; } if (m_DictionaryOfModuleLists[Params.SelectedSerial] == null || m_DictionaryOfModuleLists[Params.SelectedSerial].Count == 0) { gump.AddLabel(120, 95, 1153, "This entity has no Modules!"); Remove(Params.SelectedSerial); return; } string name = ""; if (Params.SelectedSerial.IsMobile) { name = World.FindMobile(Params.SelectedSerial).Name; } else if (Params.SelectedSerial.IsItem) { name = World.FindItem(Params.SelectedSerial).Name; } if (name == null || name.Length == 0) { name = Params.SelectedSerial.ToString(); } gump.AddLabel(120, 95, 1153, String.Format("Listing all Modules for {0}:", name)); m_ModuleList = m_DictionaryOfModuleLists[Params.SelectedSerial].GetListOfModules(); if (m_ModuleList == null || m_ModuleList.Count == 0) { return; } if (Params.PageIndex < 0) { Params.PageIndex = 0; } if (Params.PageIndex * 21 >= m_ModuleList.Count) { Params.PageIndex = m_ModuleList.Count - 21; } if (Params.PageIndex > 0) { gump.AddButton(120, 332, 4014, 4015, 104, GumpButtonType.Reply, 0); } if ((Params.PageIndex + 1) * 21 <= m_ModuleList.Count) { gump.AddButton(540, 332, 4005, 4006, 105, GumpButtonType.Reply, 0); } gump.AddButton(331, 332, 4008, 4009, 106, GumpButtonType.Reply, 0); for (int i = Params.PageIndex * 21, r = 0, c = 0; i < m_ModuleList.Count; i++) { if (m_ModuleList[i] == null) { continue; } gump.AddButton(120 + c * 155, 125 + r * 30, 2501, 2501, 1000 + i, GumpButtonType.Reply, 0); gump.AddLabel(130 + c * 155, 126 + r * 30, 1153, (m_ModuleList[i].Name().Length == 0 ? m_ModuleList[i].Owner.ToString() : m_ModuleList[i].Name())); } break; #endregion //ListModulesFor } }
/* ID's: * 101 = Button Manage System * 102 = Button Import Page * 103 = Button Apply Location * 104 = Button Apply Category * 105 = Text Name * 106 = Text X * 107 = Text Y * 108 = Text Z * 109 = Text Hue * 110 = Text Cost * 111 = Radio Trammel * 112 = Radio Malas * 113 = Radio Felucca * 114 = Radio Ilshenar * 115 = Radio Tokuno * 116 = Check Generate * 117 = Check StaffOnly * 118 = Check Reds * 119 = Check Charge * 120 = Check Young * 121 = Button Add Category * 122 = Button Add Location * 123 = Button Export * 124 = Button Import Systems * 125 = Button Import Categories * 126 = Button Import Locations * 300+ = Imports */ public override void OnResponse(NetState state, RelayInfo info, ACCGumpParams subParams) { if (info.ButtonID == 0 || state.Mobile.AccessLevel < ACC.GlobalMinimumAccessLevel) { return; } if (subParams is PGGumpParams) { Params = subParams as PGGumpParams; } PGGumpParams newParams = new PGGumpParams(); if (info.ButtonID == 101) { newParams.Page = Pages.Manage; } else if (info.ButtonID == 102) { newParams.Page = Pages.Import; } #region Add/Remove else if (info.ButtonID == 103 || info.ButtonID == 104 || info.ButtonID == 121 || info.ButtonID == 122) { SetFlag(EntryFlag.Generate, info.IsSwitched(116)); SetFlag(EntryFlag.StaffOnly, info.IsSwitched(117)); SetFlag(EntryFlag.Reds, info.IsSwitched(118)); SetFlag(EntryFlag.Charge, info.IsSwitched(119)); Map Map = info.IsSwitched(111) ? Map.Trammel : info.IsSwitched(112) ? Map.Malas : info.IsSwitched(113) ? Map.Felucca : info.IsSwitched(114) ? Map.Ilshenar : info.IsSwitched(115) ? Map.Tokuno : Map.Trammel; string Name = GetString(info, 105); string X = GetString(info, 106); string Y = GetString(info, 107); string Z = GetString(info, 108); string H = GetString(info, 109); string C = GetString(info, 110); if (Name == null || Name.Length == 0) { try { state.Mobile.SendMessage("Removed the entry"); if (info.ButtonID == 103) { Params.SelectedCategory.Key.Locations.Remove(Params.SelectedLocation.Key); } else { m_CategoryList.Remove(Params.SelectedCategory.Key); } } catch { Console.WriteLine("Exception caught removing entry"); } } else { if (info.ButtonID == 103 || info.ButtonID == 122) { int x, y, z, h, c = 0; Point3D Loc; int Hue; int Cost; PGLocation PGL; if (X == null || X.Length == 0 || Y == null || Y.Length == 0 || Z == null || Z.Length == 0 || H == null || H.Length == 0 || C == null || C.Length == 0) { if (info.ButtonID == 122) { Hue = 0; Loc = new Point3D(0, 0, 0); Cost = 0; PGL = new PGLocation(Name, Flags, Loc, Map, Hue, Cost); if (PGL == null) { state.Mobile.SendMessage("Error adding Location."); return; } m_CategoryList[Params.SelectedCategory.Value].Locations.Add(PGL); } state.Mobile.SendMessage("Please fill in each field."); state.Mobile.SendGump(new ACCGump(state.Mobile, this.ToString(), Params)); return; } try { x = Int32.Parse(X); y = Int32.Parse(Y); z = Int32.Parse(Z); h = Int32.Parse(H); c = Int32.Parse(C); Loc = new Point3D(x, y, z); Hue = h; Cost = c; } catch { state.Mobile.SendMessage("Please enter an integer in each of the info fields. (X, Y, Z, H, Cost)"); state.Mobile.SendGump(new ACCGump(state.Mobile, this.ToString(), Params)); return; } PGL = new PGLocation(Name, Flags, Loc, Map, Hue, Cost); if (PGL == null) { state.Mobile.SendMessage("Bad Location information, can't add!"); } else { try { if (info.ButtonID == 122) { m_CategoryList[Params.SelectedCategory.Value].Locations.Add(PGL); state.Mobile.SendMessage("Added the Location."); } else { state.Mobile.SendMessage("Changed the Location."); m_CategoryList[Params.SelectedCategory.Value].Locations[Params.SelectedLocation.Value] = PGL; } } catch { Console.WriteLine("Problem adding/changing Location!"); } } } else { if (C == null || C.Length == 0) { state.Mobile.SendMessage("Please fill in each field."); state.Mobile.SendGump(new ACCGump(state.Mobile, this.ToString(), Params)); return; } int c = 0; int Cost; try { c = Int32.Parse(C); Cost = c; } catch { state.Mobile.SendMessage("Please enter an integer for the Cost"); state.Mobile.SendGump(new ACCGump(state.Mobile, this.ToString(), Params)); return; } try { if (info.ButtonID == 121) { m_CategoryList.Add(new PGCategory(Name, Flags, Cost)); state.Mobile.SendMessage("Added the Category."); } else { m_CategoryList[Params.SelectedCategory.Value].Name = Name; m_CategoryList[Params.SelectedCategory.Value].Flags = Flags; m_CategoryList[Params.SelectedCategory.Value].Cost = Cost; state.Mobile.SendMessage("Changed the Category."); } } catch { Console.WriteLine("Problems adding/changing Category!"); } } } } #endregion //Add/Remove #region Imports/Exports #region Exports else if (info.ButtonID == 123) { if (!Directory.Exists("ACC Exports")) { Directory.CreateDirectory("ACC Exports"); } string fileName; string Path = "ACC Exports/"; if (Params.SelectedLocation.Key != null) { fileName = String.Format("Location - {0}.pgl", Params.SelectedLocation.Key.Name); } else if (Params.SelectedCategory.Key != null) { fileName = String.Format("Category - {0}.pgc", Params.SelectedCategory.Key.Name); } else { fileName = String.Format("System - {0:yyMMdd-HHmmss}.pgs", DateTime.Now); } try { using (FileStream m_FileStream = new FileStream(Path + fileName, FileMode.Create, FileAccess.Write)) { GenericWriter writer = new BinaryFileWriter(m_FileStream, true); if (Params.SelectedLocation.Key != null) { Params.SelectedLocation.Key.Serialize(writer); state.Mobile.SendMessage("Exported the Location to {0}{1}", Path, fileName); } else if (Params.SelectedCategory.Key != null) { Params.SelectedCategory.Key.Serialize(writer); state.Mobile.SendMessage("Exported the Category (and all Locations contained within) to {0}{1}", Path, fileName); } else { writer.Write((int)0); //version writer.Write(m_CategoryList.Count); for (int i = 0; i < m_CategoryList.Count; i++) { m_CategoryList[i].Serialize(writer); } state.Mobile.SendMessage("Exported the entire Public Gates System to {0}{1}", Path, fileName); } writer.Close(); m_FileStream.Close(); } } catch (Exception e) { state.Mobile.SendMessage("Problem exporting the selection. Please contact the admin."); Console.WriteLine("Error exporting PGSystem : {0}", e); } } #endregion //Exports #region Imports //Switch between import types else if (info.ButtonID == 124 || info.ButtonID == 125 || info.ButtonID == 126) { newParams.Page = Pages.Import; switch (info.ButtonID) { case 124: newParams.ImportSelection = ImportSelections.Systems; break; case 125: newParams.ImportSelection = ImportSelections.Categories; break; case 126: newParams.ImportSelection = ImportSelections.Locations; break; } } //Perform the import else if (info.ButtonID >= 300 && Dirs != null && Dirs.Length > 0) { if (!Directory.Exists("ACC Exports")) { Directory.CreateDirectory("ACC Exports"); } string Path = null; try { Path = Dirs[info.ButtonID - 300]; if (File.Exists(Path)) { using (FileStream m_FileStream = new FileStream(Path, FileMode.Open, FileAccess.Read, FileShare.Read)) { BinaryFileReader reader = new BinaryFileReader(new BinaryReader(m_FileStream)); switch ((int)Params.ImportSelection) { case (int)ImportSelections.Systems: { //Systems int version = reader.ReadInt(); int count = reader.ReadInt(); List <PGCategory> list = new List <PGCategory>(); for (int i = 0; i < count; i++) { list.Add(new PGCategory(reader)); } state.Mobile.CloseGump(typeof(SysChoiceGump)); state.Mobile.SendGump(new SysChoiceGump(this.ToString(), Params, list)); reader.Close(); return; } case (int)ImportSelections.Categories: { //Categories if (m_CategoryList == null) { m_CategoryList = new List <PGCategory>(); } m_CategoryList.Add(new PGCategory(reader)); state.Mobile.SendMessage("Added the Category."); break; } case (int)ImportSelections.Locations: { //Locations state.Mobile.CloseGump(typeof(CatSelGump)); state.Mobile.SendMessage("Please choose a Category to put this Location in."); state.Mobile.SendGump(new CatSelGump(this.ToString(), Params, new PGLocation(reader))); reader.Close(); return; } } reader.Close(); } } } catch { } } #endregion //Imports #endregion //Imports/Exports else if (info.ButtonID >= 150 && info.ButtonID < m_CategoryList.Count + 150) { newParams.SelectedCategory = new KeyValuePair <PGCategory, int>(m_CategoryList[info.ButtonID - 150], info.ButtonID - 150); } else if (info.ButtonID >= 200 && info.ButtonID < 200 + Params.SelectedCategory.Key.Locations.Count) { newParams.SelectedCategory = Params.SelectedCategory; newParams.SelectedLocation = new KeyValuePair <PGLocation, int>(Params.SelectedCategory.Key.Locations[info.ButtonID - 200], info.ButtonID - 200); } state.Mobile.SendGump(new ACCGump(state.Mobile, this.ToString(), newParams)); }
public override void OnResponse(NetState state, RelayInfo info, ACCGumpParams subParams) { }
public override void Gump(Mobile from, Gump gump, ACCGumpParams subParams) { gump.AddButton(195, 40, 2445, 2445, 101, GumpButtonType.Reply, 0); gump.AddLabel(200, 41, 1153, "Manage System"); gump.AddButton(310, 40, 2445, 2445, 102, GumpButtonType.Reply, 0); gump.AddLabel(342, 41, 1153, "Import"); if (subParams == null || !(subParams is PGGumpParams)) { gump.AddHtml(215, 65, 300, 25, "<basefont size=7 color=white><center>Public Gates</center></font>", false, false); gump.AddHtml(140, 95, 450, 250, "<basefont color=white><center>Welcome to the Public Gate Admin Gump!</center><br>With this gump, you can manage the entire system and import and export locations or full categories. Please choose an option from the top bar.<br><br>Manage System allows you to add/change/delete locations and categories from anywhere in the world.<br><br>Im/Ex port allows you to import or export categories and locations to files that you can distribute to other servers that use this system.</font>", false, false); return; } Params = subParams as PGGumpParams; switch ((int)Params.Page) { #region Manage Gump Code case (int)Pages.Manage: { gump.AddBackground(640, 0, 160, 400, 5120); gump.AddButton(425, 40, 2445, 2445, 123, GumpButtonType.Reply, 0); gump.AddLabel(456, 41, 1153, "Export"); for (int i = 0; i < m_CategoryList.Count && i < 50; i++) { PGCategory PGC = m_CategoryList[i]; if (PGC != null) { gump.AddButton(650, 10 + i * 30, 2501, 2501, 150 + i, GumpButtonType.Reply, 0); gump.AddButton(655, 12 + i * 30, (Params.SelectedCategory.Key == PGC ? 5401 : 5402), (Params.SelectedCategory.Key == PGC ? 5402 : 5401), 150 + i, GumpButtonType.Reply, 0); gump.AddLabel(675, 10 + i * 30, 1153, PGC.Name); } } if (Params.SelectedCategory.Key != null) { gump.AddBackground(425, 75, 170, 285, 5120); gump.AddButton(195, 65, 2445, 2445, 121, GumpButtonType.Reply, 0); gump.AddLabel(206, 66, 1153, "Add Category"); gump.AddButton(310, 65, 2445, 2445, 122, GumpButtonType.Reply, 0); gump.AddLabel(322, 66, 1153, "Add Location"); for (int i = 0, c = 0, r = 0; i < Params.SelectedCategory.Key.Locations.Count; i++) { PGLocation PGL = Params.SelectedCategory.Key.Locations[i]; if (PGL != null) { gump.AddButton(120 + c * 150, 100 + r * 30, 2501, 2501, 200 + i, GumpButtonType.Reply, 0); gump.AddButton(125 + c * 150, 102 + r * 30, (Params.SelectedLocation.Key == PGL ? 5401 : 5402), (Params.SelectedLocation.Key == PGL ? 5402 : 5401), 200 + i, GumpButtonType.Reply, 0); gump.AddLabel(145 + c * 150, 100 + r * 30, 1153, PGL.Name); r += (c == 1 ? 1 : 0); c += (c == 1 ? -1 : 1); } } if (Params.SelectedLocation.Key != null) { gump.AddButton(550, 265, 2642, 2643, 103, GumpButtonType.Reply, 0); //Apply Location gump.AddImage(440, 85, 2501); gump.AddTextEntry(446, 85, 130, 20, 0, 105, Params.SelectedLocation.Key.Name); gump.AddImage(445, 110, 2443); gump.AddImage(513, 110, 2443); gump.AddImage(445, 135, 2443); gump.AddImage(513, 135, 2443); gump.AddImage(445, 160, 2443); gump.AddTextEntry(450, 110, 53, 20, 0, 106, Params.SelectedLocation.Key.Location.X.ToString()); gump.AddTextEntry(518, 110, 53, 20, 0, 107, Params.SelectedLocation.Key.Location.Y.ToString()); gump.AddTextEntry(450, 135, 53, 20, 0, 108, Params.SelectedLocation.Key.Location.Z.ToString()); gump.AddTextEntry(518, 135, 53, 20, 0, 109, Params.SelectedLocation.Key.Hue.ToString()); gump.AddTextEntry(450, 160, 53, 20, 0, 110, Params.SelectedLocation.Key.Cost.ToString()); gump.AddLabel(435, 112, 1153, "X"); gump.AddLabel(578, 112, 1153, "Y"); gump.AddLabel(435, 137, 1153, "Z"); gump.AddLabel(578, 137, 1153, "H"); gump.AddLabel(435, 162, 1153, "C"); gump.AddRadio(435, 190, 208, 209, (Params.SelectedLocation.Key.Map == Map.Trammel), 111); gump.AddRadio(570, 190, 208, 209, (Params.SelectedLocation.Key.Map == Map.Malas), 112); gump.AddRadio(435, 215, 208, 209, (Params.SelectedLocation.Key.Map == Map.Felucca), 113); gump.AddRadio(570, 215, 208, 209, (Params.SelectedLocation.Key.Map == Map.Ilshenar), 114); gump.AddRadio(435, 240, 208, 209, (Params.SelectedLocation.Key.Map == Map.Tokuno), 115); gump.AddLabel(460, 192, 1153, "Tram"); gump.AddLabel(530, 192, 1153, "Malas"); gump.AddLabel(460, 217, 1153, "Fel"); gump.AddLabel(542, 217, 1153, "Ilsh"); gump.AddLabel(460, 242, 1153, "Tokuno"); gump.AddLabel(465, 282, 1153, "Young?"); gump.AddCheck(440, 280, 210, 211, Params.SelectedLocation.Key.GetFlag(EntryFlag.Young), 120); gump.AddLabel(465, 307, 1153, "Gen?"); gump.AddCheck(440, 305, 210, 211, Params.SelectedLocation.Key.GetFlag(EntryFlag.Generate), 116); gump.AddLabel(515, 307, 1153, "Staff?"); gump.AddCheck(565, 305, 210, 211, Params.SelectedLocation.Key.GetFlag(EntryFlag.StaffOnly), 117); gump.AddLabel(465, 332, 1153, "Reds?"); gump.AddCheck(440, 330, 210, 211, Params.SelectedLocation.Key.GetFlag(EntryFlag.Reds), 118); gump.AddLabel(522, 332, 1153, "Chrg?"); gump.AddCheck(565, 330, 210, 211, Params.SelectedLocation.Key.GetFlag(EntryFlag.Charge), 119); } else { gump.AddButton(550, 265, 2642, 2643, 104, GumpButtonType.Reply, 0); //Apply Category gump.AddImage(440, 110, 2501); gump.AddTextEntry(446, 110, 130, 20, 0, 105, Params.SelectedCategory.Key.Name); gump.AddImage(445, 160, 2443); gump.AddTextEntry(450, 160, 53, 20, 0, 110, Params.SelectedCategory.Key.Cost.ToString()); gump.AddLabel(435, 162, 1153, "C"); gump.AddLabel(465, 282, 1153, "Young?"); gump.AddCheck(440, 280, 210, 211, Params.SelectedCategory.Key.GetFlag(EntryFlag.Young), 120); gump.AddLabel(465, 307, 1153, "Gen?"); gump.AddCheck(440, 305, 210, 211, Params.SelectedCategory.Key.GetFlag(EntryFlag.Generate), 116); gump.AddLabel(515, 307, 1153, "Staff?"); gump.AddCheck(565, 305, 210, 211, Params.SelectedCategory.Key.GetFlag(EntryFlag.StaffOnly), 117); gump.AddLabel(465, 332, 1153, "Reds?"); gump.AddCheck(440, 330, 210, 211, Params.SelectedCategory.Key.GetFlag(EntryFlag.Reds), 118); gump.AddLabel(522, 332, 1153, "Chrg?"); gump.AddCheck(565, 330, 210, 211, Params.SelectedCategory.Key.GetFlag(EntryFlag.Charge), 119); } } break; } #endregion //Manage Gump Code #region Import Gump Code case (int)Pages.Import: { //Import if (!Directory.Exists("Data/ACC Exports")) { from.SendMessage("There are no files to import!"); return; } gump.AddButton(195, 65, 2445, 2445, 124, GumpButtonType.Reply, 0); //Switch to Systems gump.AddLabel(220, 66, 1153, "Systems"); gump.AddButton(310, 65, 2445, 2445, 125, GumpButtonType.Reply, 0); //Switch to Categories gump.AddLabel(328, 66, 1153, "Categories"); gump.AddButton(425, 65, 2445, 2445, 126, GumpButtonType.Reply, 0); //Switch to Locations gump.AddLabel(447, 66, 1153, "Locations"); switch ((int)Params.ImportSelection) { case (int)ImportSelections.Systems: { Dirs = Directory.GetFiles("Data/ACC Exports/", "*.pgs"); break; } case (int)ImportSelections.Categories: { Dirs = Directory.GetFiles("Data/ACC Exports/", "*.pgc"); break; } case (int)ImportSelections.Locations: { Dirs = Directory.GetFiles("Data/ACC Exports/", "*.pgl"); break; } default: { return; } } if (Dirs == null || Dirs.Length == 0) { from.SendMessage("There are no files of that type!"); return; } for (int i = 0, r = 0, c = 0; i < Dirs.Length && c < 3; i++) { string s = Dirs[i]; s = s.Remove(0, 12); s = s.Remove(s.Length - 4, 4); if (Params.ImportSelection == ImportSelections.Systems) { s = s.Remove(0, 9); } gump.AddButton(120 + c * 150, 100 + r * 30, 2501, 2501, 300 + i, GumpButtonType.Reply, 0); gump.AddLabelCropped(125 + c * 150, 101 + r * 30, 140, 30, 1153, s); c += (r == 7 ? 1 : 0); r += (r == 7 ? -7 : 1); } break; } #endregion //Import Gump Code } }
public override void Gump(Mobile from, Gump gump, ACCGumpParams subParams) { }
public CatSelGump(string sys, ACCGumpParams subParams, PGLocation loc) : base(0, 0) { if (sys == null || subParams == null || loc == null || m_CategoryList == null) return; Sys = sys; if (subParams is PGGumpParams) Params = subParams as PGGumpParams; Loc = loc; AddPage(0); AddBackground(640, 0, 160, 400, 5120); for (int i = 0; i < PGSystem.CategoryList.Count; i++) { PGCategory PGC = m_CategoryList[i]; if (PGC != null) { AddButton(650, 10 + i * 30, 2501, 2501, 1 + i, GumpButtonType.Reply, 0); AddLabel(675, 10 + i * 30, 1153, PGC.Name); } } }
public SysChoiceGump(string sys, ACCGumpParams subParams, List<PGCategory> list) : base(0, 0) { Sys = sys; if (subParams is PGGumpParams) Params = subParams as PGGumpParams; List = list; AddPage(0); AddBackground(250, 245, 300, 90, 5120); AddLabel(282, 260, 1153, "Overwrite or Add To current system?"); AddButton(280, 290, 2445, 2445, 1, GumpButtonType.Reply, 0); AddButton(410, 290, 2445, 2445, 2, GumpButtonType.Reply, 0); AddLabel(300, 291, 1153, "Overwrite"); AddLabel(442, 291, 1153, "Add To"); }
/* ID's: 101 = Button Manage System 102 = Button Import Page 103 = Button Apply Location 104 = Button Apply Category 105 = Text Name 106 = Text X 107 = Text Y 108 = Text Z 109 = Text Hue 110 = Text Cost 111 = Radio Trammel 112 = Radio Malas 113 = Radio Felucca 114 = Radio Ilshenar 115 = Radio Tokuno 116 = Check Generate 117 = Check StaffOnly 118 = Check Reds 119 = Check Charge 120 = Check Young 121 = Button Add Category 122 = Button Add Location 123 = Button Export 124 = Button Import Systems 125 = Button Import Categories 126 = Button Import Locations 300+ = Imports */ public override void OnResponse(NetState state, RelayInfo info, ACCGumpParams subParams) { if (info.ButtonID == 0 || state.Mobile.AccessLevel < ACC.GlobalMinimumAccessLevel) return; if (subParams is PGGumpParams) Params = subParams as PGGumpParams; PGGumpParams newParams = new PGGumpParams(); if (info.ButtonID == 101) newParams.Page = Pages.Manage; else if (info.ButtonID == 102) newParams.Page = Pages.Import; #region Add/Remove else if (info.ButtonID == 103 || info.ButtonID == 104 || info.ButtonID == 121 || info.ButtonID == 122) { SetFlag(EntryFlag.Generate, info.IsSwitched(116)); SetFlag(EntryFlag.StaffOnly, info.IsSwitched(117)); SetFlag(EntryFlag.Reds, info.IsSwitched(118)); SetFlag(EntryFlag.Charge, info.IsSwitched(119)); Map Map = info.IsSwitched(111) ? Map.Trammel : info.IsSwitched(112) ? Map.Malas : info.IsSwitched(113) ? Map.Felucca : info.IsSwitched(114) ? Map.Ilshenar : info.IsSwitched(115) ? Map.Tokuno : Map.Trammel; string Name = GetString(info, 105); string X = GetString(info, 106); string Y = GetString(info, 107); string Z = GetString(info, 108); string H = GetString(info, 109); string C = GetString(info, 110); if (Name == null || Name.Length == 0) { try { state.Mobile.SendMessage("Removed the entry"); if (info.ButtonID == 103) Params.SelectedCategory.Key.Locations.Remove(Params.SelectedLocation.Key); else m_CategoryList.Remove(Params.SelectedCategory.Key); } catch { Console.WriteLine("Exception caught removing entry"); } } else { if (info.ButtonID == 103 || info.ButtonID == 122) { int x, y, z, h, c = 0; Point3D Loc; int Hue; int Cost; PGLocation PGL; if (X == null || X.Length == 0 || Y == null || Y.Length == 0 || Z == null || Z.Length == 0 || H == null || H.Length == 0 || C == null || C.Length == 0) { if (info.ButtonID == 122) { Hue = 0; Loc = new Point3D(0, 0, 0); Cost = 0; PGL = new PGLocation(Name, Flags, Loc, Map, Hue, Cost); if (PGL == null) { state.Mobile.SendMessage("Error adding Location."); return; } m_CategoryList[Params.SelectedCategory.Value].Locations.Add(PGL); } state.Mobile.SendMessage("Please fill in each field."); state.Mobile.SendGump(new ACCGump(state.Mobile, this.ToString(), Params)); return; } try { x = Int32.Parse(X); y = Int32.Parse(Y); z = Int32.Parse(Z); h = Int32.Parse(H); c = Int32.Parse(C); Loc = new Point3D(x, y, z); Hue = h; Cost = c; } catch { state.Mobile.SendMessage("Please enter an integer in each of the info fields. (X, Y, Z, H, Cost)"); state.Mobile.SendGump(new ACCGump(state.Mobile, this.ToString(), Params)); return; } PGL = new PGLocation(Name, Flags, Loc, Map, Hue, Cost); if (PGL == null) { state.Mobile.SendMessage("Bad Location information, can't add!"); } else { try { if (info.ButtonID == 122) { m_CategoryList[Params.SelectedCategory.Value].Locations.Add(PGL); state.Mobile.SendMessage("Added the Location."); } else { state.Mobile.SendMessage("Changed the Location."); m_CategoryList[Params.SelectedCategory.Value].Locations[Params.SelectedLocation.Value] = PGL; } } catch { Console.WriteLine("Problem adding/changing Location!"); } } } else { if (C == null || C.Length == 0) { state.Mobile.SendMessage("Please fill in each field."); state.Mobile.SendGump(new ACCGump(state.Mobile, this.ToString(), Params)); return; } int c = 0; int Cost; try { c = Int32.Parse(C); Cost = c; } catch { state.Mobile.SendMessage("Please enter an integer for the Cost"); state.Mobile.SendGump(new ACCGump(state.Mobile, this.ToString(), Params)); return; } try { if (info.ButtonID == 121) { m_CategoryList.Add(new PGCategory(Name, Flags, Cost)); state.Mobile.SendMessage("Added the Category."); } else { m_CategoryList[Params.SelectedCategory.Value].Name = Name; m_CategoryList[Params.SelectedCategory.Value].Flags = Flags; m_CategoryList[Params.SelectedCategory.Value].Cost = Cost; state.Mobile.SendMessage("Changed the Category."); } } catch { Console.WriteLine("Problems adding/changing Category!"); } } } } #endregion //Add/Remove #region Imports/Exports #region Exports else if (info.ButtonID == 123) { if (!Directory.Exists("ACC Exports")) Directory.CreateDirectory("ACC Exports"); string fileName; string Path = "ACC Exports/"; if (Params.SelectedLocation.Key != null) fileName = String.Format("Location - {0}.pgl", Params.SelectedLocation.Key.Name); else if (Params.SelectedCategory.Key != null) fileName = String.Format("Category - {0}.pgc", Params.SelectedCategory.Key.Name); else fileName = String.Format("System - {0:yyMMdd-HHmmss}.pgs", DateTime.Now); try { using (FileStream m_FileStream = new FileStream(Path + fileName, FileMode.Create, FileAccess.Write)) { GenericWriter writer = new BinaryFileWriter(m_FileStream, true); if (Params.SelectedLocation.Key != null) { Params.SelectedLocation.Key.Serialize(writer); state.Mobile.SendMessage("Exported the Location to {0}{1}", Path, fileName); } else if (Params.SelectedCategory.Key != null) { Params.SelectedCategory.Key.Serialize(writer); state.Mobile.SendMessage("Exported the Category (and all Locations contained within) to {0}{1}", Path, fileName); } else { writer.Write((int)0); //version writer.Write(m_CategoryList.Count); for (int i = 0; i < m_CategoryList.Count; i++) { m_CategoryList[i].Serialize(writer); } state.Mobile.SendMessage("Exported the entire Public Gates System to {0}{1}", Path, fileName); } writer.Close(); m_FileStream.Close(); } } catch (Exception e) { state.Mobile.SendMessage("Problem exporting the selection. Please contact the admin."); Console.WriteLine("Error exporting PGSystem : {0}", e); } } #endregion //Exports #region Imports //Switch between import types else if (info.ButtonID == 124 || info.ButtonID == 125 || info.ButtonID == 126) { newParams.Page = Pages.Import; switch (info.ButtonID) { case 124: newParams.ImportSelection = ImportSelections.Systems; break; case 125: newParams.ImportSelection = ImportSelections.Categories; break; case 126: newParams.ImportSelection = ImportSelections.Locations; break; } } //Perform the import else if (info.ButtonID >= 300 && Dirs != null && Dirs.Length > 0) { if (!Directory.Exists("ACC Exports")) Directory.CreateDirectory("ACC Exports"); string Path = null; try { Path = Dirs[info.ButtonID - 300]; if (File.Exists(Path)) { using (FileStream m_FileStream = new FileStream(Path, FileMode.Open, FileAccess.Read, FileShare.Read)) { BinaryFileReader reader = new BinaryFileReader(new BinaryReader(m_FileStream)); switch ((int)Params.ImportSelection) { case (int)ImportSelections.Systems: {//Systems int version = reader.ReadInt(); int count = reader.ReadInt(); List<PGCategory> list = new List<PGCategory>(); for (int i = 0; i < count; i++) list.Add(new PGCategory(reader)); state.Mobile.CloseGump(typeof(SysChoiceGump)); state.Mobile.SendGump(new SysChoiceGump(this.ToString(), Params, list)); reader.Close(); return; } case (int)ImportSelections.Categories: {//Categories if (m_CategoryList == null) m_CategoryList = new List<PGCategory>(); m_CategoryList.Add(new PGCategory(reader)); state.Mobile.SendMessage("Added the Category."); break; } case (int)ImportSelections.Locations: {//Locations state.Mobile.CloseGump(typeof(CatSelGump)); state.Mobile.SendMessage("Please choose a Category to put this Location in."); state.Mobile.SendGump(new CatSelGump(this.ToString(), Params, new PGLocation(reader))); reader.Close(); return; } } reader.Close(); } } } catch { } } #endregion //Imports #endregion //Imports/Exports else if (info.ButtonID >= 150 && info.ButtonID < m_CategoryList.Count + 150) newParams.SelectedCategory = new KeyValuePair<PGCategory, int>(m_CategoryList[info.ButtonID - 150], info.ButtonID - 150); else if (info.ButtonID >= 200 && info.ButtonID < 200 + Params.SelectedCategory.Key.Locations.Count) { newParams.SelectedCategory = Params.SelectedCategory; newParams.SelectedLocation = new KeyValuePair<PGLocation, int>(Params.SelectedCategory.Key.Locations[info.ButtonID - 200], info.ButtonID - 200); } state.Mobile.SendGump(new ACCGump(state.Mobile, this.ToString(), newParams)); }
public override void Gump(Mobile from, Gump gump, ACCGumpParams subParams) { gump.AddButton(195, 40, 2445, 2445, 101, GumpButtonType.Reply, 0); gump.AddLabel(200, 41, 1153, "Manage System"); gump.AddButton(310, 40, 2445, 2445, 102, GumpButtonType.Reply, 0); gump.AddLabel(342, 41, 1153, "Import"); if (subParams == null || !(subParams is PGGumpParams)) { gump.AddHtml(215, 65, 300, 25, "<basefont size=7 color=white><center>Public Gates</center></font>", false, false); gump.AddHtml(140, 95, 450, 250, "<basefont color=white><center>Welcome to the Public Gate Admin Gump!</center><br>With this gump, you can manage the entire system and import and export locations or full categories. Please choose an option from the top bar.<br><br>Manage System allows you to add/change/delete locations and categories from anywhere in the world.<br><br>Im/Ex port allows you to import or export categories and locations to files that you can distribute to other servers that use this system.</font>", false, false); return; } Params = subParams as PGGumpParams; switch ((int)Params.Page) { #region Manage Gump Code case (int)Pages.Manage: { gump.AddBackground(640, 0, 160, 400, 5120); gump.AddButton(425, 40, 2445, 2445, 123, GumpButtonType.Reply, 0); gump.AddLabel(456, 41, 1153, "Export"); for (int i = 0; i < m_CategoryList.Count && i < 50; i++) { PGCategory PGC = m_CategoryList[i]; if (PGC != null) { gump.AddButton(650, 10 + i * 30, 2501, 2501, 150 + i, GumpButtonType.Reply, 0); gump.AddButton(655, 12 + i * 30, (Params.SelectedCategory.Key == PGC ? 5401 : 5402), (Params.SelectedCategory.Key == PGC ? 5402 : 5401), 150 + i, GumpButtonType.Reply, 0); gump.AddLabel(675, 10 + i * 30, 1153, PGC.Name); } } if (Params.SelectedCategory.Key != null) { gump.AddBackground(425, 75, 170, 285, 5120); gump.AddButton(195, 65, 2445, 2445, 121, GumpButtonType.Reply, 0); gump.AddLabel(206, 66, 1153, "Add Category"); gump.AddButton(310, 65, 2445, 2445, 122, GumpButtonType.Reply, 0); gump.AddLabel(322, 66, 1153, "Add Location"); for (int i = 0, c = 0, r = 0; i < Params.SelectedCategory.Key.Locations.Count; i++) { PGLocation PGL = Params.SelectedCategory.Key.Locations[i]; if (PGL != null) { gump.AddButton(120 + c * 150, 100 + r * 30, 2501, 2501, 200 + i, GumpButtonType.Reply, 0); gump.AddButton(125 + c * 150, 102 + r * 30, (Params.SelectedLocation.Key == PGL ? 5401 : 5402), (Params.SelectedLocation.Key == PGL ? 5402 : 5401), 200 + i, GumpButtonType.Reply, 0); gump.AddLabel(145 + c * 150, 100 + r * 30, 1153, PGL.Name); r += (c == 1 ? 1 : 0); c += (c == 1 ? -1 : 1); } } if (Params.SelectedLocation.Key != null) { gump.AddButton(550, 265, 2642, 2643, 103, GumpButtonType.Reply, 0); //Apply Location gump.AddImage(440, 85, 2501); gump.AddTextEntry(446, 85, 130, 20, 0, 105, Params.SelectedLocation.Key.Name); gump.AddImage(445, 110, 2443); gump.AddImage(513, 110, 2443); gump.AddImage(445, 135, 2443); gump.AddImage(513, 135, 2443); gump.AddImage(445, 160, 2443); gump.AddTextEntry(450, 110, 53, 20, 0, 106, Params.SelectedLocation.Key.Location.X.ToString()); gump.AddTextEntry(518, 110, 53, 20, 0, 107, Params.SelectedLocation.Key.Location.Y.ToString()); gump.AddTextEntry(450, 135, 53, 20, 0, 108, Params.SelectedLocation.Key.Location.Z.ToString()); gump.AddTextEntry(518, 135, 53, 20, 0, 109, Params.SelectedLocation.Key.Hue.ToString()); gump.AddTextEntry(450, 160, 53, 20, 0, 110, Params.SelectedLocation.Key.Cost.ToString()); gump.AddLabel(435, 112, 1153, "X"); gump.AddLabel(578, 112, 1153, "Y"); gump.AddLabel(435, 137, 1153, "Z"); gump.AddLabel(578, 137, 1153, "H"); gump.AddLabel(435, 162, 1153, "C"); gump.AddRadio(435, 190, 208, 209, (Params.SelectedLocation.Key.Map == Map.Trammel), 111); gump.AddRadio(570, 190, 208, 209, (Params.SelectedLocation.Key.Map == Map.Malas), 112); gump.AddRadio(435, 215, 208, 209, (Params.SelectedLocation.Key.Map == Map.Felucca), 113); gump.AddRadio(570, 215, 208, 209, (Params.SelectedLocation.Key.Map == Map.Ilshenar), 114); gump.AddRadio(435, 240, 208, 209, (Params.SelectedLocation.Key.Map == Map.Tokuno), 115); gump.AddLabel(460, 192, 1153, "Tram"); gump.AddLabel(530, 192, 1153, "Malas"); gump.AddLabel(460, 217, 1153, "Fel"); gump.AddLabel(542, 217, 1153, "Ilsh"); gump.AddLabel(460, 242, 1153, "Tokuno"); gump.AddLabel(465, 282, 1153, "Young?"); gump.AddCheck(440, 280, 210, 211, Params.SelectedLocation.Key.GetFlag(EntryFlag.Young), 120); gump.AddLabel(465, 307, 1153, "Gen?"); gump.AddCheck(440, 305, 210, 211, Params.SelectedLocation.Key.GetFlag(EntryFlag.Generate), 116); gump.AddLabel(515, 307, 1153, "Staff?"); gump.AddCheck(565, 305, 210, 211, Params.SelectedLocation.Key.GetFlag(EntryFlag.StaffOnly), 117); gump.AddLabel(465, 332, 1153, "Reds?"); gump.AddCheck(440, 330, 210, 211, Params.SelectedLocation.Key.GetFlag(EntryFlag.Reds), 118); gump.AddLabel(522, 332, 1153, "Chrg?"); gump.AddCheck(565, 330, 210, 211, Params.SelectedLocation.Key.GetFlag(EntryFlag.Charge), 119); } else { gump.AddButton(550, 265, 2642, 2643, 104, GumpButtonType.Reply, 0); //Apply Category gump.AddImage(440, 110, 2501); gump.AddTextEntry(446, 110, 130, 20, 0, 105, Params.SelectedCategory.Key.Name); gump.AddImage(445, 160, 2443); gump.AddTextEntry(450, 160, 53, 20, 0, 110, Params.SelectedCategory.Key.Cost.ToString()); gump.AddLabel(435, 162, 1153, "C"); gump.AddLabel(465, 282, 1153, "Young?"); gump.AddCheck(440, 280, 210, 211, Params.SelectedCategory.Key.GetFlag(EntryFlag.Young), 120); gump.AddLabel(465, 307, 1153, "Gen?"); gump.AddCheck(440, 305, 210, 211, Params.SelectedCategory.Key.GetFlag(EntryFlag.Generate), 116); gump.AddLabel(515, 307, 1153, "Staff?"); gump.AddCheck(565, 305, 210, 211, Params.SelectedCategory.Key.GetFlag(EntryFlag.StaffOnly), 117); gump.AddLabel(465, 332, 1153, "Reds?"); gump.AddCheck(440, 330, 210, 211, Params.SelectedCategory.Key.GetFlag(EntryFlag.Reds), 118); gump.AddLabel(522, 332, 1153, "Chrg?"); gump.AddCheck(565, 330, 210, 211, Params.SelectedCategory.Key.GetFlag(EntryFlag.Charge), 119); } } break; } #endregion //Manage Gump Code #region Import Gump Code case (int)Pages.Import: {//Import if (!Directory.Exists("ACC Exports")) { from.SendMessage("There are no files to import!"); return; } gump.AddButton(195, 65, 2445, 2445, 124, GumpButtonType.Reply, 0); //Switch to Systems gump.AddLabel(220, 66, 1153, "Systems"); gump.AddButton(310, 65, 2445, 2445, 125, GumpButtonType.Reply, 0); //Switch to Categories gump.AddLabel(328, 66, 1153, "Categories"); gump.AddButton(425, 65, 2445, 2445, 126, GumpButtonType.Reply, 0); //Switch to Locations gump.AddLabel(447, 66, 1153, "Locations"); switch ((int)Params.ImportSelection) { case (int)ImportSelections.Systems: { Dirs = Directory.GetFiles("ACC Exports/", "*.pgs"); break; } case (int)ImportSelections.Categories: { Dirs = Directory.GetFiles("ACC Exports/", "*.pgc"); break; } case (int)ImportSelections.Locations: { Dirs = Directory.GetFiles("ACC Exports/", "*.pgl"); break; } default: { return; } } if (Dirs == null || Dirs.Length == 0) { from.SendMessage("There are no files of that type!"); return; } for (int i = 0, r = 0, c = 0; i < Dirs.Length && c < 3; i++) { string s = Dirs[i]; s = s.Remove(0, 12); s = s.Remove(s.Length - 4, 4); if (Params.ImportSelection == ImportSelections.Systems) s = s.Remove(0, 9); gump.AddButton(120 + c * 150, 100 + r * 30, 2501, 2501, 300 + i, GumpButtonType.Reply, 0); gump.AddLabelCropped(125 + c * 150, 101 + r * 30, 140, 30, 1153, s); c += (r == 7 ? 1 : 0); r += (r == 7 ? -7 : 1); } break; } #endregion //Import Gump Code } }