예제 #1
0
        public static void HandleHotixData815(Packet packet)
        {
            var hotfixRecords = new List <HotfixRecord>();
            var hotfixCount   = packet.ReadUInt32("HotfixCount");

            for (var i = 0u; i < hotfixCount; ++i)
            {
                var hotfixRecord = new HotfixRecord();
                packet.ResetBitReader();

                hotfixRecord.HotfixId       = packet.ReadUInt32();
                hotfixRecord.UniqueId       = packet.ReadUInt32();
                hotfixRecord.Type           = packet.ReadUInt32E <DB2Hash>();
                hotfixRecord.RecordId       = packet.ReadInt32();
                hotfixRecord.HotfixDataSize = packet.ReadInt32();
                packet.ResetBitReader();
                if (ClientVersion.AddedInVersion(ClientVersionBuild.V9_1_0_39185))
                {
                    hotfixRecord.Status = (HotfixStatus)packet.ReadBits(3);
                }
                else
                {
                    hotfixRecord.Status = (HotfixStatus)packet.ReadBits(2);
                }

                hotfixRecords.Add(hotfixRecord);
            }

            var dataSize   = packet.ReadInt32("HotfixDataSize");
            var data       = packet.ReadBytes(dataSize);
            var hotfixData = new Packet(data, packet.Opcode, packet.Time, packet.Direction, packet.Number, packet.Writer, packet.FileName);

            ReadHotfixData(hotfixData, hotfixRecords, "HotfixData");
        }
예제 #2
0
        public static void HandleHotixData815(Packet packet)
        {
            var hotfixRecords = new List <HotfixRecord>();
            var hotfixCount   = packet.ReadUInt32("HotfixCount");

            for (var i = 0u; i < hotfixCount; ++i)
            {
                var hotfixRecord = new HotfixRecord();
                packet.ResetBitReader();

                hotfixRecord.Type           = packet.ReadUInt32E <DB2Hash>();
                hotfixRecord.RecordId       = packet.ReadInt32();
                hotfixRecord.HotfixId       = packet.ReadUInt32();
                hotfixRecord.HotfixDataSize = packet.ReadInt32();
                packet.ResetBitReader();
                hotfixRecord.Allow = packet.ReadBit();

                hotfixRecords.Add(hotfixRecord);
            }

            var dataSize   = packet.ReadInt32();
            var data       = packet.ReadBytes(dataSize);
            var hotfixData = new Packet(data, packet.Opcode, packet.Time, packet.Direction, packet.Number, packet.Writer, packet.FileName);

            ReadHotfixData810(hotfixData, hotfixRecords, "HotfixData");
        }
예제 #3
0
        public override void Read()
        {
            ClientBuild = _worldPacket.ReadUInt32();
            DataBuild   = _worldPacket.ReadUInt32();

            uint hotfixCount = _worldPacket.ReadUInt32();

            for (var i = 0; i < hotfixCount; ++i)
            {
                HotfixRecord hotfixRecord = new HotfixRecord();
                hotfixRecord.Read(_worldPacket);
                Hotfixes.Add(hotfixRecord);
            }
        }