Skip to content

Commit 178819f

Browse files
committed
Add 11.1.7 packet structure changes
1 parent 7202245 commit 178819f

16 files changed

Lines changed: 175 additions & 40 deletions

File tree

WowPacketParser/Misc/ClientVersion.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -618,6 +618,8 @@ public static class ClientVersion
618618
new KeyValuePair<ClientVersionBuild, DateTime>(ClientVersionBuild.V11_1_5_61188, new DateTime(2025, 06, 03)),
619619
new KeyValuePair<ClientVersionBuild, DateTime>(ClientVersionBuild.V11_1_5_61265, new DateTime(2025, 06, 05)),
620620

621+
new KeyValuePair<ClientVersionBuild, DateTime>(ClientVersionBuild.V11_1_7_61491, new DateTime(2025, 06, 17)),
622+
621623
// no classic info, pkt contain build in header
622624
};
623625

@@ -1224,6 +1226,7 @@ public static ClientVersionBuild GetVersionDefiningBuild(ClientVersionBuild buil
12241226
case ClientVersionBuild.V11_1_5_61122:
12251227
case ClientVersionBuild.V11_1_5_61188:
12261228
case ClientVersionBuild.V11_1_5_61265:
1229+
case ClientVersionBuild.V11_1_7_61491:
12271230
return ClientVersionBuild.V11_0_0_55666;
12281231
//Classic
12291232
case ClientVersionBuild.V1_13_2_31446:

WowPacketParser/Parsing/Parsers/AccountDataHandler.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ public static void HandleServerUpdateAccountData(Packet packet)
6666
[Parser(Opcode.SMSG_UPDATE_ACCOUNT_DATA_COMPLETE)]
6767
public static void HandleUpdateAccountDataComplete(Packet packet)
6868
{
69-
packet.ReadInt32E<AccountDataType>("Data Type");
70-
packet.ReadInt32("Unk Int32");
69+
packet.ReadInt32E<AccountDataType>("DataType");
70+
packet.ReadInt32("Result");
7171
}
7272

7373
[Parser(Opcode.CMSG_READY_FOR_ACCOUNT_DATA_TIMES)]

WowPacketParserModule.V11_0_0_55666/Parsers/AccountDataHandler.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,13 @@ public static void HandleAccountDataTimes(Packet packet)
1515
for (var i = 0; i < 17; ++i)
1616
packet.ReadTime64($"[{(AccountDataType)i}] Time", i);
1717
}
18+
19+
[Parser(Opcode.SMSG_UPDATE_ACCOUNT_DATA_COMPLETE)]
20+
public static void HandleUpdateAccountDataComplete(Packet packet)
21+
{
22+
packet.ReadPackedGuid128("Player");
23+
packet.ReadInt32E<AccountDataType>("DataType");
24+
packet.ReadInt32("Result");
25+
}
1826
}
1927
}

WowPacketParserModule.V11_0_0_55666/Parsers/AuthenticationHandler.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,20 @@ public static void HandleAuthSession(Packet packet)
3939
packet.ReadBytes("RealmJoinTicket", realmJoinTicketSize);
4040
}
4141

42-
[Parser(Opcode.SMSG_ENTER_ENCRYPTED_MODE, ClientVersionBuild.V11_1_0_59347)]
42+
[Parser(Opcode.SMSG_ENTER_ENCRYPTED_MODE, ClientVersionBuild.V11_1_0_59347, ClientVersionBuild.V11_1_7_61491)]
4343
public static void HandleEnterEncryptedMode(Packet packet)
4444
{
4545
packet.ReadBytes("Signature (ED25519)", 64);
4646
packet.ReadInt32("RegionGroup");
4747
packet.ReadBit("Enabled");
4848
}
49+
50+
[Parser(Opcode.SMSG_ENTER_ENCRYPTED_MODE, ClientVersionBuild.V11_1_7_61491)]
51+
public static void HandleEnterEncryptedMode1117(Packet packet)
52+
{
53+
packet.ReadInt32("RegionGroup");
54+
packet.ReadBytes("Signature (ED25519)", 64);
55+
packet.ReadBit("Enabled");
56+
}
4957
}
5058
}

WowPacketParserModule.V11_0_0_55666/Parsers/CharacterHandler.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,5 +255,13 @@ public static void HandleRequestStoreFrontInfoUpdate(Packet packet)
255255
for (var i = 0; i < count; ++i)
256256
packet.ReadInt32<CurrencyId>("CurrencyID", i);
257257
}
258+
259+
[Parser(Opcode.SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE, ClientVersionBuild.V11_1_7_61491)]
260+
public static void HandleUndeleteCooldownStatusResponse(Packet packet)
261+
{
262+
packet.ReadUInt32("MaxCooldown");
263+
packet.ReadUInt32("CurrentCooldown");
264+
packet.ReadBit("OnCooldown");
265+
}
258266
}
259267
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using WowPacketParser.Enums;
2+
using WowPacketParser.Misc;
3+
using WowPacketParser.Parsing;
4+
5+
namespace WowPacketParserModule.V11_0_0_55666.Parsers
6+
{
7+
public static class GuildHandler
8+
{
9+
[Parser(Opcode.SMSG_GUILD_PARTY_STATE, ClientVersionBuild.V11_1_7_61491)]
10+
public static void HandleGuildPartyStateResponse(Packet packet)
11+
{
12+
packet.ReadUInt32("Current guild members");
13+
packet.ReadUInt32("Needed guild members");
14+
packet.ReadSingle("Guild XP multiplier");
15+
packet.ReadBit("Is guild group");
16+
}
17+
}
18+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
using WowPacketParser.Enums;
2+
using WowPacketParser.Misc;
3+
using WowPacketParser.Parsing;
4+
5+
namespace WowPacketParserModule.V11_0_0_55666.Parsers
6+
{
7+
public static class InstanceHandler
8+
{
9+
[Parser(Opcode.SMSG_INSTANCE_INFO, ClientVersionBuild.V11_1_7_61491)]
10+
public static void HandleInstanceInfo(Packet packet)
11+
{
12+
var count = packet.ReadInt32("LocksCount");
13+
for (var i = 0; i < count; i++)
14+
{
15+
packet.ReadInt64("InstanceID", i);
16+
packet.ReadInt32<MapId>("MapID", i);
17+
packet.ReadInt32<DifficultyId>("DifficultyID", i);
18+
packet.ReadInt32("TimeRemaining", i);
19+
packet.ReadInt32("Completed_mask", i);
20+
21+
packet.ResetBitReader();
22+
packet.ReadBit("Locked", i);
23+
packet.ReadBit("Extended", i);
24+
}
25+
}
26+
27+
[Parser(Opcode.CMSG_SET_RAID_DIFFICULTY, ClientVersionBuild.V11_1_7_61491)]
28+
[Parser(Opcode.SMSG_RAID_DIFFICULTY_SET, ClientVersionBuild.V11_1_7_61491)]
29+
public static void HandleSetRaidDifficulty(Packet packet)
30+
{
31+
packet.ReadInt32("Legacy");
32+
packet.ReadInt32<DifficultyId>("DifficultyID");
33+
}
34+
}
35+
}

WowPacketParserModule.V11_0_0_55666/Parsers/UpdateHandler.cs

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -444,11 +444,22 @@ private static MovementInfo ReadMovementUpdateBlock(Packet packet, CreateObject
444444

445445
if (hasDriveStatus)
446446
{
447-
packet.ResetBitReader();
448-
packet.ReadBit("Accelerating", index, "DriveStatus");
449-
packet.ReadBit("Drifting", index, "DriveStatus");
450-
packet.ReadSingle("Speed", index, "DriveStatus");
451-
packet.ReadSingle("MovementAngle", index, "DriveStatus");
447+
if (ClientVersion.AddedInVersion(ClientVersionBuild.V11_1_7_61491))
448+
{
449+
packet.ResetBitReader();
450+
packet.ReadSingle("Speed", index, "DriveStatus");
451+
packet.ReadSingle("MovementAngle", index, "DriveStatus");
452+
packet.ReadBit("Accelerating", index, "DriveStatus");
453+
packet.ReadBit("Drifting", index, "DriveStatus");
454+
}
455+
else
456+
{
457+
packet.ResetBitReader();
458+
packet.ReadBit("Accelerating", index, "DriveStatus");
459+
packet.ReadBit("Drifting", index, "DriveStatus");
460+
packet.ReadSingle("Speed", index, "DriveStatus");
461+
packet.ReadSingle("MovementAngle", index, "DriveStatus");
462+
}
452463
}
453464

454465
movementUpdate.WalkSpeed = moveInfo.WalkSpeed = packet.ReadSingle("WalkSpeed", index) / 2.5f;
@@ -515,7 +526,7 @@ private static MovementInfo ReadMovementUpdateBlock(Packet packet, CreateObject
515526
var hasSplineFilterKey = packet.ReadBit("HasSplineFilterKey", index);
516527
var hasSpellEffectExtraData = packet.ReadBit("HasSpellEffectExtraData", index);
517528
var hasJumpExtraData = packet.ReadBit("HasJumpExtraData", index);
518-
529+
var hasTurnData = ClientVersion.AddedInVersion(ClientVersionBuild.V11_1_7_61491) && packet.ReadBit("HasTurnData");
519530
var hasAnimationTierTransition = packet.ReadBit("HasAnimationTierTransition", index);
520531
var hasUnknown901 = packet.ReadBit("Unknown901", index);
521532

@@ -559,6 +570,9 @@ private static MovementInfo ReadMovementUpdateBlock(Packet packet, CreateObject
559570
if (hasJumpExtraData)
560571
moveData.Jump = V8_0_1_27101.Parsers.MovementHandler.ReadMonsterSplineJumpExtraData(packet, index);
561572

573+
if (hasTurnData)
574+
V8_0_1_27101.Parsers.MovementHandler.ReadMonsterSplineTurnData(packet, index, "MonsterSplineTurnData");
575+
562576
if (hasAnimationTierTransition)
563577
{
564578
packet.ReadInt32("TierTransitionID", index);

WowPacketParserModule.V3_4_0_45166/Enums/CharacterUndeleteResult.cs

Lines changed: 0 additions & 12 deletions
This file was deleted.

WowPacketParserModule.V6_0_2_19033/Parsers/InstanceHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public static void HandleSetDungeonDifficulty(Packet packet)
8888
public static void HandleSetRaidDifficulty(Packet packet)
8989
{
9090
packet.ReadInt32<DifficultyId>("DifficultyID");
91-
packet.ReadByte("Force");
91+
packet.ReadByte("Legacy");
9292
}
9393

9494
[Parser(Opcode.SMSG_INSTANCE_INFO)]

0 commit comments

Comments
 (0)