public void CreateItem(int index) { CraftGroup group = CurrentCraftSystem.CraftGroups.GetAt(SelectedGroupIndex); CraftItem item = group.CraftItems.GetAt(index); int num = CurrentCraftSystem.CanCraft(GumpOwner, ToolUsed, item.ItemType); if (num > 0) { SelectedGumpLevel = GumpLevel.SelectItem; GumpOwner.SendMenu(new CustomCraftMenu(m_CurrentCraftMenu)); } else { CustomRegion cR = GumpOwner.Region as CustomRegion; if (cR != null && GumpOwner.AccessLevel == AccessLevel.Player) { if (ToolUsed.CraftSystem == DefAlchemy.CraftSystem && cR.Controller.IsRestrictedSkill(0)) { return; } if ((ToolUsed.CraftSystem == DefBlacksmithy.CraftSystem) && cR.Controller.IsRestrictedSkill(7)) { return; } if (ToolUsed.CraftSystem == DefBowFletching.CraftSystem && cR.Controller.IsRestrictedSkill(8)) { return; } if (ToolUsed.CraftSystem == DefCarpentry.CraftSystem && cR.Controller.IsRestrictedSkill(11)) { return; } if (ToolUsed.CraftSystem == DefCartography.CraftSystem && cR.Controller.IsRestrictedSkill(12)) { return; } if (ToolUsed.CraftSystem == DefCooking.CraftSystem && cR.Controller.IsRestrictedSkill(13)) { return; } if (ToolUsed.CraftSystem == DefTinkering.CraftSystem && cR.Controller.IsRestrictedSkill(37)) { return; } if (ToolUsed.CraftSystem == DefTailoring.CraftSystem && cR.Controller.IsRestrictedSkill(34)) { return; } if (ToolUsed.CraftSystem == DefInscription.CraftSystem && cR.Controller.IsRestrictedSkill(23)) { return; } } if (ToolUsed.CraftSystem == DefBlacksmithy.CraftSystem) { if (GumpOwner.FindItemOnLayer(Layer.OneHanded) != ToolUsed) { SelectedGumpLevel = GumpLevel.SelectItem; GumpOwner.SendMenu(new CustomCraftMenu(m_CurrentCraftMenu)); GumpOwner.SendAsciiMessage("You must have your smith hammer equipped to do this"); } else { CurrentCraftSystem.CreateItem(GumpOwner, item.ItemType, SelectedResType, ToolUsed, item); } } else { if (!ToolUsed.IsChildOf(GumpOwner.Backpack)) { SelectedGumpLevel = GumpLevel.SelectItem; GumpOwner.SendMenu(new CustomCraftMenu(m_CurrentCraftMenu)); GumpOwner.SendAsciiMessage("You must have your tool in your backpack!"); } else { CurrentCraftSystem.CreateItem(GumpOwner, item.ItemType, SelectedResType, ToolUsed, item); } } } }
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; } } }