public override void OnResponse(NetState state, int index) { switch (SelectedGumpLevel) { case GumpLevel.SelectGroup: { SpecialOptions(); // if (isFiltered && localGroupIndexList.ContainsKey(Entries[index])) { index = localGroupIndexList[Entries[index]]; } SelectedGroupIndex = index; if (index == m_CustomResources) { SelectedGumpLevel = GumpLevel.SelectResource; GumpOwner.SendMenu(new CustomCraftMenu(m_CurrentCraftMenu)); } else if (index == m_RepairIndex) { Repair.Do(GumpOwner, CurrentCraftSystem, ToolUsed); } else if (index == m_SmeltIndex) { Resmelt.Do(GumpOwner, CurrentCraftSystem, ToolUsed); } else if (index == m_EnhanceIndex) { GumpOwner.SendAsciiMessage("Enhancing disabled."); } else { SelectedGumpLevel = GumpLevel.SelectItem; GumpOwner.SendMenu(new CustomCraftMenu(m_CurrentCraftMenu)); } break; } case GumpLevel.SelectItem: if (index == 0) //Go back { SelectedGumpLevel = GumpLevel.SelectGroup; GumpOwner.SendMenu(new CustomCraftMenu(m_CurrentCraftMenu)); } else { CreateItem(index - 1); //Cause of the "back button" } break; case GumpLevel.SelectResource: { SelectedResourceIndex = (index); SelectedResType = CurrentCraftSystem.CraftSubRes.GetAt(SelectedResourceIndex).ItemType; SelectedGumpLevel = GumpLevel.SelectGroup; GumpOwner.SendMenu(new CustomCraftMenu(m_CurrentCraftMenu)); break; } } }
public void SalvageIngots(Mobile from) { bool hasTool = false; foreach (Item item in from.Backpack.Items) { if (item is BaseTool && ((BaseTool)item).CraftSystem == DefBlacksmithy.CraftSystem) { hasTool = true; break; } } if (!hasTool) { from.SendLocalizedMessage(1079822); // You need a blacksmithing tool in order to salvage ingots. return; } bool anvil, forge; DefBlacksmithy.CheckAnvilAndForge(from, 2, out anvil, out forge); if (!anvil) { from.SendLocalizedMessage(1044266); // You must be near an anvil return; } if (!forge) { from.SendLocalizedMessage(1044265); // You must be near a forge return; } int count = 0; int oldCount = this.TotalItems; int message = -1; for (int i = 0; i < this.Items.Count; i++) { Item item = (Item)this.Items[i]; bool success = false; bool isStoreBought = false; bool lackMining = false; Resmelt.Process(DefBlacksmithy.CraftSystem, from, item, false, out success, out isStoreBought, out lackMining); if (lackMining) { message = 1079975; // You failed to smelt some metal for lack of skill. } else if (success) { count++; i--; } } if (message != -1) { from.SendLocalizedMessage(message); } if (count > 0) { from.PlaySound(0x2A); from.PlaySound(0x240); } from.SendLocalizedMessage(1079973, String.Format("{0}\t{1}", count, oldCount)); // Salvaged: ~1_COUNT~/~2_NUM~ blacksmithed items }