Ok here is my problem my armor (not right.png) is suppose to look like (armor pic.png ) "the bottom of it anyway"
have do idea what is wrong.
other than maybe i'm just a noob at all this but Im not seeing anywhere in the code where it "displays" the mods on the armor anywhere. I can see where it checks for it I can see where it calling it but no display. shouldnt there be somewhere where it says something to the effect total pieces required = hue 0x35 and number of pieces equipt = hue 0x62? in the pic cant see it but when you have the Pieces equipt and that total requirement has been met the red [pcs 5] changes to green [pcs 5]

I have included the system and my BaseArmor.cs for reference
 

Attachments

  • not right.png
    not right.png
    89.1 KB · Views: 49
  • armor pic.png
    armor pic.png
    174.5 KB · Views: 49
  • Collectible Armor.zip
    23 KB · Views: 18
I know they are not being displayed. it should look like the picture armor pic.png would not be added till the set amount was met [5 pcs]
 
I know they are not being displayed. it should look like the picture armor pic.png would not be added till the set amount was met [5 pcs]
i only added one piece of armor to test guess i need to add the full set to check if the skills are bing modded.
 
there's nothing in the entire package that adds the displays to GetProperties or AddName.

i'd help more but i don't really have time to do so right now
 
there's nothing in the entire package that adds the displays to GetProperties or AddName.

i'd help more but i don't really have time to do so right now
and that was what i came up with I could not find any code that would added the displays to the armor.
 
ok the skill and stat stuff is adding. but you can see from the pic its adding stats skills but not showing on the armor except for the stats it does show. But not showing the Collection stuff like in the armor pic.png above. also re-adding the package with all the armor added i did not do the full set of 9 pieces because i don't have BaseJewel, BaseClothing set up only basearmor.

armorset.png
 

Attachments

  • Collectible Armor.zip
    26.2 KB · Views: 15
Ok just found my pics of how the evoker gear is suppose to look equipped and unequipped only included the 2 sets because all the armor is basically the same as to is the Jewelry.
 

Attachments

  • evoker necklace.png
    evoker necklace.png
    313.9 KB · Views: 34
  • evoker chest.png
    evoker chest.png
    159.3 KB · Views: 22
  • evoker chest equipt.png
    evoker chest equipt.png
    328.8 KB · Views: 22
  • evoker necklace equipt .png
    evoker necklace equipt .png
    428.8 KB · Views: 26
after the constructible for the item add this

public override void AddNameProperty( ObjectPropertyList list )
{
base.AddNameProperty( list );
list.Add( "Mage Collection Armor" );
}

public override void GetProperties( ObjectPropertyList list )
{
base.GetProperties( list );

if ( numSetPieces >= 5 )
{
list.Add( "Eval Int<BASEFONT COLOR=#007B00> +20<BASEFONT COLOR=#FFFFFF> Magic Resist<BASEFONT COLOR=#007B00> +3<BASEFONT COLOR=#FFFFFF>" ); //FFFFFF
}
else
{
list.Add( "Eval Int +20<BASEFONT COLOR=#FF0000> [5 pcs]<BASEFONT COLOR=#FFFFFF> Magic Resist +3<BASEFONT COLOR=#FF0000> [5 pcs]<BASEFONT COLOR=#FFFFFF>" ); //FFFFFF
}
}

you'll need to modify of course to match the actual bonuses

also use <br> to move text to a new line. it will better IMO
 
Thanks for replying to my thread.
is there not a way to add it to BaseArmor and have it look at the item scripts for the info. Because i'm pretty sure that's where the creator had it. Just think it would work better that way. i posted the item scripts if you'd like to see how the skills and stats are listed.
I mean the item scripts are stock straight out of there shard its the basearmor where i had to make the changes to get them to work and im sure it was just an over site when he was pulling out the code that he left out the display part
 
Last edited:
after the constructible for the item add this

public override void AddNameProperty( ObjectPropertyList list )
{
base.AddNameProperty( list );
list.Add( "Mage Collection Armor" );
}

public override void GetProperties( ObjectPropertyList list )
{
base.GetProperties( list );

if ( numSetPieces >= 5 )
{
list.Add( "Eval Int<BASEFONT COLOR=#007B00> +20<BASEFONT COLOR=#FFFFFF> Magic Resist<BASEFONT COLOR=#007B00> +3<BASEFONT COLOR=#FFFFFF>" ); //FFFFFF
}
else
{
list.Add( "Eval Int +20<BASEFONT COLOR=#FF0000> [5 pcs]<BASEFONT COLOR=#FFFFFF> Magic Resist +3<BASEFONT COLOR=#FF0000> [5 pcs]<BASEFONT COLOR=#FFFFFF>" ); //FFFFFF
}
}

you'll need to modify of course to match the actual bonuses

also use <br> to move text to a new line. it will better IMO


I tried this just for giggles while i was waiting and i got these errors.

Code:
Errors:
+ Items/Armor/MinorMageArms.cs:
    CS0103: Line 70: The name 'numSetPieces' does not exist in the current conte
xt
    CS0103: Line 78: The name 'numSetPieces' does not exist in the current conte
xt
 
is there not a way to add it to BaseArmor and have it look at the item scripts for the info
i think making a subclass that inherits, basearmor or whatever, would work better. that would allow you to add on the secondary "name" Mage Collection Armor and prevents mods to basearmor...

just a thought.

oh, and yeah i see the issue with numsetpieces.
looks like it's defined by: public int CountCollectibles(Mobile m) // BaseArmor, line 173

so instead of
if ( numSetPieces >= 5 ) try if ( CountCollectibles >= 5 )
 
I totally understand what your saying it's just I have like 22 classes so 22 sets of at least 10 -12 pieces per set that's over 220 scripts I need to make and the jewelry is pretty extensive so that's a lot of coding when if I could do this part at least once in basearmor and be done. If you know what I mean
 
that didnt work either
Code:
Errors:
+ Items/Armor/MinorMageArms.cs:
    CS0019: Line 72: Operator '>=' cannot be applied to operands of type 'method
group' and 'int'
    CS0019: Line 80: Operator '>=' cannot be applied to operands of type 'method
group' and 'int'
 
I totally just went through all the collectible scripts trying different things and i cant find anyting that works

I did how ever find areas that support my thought of putting this in the basearmor.cs CollectableAttribute.cs defineds Collectible Requirement Applied = false and applied = applied

Code:
public CollectibleAttribute(int bonus, AosAttribute attribute, int piecesRequired)
        {
            m_Bonus = bonus;
            m_Attribute = attribute;
            m_CollectibleRequirement = piecesRequired;
            m_Applied = false;
        }

        public CollectibleAttribute(int bonus, AosAttribute attribute, int piecesRequired, bool applied)
        {
            m_Bonus = bonus;
            m_Attribute = attribute;
            m_CollectibleRequirement = piecesRequired;
            m_Applied = applied;
        }

        public int CollectibleRequirement
        {
            get { return m_CollectibleRequirement; }
            set { m_CollectibleRequirement = value; }
        }
In BaseArmor the CollectibleRequirement is all over the place but what caught my eye is this section

Code:
 #region Custom Skill Mod and Collectibles Skill Updates
        //Updates the collectible skills that should be applied to the mobile
        public virtual void UpdateCollectibleSkills(Mobile owner, int Level)
        {
            foreach (CustomSkillMod mod in m_SkillMods)
            {
                if (mod == null)
                    continue;

                // Does this mod have a collectible set requirement?
                if (mod.CollectibleRequirement >= 0)
                {
                    // This skill mod qualifies but has not been added, add it. 
                    if (mod.CollectibleRequirement <= Level && !mod.Applied)
                    {
                        mod.Apply(owner);
                    }

                    // This skill mod does not qualify, if it has been applied, remove it.
                    if (mod.CollectibleRequirement > Level && mod.Applied)
                    {
                        mod.Remove(owner);
                    }
                }
            }
        }
        public virtual void UpdateCollectibleResistances(int level)
        {
            foreach (CollectibleResistance res in m_CollectibleResistances)
            {
                if (res == null)
                    continue;

                // Does this mod have a collectible set requirement?
                if (res.CollectibleRequirement >= 0)
                {
                    // This attribute mod qualifies but has not been added, add it. 
                    if (res.CollectibleRequirement <= level && !res.Applied)
                    {
                        res.Apply(this);
                    }

                    // This skill mod does not qualify, if it has been applied, remove it.
                    if (res.CollectibleRequirement > level && res.Applied)
                    {
                        res.Remove(this);
                    }
                }
            }
        }

        public virtual void UpdateCollectibleAttributes(int level)
        {
            foreach (CollectibleAttribute aca in m_CollectibleAttributes)
            {
                if (aca == null)
                    continue;

                // Does this mod have a collectible set requirement?
                if (aca.CollectibleRequirement >= 0)
                {
                    // This attribute mod qualifies but has not been added, add it. 
                    if (aca.CollectibleRequirement <= level && !aca.Applied)
                    {
                        aca.Apply(this);
                    }

                    // This skill mod does not qualify, if it has been applied, remove it.
                    if (aca.CollectibleRequirement > level && aca.Applied)
                    {
                        aca.Remove(this);
                    }
                }
            }
        }

        public void ApplySkillMods(Mobile m)
        {
            if (m_SkillMods.Count > 0)
            {
                foreach (CustomSkillMod mod in m_SkillMods)
                {
                    if (mod == null)
                        continue;

                    if (mod.CollectibleRequirement < 0)
                    {
                        mod.Apply(m);
                    }
                }
            }
        }

i know im just a noob but to me it looks like you would just add a check for how many mods are on the armor and then write or list based off of these two sections

don't know all the code but seems they use alchemy for everything so

Code:
 define #pcs, this , or that, yada yada yada
list.Add("Alchemy <BASEFONT COLOR=#007Boo>int.this<BASEFONT COLOR=#FFFFFF>
else 
list.Add("Alchemy int.this<BASEFONT COLOR=#FF0000>this(defined above)<BASEFONT COLOR=#FFFFFF>

So we are checking for how many mods = 4 CollectibleAttributes and 2 AddCustomSkillMods

then have it check and list for each Applied =false and or else rather Applied = Applied
(placed inside of basearmor)
 
As I keep editing my scripts to add other peoples mods and editing scripts to try and do other things. I am getting a better handle on the concept of how it wall works it’s just the ( p & q ) and ( I & t ) that I get lost. I know you have to define something before you can use it. But when it comes down to actually doing it I’m gone less I have something to look at as an example. As I am sitting here looking at the two sections I posted above I don’t know if you would have to redefine it in BaseArmor or you can just look it up in CollectibleAttribute.cs but I am “Assuming” you would have to redfine it in every section regardless.

The more and more I look at CollectibleAttribute.cs the more and more it looks as though you would use it for the list code in BaseArmor. I guess what I am saying between CollectibleAttribute.cs and BaseArmor.cs all the code is there for the list and to calculate everything just have to bring it all together. I could be wrong though and missing the point altogether.
 
i think making a subclass that inherits, basearmor or whatever, would work better. that would allow you to add on the secondary "name" Mage Collection Armor and prevents mods to basearmor...
I suppose you could add a check to look for the CollectibleType
Witch would be CollectibleType.Mage so just have it list the Mage part.
then list it as a new property under the name

(“ {0} Collection Armor”)
 
OK just had a brain storm what about making a BaseCollectionArmor.cs

Put this code in that witch would use BaseArmor as a base = public class BaseCollectionArmor : BaseArmor

Checks, lists, counts etc. etc. then don’t have to edit BaseArmor and I don’t have to write the list code 500 times.

{

list.Add("Bonus Mana <BASEFONT COLOR=#007Boo> +5<BASEFONT COLOR=#FFFFFF> Lower Reg Cost<BASEFONT COLOR=> +15<BASEFONT COLOR=#FFFFFF> <br> Spell Damage <BASEFONT COLOR=#007Boo> +5<BASEFONT COLOR=#FFFFFF> Lower Mana Cost<BASEFONT COLOR=> +5<BASEFONT COLOR=#FFFFFF> Inscribe <BASEFONT COLOR=#007Boo> +3<BASEFONT COLOR=#FFFFFF>"); //FFFFFF

}

else

{

list.Add("Bonus Mana +20<BASEFONT COLOR=#FF0000> [5 pcs]<BASEFONT COLOR=#FFFFFF> Lower Reg Cost +3<BASEFONT COLOR=#FF0000> [5 pcs]<BASEFONT COLOR=#FFFFFF> <br> Spell Damage +5<BASEFONT COLOR=#FF0000> [5 pcs]<BASEFONT COLOR=#FFFFFF> Lower Mana Cost +5<BASEFONT COLOR=#FF0000> [5 pcs]<BASEFONT COLOR=#FFFFFF> Inscribe +3<BASEFONT COLOR=#FF0000> [5 pcs]<BASEFONT COLOR=#FFFFFF>"); //FFFFFF

}
 
I was going to suggest making a new base
If all your items are in a specific folder and not mixed in with other/distro items, you can use Notepad++ (maybe other programs will work) and do find in file > replace BaseArmor with BaseMageCollectionArmor > and then press find and replace.
Would save a lot of time on not having to open each script and manually do it.
 
well as of right now i only have the Mage gear scripted. So that part we are ok on. but I do have InfoRapid Search & Replace its is a God send for a scripter. er cut and paster he he.
 
Back