Code:
using System;
using Server.Items;

namespace Server.Engines.Craft
{
    public enum TailorRecipe
    {
        ElvenQuiver = 501,
        QuiverOfFire = 502,
        QuiverOfIce = 503,
        QuiverOfBlight = 504,
        QuiverOfLightning = 505,

        SongWovenMantle = 550,
        SpellWovenBritches = 551,
        StitchersMittens = 552,
    }

    public class DefTailoring : CraftSystem
    {
        public override SkillName MainSkill
        {
            get
            {
                return SkillName.Tailoring;
            }
        }

        public override int GumpTitleNumber
        {
            get
            {
                return 1044005;
            }// <CENTER>TAILORING MENU</CENTER>
        }

        private static CraftSystem m_CraftSystem;

        public static CraftSystem CraftSystem
        {
            get
            {
                if (m_CraftSystem == null)
                    m_CraftSystem = new DefTailoring();

                return m_CraftSystem;
            }
        }

        public override CraftECA ECA
        {
            get
            {
                return CraftECA.ChanceMinusSixtyToFourtyFive;
            }
        }

        public override double GetChanceAtMin(CraftItem item)
        {
            return 0.5; // 50%
        }

        private DefTailoring()
            : base(1, 1, 1.25)// base( 1, 1, 4.5 )
        {
        }

        public override int CanCraft(Mobile from, BaseTool tool, Type itemType)
        {
            if (tool == null || tool.Deleted || tool.UsesRemaining < 0)
                return 1044038; // You have worn out your tool!
            else if (!BaseTool.CheckAccessible(tool, from))
                return 1044263; // The tool must be on your person to use.

            return 0;
        }

        private static readonly Type[] m_TailorColorables = new Type[]
        {
            typeof(GozaMatEastDeed), typeof(GozaMatSouthDeed),
            typeof(SquareGozaMatEastDeed), typeof(SquareGozaMatSouthDeed),
            typeof(BrocadeGozaMatEastDeed), typeof(BrocadeGozaMatSouthDeed),
            typeof(BrocadeSquareGozaMatEastDeed), typeof(BrocadeSquareGozaMatSouthDeed)
        };

        public override bool RetainsColorFrom(CraftItem item, Type type)
        {
            if (type != typeof(Cloth) && type != typeof(UncutCloth) && type != typeof(AbyssalCloth))
                return false;

            type = item.ItemType;

            bool contains = false;

            for (int i = 0; !contains && i < m_TailorColorables.Length; ++i)
                contains = (m_TailorColorables[i] == type);

            return contains;
        }

        public override void PlayCraftEffect(Mobile from)
        {
            from.PlaySound(0x248);
        }

        public override int PlayEndingEffect(Mobile from, bool failed, bool lostMaterial, bool toolBroken, int quality, bool makersMark, CraftItem item)
        {
            if (toolBroken)
                from.SendLocalizedMessage(1044038); // You have worn out your tool

            if (failed)
            {
                if (lostMaterial)
                    return 1044043; // You failed to create the item, and some of your materials are lost.
                else
                    return 1044157; // You failed to create the item, but no materials were lost.
            }
            else
            {
                if (quality == 0)
                    return 502785; // You were barely able to make this item.  It's quality is below average.
                else if (makersMark && quality == 2)
                    return 1044156; // You create an exceptional quality item and affix your maker's mark.
                else if (quality == 2)
                    return 1044155; // You create an exceptional quality item.
                else
                    return 1044154; // You create the item.
            }
        }

        public override void InitCraftList()
        {
            int index = -1;

            #region Hats
            this.AddCraft(typeof(SkullCap), 1011375, 1025444, 0.0, 25.0, typeof(Cloth), 1044286, 2, 1044287);
            this.AddCraft(typeof(Bandana), 1011375, 1025440, 0.0, 25.0, typeof(Cloth), 1044286, 2, 1044287);
            this.AddCraft(typeof(FloppyHat), 1011375, 1025907, 6.2, 31.2, typeof(Cloth), 1044286, 11, 1044287);
            this.AddCraft(typeof(Cap), 1011375, 1025909, 6.2, 31.2, typeof(Cloth), 1044286, 11, 1044287);
            this.AddCraft(typeof(WideBrimHat), 1011375, 1025908, 6.2, 31.2, typeof(Cloth), 1044286, 12, 1044287);
            this.AddCraft(typeof(StrawHat), 1011375, 1025911, 6.2, 31.2, typeof(Cloth), 1044286, 10, 1044287);
            this.AddCraft(typeof(TallStrawHat), 1011375, 1025910, 6.7, 31.7, typeof(Cloth), 1044286, 13, 1044287);
            this.AddCraft(typeof(WizardsHat), 1011375, 1025912, 7.2, 32.2, typeof(Cloth), 1044286, 15, 1044287);
            this.AddCraft(typeof(Bonnet), 1011375, 1025913, 6.2, 31.2, typeof(Cloth), 1044286, 11, 1044287);
            this.AddCraft(typeof(FeatheredHat), 1011375, 1025914, 6.2, 31.2, typeof(Cloth), 1044286, 12, 1044287);
            this.AddCraft(typeof(TricorneHat), 1011375, 1025915, 6.2, 31.2, typeof(Cloth), 1044286, 12, 1044287);
            this.AddCraft(typeof(JesterHat), 1011375, 1025916, 7.2, 32.2, typeof(Cloth), 1044286, 15, 1044287);

            if (Core.AOS)
                this.AddCraft(typeof(FlowerGarland), 1011375, 1028965, 10.0, 35.0, typeof(Cloth), 1044286, 5, 1044287);

            if (Core.SE)
            {
                index = this.AddCraft(typeof(ClothNinjaHood), 1011375, 1030202, 80.0, 105.0, typeof(Cloth), 1044286, 13, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);

                index = this.AddCraft(typeof(Kasa), 1011375, 1030211, 60.0, 85.0, typeof(Cloth), 1044286, 12, 1044287);   
                this.SetNeededExpansion(index, Expansion.SE);
            }
            #endregion

            #region Shirts
            this.AddCraft(typeof(Doublet), 1015269, 1028059, 0, 25.0, typeof(Cloth), 1044286, 8, 1044287);
            this.AddCraft(typeof(Shirt), 1015269, 1025399, 20.7, 45.7, typeof(Cloth), 1044286, 8, 1044287);
            this.AddCraft(typeof(FancyShirt), 1015269, 1027933, 24.8, 49.8, typeof(Cloth), 1044286, 8, 1044287);
            this.AddCraft(typeof(Tunic), 1015269, 1028097, 00.0, 25.0, typeof(Cloth), 1044286, 12, 1044287);
            this.AddCraft(typeof(Surcoat), 1015269, 1028189, 8.2, 33.2, typeof(Cloth), 1044286, 14, 1044287);
            this.AddCraft(typeof(PlainDress), 1015269, 1027937, 12.4, 37.4, typeof(Cloth), 1044286, 10, 1044287);
            this.AddCraft(typeof(FancyDress), 1015269, 1027935, 33.1, 58.1, typeof(Cloth), 1044286, 12, 1044287);
            this.AddCraft(typeof(Cloak), 1015269, 1025397, 41.4, 66.4, typeof(Cloth), 1044286, 14, 1044287);
            this.AddCraft(typeof(Robe), 1015269, 1027939, 53.9, 78.9, typeof(Cloth), 1044286, 16, 1044287);
            this.AddCraft(typeof(JesterSuit), 1015269, 1028095, 8.2, 33.2, typeof(Cloth), 1044286, 24, 1044287);

            if (Core.AOS)
            {
                this.AddCraft(typeof(FurCape), 1015269, 1028969, 35.0, 60.0, typeof(Cloth), 1044286, 13, 1044287);
                this.AddCraft(typeof(GildedDress), 1015269, 1028973, 37.5, 62.5, typeof(Cloth), 1044286, 16, 1044287);
                this.AddCraft(typeof(FormalShirt), 1015269, 1028975, 26.0, 51.0, typeof(Cloth), 1044286, 16, 1044287);
            }

            if (Core.SE)
            {
                index = this.AddCraft(typeof(ClothNinjaJacket), 1015269, 1030207, 75.0, 100.0, typeof(Cloth), 1044286, 12, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(Kamishimo), 1015269, 1030212, 75.0, 100.0, typeof(Cloth), 1044286, 15, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(HakamaShita), 1015269, 1030215, 40.0, 65.0, typeof(Cloth), 1044286, 14, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(MaleKimono), 1015269, 1030189, 50.0, 75.0, typeof(Cloth), 1044286, 16, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(FemaleKimono), 1015269, 1030190, 50.0, 75.0, typeof(Cloth), 1044286, 16, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(JinBaori), 1015269, 1030220, 30.0, 55.0, typeof(Cloth), 1044286, 12, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
            }

            #region Mondain's Legacy
            if (Core.ML)
            {
                index = this.AddCraft(typeof(ElvenShirt), 1015269, 1032661, 80.0, 105.0, typeof(Cloth), 1044286, 10, 1044287);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(ElvenDarkShirt), 1015269, 1032662, 80.0, 105.0, typeof(Cloth), 1044286, 10, 1044287);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(MaleElvenRobe), 1015269, 1032659, 80.0, 105.0, typeof(Cloth), 1044286, 30, 1044287);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(FemaleElvenRobe), 1015269, 1032660, 80.0, 105.0, typeof(Cloth), 1044286, 30, 1044287);
                this.SetNeededExpansion(index, Expansion.ML);
            }
            #endregion

            // Pants
            #endregion

            #region Pants
            this.AddCraft(typeof(ShortPants), 1015279, 1025422, 24.8, 49.8, typeof(Cloth), 1044286, 6, 1044287);
            this.AddCraft(typeof(LongPants), 1015279, 1025433, 24.8, 49.8, typeof(Cloth), 1044286, 8, 1044287);
            this.AddCraft(typeof(Kilt), 1015279, 1025431, 20.7, 45.7, typeof(Cloth), 1044286, 8, 1044287);
            this.AddCraft(typeof(Skirt), 1015279, 1025398, 29.0, 54.0, typeof(Cloth), 1044286, 10, 1044287);

            if (Core.AOS)
                this.AddCraft(typeof(FurSarong), 1015279, 1028971, 35.0, 60.0, typeof(Cloth), 1044286, 12, 1044287);

            if (Core.SE)
            {
                index = this.AddCraft(typeof(Hakama), 1015279, 1030213, 50.0, 75.0, typeof(Cloth), 1044286, 16, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(TattsukeHakama), 1015279, 1030214, 50.0, 75.0, typeof(Cloth), 1044286, 16, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
            }

            #region Mondain's Legacy
            if (Core.ML)
            {
                index = this.AddCraft(typeof(ElvenPants), 1015279, 1032665, 80.0, 105.0, typeof(Cloth), 1044286, 12, 1044287);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(WoodlandBelt), 1015279, 1032639, 80.0, 105.0, typeof(Cloth), 1044286, 10, 1044287);
                this.SetNeededExpansion(index, Expansion.ML);
            }
            #endregion

            #endregion

            #region Misc
            this.AddCraft(typeof(BodySash), 1015283, 1025441, 4.1, 29.1, typeof(Cloth), 1044286, 4, 1044287);
            this.AddCraft(typeof(HalfApron), 1015283, 1025435, 20.7, 45.7, typeof(Cloth), 1044286, 6, 1044287);
            this.AddCraft(typeof(FullApron), 1015283, 1025437, 29.0, 54.0, typeof(Cloth), 1044286, 10, 1044287);

            if (Core.SE)
            {
                index = this.AddCraft(typeof(Obi), 1015283, 1030219, 20.0, 45.0, typeof(Cloth), 1044286, 6, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
            }

            if (Core.ML)
            {
                index = this.AddCraft(typeof(ElvenQuiver), 1015283, 1032657, 65.0, 115.0, typeof(Leather), 1044462, 28, 1044463);
                this.AddRecipe(index, (int)TailorRecipe.ElvenQuiver);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(QuiverOfFire), 1015283, 1073109, 65.0, 115.0, typeof(Leather), 1044462, 28, 1044463);
                this.AddRes(index, typeof(FireRuby), 1032695, 15, 1042081);
                this.AddRecipe(index, (int)TailorRecipe.QuiverOfFire);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(QuiverOfIce), 1015283, 1073110, 65.0, 115.0, typeof(Leather), 1044462, 28, 1044463);
                this.AddRes(index, typeof(WhitePearl), 1032694, 15, 1042081);
                this.AddRecipe(index, (int)TailorRecipe.QuiverOfIce);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(QuiverOfBlight), 1015283, 1073111, 65.0, 115.0, typeof(Leather), 1044462, 28, 1044463);
                this.AddRes(index, typeof(Blight), 1032675, 10, 1042081);
                this.AddRecipe(index, (int)TailorRecipe.QuiverOfBlight);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(QuiverOfLightning), 1015283, 1073112, 65.0, 115.0, typeof(Leather), 1044462, 28, 1044463);
                this.AddRes(index, typeof(Corruption), 1032676, 10, 1042081);
                this.AddRecipe(index, (int)TailorRecipe.QuiverOfLightning);
                this.SetNeededExpansion(index, Expansion.ML);

                #region Mondain's Legacy
                index = this.AddCraft(typeof(LeatherContainerEngraver), 1015283, 1072152, 75.0, 100.0, typeof(Bone), 1049064, 1, 1049063);
                this.AddRes(index, typeof(Leather), 1044462, 6, 1044463);
                this.AddRes(index, typeof(SpoolOfThread), 1073462, 2, 1073463);
                this.AddRes(index, typeof(Dyes), 1024009, 6, 1044253);
                this.SetNeededExpansion(index, Expansion.ML);
                #endregion
            }

            this.AddCraft(typeof(OilCloth), 1015283, 1041498, 74.6, 99.6, typeof(Cloth), 1044286, 1, 1044287);

            if (Core.SE)
            {
                index = this.AddCraft(typeof(GozaMatEastDeed), 1015283, 1030404, 55.0, 80.0, typeof(Cloth), 1044286, 25, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(GozaMatSouthDeed), 1015283, 1030405, 55.0, 80.0, typeof(Cloth), 1044286, 25, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(SquareGozaMatEastDeed), 1015283, 1030407, 55.0, 80.0, typeof(Cloth), 1044286, 25, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(SquareGozaMatSouthDeed), 1015283, 1030406, 55.0, 80.0, typeof(Cloth), 1044286, 25, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(BrocadeGozaMatEastDeed), 1015283, 1030408, 55.0, 80.0, typeof(Cloth), 1044286, 25, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(BrocadeGozaMatSouthDeed), 1015283, 1030409, 55.0, 80.0, typeof(Cloth), 1044286, 25, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(BrocadeSquareGozaMatEastDeed), 1015283, 1030411, 55.0, 80.0, typeof(Cloth), 1044286, 25, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(BrocadeSquareGozaMatSouthDeed), 1015283, 1030410, 55.0, 80.0, typeof(Cloth), 1044286, 25, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
            }
            #region SA
            if (Core.SA)
            {
                this.AddCraft(typeof(GargishSash), 1015283, "Gargish Sash", 4.1, 29.1, typeof(Cloth), 1044286, 4, 1044287);
                this.AddCraft(typeof(GargishApron), 1015283, "Gargish Apron", 20.7, 45.7, typeof(Cloth), 1044286, 6, 1044287);
            }
           
            #endregion
            #endregion

            #region Footwear

            #region Mondain's Legacy
            if (Core.ML)
            {
                index = this.AddCraft(typeof(ElvenBoots), 1015283, 1072902, 80.0, 105.0, typeof(Leather), 1044462, 15, 1044463);
                this.SetNeededExpansion(index, Expansion.ML);
            }
            #endregion

            if (Core.AOS)
                this.AddCraft(typeof(FurBoots), 1015288, 1028967, 50.0, 75.0, typeof(Cloth), 1044286, 12, 1044287);

            if (Core.SE)
            {
                index = this.AddCraft(typeof(NinjaTabi), 1015288, 1030210, 70.0, 95.0, typeof(Cloth), 1044286, 10, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(SamuraiTabi), 1015288, 1030209, 20.0, 45.0, typeof(Cloth), 1044286, 6, 1044287);
                this.SetNeededExpansion(index, Expansion.SE);
            }

            this.AddCraft(typeof(Sandals), 1015288, 1025901, 12.4, 37.4, typeof(Leather), 1044462, 4, 1044463);
            this.AddCraft(typeof(Shoes), 1015288, 1025904, 16.5, 41.5, typeof(Leather), 1044462, 6, 1044463);
            this.AddCraft(typeof(Boots), 1015288, 1025899, 33.1, 58.1, typeof(Leather), 1044462, 8, 1044463);
            this.AddCraft(typeof(ThighBoots), 1015288, 1025906, 41.4, 66.4, typeof(Leather), 1044462, 10, 1044463);
            #region SA
            if (Core.SA)
            {
                this.AddCraft(typeof(LeatherTalons), 1015288, 1095728, 40.4, 65.4, typeof(Leather), 1044462, 6, 1044453);
            }
            #endregion
            #endregion

            #region Leather Armor

            #region Mondain's Legacy
            if (Core.ML)
            {
                index = this.AddCraft(typeof(SpellWovenBritches), 1015293, 1072929, 92.5, 117.5, typeof(Leather), 1044462, 15, 1044463);
                this.AddRes(index, typeof(EyeOfTheTravesty), 1032685, 1, 1044253);
                this.AddRes(index, typeof(Putrefication), 1032678, 10, 1044253);
                this.AddRes(index, typeof(Scourge), 1032677, 10, 1044253);
                this.AddRecipe(index, (int)TailorRecipe.SpellWovenBritches);
                this.ForceNonExceptional(index);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(SongWovenMantle), 1015293, 1072931, 92.5, 117.5, typeof(Leather), 1044462, 15, 1044463);
                this.AddRes(index, typeof(EyeOfTheTravesty), 1032685, 1, 1044253);
                this.AddRes(index, typeof(Blight), 1032675, 10, 1044253);
                this.AddRes(index, typeof(Muculent), 1032680, 10, 1044253);
                this.AddRecipe(index, (int)TailorRecipe.SongWovenMantle);
                this.ForceNonExceptional(index);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(StitchersMittens), 1015293, 1072932, 92.5, 117.5, typeof(Leather), 1044462, 15, 1044463);
                this.AddRes(index, typeof(CapturedEssence), 1032686, 1, 1044253);
                this.AddRes(index, typeof(Corruption), 1032676, 10, 1044253);
                this.AddRes(index, typeof(Taint), 1032679, 10, 1044253);
                this.AddRecipe(index, (int)TailorRecipe.StitchersMittens);
                this.ForceNonExceptional(index);
                this.SetNeededExpansion(index, Expansion.ML);
            }
            #endregion

            this.AddCraft(typeof(LeatherGorget), 1015293, 1025063, 53.9, 78.9, typeof(Leather), 1044462, 4, 1044463);
            this.AddCraft(typeof(LeatherCap), 1015293, 1027609, 6.2, 31.2, typeof(Leather), 1044462, 2, 1044463);
            this.AddCraft(typeof(LeatherGloves), 1015293, 1025062, 51.8, 76.8, typeof(Leather), 1044462, 3, 1044463);
            this.AddCraft(typeof(LeatherArms), 1015293, 1025061, 53.9, 78.9, typeof(Leather), 1044462, 4, 1044463);
            this.AddCraft(typeof(LeatherLegs), 1015293, 1025067, 66.3, 91.3, typeof(Leather), 1044462, 10, 1044463);
            this.AddCraft(typeof(LeatherChest), 1015293, 1025068, 70.5, 95.5, typeof(Leather), 1044462, 12, 1044463);

            if (Core.SE)
            {
                index = this.AddCraft(typeof(LeatherJingasa), 1015293, 1030177, 45.0, 70.0, typeof(Leather), 1044462, 4, 1044463);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(LeatherMempo), 1015293, 1030181, 80.0, 105.0, typeof(Leather), 1044462, 8, 1044463);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(LeatherDo), 1015293, 1030182, 75.0, 100.0, typeof(Leather), 1044462, 12, 1044463);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(LeatherHiroSode), 1015293, 1030185, 55.0, 80.0, typeof(Leather), 1044462, 5, 1044463);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(LeatherSuneate), 1015293, 1030193, 68.0, 93.0, typeof(Leather), 1044462, 12, 1044463);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(LeatherHaidate), 1015293, 1030197, 68.0, 93.0, typeof(Leather), 1044462, 12, 1044463);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(LeatherNinjaPants), 1015293, 1030204, 80.0, 105.0, typeof(Leather), 1044462, 13, 1044463);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(LeatherNinjaJacket), 1015293, 1030206, 85.0, 110.0, typeof(Leather), 1044462, 13, 1044463);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(LeatherNinjaBelt), 1015293, 1030203, 50.0, 75.0, typeof(Leather), 1044462, 5, 1044463);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(LeatherNinjaMitts), 1015293, 1030205, 65.0, 90.0, typeof(Leather), 1044462, 12, 1044463);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(LeatherNinjaHood), 1015293, 1030201, 90.0, 115.0, typeof(Leather), 1044462, 14, 1044463);
                this.SetNeededExpansion(index, Expansion.SE);
            }
            #region SA
            if (Core.SA)
            {
                this.AddCraft(typeof(GargishLeatherArms), 1015293, "Gargish Leather Arms", 53.9, 78.9, typeof(Leather), 1044462, 8, 1044463);
                this.AddCraft(typeof(GargishLeatherChest), 1015293, "Gargish Leather Chest", 70.5, 95.5, typeof(Leather), 1044462, 8, 1044463);
                this.AddCraft(typeof(GargishLeatherKilt), 1015293, "Gargish Leather Kilt", 58.0, 83.0, typeof(Leather), 1044462, 6, 1044463);
                this.AddCraft(typeof(GargishLeatherLegs), 1015293, "Gargish Leather legs", 66.3, 91.3, typeof(Leather), 1044462, 10, 1044463);
                this.AddCraft(typeof(GargishLeatherWingArmor), 1015293, "Gargish Leather Wing Armor", 65.0, 90.0, typeof(Leather), 1044462, 12, 1044463);
            }
            #endregion
            #region Mondain's Legacy
            if (Core.ML)
            {
                index = this.AddCraft(typeof(LeafChest), 1015293, 1032667, 75.0, 100.0, typeof(Leather), 1044462, 15, 1044463);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(LeafArms), 1015293, 1032670, 60.0, 85.0, typeof(Leather), 1044462, 12, 1044463);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(LeafGloves), 1015293, 1032668, 60.0, 85.0, typeof(Leather), 1044462, 10, 1044463);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(LeafLegs), 1015293, 1032671, 75.0, 100.0, typeof(Leather), 1044462, 15, 1044463);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(LeafGorget), 1015293, 1032669, 65.0, 90.0, typeof(Leather), 1044462, 12, 1044463);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(LeafTonlet), 1015293, 1032672, 70.0, 95.0, typeof(Leather), 1044462, 12, 1044463);
                this.SetNeededExpansion(index, Expansion.ML);
            }
            #endregion

            #endregion

            #region Studded Armor
            this.AddCraft(typeof(StuddedGorget), 1015300, 1025078, 78.8, 103.8, typeof(Leather), 1044462, 6, 1044463);
            this.AddCraft(typeof(StuddedGloves), 1015300, 1025077, 82.9, 107.9, typeof(Leather), 1044462, 8, 1044463);
            this.AddCraft(typeof(StuddedArms), 1015300, 1025076, 87.1, 112.1, typeof(Leather), 1044462, 10, 1044463);
            this.AddCraft(typeof(StuddedLegs), 1015300, 1025082, 91.2, 116.2, typeof(Leather), 1044462, 12, 1044463);
            this.AddCraft(typeof(StuddedChest), 1015300, 1025083, 94.0, 119.0, typeof(Leather), 1044462, 14, 1044463);

            if (Core.SE)
            {
                index = this.AddCraft(typeof(StuddedMempo), 1015300, 1030216, 80.0, 105.0, typeof(Leather), 1044462, 8, 1044463);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(StuddedDo), 1015300, 1030183, 95.0, 120.0, typeof(Leather), 1044462, 14, 1044463);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(StuddedHiroSode), 1015300, 1030186, 85.0, 110.0, typeof(Leather), 1044462, 8, 1044463);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(StuddedSuneate), 1015300, 1030194, 92.0, 117.0, typeof(Leather), 1044462, 14, 1044463);
                this.SetNeededExpansion(index, Expansion.SE);
                index = this.AddCraft(typeof(StuddedHaidate), 1015300, 1030198, 92.0, 117.0, typeof(Leather), 1044462, 14, 1044463);
                this.SetNeededExpansion(index, Expansion.SE);
            }

            #region Mondain's Legacy
            if (Core.ML)
            {
                index = this.AddCraft(typeof(HideChest), 1015300, 1032651, 85.0, 110.0, typeof(Leather), 1044462, 15, 1044463);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(HidePauldrons), 1015300, 1032654, 75.0, 100.0, typeof(Leather), 1044462, 12, 1044463);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(HideGloves), 1015300, 1032652, 75.0, 100.0, typeof(Leather), 1044462, 10, 1044463);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(HidePants), 1015300, 1032655, 92.0, 117.0, typeof(Leather), 1044462, 15, 1044463);
                this.SetNeededExpansion(index, Expansion.ML);

                index = this.AddCraft(typeof(HideGorget), 1015300, 1032653, 90.0, 115.0, typeof(Leather), 1044462, 12, 1044463);
                this.SetNeededExpansion(index, Expansion.ML);
            }
            #endregion

            #endregion

            #region Female Armor
            this.AddCraft(typeof(LeatherShorts), 1015306, 1027168, 62.2, 87.2, typeof(Leather), 1044462, 8, 1044463);
            this.AddCraft(typeof(LeatherSkirt), 1015306, 1027176, 58.0, 83.0, typeof(Leather), 1044462, 6, 1044463);
            this.AddCraft(typeof(LeatherBustierArms), 1015306, 1027178, 58.0, 83.0, typeof(Leather), 1044462, 6, 1044463);
            this.AddCraft(typeof(StuddedBustierArms), 1015306, 1027180, 82.9, 107.9, typeof(Leather), 1044462, 8, 1044463);
            this.AddCraft(typeof(FemaleLeatherChest), 1015306, 1027174, 62.2, 87.2, typeof(Leather), 1044462, 8, 1044463);
            this.AddCraft(typeof(FemaleStuddedChest), 1015306, 1027170, 87.1, 112.1, typeof(Leather), 1044462, 10, 1044463);
            #endregion

            #region Bone Armor
            index = this.AddCraft(typeof(BoneHelm), 1049149, 1025206, 85.0, 110.0, typeof(Leather), 1044462, 4, 1044463);
            this.AddRes(index, typeof(Bone), 1049064, 2, 1049063);
           
            index = this.AddCraft(typeof(BoneGloves), 1049149, 1025205, 89.0, 114.0, typeof(Leather), 1044462, 6, 1044463);
            this.AddRes(index, typeof(Bone), 1049064, 2, 1049063);

            index = this.AddCraft(typeof(BoneArms), 1049149, 1025203, 92.0, 117.0, typeof(Leather), 1044462, 8, 1044463);
            this.AddRes(index, typeof(Bone), 1049064, 4, 1049063);

            index = this.AddCraft(typeof(BoneLegs), 1049149, 1025202, 95.0, 120.0, typeof(Leather), 1044462, 10, 1044463);
            this.AddRes(index, typeof(Bone), 1049064, 6, 1049063);
       
            index = this.AddCraft(typeof(BoneChest), 1049149, 1025199, 96.0, 121.0, typeof(Leather), 1044462, 12, 1044463);
            this.AddRes(index, typeof(Bone), 1049064, 10, 1049063);
            #endregion
            #region Cloth Armor
            if (Core.SA)
            {
                this.AddCraft(typeof(GargishClothArms), 1111748, "Gargish Cloth Arms", 53.9, 78.9, typeof(Cloth), 1044462, 8, 1044463);
                this.AddCraft(typeof(GargishClothChest), 1111748, "Gargish Cloth Chest", 6.2, 31.2, typeof(Cloth), 1044462, 8, 1044463);
                this.AddCraft(typeof(GargishClothKilt), 1111748, "Gargish Cloth Kilt", 51.8, 76.8, typeof(Cloth), 1044462, 6, 1044463);
                this.AddCraft(typeof(GargishClothLegs), 1111748, "Gargish Cloth Legs", 53.9, 78.9, typeof(Cloth), 1044462, 10, 1044463);
                this.AddCraft(typeof(GargishClothWingArmor), 1111748, "Gargish Cloth Wing Armor", 66.3, 91.3, typeof(Cloth), 1044462, 12, 1044463);
            }
            #endregion

            // Set the overridable material
            this.SetSubRes(typeof(Leather), 1049150);

            // Add every material you want the player to be able to choose from
            // This will override the overridable material
            this.AddSubRes(typeof(Leather), 1049150, 00.0, 1044462, 1049311);
            this.AddSubRes(typeof(SpinedLeather), 1049151, 65.0, 1044462, 1049311);
            this.AddSubRes(typeof(HornedLeather), 1049152, 80.0, 1044462, 1049311);
            this.AddSubRes(typeof(BarbedLeather), 1049153, 99.0, 1044462, 1049311);
           
            //daat99 OWLTR start - custom leather
            daat99.ResourceHelper.AddTailorResources(this);
            //daat99 OWLTR end - custom leather

            this.MarkOption = true;
            this.Repair = Core.AOS;
            this.CanEnhance = Core.ML;
            this.CanAlter = Core.SA;
        }
    }
}
 
Remove these from the end of the script as they are not needed & could be causing the issue.
Code:
            // Set the overridable material

            this.SetSubRes(typeof(Leather), 1049150);


            // Add every material you want the player to be able to choose from

            // This will override the overridable material

            this.AddSubRes(typeof(Leather), 1049150, 00.0, 1044462, 1049311);

            this.AddSubRes(typeof(SpinedLeather), 1049151, 65.0, 1044462, 1049311);

            this.AddSubRes(typeof(HornedLeather), 1049152, 80.0, 1044462, 1049311);

            this.AddSubRes(typeof(BarbedLeather), 1049153, 99.0, 1044462, 1049311);
 
So removing those entries repaired the issue of duplicate resource entries (which i was going to attack next) so thats one down. But the problem with the hue not being applied after craft is still an issue.

Here is my CraftItem
[doublepost=1480434639][/doublepost]Issue resolved , turns out I was not paying attention to the toggle " Color this item"... Oy. Well all is good again, thank you :)
 

Attachments

  • CraftItem.cs
    48.7 KB · Views: 11
Hey guys, I found only one error with the ManaPhasingOrb.cs

Errors:
+ Items/Equipment/Talismans/ManaPhasingOrb.cs:
CS0234: Line 7: The type or namespace name 'IRepairable' does not exist in the namespace 'Server.Engine.Craft' <are you missing an assembly reference?>

Can someone give me a fix? Or tell me what I did wrong =(

Thanks!

Code:
using Server;
using System;
using System.Collections.Generic;

namespace Server.Items
{
    public class ManaPhasingOrb : BaseTalisman, Server.Engines.Craft.IRepairable
    {
        public override int LabelNumber { get { return 1116230; } }

        public Server.Engines.Craft.CraftSystem RepairSystem { get { return Server.Engines.Craft.DefTinkering.CraftSystem; } }
        public override int InitMinHits { get { return 255; } }
        public override int InitMaxHits { get { return 255; } }

        [Constructable]
        public ManaPhasingOrb() : base(4246)
        {
            MaxChargeTime = 30;
            Charges = 50;
            MaxCharges = Charges;
            Hue = 1165;

            Attributes.Brittle = 1;
            Attributes.LowerManaCost = 6;

            switch (Utility.Random(3))
            {
                case 0: Attributes.RegenHits = 1; break;
                case 1: Attributes.RegenMana = 1; break;
                case 2: Attributes.RegenStam = 1; break;
            }

            if (Utility.RandomBool())
                Attributes.DefendChance = 5;
            else
                Attributes.AttackChance = 5;

            switch (Utility.Random(3))
            {
                case 0: Attributes.LowerRegCost = 10; break;
                case 1: Attributes.WeaponDamage = 15; break;
                case 2: Attributes.SpellDamage = 5; break;
            }
        }

        public static bool IsInManaPhase(Mobile from)
        {
            return _ManaPhaseTable != null && _ManaPhaseTable.Contains(from);
        }

        public override void OnRemoved(object parent)
        {
            if (parent is Mobile && IsInManaPhase((Mobile)parent))
                RemoveFromTable((Mobile)parent);

            base.OnRemoved(parent);
        }

        public override void OnDoubleClick(Mobile from)
        {
            if (from.Talisman != this)
                from.SendLocalizedMessage(502641); // You must equip this item to use it.
            else
            {
                if (ChargeTime > 0)
                {
                    from.SendLocalizedMessage(1116163); //You must wait a few seconds before attempting to phase mana again.
                    return;
                }

                if (Charges > 0 && !IsInManaPhase(from))
                {
                    AddToTable(from);
                    OnAfterUse(from);

                    BuffInfo.AddBuff(from, new BuffInfo(BuffIcon.ManaPhase, 1116158, 1153816));

                    return;
                }
            }

            base.OnDoubleClick(from);
        }

        private static void AddToTable(Mobile from)
        {
            if (_ManaPhaseTable == null)
                _ManaPhaseTable = new List<Mobile>();

            _ManaPhaseTable.Add(from);

            from.SendLocalizedMessage(1116164); //Your next use of magical energy will draw its power from the void.
        }

        public static void RemoveFromTable(Mobile from)
        {
            if (_ManaPhaseTable != null && _ManaPhaseTable.Contains(from))
                _ManaPhaseTable.Remove(from);

            BuffInfo.RemoveBuff(from, BuffIcon.ManaPhase);

            from.SendLocalizedMessage(1116165); //You will no longer attempt to draw magical energy from the void.
        }

        public static List<Mobile> _ManaPhaseTable { get; set; }

        public ManaPhasingOrb(Serial serial)
            : base(serial)
        {
        }

        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);
            writer.Write((int)0);
        }

        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();
        }
    }

}
 
okay was looking at this code and went to do a clean build of the exe to find this, was just looking at it for a friend so wanted to see what the difference was in this code over the newest one

Code:
TIMERS /nowarn:0618 /debug /nologo /optimize /unsafe
Server\Network\Packets.cs(305,32): error CS0246: The type or namespace name
        'BuyItemState' could not be found (are you missing a using directive or
        an assembly reference?)
Server\Network\Packets.cs(334,36): error CS0246: The type or namespace name
        'BuyItemState' could not be found (are you missing a using directive or
        an assembly reference?)
Server\Network\Packets.cs(385,44): error CS0246: The type or namespace name
        'BuyItemState' could not be found (are you missing a using directive or
        an assembly reference?)
Server\Network\Packets.cs(416,56): error CS0246: The type or namespace name
        'SellItemState' could not be found (are you missing a using directive or
        an assembly reference?)
Server\Interfaces.cs(32,37): error CS0246: The type or namespace name
        'BuyItemResponse' could not be found (are you missing a using directive
        or an assembly reference?)
Server\Interfaces.cs(33,38): error CS0246: The type or namespace name
        'SellItemResponse' could not be found (are you missing a using directive
        or an assembly reference?)

Done!

Press any key to continue . .
not sure why this is happening i looked around a bit and everything seems to be right but still getting this error when i try to use the Compile.win


I am having this same exact issue. Was there a fix for this by chance? I apologize if I have passed by it if there was.
 
Hey guys, I found only one error with the ManaPhasingOrb.cs

Errors:
+ Items/Equipment/Talismans/ManaPhasingOrb.cs:
CS0234: Line 7: The type or namespace name 'IRepairable' does not exist in the namespace 'Server.Engine.Craft' <are you missing an assembly reference?>

Can someone give me a fix? Or tell me what I did wrong =(

Thanks!

Code:
using Server;
using System;
using System.Collections.Generic;

namespace Server.Items
{
    public class ManaPhasingOrb : BaseTalisman, Server.Engines.Craft.IRepairable
    {
        public override int LabelNumber { get { return 1116230; } }

        public Server.Engines.Craft.CraftSystem RepairSystem { get { return Server.Engines.Craft.DefTinkering.CraftSystem; } }
        public override int InitMinHits { get { return 255; } }
        public override int InitMaxHits { get { return 255; } }

        [Constructable]
        public ManaPhasingOrb() : base(4246)
        {
            MaxChargeTime = 30;
            Charges = 50;
            MaxCharges = Charges;
            Hue = 1165;

            Attributes.Brittle = 1;
            Attributes.LowerManaCost = 6;

            switch (Utility.Random(3))
            {
                case 0: Attributes.RegenHits = 1; break;
                case 1: Attributes.RegenMana = 1; break;
                case 2: Attributes.RegenStam = 1; break;
            }

            if (Utility.RandomBool())
                Attributes.DefendChance = 5;
            else
                Attributes.AttackChance = 5;

            switch (Utility.Random(3))
            {
                case 0: Attributes.LowerRegCost = 10; break;
                case 1: Attributes.WeaponDamage = 15; break;
                case 2: Attributes.SpellDamage = 5; break;
            }
        }

        public static bool IsInManaPhase(Mobile from)
        {
            return _ManaPhaseTable != null && _ManaPhaseTable.Contains(from);
        }

        public override void OnRemoved(object parent)
        {
            if (parent is Mobile && IsInManaPhase((Mobile)parent))
                RemoveFromTable((Mobile)parent);

            base.OnRemoved(parent);
        }

        public override void OnDoubleClick(Mobile from)
        {
            if (from.Talisman != this)
                from.SendLocalizedMessage(502641); // You must equip this item to use it.
            else
            {
                if (ChargeTime > 0)
                {
                    from.SendLocalizedMessage(1116163); //You must wait a few seconds before attempting to phase mana again.
                    return;
                }

                if (Charges > 0 && !IsInManaPhase(from))
                {
                    AddToTable(from);
                    OnAfterUse(from);

                    BuffInfo.AddBuff(from, new BuffInfo(BuffIcon.ManaPhase, 1116158, 1153816));

                    return;
                }
            }

            base.OnDoubleClick(from);
        }

        private static void AddToTable(Mobile from)
        {
            if (_ManaPhaseTable == null)
                _ManaPhaseTable = new List<Mobile>();

            _ManaPhaseTable.Add(from);

            from.SendLocalizedMessage(1116164); //Your next use of magical energy will draw its power from the void.
        }

        public static void RemoveFromTable(Mobile from)
        {
            if (_ManaPhaseTable != null && _ManaPhaseTable.Contains(from))
                _ManaPhaseTable.Remove(from);

            BuffInfo.RemoveBuff(from, BuffIcon.ManaPhase);

            from.SendLocalizedMessage(1116165); //You will no longer attempt to draw magical energy from the void.
        }

        public static List<Mobile> _ManaPhaseTable { get; set; }

        public ManaPhasingOrb(Serial serial)
            : base(serial)
        {
        }

        public override void Serialize(GenericWriter writer)
        {
            base.Serialize(writer);
            writer.Write((int)0);
        }

        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();
        }
    }

}
try adding this to repair.cs
namespace Server.Engines.Craft
{
+ public interface IRepairable
+ {
+ CraftSystem RepairSystem { get; }
+ }
seems you have an older svn
 
Coming back to this as I have a question regarding spawning the master storage backpack. I know the code to add the backpack to a player on character creation

Code:
from.AddToBackpack(new MasterStorage());

however is there s way to add the MasterStorage with keys already on it?
 
Example 1, the split approach
Code:
            var m = new MasterStorage();
            m.StorageList = new List<BaseStorage>()
            {
                new AlchemistStorage(), new BardStorage(), new CookStorage(), new ItemStorage(), new JewelerStorage(),
                new MageStorage(), new MinerStorage(), new MLResourceStorage(), new RunicStorage(), new ScriberStorage(),
                new TailorStorage(), new ToolStorage(), new WoodworkerStorage()
            };
            from.AddToBackpack(m);
Example 2, the I do not want to create a variable for it approach
Code:
           from.AddToBackpack(new MasterStorage() { StorageList = new List<BaseStorage>()
                {
                    new AlchemistStorage(), new BardStorage(), new CookStorage(), new ItemStorage(), new JewelerStorage(),
                    new MageStorage(), new MinerStorage(), new MLResourceStorage(), new RunicStorage(), new ScriberStorage(),
                    new TailorStorage(), new ToolStorage(), new WoodworkerStorage()
                }
            });
 
I went with approach 1 however it tossed a compile error. I suspect I'm missing a reference in the systems at the top.

m was already being used, so i made it m1.

Code:
Errors:
+ Misc/Race System/RaceGump.cs:
    CS0246: Line 227: The type or namespace name 'List' could not be found (are you missing a using directive or an assembly reference?)
    CS1925: Line 228: Cannot initialize object of type 'List<daat99.BaseStorage>' with a collection initializer
Scripts: One or more scripts failed to compile or no script files were found.
 
Well if you would use an IDE like visual studio it would tell you whats wrong and what you can do to fix it. Even gives you a one click solution.

but yes you are missing
using System.Collections.Generic;
at the top
 
Out of curiosity. If I wanted to attach the context menu's to say a cloak, anyone got an example script of that? I've tried and every time i end up with either an item that has no ingame graphic (even though i selected the right base) or i get an item with no context menu's. Kind of like pockets in a cloak is what would open up.
 
That much is known . :) .. But yeah i figure it would be something weird. The goal is to make unique clothing that is meant to hold certain types of items in its master storage key, so example would be "Boots of Daggers" would only be able to hold daggers in his storage key, and "Cloak of Mages" that would hold reagents in its storage key.

I've tried making the clothing however as soon as the ItemID is no longer a bag, it doesn't get treated as a bag which makes sense but doesn't maintain the context menus too. I figured it could have been something like the Ninja belt, but i think it's more complicated then that.
 
The quiver would likely work though, its actually a container type ItemID. But I'm curious to see the code so I'm going to dive into it and take a look to see if any of it may point in the right direction.
 
you could create a new layer, custom layer, like the backpack or a bankbox, that acts as a container and have the context menu open the layer
 
Creating a custom layer is a client mod, then needs to be referenced in the server core and recompile, too much work for right now.. lol. But that is a good suggestion. :)
 
is it possible to have someone post a working file with this installed with a more recent version of the repo
 
I agree on that however that is a lot of re writing, this is still easy enough to push into a server however you need to really pay attention to detail, example, the OnHit methods are now different as well as the BaseInstrument quality entries are different, there are more, but I'm currently doing the process now.. lol. I think at this point we may want to open a support thread for this system instead of using the discussion thread to help track progress.
[doublepost=1504486927][/doublepost]I've successfully compiled this into the current repo, however to make a new tutorial on it.. I'm not sure if i have the patience.. However give it a try and let us know what errors you hit. To note, you will have to downgrade some parts of the distro for this to work, so this will likely make upgrading the distro next to impossible without breaking something, even with manual merge the chance for error is great..
 
i know its going to be a lot of trouble especially when i get to the new bulk system... you think someone would be on this being a system to turn on and off such as siege by popular demand i don't know maybe i'm just talking gibberish.
 
Since this isn't standard to OSI, this would likely never happen. We are lucky the XML Spawner system is included . :)

i know its going to be a lot of trouble especially when i get to the new bulk system... you think someone would be on this being a system to turn on and off such as siege by popular demand i don't know maybe i'm just talking gibberish.
 
I agree on that however that is a lot of re writing, this is still easy enough to push into a server however you need to really pay attention to detail, example, the OnHit methods are now different as well as the BaseInstrument quality entries are different, there are more, but I'm currently doing the process now.. lol. I think at this point we may want to open a support thread for this system instead of using the discussion thread to help track progress.
[doublepost=1504486927][/doublepost]I've successfully compiled this into the current repo, however to make a new tutorial on it.. I'm not sure if i have the patience.. However give it a try and let us know what errors you hit. To note, you will have to downgrade some parts of the distro for this to work, so this will likely make upgrading the distro next to impossible without breaking something, even with manual merge the chance for error is great..

Joshua,

Sorry, still new to servuo... where can I find your updated version? I have been trying to get this updated as well and am hitting walls with merging in the resources to the distro scripts.
 
As i stated, I will not be creating a tutorial on this, and my build isn't open to the public at this time.

This build is open to the public however is not based on the newest repo, its only a few months old so its not terrible however there has been a lot of changes since it was made. I'm sure merging out dated files from the newer build into this older build would be easier then trying to import the system and re do it. haha.

https://www.servuo.com/archive/new-servuo-rebuild-w-owltr-fs-ats.756/

Also as stated, if you wish to try to import this , give it a go, and report any errors you run into.
 
So im currently re-merging OWTL 4.0 with a fresh copy of pub 54 from the GitHub. Once im done and it compiles correctly I will thoroughly test the features of this pack. Once all things work as intended, I will take my merged versions and repack them in the new file structure and upload them so the community can have a drag and drop version for the 54 on GitHub. Well as long as its a fresh unaltered copy. Not sure though what im gonna do about PackMagicItems cause it does not exist in pub 54.

Etherplague thank you for doing this. I can never get this to work on my own and I really appreciate your work and effort.
 
Everything is working great for me except this error in leatherelemental.cs


--------------------------------------------------------------------------------

ServUO - [https://www.servuo.com] Version 0.5, Build 6349.40628
Core: Optimizing for 8 64-bit processors
RandomImpl: CSPRandom (Software)
Core: Loading config...
Scripts: Compiling C# scripts...Failed with: 1 errors, 33 warnings
Warnings:
+ CUSTOM/New Systems/OWLTR/New/LeatherElementals.cs:
CS0103: Line 58: The name 'PackMagicItems' does not exist in the current con
text
CS0103: Line 129: The name 'PackMagicItems' does not exist in the current co
ntext
CS0103: Line 201: The name 'PackMagicItems' does not exist in the current co
ntext
CS0103: Line 272: The name 'PackMagicItems' does not exist in the current co
ntext
CS0103: Line 343: The name 'PackMagicItems' does not exist in the current co
ntext
CS0103: Line 414: The name 'PackMagicItems' does not exist in the current co
ntext
CS0103: Line 485: The name 'PackMagicItems' does not exist in the current co
ntext
CS0103: Line 556: The name 'PackMagicItems' does not exist in the current co
ntext
CS0103: Line 628: The name 'PackMagicItems' does not exist in the current co
ntext
CS0103: Line 700: The name 'PackMagicItems' does not exist in the current co
ntext
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.
 
I commented out all the lines pertaining to the PackMagicItems. I'm sure there's a replacement name for them though, I just hadn't got around to looking for it lol
 
ya thats what i did but i have been getting a server crash and wondered. A null reference object so some variable is passing a bad variable. If you decide to check it out and come up with something I would be interested. I am not a scripter just a haxor!
 
Your best bet would be to run the server in debug mode then try to get it to crash again, and post the crash log. Might be able to help you easier that way. It'll give the full error including what script and line number the error occured
 
In leather eath ls package magic items is still being looked for
[doublepost=1508675685][/doublepost]Magicpackageitem is still in leather eatherals
[doublepost=1508675803][/doublepost]?Err leather elemental
 
anyone having problems with house placement tool in this? both admin and player, place house, there's no stairs, no signpost, and you're stuck under the floor. Not a clue as to what's going on.

Client version 7.0.59.5
 
Last edited:
Back