public static void HandleGameTimeUpdate(Packet packet)
 {
     packet.ReadPackedTime("ServerTime");
     packet.ReadPackedTime("GameTime");
     packet.ReadInt32("ServerTimeHolidayOffset");
     packet.ReadInt32("GameTimeHolidayOffset");
 }
        public static void HandleAddCalendarEvent(Packet packet)
        {
            packet.ReadCString("Title");
            packet.ReadCString("Description");
            packet.ReadEnum<CalendarEventType>("Event Type", TypeCode.Byte);
            packet.ReadEnum<CalendarRepeatType>("Repeat Type", TypeCode.Byte);
            packet.ReadInt32("Max Invites");
            packet.ReadEntryWithName<Int32>(StoreNameType.LFGDungeon, "Dungeon ID");
            packet.ReadPackedTime("Event Time");
            packet.ReadPackedTime("Unk PackedTime");

            var flags = packet.ReadEnum<CalendarFlag>("Event Flags", TypeCode.Int32);

            if ((flags & CalendarFlag.GuildAnnouncement) != 0)
                return;

            var count = packet.ReadInt32("Invite Count");

            for (var i = 0; i < count; i++)
            {
                packet.ReadPackedGuid("Creator GUID");
                packet.ReadEnum<CalendarEventStatus>("Status", TypeCode.Byte);
                packet.ReadEnum<CalendarModerationRank>("Moderation Rank", TypeCode.Byte);
            }
        }
示例#3
1
        public static void HandleGuildAchievementData(Packet packet)
        {
            var count = packet.ReadBits("Criteria count", 20);

            var guid = new byte[count][];

            for (var i = 0; i < count; ++i)
            {
                guid[i] = new byte[8];
                packet.StartBitStream(guid[i], 3, 5, 4, 7, 2, 1, 0, 6);
            }

            for (var i = 0; i < count; ++i)
            {
                packet.ReadXORByte(guid[i], 2);
                packet.ReadXORByte(guid[i], 7);
                packet.ReadInt32("Unk 1", i);
                packet.ReadXORByte(guid[i], 5);
                packet.ReadXORByte(guid[i], 3);
                packet.ReadXORByte(guid[i], 1);
                packet.ReadInt32<AchievementId>("Achievement Id", i);
                packet.ReadXORByte(guid[i], 6);
                packet.ReadInt32("Unk 2", i);
                packet.ReadXORByte(guid[i], 4);
                packet.ReadXORByte(guid[i], 0);
                packet.ReadPackedTime("Time", i);
                packet.WriteGuid("Guid", guid[i], i);
            }
        }
 public static void HandleAchievementEarned(Packet packet)
 {
     packet.ReadPackedGuid("Player GUID");
     packet.ReadInt32("Achievement");
     packet.ReadPackedTime("Time");
     packet.ReadInt32("Unk Int32");
 }
        public static void HandleAllAchievementData406(Packet packet)
        {
            var achievements = packet.ReadUInt32("Achievement count");
            var criterias = packet.ReadUInt32("Criterias count");

            for (var i = 0; i < achievements; ++i)
                packet.ReadUInt32("Achievement Id", i);

            for (var i = 0; i < achievements; ++i)
                packet.ReadPackedTime("Achievement Time", i);

            for (var i = 0; i < criterias; ++i)
                packet.ReadUInt64("Counter", i);

            for (var i = 0; i < criterias; ++i)
                packet.ReadUInt32("Criteria Timer 1", i);

            for (var i = 0; i < criterias; ++i)
                packet.ReadPackedTime("Criteria Time", i);

            for (var i = 0; i < criterias; ++i)
                packet.ReadGuid("Player GUID", i);

            for (var i = 0; i < criterias; ++i)
                packet.ReadUInt32("Criteria Timer 2", i);

            for (var i = 0; i < criterias; ++i)
                packet.ReadBits("Flag", 2, i);

            for (var i = 0; i < criterias; ++i)
                packet.ReadUInt32("Criteria Id", i);
        }
示例#6
0
 public static void HandleGameTimeUpdate(Packet packet)
 {
     packet.ReadPackedTime("Int28"); // 28
     packet.ReadPackedTime("Int16"); // 16
     packet.ReadInt32("Int20"); // 20
     packet.ReadInt32("Int24"); // 24
 }
        public static void HandleAllAchievementData422(Packet packet)
        {
            var count1 = packet.ReadUInt32("Count1");
            for (var i = 0; i < count1; ++i)
                packet.ReadBits("Flag", 2, 0, i);

            for (var i = 0; i < count1; ++i)
                packet.ReadUInt64("Counter", 0, i);

            var count2 = packet.ReadUInt32("Count2");
            for (var i = 0; i < count2; ++i)
                packet.ReadPackedTime("Achievement Time", 1, i);

            for (var i = 0; i < count1; ++i)
                packet.ReadGuid("Player GUID", 0, i);

            for (var i = 0; i < count1; ++i)
                packet.ReadPackedTime("Criteria Time", 0, i);

            for (var i = 0; i < count1; ++i)
                packet.ReadUInt32("Timer 1", 0, i);

            for (var i = 0; i < count2; ++i)
                packet.ReadUInt32("Achievement Id", 1, i);

            for (var i = 0; i < count1; ++i)
                packet.ReadUInt32("Criteria Id", 0, i);

            for (var i = 0; i < count1; ++i)
                packet.ReadUInt32("Timer 2", 0, i);
        }
示例#8
0
 public static void HandleGameTimeUpdate(Packet packet)
 {
     packet.ReadInt32("Unk dword16");
     packet.ReadInt32("Unk dword28");
     packet.ReadPackedTime("Time 1");
     packet.ReadPackedTime("New Time");
 }
示例#9
0
 public static void HandleGameTimeSet(Packet packet)
 {
     packet.ReadPackedTime("Time 1");
     packet.ReadPackedTime("New Time");
     packet.ReadInt32("Unk dword24");
     packet.ReadInt32("Unk dword20");
 }
示例#10
0
 public static void HandleLoginSetTimeSpeed(Packet packet)
 {
     packet.ReadInt32("unk32");
     packet.ReadPackedTime("Time1");
     packet.ReadInt32("unk20");
     packet.ReadPackedTime("Time2");
     packet.ReadSingle("unk28");
 }
 public static void HandleLoginSetTimeSpeed(Packet packet)
 {
     packet.ReadPackedTime("ServerTime");
     packet.ReadPackedTime("GameTime");
     packet.ReadSingle("NewSpeed");
     packet.ReadInt32("ServerTimeHolidayOffset");
     packet.ReadInt32("GameTimeHolidayOffset");
 }
示例#12
0
 public static void HandleLoginSetTimeSpeed(Packet packet)
 {
     packet.ReadPackedTime("Server Current Time");
     packet.ReadSingle("Game Speed");
     packet.ReadInt32("Unk dword32");
     packet.ReadInt32("Unk dword24");
     packet.ReadPackedTime("Time 1");
 }
示例#13
0
        public static void Handle41694(Packet packet)
        {
            var count = packet.ReadInt32("Count");

            for (var i = 0; i < count; i++)
                packet.ReadInt32("Unk");

            for (var i = 0; i < count; i++)
                packet.ReadGuid("Unk");

            for (var i = 0; i < count; i++)
            {
                var count2 = packet.ReadInt32("Unk");

                for (var j = 0; j < count2; j++)
                    packet.ReadInt64("Unk");
            }

            for (var i = 0; i < count; i++)
                packet.ReadInt32("Unk");

            for (var i = 0; i < count; i++)
            {
                packet.ReadInt32("Unk");
                packet.ReadInt32("Unk");
            }

            for (var i = 0; i < count; i++)
                packet.ReadInt32("Unk");

            for (var i = 0; i < count; i++)
                packet.Writer.WriteLine(packet.ReadPackedTime());
        }
        public static void HandleCalendarEventInviteAlert(Packet packet)
        {
            // TODO: find unks

            packet.ReadUInt64("EventID");
            packet.ReadPackedTime("Date");
            packet.ReadInt32E<CalendarFlag>("Flags");

            packet.ReadByteE<CalendarEventType>("EventType");

            packet.ReadInt32("TextureID");

            packet.ReadPackedGuid128("EventGuildID");

            packet.ReadUInt64("InviteID");

            packet.ReadByteE<CalendarEventStatus>("Status");
            packet.ReadByteE<CalendarModerationRank>("ModeratorStatus");

            packet.ReadPackedGuid128("OwnerGUID | InvitedByGUID");
            packet.ReadPackedGuid128("OwnerGUID | InvitedByGUID");

            var eventNameLength = packet.ReadBits("EventNameLength", 8);
            packet.ResetBitReader();

            packet.ReadWoWString("EventName", eventNameLength);
        }
示例#15
0
 public static void HandleLoginSetTimeSpeed(Packet packet)
 {
     packet.ReadPackedTime("Game Time");
     packet.ReadUInt32("bit5");
     packet.ReadUInt32("bit7");
     packet.ReadUInt32("bit6");
     packet.ReadSingle("Game Speed");
 }
示例#16
0
 public static void HandleLoginSetTimeSpeed(Packet packet)
 {
     packet.ReadInt32("Unk Int32");
     packet.ReadPackedTime("Game Time");
     packet.ReadInt32("Unk Int32");
     packet.ReadInt32("Unk Int32");
     packet.ReadSingle("Game Speed");
 }
示例#17
0
 public static void HandleGuildAchievementData430(Packet packet)
 {
     var count = packet.ReadBits("Count", 23);
     for (var i = 0; i < count; ++i)
     {
         packet.ReadPackedTime("Date", i);
         packet.ReadInt32<AchievementId>("Achievement Id", i);
     }
 }
示例#18
0
        public static void HandleGuildAchievementData(Packet packet)
        {
            var cnt = packet.ReadUInt32("Count");
            for (var i = 0; i < cnt; ++i)
                packet.ReadPackedTime("Date", i);

            for (var i = 0; i < cnt; ++i)
                packet.ReadUInt32("Achievement Id", i);
        }
 public static void HandleCriteriaPlayer(Packet packet)
 {
     packet.ReadInt32("Id");
     packet.ReadInt64("Quantity");
     packet.ReadPackedGuid128("Guid");
     packet.ReadInt32("Flags");
     packet.ReadPackedTime("Date");
     packet.ReadTime("TimeFromStart");
     packet.ReadTime("TimeFromCreate");
 }
 public static void HandleAchievementEarned(Packet packet)
 {
     packet.ReadPackedGuid128("Sender");
     packet.ReadPackedGuid128("Earner");
     packet.ReadUInt32("AchievementID");
     packet.ReadPackedTime("Time");
     packet.ReadUInt32("EarnerNativeRealm");
     packet.ReadUInt32("EarnerVirtualRealm");
     packet.ReadBit("Initial");
 }
        public static void HandleCriteriaUpdate(Packet packet)
        {
            packet.ReadInt32("Criteria ID");
            packet.ReadPackedGuid("Criteria Counter");
            packet.ReadPackedGuid("Player GUID");
            packet.ReadInt32("Unk Int32");
            packet.ReadPackedTime("Time");

            for (var i = 0; i < 2; i++)
                packet.ReadInt32("Timer " + i);
        }
 public static void HandleCalendarEventInvite(Packet packet)
 {
     packet.ReadPackedGuid128("InviteGUID");
     packet.ReadUInt64("EventID");
     packet.ReadUInt64("InviteID");
     packet.ReadByte("Level");
     packet.ReadByteE<CalendarEventStatus>("Status");
     packet.ReadByteE<CalendarEventType>("Type");
     packet.ReadPackedTime("ResponseTime");
     packet.ReadBit("ClearPending");
 }
        public static void ReadCriteriaProgress(Packet packet, params object[] idx)
        {
            packet.ReadInt32("Id", idx);
            packet.ReadUInt64("Quantity", idx);
            packet.ReadPackedGuid128("Player", idx);
            packet.ReadPackedTime("Date", idx);
            packet.ReadTime("TimeFromStart", idx);
            packet.ReadTime("TimeFromCreate", idx);

            packet.ResetBitReader();
            packet.ReadBits("Flags", 4, idx); // some flag... & 1 -> delete
        }
示例#24
0
 public static void HandleGuildAchievementData(Packet packet)
 {
     var int10 = packet.ReadUInt32("EarnedAchievementCount");
     for (var i = 0; i < int10; ++i)
     {
         packet.ReadInt32("Id", i);
         packet.ReadPackedTime("Date", i);
         packet.ReadPackedGuid128("Owner", i);
         packet.ReadInt32("VirtualRealmAddress", i);
         packet.ReadInt32("NativeRealmAddress", i);
     }
 }
示例#25
0
        public static void HandleGuildRoster(Packet packet)
        {
            packet.ReadUInt32("NumAccounts");
            packet.ReadPackedTime("CreateDate");
            packet.ReadUInt32("GuildFlags");
            var int20 = packet.ReadUInt32("MemberDataCount");

            packet.ResetBitReader();
            var bits2037 = packet.ReadBits(10);
            var bits9 = packet.ReadBits(11);

            for (var i = 0; i < int20; ++i)
            {
                packet.ReadPackedGuid128("Guid", i);

                packet.ReadUInt32("RankID", i);
                packet.ReadUInt32<AreaId>("AreaID", i);
                packet.ReadUInt32("PersonalAchievementPoints", i);
                packet.ReadUInt32("GuildReputation", i);

                packet.ReadSingle("LastSave", i);

                for (var j = 0; j < 2; ++j)
                {
                    packet.ReadUInt32("DbID", i, j);
                    packet.ReadUInt32("Rank", i, j);
                    packet.ReadUInt32("Step", i, j);
                }

                packet.ReadUInt32("VirtualRealmAddress", i);

                packet.ReadByteE<GuildMemberFlag>("Status", i);
                packet.ReadByte("Level", i);
                packet.ReadByteE<Class>("ClassID", i);
                packet.ReadByteE<Gender>("Gender", i);

                packet.ResetBitReader();

                var bits36 = packet.ReadBits(6);
                var bits92 = packet.ReadBits(8);
                var bits221 = packet.ReadBits(8);

                packet.ReadBit("Authenticated", i);
                packet.ReadBit("SorEligible", i);

                packet.ReadWoWString("Name", bits36, i);
                packet.ReadWoWString("Note", bits92, i);
                packet.ReadWoWString("OfficerNote", bits221, i);
            }

            packet.ReadWoWString("WelcomeText", bits2037);
            packet.ReadWoWString("InfoText", bits9);
        }
 public static void HandleCalendarEventInviteAlert(Packet packet)
 {
     packet.ReadInt64("Event ID");
     packet.ReadCString("Title");
     packet.ReadPackedTime("Time");
     packet.ReadEnum<CalendarFlag>("Event Flags", TypeCode.Int32);
     packet.ReadEnum<CalendarEventType>("Type", TypeCode.Int32);
     packet.ReadEntryWithName<Int32>(StoreNameType.LFGDungeon, "Dungeon ID");
     packet.ReadInt64("Invite ID");
     packet.ReadEnum<CalendarEventStatus>("Status", TypeCode.Byte);
     packet.ReadEnum<CalendarModerationRank>("Moderation Rank", TypeCode.Byte);
     packet.ReadPackedGuid("Creator GUID");
     packet.ReadPackedGuid("Sender GUID");
 }
        public static void HandleAccountCriteriaUpdate(Packet packet)
        {
            var counter = new byte[8];
            var accountId = new byte[8];

            counter[4] = packet.ReadBit();
            accountId[2] = packet.ReadBit();
            counter[2] = packet.ReadBit();
            accountId[4] = packet.ReadBit();
            counter[0] = packet.ReadBit();
            counter[5] = packet.ReadBit();
            accountId[3] = packet.ReadBit();
            counter[3] = packet.ReadBit();
            accountId[6] = packet.ReadBit();
            counter[6] = packet.ReadBit();
            accountId[1] = packet.ReadBit();
            accountId[7] = packet.ReadBit();
            counter[1] = packet.ReadBit();

            packet.ReadBits("Flags", 4); // some flag... & 1 -> delete

            accountId[5] = packet.ReadBit();
            counter[7] = packet.ReadBit();
            accountId[0] = packet.ReadBit();

            packet.ReadXORByte(accountId, 7);
            packet.ReadTime("Timer 2"); // 80
            packet.ReadInt32("Criteria ID"); // 16
            packet.ReadXORByte(counter, 7);
            packet.ReadTime("Timer 1"); // 76
            packet.ReadXORByte(accountId, 4);
            packet.ReadXORByte(accountId, 3);
            packet.ReadPackedTime("Time");
            packet.ReadXORByte(counter, 0);
            packet.ReadXORByte(counter, 1);
            packet.ReadXORByte(counter, 2);
            packet.ReadXORByte(counter, 3);
            packet.ReadXORByte(accountId, 1);
            packet.ReadXORByte(counter, 4);
            packet.ReadXORByte(counter, 5);
            packet.ReadXORByte(accountId, 5);
            packet.ReadXORByte(accountId, 2);
            packet.ReadXORByte(counter, 6);
            packet.ReadXORByte(accountId, 0);
            packet.ReadXORByte(accountId, 6);

            packet.AddValue("Account", BitConverter.ToUInt64(accountId, 0));
            packet.AddValue("Counter", BitConverter.ToInt64(counter, 0));
        }
示例#28
0
        public static void HandleScenarioProgressUpdate(Packet packet)
        {
            var guid3 = new byte[8];
            var guid4 = new byte[8];

            var bits28 = 0;

            guid4[7] = packet.ReadBit();
            guid4[0] = packet.ReadBit();
            guid4[4] = packet.ReadBit();
            bits28 = (int)packet.ReadBits(4);
            guid3[3] = packet.ReadBit();
            guid3[4] = packet.ReadBit();
            guid3[0] = packet.ReadBit();
            guid4[6] = packet.ReadBit();
            guid3[2] = packet.ReadBit();
            guid4[3] = packet.ReadBit();
            guid3[7] = packet.ReadBit();
            guid4[5] = packet.ReadBit();
            guid3[6] = packet.ReadBit();
            guid3[5] = packet.ReadBit();
            guid3[1] = packet.ReadBit();
            guid4[2] = packet.ReadBit();
            guid4[1] = packet.ReadBit();
            packet.ReadXORByte(guid4, 5);
            packet.ReadXORByte(guid3, 2);
            packet.ReadXORByte(guid3, 6);
            packet.ReadXORByte(guid4, 4);
            packet.ReadXORByte(guid3, 4);
            packet.ReadXORByte(guid4, 6);
            packet.ReadXORByte(guid3, 3);
            packet.ReadPackedTime("Time");
            packet.ReadXORByte(guid4, 7);
            packet.ReadXORByte(guid3, 5);
            packet.ReadXORByte(guid3, 7);
            packet.ReadXORByte(guid3, 0);
            packet.ReadXORByte(guid4, 1);
            packet.ReadXORByte(guid3, 1);
            packet.ReadXORByte(guid4, 2);
            packet.ReadXORByte(guid4, 3);
            packet.ReadInt32("Int50");
            packet.ReadInt32("Int4C");
            packet.ReadInt32("Criteria ID");
            packet.ReadXORByte(guid4, 0);

            packet.WriteGuid("Guid3", guid3);
            packet.WriteGuid("Guid4", guid4);
        }
        public static void HandleAchievementEarned(Packet packet)
        {
            var guid1 = new byte[8];
            var guid2 = new byte[8];

            guid2[6] = packet.ReadBit();
            guid2[2] = packet.ReadBit();
            guid1[4] = packet.ReadBit();
            guid1[5] = packet.ReadBit();
            guid1[0] = packet.ReadBit();
            guid1[3] = packet.ReadBit();
            packet.ReadBit("unk");
            guid2[7] = packet.ReadBit();
            guid1[7] = packet.ReadBit();
            guid1[1] = packet.ReadBit();
            guid2[3] = packet.ReadBit();
            guid2[0] = packet.ReadBit();
            guid2[4] = packet.ReadBit();
            guid1[6] = packet.ReadBit();
            guid2[1] = packet.ReadBit();
            guid1[2] = packet.ReadBit();
            guid2[5] = packet.ReadBit();

            packet.ReadXORByte(guid2, 5);
            packet.ReadXORByte(guid1, 3);
            packet.ReadXORByte(guid2, 6);
            packet.ReadXORByte(guid1, 6);
            packet.ReadPackedTime("Time");
            packet.ReadXORByte(guid2, 1);
            packet.ReadXORByte(guid1, 2);
            packet.ReadXORByte(guid1, 0);
            packet.ReadXORByte(guid1, 7);
            packet.ReadXORByte(guid2, 3);
            packet.ReadXORByte(guid1, 4);
            packet.ReadXORByte(guid2, 7);
            packet.ReadInt32<AchievementId>("Achievement Id");
            packet.ReadXORByte(guid2, 4);
            packet.ReadXORByte(guid1, 1);
            packet.ReadXORByte(guid2, 0);
            packet.ReadXORByte(guid1, 5);
            packet.ReadInt32("Realm Id");
            packet.ReadInt32("Realm Id");
            packet.ReadXORByte(guid2, 2);

            packet.WriteGuid("Guid1", guid1);
            packet.WriteGuid("Guid2", guid1);
        }
 public static void HandleChallengeModeallMapStats(Packet packet)
 {
     var count = packet.ReadBits("Count", 19); // 16
     var unk68 = new UInt32[count];
     for (var i = 0; i < count; i++)
         unk68[i] = packet.ReadBits(23);
     for (var i = 0; i < count; i++)
     {
         packet.ReadPackedTime("Time", i);
         packet.ReadInt32("unk32", i); // 32
         packet.ReadInt32("unk20", i); // 20
         packet.ReadInt32("unk28", i); // 28
         for (var j = 0; j < unk68[i]; j++)
             packet.ReadInt16("unk72", i, j);
         packet.ReadInt32("unk24", i); // 24
     }
 }