public override void Write(Packet pPacket) { base.Write(pPacket); if (this.SocketState != 0) { this.SocketState |= 0x0001; } { // flags 1 uint flag = 0; int tmp = pPacket.Position; pPacket.WriteInt(0); // this\.([a-zA-Z]+) = FlaggedValue\(pConnection, this\.ItemID, flag, 0x([0-9]+), pPacket, this\.([a-zA-Z]+)\); // WriteFlaggedValue\(pPacket, 0x\2, this.\1, ref flag\); WriteFlaggedValue(pPacket, 0x00000001, this.Slots, ref flag); WriteFlaggedValue(pPacket, 0x00000002, this.Scrolls, ref flag); WriteFlaggedValue(pPacket, 0x00000004, this.Str, ref flag); WriteFlaggedValue(pPacket, 0x00000008, this.Dex, ref flag); WriteFlaggedValue(pPacket, 0x00000010, this.Int, ref flag); WriteFlaggedValue(pPacket, 0x00000020, this.Luk, ref flag); WriteFlaggedValue(pPacket, 0x00000040, this.HP, ref flag); WriteFlaggedValue(pPacket, 0x00000080, this.MP, ref flag); WriteFlaggedValue(pPacket, 0x00000100, this.Watk, ref flag); WriteFlaggedValue(pPacket, 0x00000200, this.Matk, ref flag); WriteFlaggedValue(pPacket, 0x00000400, this.Wdef, ref flag); WriteFlaggedValue(pPacket, 0x00000800, this.Mdef, ref flag); WriteFlaggedValue(pPacket, 0x00001000, this.Acc, ref flag); WriteFlaggedValue(pPacket, 0x00002000, this.Avo, ref flag); WriteFlaggedValue(pPacket, 0x00004000, this.Hands, ref flag); WriteFlaggedValue(pPacket, 0x00008000, this.Speed, ref flag); WriteFlaggedValue(pPacket, 0x00010000, this.Jump, ref flag); WriteFlaggedValue(pPacket, 0x00020000, this.Flags, ref flag); WriteFlaggedValue(pPacket, 0x00040000, this.IncreasesSkills, ref flag); WriteFlaggedValue(pPacket, 0x00080000, this.ItemLevel, ref flag); WriteFlaggedValue(pPacket, 0x00100000, this.ItemEXP, ref flag); WriteFlaggedValue(pPacket, 0x00200000, this.Durability, ref flag); WriteFlaggedValue(pPacket, 0x00400000, this.ViciousHammer, ref flag); WriteFlaggedValue(pPacket, 0x00800000, this.BattleModeDamage, ref flag); // FlaggedValue\(pConnection, this\.ItemID, flag, 0x([0-9]+), pPacket, \(([a-zA-Z]+)\)(0), true\); // WriteFlaggedValue\(pPacket, 0x\1, \(\2\)\3, ref flag\); WriteFlaggedValue(pPacket, 0x01000000, this.EquipmentLevelReduction, ref flag); // Item level changer? WriteFlaggedValue(pPacket, 0x02000000, (short)0, ref flag); // Enhancement buff? WriteFlaggedValue(pPacket, 0x04000000, this.SecondDurability, ref flag); // Second durability WriteFlaggedValue(pPacket, 0x08000000, (byte)0, ref flag); // Required level changer?! WriteFlaggedValue(pPacket, 0x10000000, (byte)0, ref flag); // Yggdrasil Wisdom? | If higher than 1, 'Success' WriteFlaggedValue(pPacket, 0x20000000, (byte)0, ref flag); // Final Strike? | If higher than 1, 'Success' WriteFlaggedValue(pPacket, 0x40000000, this.BossDamageRate, ref flag); WriteFlaggedValue(pPacket, 0x80000000, this.IgnoreDamageRate, ref flag); pPacket.SetUInt(tmp, flag); } { // flags 2 uint flag = 0; int tmp = pPacket.Position; pPacket.WriteInt(0); WriteFlaggedValue(pPacket, 0x01, this.TotalDamagePercentage, ref flag); WriteFlaggedValue(pPacket, 0x02, this.AllStatsPercentage, ref flag); WriteFlaggedValue(pPacket, 0x04, this.MaxScissors, ref flag); WriteFlaggedValue(pPacket, 0x08, (long)0, ref flag); WriteFlaggedValue(pPacket, 0x10, (int)0, ref flag); pPacket.SetUInt(tmp, flag); } pPacket.WriteString(this.Name); pPacket.WriteUShort(this.StatusFlags); pPacket.WriteUShort(this.Potential1); pPacket.WriteUShort(this.Potential2); pPacket.WriteUShort(this.Potential3); pPacket.WriteUShort(this.Potential4); pPacket.WriteUShort(this.Potential5); pPacket.WriteUShort(this.Potential6); pPacket.WriteUShort(this.DisplayID); pPacket.WriteUShort(this.SocketState); pPacket.WriteShort(this.Nebulite1); pPacket.WriteShort(this.Nebulite2); pPacket.WriteShort(this.Nebulite3); // If cash id pPacket.WriteLong(this.UniqueID); pPacket.WriteLong(0); pPacket.WriteInt(-1); }