So far the issue is ALL BASECLOTHING is not working. BaseJewel, BaseArmor and BaseWeapon using regular equipment and artifact drops are respected. Looking furhter
Post automatically merged:

Here is a fix, I've already posted it to the overview list. BaseClothing needs an extra entry.

In BaseClothing.cs Locate
C#:
        public override bool CanEquip(Mobile from)
        {

at the bottom of the section , replace

C#:
            }

            return base.CanEquip(from);
        }

with this

C#:
            }

            if (!Server.Engines.XmlSpawner2.XmlAttach.CheckCanEquip(this, from))
                return false;
            else
                return base.CanEquip(from);
        }

sorry it took a minute to get that in place. Let me know if you run into anymore weirdness.
 
Last edited:
Ok,we are running under small issue for now,if do not use your level requirement for all items and i use under scripts this code:

C#:
public override void AddNameProperty(ObjectPropertyList list)
        {
            base.AddNameProperty( list );
            list.Add( "<BASEFONT COLOR=#053CFC>"/*Green*/ + "[Evolved][Tier 3]" + "<BASEFONT COLOR=#FFFFFF>"/*Back to White*/ );
        }
        public override bool OnEquip(Mobile from)
        {
            XMLPlayerLevelAtt weap1 = (XMLPlayerLevelAtt)XmlAttach.FindAttachment(from, typeof(XMLPlayerLevelAtt));
            if (weap1 != null && weap1.Levell >= 130 && from is PlayerMobile)
            {     
                return true;
            }
            else
            {
                if (from is PlayerMobile)
                {
                    from.SendMessage( "You do not meet the level requirement for this item." );
                    return false;
                }
            }
            return true;
        }

        public override void GetProperties( ObjectPropertyList list )
        {
            base.GetProperties( list );
        
            list.Add( "<BASEFONT COLOR=#FFC802>[Required level: 130]<BASEFONT COLOR=#FFFFFF>");
        }
Issue is: Items dont get stats correctly.If i equip that,i do not receive message of stat increase,and i not receive stat bonus,if i relog,ive got stat bonus,and if unequip i receive statbonust lost message.
If i use your level requeriment on all items without this code:
Issue: Any player can equip any custom item.Note: The custom items are showing correctly the battle rating and level requirement properties.
 
looking at that snippet, there is no base.OnEquip(from); call so yea

Also shortened the method and made it have less redundant checks. But the general logic is not touched (just throwing that out there :p )

C#:
        public override bool OnEquip(Mobile from)
        {
            if(from is PlayerMobile)
            {
                XMLPlayerLevelAtt weap1 = (XMLPlayerLevelAtt)XmlAttach.FindAttachment(from, typeof(XMLPlayerLevelAtt));
                if (weap1 == null || weap1.Levell < 130)
                {     
                    from.SendMessage( "You do not meet the level requirement for this item." );
                    return false;
                }
            }
            return true;
        }
 
Ok guys,just the last issue on Configuredequipments:
Using the standard code:

C#:
public bool AttachOnEquipCreateDynamicSystem    =    true;                /*    This will place the attachment on ALL equipment.
                                                                                    Clothing/jewels/armor/weapons/ EVEN RARES */
        public bool ActivateDynamicLevelSystem            =    true;
        /* Even if the attachments are on the equipment, if this is set to false, the attachments do nothing!
        ------------>  TURN THIS ON TO USE THE SYSTEM!*/
                                                                                    
        public string NameOfBattleRatingStat            =    "Battle Rating:";       
        public string RequiredLevelMouseOver            =    "Required Level:";       
        /*    Change this if you do not want it call it Battle Rating. This applies to all equipment! */
        
        /* Each Equipment Variable will have 10 thresholds of configuration, you can add more if you like however I felt 10 is a decent balance. */
        
        /* In the below default settings anything below level intensity of Level 1 (100 in this case) doesn't require a level to equip! */
        
        /* Explanation: So lets say you have a helmet with a battle rating of 101, then that means the player Must have a level of '5'
           or higher to equip the helmet.  Be sure to choose levels that make sense for the intesity you are picking! */
        
        /* BaseArmor - Armor Properties */
        /*                                     Levels        Threshhold                                            intensity */
        public int ArmorRequiredLevel1        =    5;        /*1*/        public int ArmorRequiredLevel1Intensity = 100;
        public int ArmorRequiredLevel2        =    10;        /*2*/        public int ArmorRequiredLevel2Intensity = 250;
        public int ArmorRequiredLevel3        =    20;        /*3*/        public int ArmorRequiredLevel3Intensity = 450;
        public int ArmorRequiredLevel4        =    25;        /*4*/        public int ArmorRequiredLevel4Intensity = 650;
        public int ArmorRequiredLevel5        =    35;        /*5*/        public int ArmorRequiredLevel5Intensity = 750;
        public int ArmorRequiredLevel6        =    40;        /*6*/        public int ArmorRequiredLevel6Intensity = 850;
        public int ArmorRequiredLevel7        =    45;        /*7*/        public int ArmorRequiredLevel7Intensity = 950;
        public int ArmorRequiredLevel8        =    50;        /*8*/        public int ArmorRequiredLevel8Intensity = 1050;
        public int ArmorRequiredLevel9        =    55;        /*9*/        public int ArmorRequiredLevel9Intensity = 1500;
        public int ArmorRequiredLevel10        =    60;        /*10*/        public int ArmorRequiredLevel10Intensity = 1800;
        
        /* BaseWeapon - Weapon Properties */
        /*                                     Levels        Threshhold                                            intensity */
        public int WeaponRequiredLevel1        =    5;        /*1*/        public int WeaponRequiredLevel1Intensity = 100;
        public int WeaponRequiredLevel2        =    10;        /*2*/        public int WeaponRequiredLevel2Intensity = 250;
        public int WeaponRequiredLevel3        =    20;        /*3*/        public int WeaponRequiredLevel3Intensity = 450;
        public int WeaponRequiredLevel4        =    25;        /*4*/        public int WeaponRequiredLevel4Intensity = 650;
        public int WeaponRequiredLevel5        =    35;        /*5*/        public int WeaponRequiredLevel5Intensity = 750;
        public int WeaponRequiredLevel6        =    40;        /*6*/        public int WeaponRequiredLevel6Intensity = 850;
        public int WeaponRequiredLevel7        =    45;        /*7*/        public int WeaponRequiredLevel7Intensity = 950;
        public int WeaponRequiredLevel8        =    50;        /*8*/        public int WeaponRequiredLevel8Intensity = 1050;
        public int WeaponRequiredLevel9        =    55;        /*9*/        public int WeaponRequiredLevel9Intensity = 1500;
        public int WeaponRequiredLevel10    =    60;        /*10*/        public int WeaponRequiredLevel10Intensity = 1800;
        #endregion
        
        /* BaseClothing - Clothing Properties */
        /*                                     Levels        Threshhold                                            intensity */
        public int ClothRequiredLevel1        =    5;        /*1*/        public int ClothRequiredLevel1Intensity = 100;
        public int ClothRequiredLevel2        =    10;        /*2*/        public int ClothRequiredLevel2Intensity = 250;
        public int ClothRequiredLevel3        =    20;        /*3*/        public int ClothRequiredLevel3Intensity = 450;
        public int ClothRequiredLevel4        =    25;        /*4*/        public int ClothRequiredLevel4Intensity = 650;
        public int ClothRequiredLevel5        =    35;        /*5*/        public int ClothRequiredLevel5Intensity = 750;
        public int ClothRequiredLevel6        =    40;        /*6*/        public int ClothRequiredLevel6Intensity = 850;
        public int ClothRequiredLevel7        =    45;        /*7*/        public int ClothRequiredLevel7Intensity = 950;
        public int ClothRequiredLevel8        =    50;        /*8*/        public int ClothRequiredLevel8Intensity = 1050;
        public int ClothRequiredLevel9        =    55;        /*9*/        public int ClothRequiredLevel9Intensity = 1500;
        public int ClothRequiredLevel10        =    60;        /*10*/        public int ClothRequiredLevel10Intensity = 1800;
        
        /* BaseJewel - Jewel Properties */
        /*                                     Levels        Threshhold                                            intensity */
        public int JewelRequiredLevel1        =    5;        /*1*/        public int JewelRequiredLevel1Intensity = 100;
        public int JewelRequiredLevel2        =    10;        /*2*/        public int JewelRequiredLevel2Intensity = 250;
        public int JewelRequiredLevel3        =    20;        /*3*/        public int JewelRequiredLevel3Intensity = 450;
        public int JewelRequiredLevel4        =    25;        /*4*/        public int JewelRequiredLevel4Intensity = 650;
        public int JewelRequiredLevel5        =    35;        /*5*/        public int JewelRequiredLevel5Intensity = 750;
        public int JewelRequiredLevel6        =    40;        /*6*/        public int JewelRequiredLevel6Intensity = 850;
        public int JewelRequiredLevel7        =    45;        /*7*/        public int JewelRequiredLevel7Intensity = 950;
        public int JewelRequiredLevel8        =    50;        /*8*/        public int JewelRequiredLevel8Intensity = 1050;
        public int JewelRequiredLevel9        =    55;        /*9*/        public int JewelRequiredLevel9Intensity = 1500;
        public int JewelRequiredLevel10        =    60;        /*10*/        public int JewelRequiredLevel10Intensity = 1800;
Getting all items with level required 30.No differece between intensities.
Here picture:
 

Attachments

  • requeriment.png
    requeriment.png
    125.3 KB · Views: 50
///UPDATED///SOLVED////
In this code section:
C#:
BaseWeapon bw = this.AttachedTo as BaseWeapon;
                int weaponval = CheckWeapon(bw);
                list.Add(cfe.NameOfBattleRatingStat + " {0}", weaponval);
                if (weaponval >= cfe.WeaponRequiredLevel10Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel10);}
                else if (weaponval >= cfe.WeaponRequiredLevel1Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel1);}
                else if (weaponval >= cfe.WeaponRequiredLevel8Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel8);}
                else if (weaponval >= cfe.WeaponRequiredLevel7Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel7);}
                else if (weaponval >= cfe.WeaponRequiredLevel6Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel6);}
                else if (weaponval >= cfe.WeaponRequiredLevel5Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel5);}
                else if (weaponval >= cfe.WeaponRequiredLevel4Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel4);}
                else if (weaponval >= cfe.WeaponRequiredLevel3Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel3);}
                else if (weaponval >= cfe.WeaponRequiredLevel2Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel2);}
                else if (weaponval >= cfe.WeaponRequiredLevel1Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel1);}
Are 2x WeaponRequiredLevel1Intensity and 2x WeaponRequiredLevel1
Just modified like armor,clothing and jewels.
Modified code:

C#:
BaseWeapon bw = this.AttachedTo as BaseWeapon;
                int weaponval = CheckWeapon(bw);
                list.Add(cfe.NameOfBattleRatingStat + " {0}", weaponval);
                if (weaponval >= cfe.WeaponRequiredLevel10Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel10);}
                else if (weaponval >= cfe.WeaponRequiredLevel9Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel9);}
                else if (weaponval >= cfe.WeaponRequiredLevel8Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel8);}
                else if (weaponval >= cfe.WeaponRequiredLevel7Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel7);}
                else if (weaponval >= cfe.WeaponRequiredLevel6Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel6);}
                else if (weaponval >= cfe.WeaponRequiredLevel5Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel5);}
                else if (weaponval >= cfe.WeaponRequiredLevel4Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel4);}
                else if (weaponval >= cfe.WeaponRequiredLevel3Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel3);}
                else if (weaponval >= cfe.WeaponRequiredLevel2Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel2);}
                else if (weaponval >= cfe.WeaponRequiredLevel1Intensity){list.Add(cfe.RequiredLevelMouseOver + " {0}", cfe.WeaponRequiredLevel1);}
 
Hi!
Just wanted to show you real quick what I did with the level system for my shard and express my appreciation for all the work you did. It's a real great system and so easy to expand! I even managed to merge in the Achievement System I found on this site. I put the pictures in spoilers so it doesn't blow up the thread too much.

Character Info (not included in the package) with character name, race, faith, origin, money, (town)houses, and so forth:
attachment.php

Attributes and nullifying them (we have 4 instead of 3 and all have a 25 points minimum):
attachment.php

Achievements (bastardized the achievement system you can download here):
attachment.php

Skills, sorted by class dependencies (categories on the left, skills on the right):
LevelMenüSkills.JPG

Aaand finally class- and level bonus abilities, both active and passive - this includes power hour and choosing a companion. On the left side you have categories (companion, magic, warrior, crafter, general character) and on the right you can choose actions (in this case pick origin, generate start item based on origin, generate crafting recipe based on origin, and start power hour):
BonusCharakter.JPG

I'm still collecting ideas on what to do with the level based mounts and maybe additional abilities for the higher levels, but I'll keep a close eye on this thread!
 
Those screenshots look fantastic, I'm glad you are enjoying it! That was the complete goal as well. Easy expansions and easy to improve upon.
 
Hey mates!getting an issue with custom attacks and level system cause when a player drop an item looks like:
Sin título.png
Any advice?Thank you!Here the OnIdentify code from xml custom attacks:

C#:
public override string OnIdentify(Mobile from)
        {

            string msg = "Special Attacks:";

            foreach(SpecialAttack s in Specials)
            {
                msg += String.Format("\n{0}", s.Name);
            }

            if(Expiration > TimeSpan.Zero)
            {
                msg = String.Format("{0}\nexpires in {0} mins ", msg, Expiration.TotalMinutes);
            }

            return msg;
        }

Also have a question/possible adition to the system,its possible create a chance to drop an item without level requeriment?Like a special prop without add properties,just without level requeriment.Thank you!
 
hi, can i know which version of servo is compatible with this level system? I wanted to try it and I created a clean server with the latest version of servuo but it gives me several compilation errors.
 
hi, can i know which version of servo is compatible with this level system? I wanted to try it and I created a clean server with the latest version of servuo but it gives me several compilation errors.
I got it working under publish 54 with some minor fixes,i think 56 too
 
Fresh ServUO build, scripts placed in custom folder and I get this on compile:
Am I doing something wrong? I havent added any additional code.

C#:
Scripts: Compiling C# scripts...Failed with: 37 errors, 0 warnings
Errors:
 + Custom/Equipment Example/PlaceHolderEquipment/AxePlaceHolder.cs:
    CS0115: Line 36: 'AxePlaceHolder.AosStrengthReq': no suitable method found to override
    CS0115: Line 43: 'AxePlaceHolder.AosMinDamage': no suitable method found to override
    CS0115: Line 50: 'AxePlaceHolder.AosMaxDamage': no suitable method found to override
    CS0115: Line 57: 'AxePlaceHolder.AosSpeed': no suitable method found to override
    CS0115: Line 64: 'AxePlaceHolder.MlSpeed': no suitable method found to override
    CS0115: Line 71: 'AxePlaceHolder.OldStrengthReq': no suitable method found to override
    CS0115: Line 78: 'AxePlaceHolder.OldMinDamage': no suitable method found to override
    CS0115: Line 85: 'AxePlaceHolder.OldMaxDamage': no suitable method found to override
    CS0115: Line 92: 'AxePlaceHolder.OldSpeed': no suitable method found to override
 + Custom/Equipment Example/PlaceHolderEquipment/BowPlaceHolder.cs:
    CS0115: Line 56: 'BowPlaceHolder.AosStrengthReq': no suitable method found to override
    CS0115: Line 63: 'BowPlaceHolder.AosMinDamage': no suitable method found to override
    CS0115: Line 70: 'BowPlaceHolder.AosMaxDamage': no suitable method found to override
    CS0115: Line 77: 'BowPlaceHolder.AosSpeed': no suitable method found to override
    CS0115: Line 84: 'BowPlaceHolder.MlSpeed': no suitable method found to override
    CS0115: Line 91: 'BowPlaceHolder.OldStrengthReq': no suitable method found to override
    CS0115: Line 98: 'BowPlaceHolder.OldMinDamage': no suitable method found to override
    CS0115: Line 105: 'BowPlaceHolder.OldMaxDamage': no suitable method found to override
    CS0115: Line 112: 'BowPlaceHolder.OldSpeed': no suitable method found to override
 + Custom/Equipment Example/PlaceHolderEquipment/BroadswordPlaceHolder.cs:
    CS0115: Line 36: 'BroadswordPlaceHolder.AosStrengthReq': no suitable method found to override
    CS0115: Line 43: 'BroadswordPlaceHolder.AosMinDamage': no suitable method found to override
    CS0115: Line 50: 'BroadswordPlaceHolder.AosMaxDamage': no suitable method found to override
    CS0115: Line 57: 'BroadswordPlaceHolder.AosSpeed': no suitable method found to override
    CS0115: Line 64: 'BroadswordPlaceHolder.MlSpeed': no suitable method found to override
    CS0115: Line 71: 'BroadswordPlaceHolder.OldStrengthReq': no suitable method found to override
    CS0115: Line 78: 'BroadswordPlaceHolder.OldMinDamage': no suitable method found to override
    CS0115: Line 85: 'BroadswordPlaceHolder.OldMaxDamage': no suitable method found to override
    CS0115: Line 92: 'BroadswordPlaceHolder.OldSpeed': no suitable method found to override
 + Custom/Equipment Example/PlaceHolderEquipment/CutlassPlaceHolder.cs:
    CS0115: Line 34: 'CutlassPlaceHolder.AosStrengthReq': no suitable method found to override
    CS0115: Line 41: 'CutlassPlaceHolder.AosMinDamage': no suitable method found to override
    CS0115: Line 48: 'CutlassPlaceHolder.AosMaxDamage': no suitable method found to override
    CS0115: Line 55: 'CutlassPlaceHolder.AosSpeed': no suitable method found to override
    CS0115: Line 62: 'CutlassPlaceHolder.MlSpeed': no suitable method found to override
    CS0115: Line 69: 'CutlassPlaceHolder.OldStrengthReq': no suitable method found to override
    CS0115: Line 76: 'CutlassPlaceHolder.OldMinDamage': no suitable method found to override
    CS0115: Line 83: 'CutlassPlaceHolder.OldMaxDamage': no suitable method found to override
    CS0115: Line 90: 'CutlassPlaceHolder.OldSpeed': no suitable method found to override
 + Custom/Equipment Example/PlaceHolderEquipment/DaggerPlaceHolder.cs:
    CS0115: Line 36: 'DaggerPlaceHolder.AosStrengthReq': no suitable method found to override
    CS0115: Line 43: 'DaggerPlaceHolder.AosMinDamage': no suitable method found to override
    CS0115: Line 50: 'DaggerPlaceHolder.AosMaxDamage': no suitable method found to override
    CS0115: Line 57: 'DaggerPlaceHolder.AosSpeed': no suitable method found to override
    CS0115: Line 64: 'DaggerPlaceHolder.MlSpeed': no suitable method found to override
    CS0115: Line 71: 'DaggerPlaceHolder.OldStrengthReq': no suitable method found to override
    CS0115: Line 78: 'DaggerPlaceHolder.OldMinDamage': no suitable method found to override
    CS0115: Line 85: 'DaggerPlaceHolder.OldMaxDamage': no suitable method found to override
    CS0115: Line 92: 'DaggerPlaceHolder.OldSpeed': no suitable method found to override
 + Custom/Equipment Example/PlaceHolderEquipment/LongswordPlaceHolder.cs:
    CS0115: Line 36: 'LongswordPlaceHolder.AosStrengthReq': no suitable method found to override
    CS0115: Line 43: 'LongswordPlaceHolder.AosMinDamage': no suitable method found to override
    CS0115: Line 50: 'LongswordPlaceHolder.AosMaxDamage': no suitable method found to override
    CS0115: Line 57: 'LongswordPlaceHolder.AosSpeed': no suitable method found to override
    CS0115: Line 64: 'LongswordPlaceHolder.MlSpeed': no suitable method found to override
    CS0115: Line 71: 'LongswordPlaceHolder.OldStrengthReq': no suitable method found to override
    CS0115: Line 78: 'LongswordPlaceHolder.OldMinDamage': no suitable method found to override
    CS0115: Line 85: 'LongswordPlaceHolder.OldMaxDamage': no suitable method found to override
    CS0115: Line 92: 'LongswordPlaceHolder.OldSpeed': no suitable method found to override
 + Custom/Equipment Example/ChainCoifLevel.cs:
    CS0115: Line 97: 'ChainCoifLevel.AosStrReq': no suitable method found to override
    CS0115: Line 104: 'ChainCoifLevel.OldStrReq': no suitable method found to override
    CS0506: Line 111: 'ChainCoifLevel.ArmorBase': cannot override inherited member 'BaseArmor.ArmorBase' because it is not marked virtual, abstract, or override
 + Custom/Equipment Example/ChaosShieldLevel.cs:
    CS0115: Line 101: 'ChaosShieldLevel.AosStrReq': no suitable method found to override
    CS0506: Line 108: 'ChaosShieldLevel.ArmorBase': cannot override inherited member 'BaseArmor.ArmorBase' because it is not marked virtual, abstract, or override
 + Custom/Equipment Example/KatanaLevel.cs:
    CS0115: Line 63: 'KatanaLevel.AosStrengthReq': no suitable method found to override
    CS0115: Line 70: 'KatanaLevel.AosMinDamage': no suitable method found to override
    CS0115: Line 77: 'KatanaLevel.AosMaxDamage': no suitable method found to override
    CS0115: Line 84: 'KatanaLevel.AosSpeed': no suitable method found to override
    CS0115: Line 91: 'KatanaLevel.MlSpeed': no suitable method found to override
    CS0115: Line 98: 'KatanaLevel.OldStrengthReq': no suitable method found to override
    CS0115: Line 105: 'KatanaLevel.OldMinDamage': no suitable method found to override
    CS0115: Line 112: 'KatanaLevel.OldMaxDamage': no suitable method found to override
    CS0115: Line 119: 'KatanaLevel.OldSpeed': no suitable method found to override
 + Custom/Equipment Example/RingmailArmsLevel.cs:
    CS0115: Line 97: 'RingmailArmsLevel.AosStrReq': no suitable method found to override
    CS0115: Line 104: 'RingmailArmsLevel.OldStrReq': no suitable method found to override
    CS0115: Line 111: 'RingmailArmsLevel.OldDexBonus': no suitable method found to override
    CS0506: Line 118: 'RingmailArmsLevel.ArmorBase': cannot override inherited member 'BaseArmor.ArmorBase' because it is not marked virtual, abstract, or override
 + Custom/Equipment Example/RingmailChestLevel.cs:
    CS0115: Line 97: 'RingmailChestLevel.AosStrReq': no suitable method found to override
    CS0115: Line 104: 'RingmailChestLevel.OldStrReq': no suitable method found to override
    CS0115: Line 111: 'RingmailChestLevel.OldDexBonus': no suitable method found to override
    CS0506: Line 118: 'RingmailChestLevel.ArmorBase': cannot override inherited member 'BaseArmor.ArmorBase' because it is not marked virtual, abstract, or override
 + Custom/Equipment Example/RingmailGlovesLevel.cs:
    CS0115: Line 98: 'RingmailGlovesLevel.AosStrReq': no suitable method found to override
    CS0115: Line 105: 'RingmailGlovesLevel.OldStrReq': no suitable method found to override
    CS0115: Line 112: 'RingmailGlovesLevel.OldDexBonus': no suitable method found to override
    CS0506: Line 119: 'RingmailGlovesLevel.ArmorBase': cannot override inherited member 'BaseArmor.ArmorBase' because it is not marked virtual, abstract, or override
 + Custom/Equipment Example/RingmailLegsLevel.cs:
    CS0115: Line 97: 'RingmailLegsLevel.AosStrReq': no suitable method found to override
    CS0115: Line 104: 'RingmailLegsLevel.OldStrReq': no suitable method found to override
    CS0115: Line 111: 'RingmailLegsLevel.OldDexBonus': no suitable method found to override
    CS0506: Line 118: 'RingmailLegsLevel.ArmorBase': cannot override inherited member 'BaseArmor.ArmorBase' because it is not marked virtual, abstract, or override
 + Custom/XMLAttachments/BonusStatFromPets/BonusStatAtt.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 31: 'BonusStatAtt.OnAttach()': no suitable method found to override
    CS0115: Line 45: 'BonusStatAtt.OnDelete()': no suitable method found to override
    CS0115: Line 58: 'BonusStatAtt.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 65: 'BonusStatAtt.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 14: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 18: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 18: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 24: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 24: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/BonusStatFromPets/BonusStatAtt10.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 32: 'BonusStatAtt10.OnAttach()': no suitable method found to override
    CS0115: Line 46: 'BonusStatAtt10.OnDelete()': no suitable method found to override
    CS0115: Line 58: 'BonusStatAtt10.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 65: 'BonusStatAtt10.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 16: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/BonusStatFromPets/BonusStatAtt100.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 32: 'BonusStatAtt100.OnAttach()': no suitable method found to override
    CS0115: Line 46: 'BonusStatAtt100.OnDelete()': no suitable method found to override
    CS0115: Line 58: 'BonusStatAtt100.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 65: 'BonusStatAtt100.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 16: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/BonusStatFromPets/BonusStatAtt140.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 32: 'BonusStatAtt140.OnAttach()': no suitable method found to override
    CS0115: Line 46: 'BonusStatAtt140.OnDelete()': no suitable method found to override
    CS0115: Line 58: 'BonusStatAtt140.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 65: 'BonusStatAtt140.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 16: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/BonusStatFromPets/BonusStatAtt160.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 32: 'BonusStatAtt160.OnAttach()': no suitable method found to override
    CS0115: Line 46: 'BonusStatAtt160.OnDelete()': no suitable method found to override
    CS0115: Line 58: 'BonusStatAtt160.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 65: 'BonusStatAtt160.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 16: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/BonusStatFromPets/BonusStatAtt180.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 32: 'BonusStatAtt180.OnAttach()': no suitable method found to override
    CS0115: Line 46: 'BonusStatAtt180.OnDelete()': no suitable method found to override
    CS0115: Line 58: 'BonusStatAtt180.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 65: 'BonusStatAtt180.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 16: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/BonusStatFromPets/BonusStatAtt20.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 32: 'BonusStatAtt20.OnAttach()': no suitable method found to override
    CS0115: Line 46: 'BonusStatAtt20.OnDelete()': no suitable method found to override
    CS0115: Line 58: 'BonusStatAtt20.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 65: 'BonusStatAtt20.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 16: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/BonusStatFromPets/BonusStatAtt200.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 32: 'BonusStatAtt200.OnAttach()': no suitable method found to override
    CS0115: Line 46: 'BonusStatAtt200.OnDelete()': no suitable method found to override
    CS0115: Line 58: 'BonusStatAtt200.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 65: 'BonusStatAtt200.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 16: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/BonusStatFromPets/BonusStatAtt201.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 32: 'BonusStatAtt201.OnAttach()': no suitable method found to override
    CS0115: Line 46: 'BonusStatAtt201.OnDelete()': no suitable method found to override
    CS0115: Line 58: 'BonusStatAtt201.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 65: 'BonusStatAtt201.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 16: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/BonusStatFromPets/BonusStatAtt30.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 32: 'BonusStatAtt30.OnAttach()': no suitable method found to override
    CS0115: Line 46: 'BonusStatAtt30.OnDelete()': no suitable method found to override
    CS0115: Line 58: 'BonusStatAtt30.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 65: 'BonusStatAtt30.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 16: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/BonusStatFromPets/BonusStatAtt40.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 32: 'BonusStatAtt40.OnAttach()': no suitable method found to override
    CS0115: Line 46: 'BonusStatAtt40.OnDelete()': no suitable method found to override
    CS0115: Line 58: 'BonusStatAtt40.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 65: 'BonusStatAtt40.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 16: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/BonusStatFromPets/BonusStatAtt50.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 32: 'BonusStatAtt50.OnAttach()': no suitable method found to override
    CS0115: Line 46: 'BonusStatAtt50.OnDelete()': no suitable method found to override
    CS0115: Line 58: 'BonusStatAtt50.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 65: 'BonusStatAtt50.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 16: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/BonusStatFromPets/BonusStatAtt60.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 32: 'BonusStatAtt60.OnAttach()': no suitable method found to override
    CS0115: Line 46: 'BonusStatAtt60.OnDelete()': no suitable method found to override
    CS0115: Line 58: 'BonusStatAtt60.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 65: 'BonusStatAtt60.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 16: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/BonusStatFromPets/BonusStatAtt70.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 32: 'BonusStatAtt70.OnAttach()': no suitable method found to override
    CS0115: Line 46: 'BonusStatAtt70.OnDelete()': no suitable method found to override
    CS0115: Line 58: 'BonusStatAtt70.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 65: 'BonusStatAtt70.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 16: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/BonusStatFromPets/BonusStatAtt80.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 32: 'BonusStatAtt80.OnAttach()': no suitable method found to override
    CS0115: Line 46: 'BonusStatAtt80.OnDelete()': no suitable method found to override
    CS0115: Line 58: 'BonusStatAtt80.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 65: 'BonusStatAtt80.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 16: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/BonusStatFromPets/BonusStatAtt90.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 32: 'BonusStatAtt90.OnAttach()': no suitable method found to override
    CS0115: Line 46: 'BonusStatAtt90.OnDelete()': no suitable method found to override
    CS0115: Line 58: 'BonusStatAtt90.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 65: 'BonusStatAtt90.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 16: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 20: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 26: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/ExpPowerHour.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 30: 'ExpPowerHour.OnAttach()': no suitable method found to override
    CS0115: Line 40: 'ExpPowerHour.OnDelete()': no suitable method found to override
    CS0115: Line 44: 'ExpPowerHour.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 51: 'ExpPowerHour.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 12: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 16: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 16: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 22: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 22: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/LevelEquipXML.cs:
    CS0246: Line 9: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 193: 'LevelEquipXML.CanEquip(Mobile)': no suitable method found to override
    CS0115: Line 288: 'LevelEquipXML.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 300: 'LevelEquipXML.Deserialize(GenericReader)': no suitable method found to override
    CS0115: Line 317: 'LevelEquipXML.DisplayedProperties(Mobile)': no suitable method found to override
    CS0246: Line 123: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 128: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 128: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 134: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 134: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 141: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 141: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 148: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 148: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/LevelEquipXMLDynamic.cs:
    CS0246: Line 11: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 83: 'LevelEquipXMLDynamic.OnAttach()': no suitable method found to override
    CS0115: Line 96: 'LevelEquipXMLDynamic.AddProperties(ObjectPropertyList)': no suitable method found to override
    CS0115: Line 164: 'LevelEquipXMLDynamic.CanEquip(Mobile)': no suitable method found to override
    CS0115: Line 1285: 'LevelEquipXMLDynamic.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 1295: 'LevelEquipXMLDynamic.Deserialize(GenericReader)': no suitable method found to override
    CS0115: Line 1310: 'LevelEquipXMLDynamic.DisplayedProperties(Mobile)': no suitable method found to override
    CS0246: Line 18: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 22: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 22: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 27: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 27: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 33: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 33: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 39: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 39: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/PlayerAttloop.cs:
    CS0246: Line 22: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 40: 'PlayerAttloop.OnAttach()': no suitable method found to override
    CS0115: Line 78: 'PlayerAttloop.OnDelete()': no suitable method found to override
    CS0115: Line 82: 'PlayerAttloop.OnReattach()': no suitable method found to override
    CS0115: Line 86: 'PlayerAttloop.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 93: 'PlayerAttloop.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 24: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 28: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 28: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 34: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 34: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/XMLNewPlayer.cs:
    CS0246: Line 10: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 35: 'XMLNewPlayer.OnAttach()': no suitable method found to override
    CS0115: Line 64: 'XMLNewPlayer.OnDelete()': no suitable method found to override
    CS0115: Line 78: 'XMLNewPlayer.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 85: 'XMLNewPlayer.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 15: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 19: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 19: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 24: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 24: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 29: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 29: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/XMLPetAttacksBonus.cs:
    CS0246: Line 15: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 116: 'XMLPetAttacksBonus.OnAttach()': no suitable method found to override
    CS0115: Line 125: 'XMLPetAttacksBonus.OnDelete()': no suitable method found to override
    CS0115: Line 331: 'XMLPetAttacksBonus.OnWeaponHit(Mobile, Mobile, BaseWeapon, int)': no suitable method found to override
    CS0115: Line 371: 'XMLPetAttacksBonus.HandlesOnMovement': no suitable method found to override
    CS0115: Line 372: 'XMLPetAttacksBonus.OnMovement(MovementEventArgs)': no suitable method found to override
    CS0115: Line 515: 'XMLPetAttacksBonus.OnTrigger(object, Mobile)': no suitable method found to override
    CS0115: Line 556: 'XMLPetAttacksBonus.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 574: 'XMLPetAttacksBonus.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 102: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 106: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 106: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 111: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 111: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/XMLPetLevelAtt.cs:
    CS0246: Line 13: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 134: 'XMLPetLevelAtt.BlockDefaultOnUse(Mobile, object)': no suitable method found to override
    CS0115: Line 518: 'XMLPetLevelAtt.OnAttach()': no suitable method found to override
    CS0115: Line 551: 'XMLPetLevelAtt.OnDelete()': no suitable method found to override
    CS0115: Line 560: 'XMLPetLevelAtt.HandlesOnMovement': no suitable method found to override
    CS0115: Line 561: 'XMLPetLevelAtt.OnMovement(MovementEventArgs)': no suitable method found to override
    CS0115: Line 593: 'XMLPetLevelAtt.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 615: 'XMLPetLevelAtt.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 119: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 123: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 123: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 128: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 128: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
 + Custom/XMLAttachments/XMLPlayerLevelAtt.cs:
    CS0246: Line 11: The type or namespace name 'XmlAttachment' could not be found (are you missing a using directive or an assembly reference?)
    CS0115: Line 411: 'XMLPlayerLevelAtt.OnAttach()': no suitable method found to override
    CS0115: Line 482: 'XMLPlayerLevelAtt.OnDelete()': no suitable method found to override
    CS0115: Line 494: 'XMLPlayerLevelAtt.HandlesOnKill': no suitable method found to override
    CS0115: Line 495: 'XMLPlayerLevelAtt.OnKill(Mobile, Mobile)': no suitable method found to override
    CS0115: Line 526: 'XMLPlayerLevelAtt.OnWeaponHit(Mobile, Mobile, BaseWeapon, int)': no suitable method found to override
    CS0115: Line 530: 'XMLPlayerLevelAtt.Serialize(GenericWriter)': no suitable method found to override
    CS0115: Line 612: 'XMLPlayerLevelAtt.Deserialize(GenericReader)': no suitable method found to override
    CS0246: Line 397: The type or namespace name 'ASerial' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 401: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 401: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 406: The type or namespace name 'AttachableAttribute' could not be found (are you missing a using directive or an assembly reference?)
    CS0246: Line 406: The type or namespace name 'Attachable' could not be found (are you missing a using directive or an assembly reference?)
Scripts: One or more scripts failed to compile or no script files were found.
 
@asdasdas dasdasd - The newest version of ServUO will not work as it's not compatible due to the recent direction the moderators have taken. I've updated the description with more information on this.

@Cody - I will see what I can do to put a success fail check, that should help the issue. For now you can disable the skill in the config if you find someone is abusing it.
 
Joshua updated Level System 3 - Rerelease with a new update entry:

Changes to Servuo

With the most recent changes and change of direction taken by the servuo team the level system is not compatible with the newest servuo distro. I've updated the main description talking more about these changes. I will be likely making a preconfigured server distro with Level 3 already added and ready to go and will keep it updated as updates and fixes are processed.

Read the rest of this update entry...
 
So rebuilding XMLSpawner to work with the new updates without losing a bunch of useful features is... not worth the effort. To move this little project forward I will be forking this to another thread soon. I will post the link to it here once it's ready for display. The forked project will be a complete rewrite excluding xmlattachments. So far I'm almost half way done with the conversion. This will be dependant upon the core of servuo vs a third party system, so the future proof concept is now applied. STILL NOT TOUCHING THAT PLAYERMOBILE IF I CAN HELP IT. :-D
 
Almost done with this madness..

Features Migrated so far.
Level System for Players
Level Sheet Item now holds all the info.
Level Equip System
SkillGain Gives Exp (this works better now)
Battle Rating (gearscore)
All of the Items (exp coin , expbar etc)
Player Level Gump (with all the internal features working)
Level Vendors (and the internal features working)
The NewPlayer Starting Equipment Modifier (reworked)
EXP Power Hour (for party too)
Bod Rewards EXP

The Remaining features that are giving me a headache and should be done soon.

Pet Levels
Pet Bonus Attacks
Pet Level Gump
Pet Sheet

That covers most of the things... Depending on how the next two days go I may release the system without the pet levels. I have an idea on how to make this work without severe changes to the basecreature script, so I'm going to try those first.
 
  • Love
Reactions: ExX
I remember having the special attacks active and they would hit everything near them. AOE Damage including friendlies.
 
I remember having the special attacks active and they would hit everything near them. AOE Damage including friendlies.

You are correct. Currently, I have successfully finished the base part of the pet level extension, so pets level and the like without serial changes to basecreatures (HAZAA) but the pet special attacks like what you are mentioning. When I built the special attacks, I HEAVILY utilized the attachment system which means I have to rebuild it from the ground up.

So the release date will be tomorrow, however, it will likely have the special attacks commented out for now until I finish the rebuild of the special attacks, which may take a bit longer. So for now I'm just going to clean up existing code before releasing what I have if anyone wants to stress test things for me.

Side Note: once this is all caught up, seems i have a request to continue building my Gor System and also migrate the race script system that i kind of neglected so that is something else to look forward too. Perhaps a reworked faction battle system will evolve from the race wars. lol
 
Last edited:
I may have a method out of another pet aoe that may help
Ultimately I need the script to be a static void that can be called into the onmovement method within basecreature. That is the direction I'm currently going with it. If you would like to share any ideas's I would be happy to hear them out, can post them here on this thread or send a direct message to me.
 
see if this helps
Thanks for the suggestion, so that script is only per creature and not for a wider scope. Though I'm happy regardless you made a suggestion, it can be lonely in here. :) I have enough functions for the creature attacks, the part if have to redo is how it's applied. Which so far I have a good idea, it's just a different way than I'm used too.

There is one thing in that script though that i was reminded about.

OnGaveMeleeAttack and OnGotMeleeAttack

This could be potentially used in place of what I'm using now and it can be called from an external static. :)
 
This resource will be left up for those that was the XML Version.

The new release is here:

I will still maintain this however I will be pouring more of my focus on the reshaped system for now. See you all on the other side.
 
hey by chance did you fix the maps exploit?

The issue with maps is known as the download for the Level System Extreme the skill is disabled by default for gaining EXP, there are a few passive and active skills that will cause rapid gain. This is from the Level System Extreme config file. This isn't default in XML level system.

/* Passive Skills I allowed by accident, using them
will cause rapid exp gain */
/* Add a toggle to LevelSheet, after skill reaches 100 ONCE it toggles
a switch that prevents further exp gain from said skill, even if they stone it. */
public bool AnatomyGain = false; /* every weapon hit gains exp */
public int AnatomyGainAmount = 10;
public bool ArmsLoreGain = false;
public int ArmsLoreGainAmount = 10;
public bool AnimalLoreGain = false;
public int AnimalLoreGainAmount = 10;
public bool MeditationGain = false;
public int MeditationGainAmount = 10;
public bool CartographyGain = false;
public int CartographyGainAmount = 10;

In the Level System Extreme, I'm looking into event syncs that may resolve this issue. I may also do a if statement trap that causes the skill not to generate more then X amount of EXP per a certain amount of skill points. Such as if you have 30.0 Cartography you can gain up to 500 EXP fro mthis, however if you gain another 10 skill in Cartography equally 40, that may open up another 200 exp points that could be gained from using the skill.

Just a few things I'm considering on that front.
 
I might have a workaround to the issue, i say workaround because it wouldn't be considered a true fix as it's not ideal. I will do some testing and come back with some results later.
 
Last edited:
Right on looking forward to see this completed

Okay, I found a solution. I will likely be passing this onto the other system as well since they used the same script mechanics. I updated the download file as well with the changes.

1) Updated LevelHandler.cs
You will need to merge the changes from line 570 going down (removal of skillname) or copy and paste it the file.

2) Updated the changes needed to skillcheck.cs
Remove all the changes requested before and do the following, one 1 edit vs 4.

Locate This Section

if (toGain == 1 && skill.Base <= 10.0)
toGain = Utility.Random(4) + 1;
Under the if statement located, add this below


/* XML Level System Start */
Configured ct = new Configured();
if (ct.DisableSkillGain == true && from is PlayerMobile)
{
return;
}
if (toGain != 0 && from is PlayerMobile)
{
LevelHandler.DoGainSkillExp(from, skill);
}
/* XML Level System End */

Updated the overview instructions with this as well.
I also updated the dynamic equip file to update the duplicate line.

this should be good to go now. Now what happens is only when a toon gains a skill point they get exp, if they do not gain a skill point there is no exp. This can still be exploited through stoning the skills, I will eventually add a toggle to take care of this, but this exploit isn't obvious.
 
Issue with level requirements being active on pub 57 using just razor or uos they dont show the name of the item just blessed or the rest of the list.
 
this will not work with runnuo right?
With some effort it can, however not out of the box so to speak. There will likely be some eventsinks missing and the attachment system needs to be imported. So... it may just be less effort to rebuild it? haha. You would just have to drop it in, and see what errors you get and go from that .<3 visual studio can also make the process easier. To point out though, I will not support RunUO for this.
 
Not sure if this is a bug, while in party if a party member is dead, the EXP still split, is there a way to fix that?

Line 12, i know theres a check if party member is alive, but this bug still happening


C#:
 if (give > 0)
            {
                #region PartyExpShare
                if (p != null && c.PartyExpShare)
                {
                    foreach (PartyMemberInfo mi in p.Members)
                    {
                        pm = mi.Mobile as PlayerMobile;
                       
                   
                       
                   if (pm.Alive && pm.InRange(k, range))  //alive check
                        {
                            XMLPlayerLevelAtt xmlplayerparty = (XMLPlayerLevelAtt)XmlAttach.FindAttachment(pm, typeof(XMLPlayerLevelAtt));
 
Back