QUOTE |
case 0: { if(version < 2) { m_Feats = new Feats( null ); } break; } |
QUOTE |
public NewMobile() { m_Stats = new Stats( this, true ); m_Skills = new NewSkillNameValue[5]; m_Level = new LevelEntry( this ); m_Feats = new Feats(null); } |
QUOTE |
using System; using Server; using Server.Mobiles; namespace Server.Custom { public class NewMobile : PlayerMobile { private Feats m_Feats; [CommandProperty( AccessLevel.GameMaster )] public Feats PlayerFeats { get{ return m_Feats; } set{} } public NewMobile() { m_Feats = new Feats(null); } public NewMobile( Serial s ) : base( s ) { } [Flags] private enum SaveFlag { None = 0x00000000, PlayerFeats = 0x00000001 } private static void SetSaveFlag( ref SaveFlag flags, SaveFlag toSet, bool setIf ) { if ( setIf ) flags |= toSet; } private static bool GetSaveFlag( SaveFlag flags, SaveFlag toGet ) { return ( (flags & toGet) != 0 ); } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); switch ( version ) { case 0: { SaveFlag flags = (SaveFlag)reader.ReadEncodedInt(); if ( GetSaveFlag( flags, SaveFlag.PlayerFeats ) ) m_Feats = new Feats( null, reader ); else m_Feats = new Feats( null ); break; } } } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); // version SaveFlag flags = SaveFlag.None; SetSaveFlag( ref flags, SaveFlag.PlayerFeats, !m_Feats.IsEmpty ); writer.WriteEncodedInt( (int) flags ); if ( GetSaveFlag( flags, SaveFlag.PlayerFeats ) ) m_Feats.Serialize( writer ); } } [Flags] public enum Feat { HairStyling = 0x0001, HorseRiding = 0x0002 } public class Feats : BaseAttributes { public Feats(Item owner) : base(owner) { } public Feats(Item owner, GenericReader reader) : base(owner, reader) { } public int this[Feat attribute] { get { return GetValue((int)attribute); } set { SetValue((int)attribute, value); } } public override string ToString() { return "..."; } [CommandProperty(AccessLevel.GameMaster)] public int HairStyling { get { return this[Feat.HairStyling]; } set { this[Feat.HairStyling] = value; } } [CommandProperty(AccessLevel.GameMaster)] public int HorseRiding { get { return this[Feat.HorseRiding]; } set { this[Feat.HorseRiding] = value; } } } } |
CODE |
[CommandProperty(AccessLevel.GameMaster)] public int HairStyling { get { return this[Feat.HairStyling]; } set { this[Feat.HairStyling] = value; } } [CommandProperty(AccessLevel.GameMaster)] public int HorseRiding { get { return this[Feat.HorseRiding]; } set { this[Feat.HorseRiding] = value; } } |
CODE |
[CommandProperty(AccessLevel.GameMaster)] public bool HairStyling { get { return this[Feat.HairStyling] > 0; } set { this[Feat.HairStyling] = value ? 1 : 0; } } [CommandProperty(AccessLevel.GameMaster)] public bool HorseRiding { get { return this[Feat.HorseRiding] > 0; } set { this[Feat.HorseRiding] = value ? 1 : 0; } } |
QUOTE (ArteGordon @ September 22, 2007 01:16 pm) |
would have to see the code. You get this when you are using [props? |