Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);

        }