Пример #1
0
        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);
                    }
                }
            }
        }
Пример #2
0
        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;
            }
            }
        }