protected override void Parse( BigEndianReader reader ) { reader.ReadByte(); // ID reader.ReadInt16(); // Size _Serial = reader.ReadUInt32(); _MobileName = reader.ReadAsciiString( 30 ); _HitPoints = reader.ReadInt16(); _MaxHitPoints = reader.ReadInt16(); _AllowNameChange = reader.ReadByte() == 1 ? true : false; byte features = reader.ReadByte(); _IsFemale = reader.ReadByte() == 1 ? true : false; _Strength = reader.ReadInt16(); _Dexterity = reader.ReadInt16(); _Intelligence = reader.ReadInt16(); _Stamina = reader.ReadInt16(); _MaxStamina = reader.ReadInt16(); _Mana = reader.ReadInt16(); _MaxMana = reader.ReadInt16(); _Gold = reader.ReadInt32(); _ArmorRating = reader.ReadInt16(); _Weight = reader.ReadInt16(); if ( ( features & 0x5 ) == 0x5 ) { _MaxWeight = reader.ReadInt16(); _Race = (MobileRace) reader.ReadByte(); } if ( ( features & 0x2 ) == 0x2 ) { _StatCap = reader.ReadInt16(); } if ( ( features & 0x3 ) == 0x3 ) { _Followers = reader.ReadByte(); _MaxFollowers = reader.ReadByte(); } if ( ( features & 0x4 ) == 0x4 ) { _FireResistance = reader.ReadInt16(); _ColdResistance = reader.ReadInt16(); _PoisonResistance = reader.ReadInt16(); _EnergyResistance = reader.ReadInt16(); _Luck = reader.ReadInt16(); _MinWeaponDamage = reader.ReadInt16(); _MaxWeaponDamage = reader.ReadInt16(); _TithingPoints = reader.ReadInt32(); } if ( ( features & 0x6 ) == 0x6 ) { _HitChanceIncrease = reader.ReadInt16(); _SwingSpeedIncrease = reader.ReadInt16(); _DamageChanceIncrease = reader.ReadInt16(); _LowerReagentCost = reader.ReadInt16(); _HitPointRegeneration = reader.ReadInt16(); _StaminaRegeneration = reader.ReadInt16(); _ManaRegeneration = reader.ReadInt16(); _ReflectPhysicalDamage = reader.ReadInt16(); _EnhancePotions = reader.ReadInt16(); _DefenseChanceIncrease = reader.ReadInt16(); _SpellDamageIncrease = reader.ReadInt16(); _FasterCastRecovery = reader.ReadInt16(); _FasterCasting = reader.ReadInt16(); _LowerManaCost = reader.ReadInt16(); _StrengthIncrease = reader.ReadInt16(); _DexterityIncrease = reader.ReadInt16(); _IntelligenceIncrease = reader.ReadInt16(); _HitPointsIncrease = reader.ReadInt16(); _StaminaIncrease = reader.ReadInt16(); _ManaIncrease = reader.ReadInt16(); _MaximumHitPointsIncrease = reader.ReadInt16(); _MaximumStaminaIncrease = reader.ReadInt16(); _MaximumManaIncrease = reader.ReadInt16(); } }
protected override void Parse(BigEndianReader reader) { reader.ReadByte(); // ID reader.ReadInt16(); // Size _Serial = reader.ReadUInt32(); _MobileName = reader.ReadAsciiString(30); _HitPoints = reader.ReadInt16(); _MaxHitPoints = reader.ReadInt16(); _AllowNameChange = reader.ReadByte() == 1 ? true : false; byte features = reader.ReadByte(); _IsFemale = reader.ReadByte() == 1 ? true : false; _Strength = reader.ReadInt16(); _Dexterity = reader.ReadInt16(); _Intelligence = reader.ReadInt16(); _Stamina = reader.ReadInt16(); _MaxStamina = reader.ReadInt16(); _Mana = reader.ReadInt16(); _MaxMana = reader.ReadInt16(); _Gold = reader.ReadInt32(); _ArmorRating = reader.ReadInt16(); _Weight = reader.ReadInt16(); if ((features & 0x5) == 0x5) { _MaxWeight = reader.ReadInt16(); _Race = (MobileRace)reader.ReadByte(); } if ((features & 0x2) == 0x2) { _StatCap = reader.ReadInt16(); } if ((features & 0x3) == 0x3) { _Followers = reader.ReadByte(); _MaxFollowers = reader.ReadByte(); } if ((features & 0x4) == 0x4) { _FireResistance = reader.ReadInt16(); _ColdResistance = reader.ReadInt16(); _PoisonResistance = reader.ReadInt16(); _EnergyResistance = reader.ReadInt16(); _Luck = reader.ReadInt16(); _MinWeaponDamage = reader.ReadInt16(); _MaxWeaponDamage = reader.ReadInt16(); _TithingPoints = reader.ReadInt32(); } if ((features & 0x6) == 0x6) { _HitChanceIncrease = reader.ReadInt16(); _SwingSpeedIncrease = reader.ReadInt16(); _DamageChanceIncrease = reader.ReadInt16(); _LowerReagentCost = reader.ReadInt16(); _HitPointRegeneration = reader.ReadInt16(); _StaminaRegeneration = reader.ReadInt16(); _ManaRegeneration = reader.ReadInt16(); _ReflectPhysicalDamage = reader.ReadInt16(); _EnhancePotions = reader.ReadInt16(); _DefenseChanceIncrease = reader.ReadInt16(); _SpellDamageIncrease = reader.ReadInt16(); _FasterCastRecovery = reader.ReadInt16(); _FasterCasting = reader.ReadInt16(); _LowerManaCost = reader.ReadInt16(); _StrengthIncrease = reader.ReadInt16(); _DexterityIncrease = reader.ReadInt16(); _IntelligenceIncrease = reader.ReadInt16(); _HitPointsIncrease = reader.ReadInt16(); _StaminaIncrease = reader.ReadInt16(); _ManaIncrease = reader.ReadInt16(); _MaximumHitPointsIncrease = reader.ReadInt16(); _MaximumStaminaIncrease = reader.ReadInt16(); _MaximumManaIncrease = reader.ReadInt16(); } }