Skip to content

Commit

Permalink
Add multiple 4.4.0 CMSG handler
Browse files Browse the repository at this point in the history
CMSG_SET_ACTIVE_MOVER
CMSG_SET_ADVANCED_COMBAT_LOGGING
CMSG_SET_ASSISTANT_LEADER
CMSG_SET_CONTACT_NOTES
CMSG_SET_DUNGEON_DIFFICULTY
CMSG_SET_EVERYONE_IS_ASSISTANT
CMSG_SET_FACTION_AT_WAR
CMSG_SET_FACTION_INACTIVE
CMSG_SET_FACTION_NOT_AT_WAR
CMSG_SET_LOOT_METHOD
CMSG_SET_PARTY_ASSIGNMENT
CMSG_SET_PARTY_LEADER
CMSG_SET_PET_SLOT
CMSG_SET_PLAYER_DECLINED_NAMES
CMSG_SET_PVP
CMSG_SET_RAID_DIFFICULTY
CMSG_SET_ROLE
CMSG_SET_SHEATHED
CMSG_SET_TAXI_BENCHMARK_MODE
CMSG_SET_TITLE
CMSG_SET_TRADE_GOLD
CMSG_SET_TRADE_ITEM
CMSG_SET_WATCHED_FACTION
CMSG_SIGN_PETITION
CMSG_SOCKET_GEMS
CMSG_SPELL_CLICK
CMSG_SPIRIT_HEALER_ACTIVATE
CMSG_SPLIT_GUILD_BANK_ITEM
CMSG_SPLIT_GUILD_BANK_ITEM_TO_INVENTORY
CMSG_SPLIT_ITEM
CMSG_SPLIT_ITEM_TO_GUILD_BANK
CMSG_STORE_GUILD_BANK_ITEM
CMSG_SUBMIT_USER_FEEDBACK
CMSG_SUMMON_RESPONSE
CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT
CMSG_SWAP_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM
CMSG_SWAP_INV_ITEM
CMSG_SWAP_ITEM
CMSG_SWAP_ITEM_WITH_GUILD_BANK_ITEM
CMSG_SWAP_SUB_GROUPS
CMSG_SWAP_VOID_ITEM
CMSG_TABARD_VENDOR_ACTIVATE
CMSG_TAXI_NODE_STATUS_QUERY
CMSG_TAXI_QUERY_AVAILABLE_NODES
CMSG_TAXI_REQUEST_EARLY_LANDING
CMSG_TOGGLE_PVP
CMSG_TOTEM_DESTROYED
CMSG_TRAINER_BUY_SPELL
CMSG_TRANSMOGRIFY_ITEMS
CMSG_TURN_IN_PETITION
CMSG_TUTORIAL
CMSG_UNACCEPT_TRADE
CMSG_UNDELETE_CHARACTER
CMSG_UNLEARN_SKILL
CMSG_UNLOCK_VOID_STORAGE
CMSG_UPDATE_AADC_STATUS
CMSG_UPDATE_ACCOUNT_DATA
CMSG_UPDATE_MISSILE_TRAJECTORY
CMSG_UPDATE_RAID_TARGET
CMSG_USE_CRITTER_ITEM
CMSG_USE_EQUIPMENT_SET
CMSG_USE_ITEM
CMSG_VOID_STORAGE_TRANSFER
CMSG_WHO
CMSG_WHO_IS
CMSG_WORLD_PORT_RESPONSE
CMSG_WRAP_ITEM
  • Loading branch information
funjoker committed Sep 24, 2024
1 parent 43476f5 commit eec3e70
Show file tree
Hide file tree
Showing 23 changed files with 846 additions and 32 deletions.
60 changes: 30 additions & 30 deletions WowPacketParser/Enums/Version/V4_4_0_54481/Opcodes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -598,24 +598,24 @@ public static BiDictionary<Opcode, int> Opcodes(Direction direction)
{ Opcode.CMSG_SET_ACTION_BUTTON, 0x3560 },
{ Opcode.CMSG_SET_ACTIVE_MOVER, 0x3A3C },
{ Opcode.CMSG_SET_ADVANCED_COMBAT_LOGGING, 0x32B6 },
{ Opcode.CMSG_SET_AMMO, 0x3561 },
{ Opcode.CMSG_SET_AMMO, 0x3561 }, // NYI
{ Opcode.CMSG_SET_ASSISTANT_LEADER, 0x364E },
{ Opcode.CMSG_SET_CONTACT_NOTES, 0x36D6 },
{ Opcode.CMSG_SET_CURRENCY_FLAGS, 0x316E },
{ Opcode.CMSG_SET_DIFFICULTY_ID, 0x3224 },
{ Opcode.CMSG_SET_CURRENCY_FLAGS, 0x316E }, // NYI
{ Opcode.CMSG_SET_DIFFICULTY_ID, 0x3224 }, // NYI
{ Opcode.CMSG_SET_DUNGEON_DIFFICULTY, 0x3680 },
{ Opcode.CMSG_SET_EVERYONE_IS_ASSISTANT, 0x3619 },
{ Opcode.CMSG_SET_FACTION_AT_WAR, 0x34DE },
{ Opcode.CMSG_SET_FACTION_INACTIVE, 0x34E0 },
{ Opcode.CMSG_SET_FACTION_NOT_AT_WAR, 0x34DF },
{ Opcode.CMSG_SET_GAME_EVENT_DEBUG_VIEW_STATE, 0x31BB },
{ Opcode.CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT, 0x32CB },
{ Opcode.CMSG_SET_GAME_EVENT_DEBUG_VIEW_STATE, 0x31BB }, // NYI
{ Opcode.CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT, 0x32CB }, // NYI
{ Opcode.CMSG_SET_LOOT_METHOD, 0x3647 },
{ Opcode.CMSG_SET_PARTY_ASSIGNMENT, 0x3650 },
{ Opcode.CMSG_SET_PARTY_LEADER, 0x3649 },
{ Opcode.CMSG_SET_PET_SLOT, 0x316D },
{ Opcode.CMSG_SET_PLAYER_DECLINED_NAMES, 0x3685 },
{ Opcode.CMSG_SET_PREFERRED_CEMETERY, 0x317C },
{ Opcode.CMSG_SET_PREFERRED_CEMETERY, 0x317C }, // NYI
{ Opcode.CMSG_SET_PRIMARY_TALENT_TREE, 0x3559 },
{ Opcode.CMSG_SET_PVP, 0x32AE },
{ Opcode.CMSG_SET_RAID_DIFFICULTY, 0x36DF },
Expand All @@ -627,31 +627,31 @@ public static BiDictionary<Opcode, int> Opcodes(Direction direction)
{ Opcode.CMSG_SET_TRADE_GOLD, 0x3160 },
{ Opcode.CMSG_SET_TRADE_ITEM, 0x315E },
{ Opcode.CMSG_SET_WATCHED_FACTION, 0x34E1 },
{ Opcode.CMSG_SHOWING_CLOAK, 0x356C },
{ Opcode.CMSG_SHOWING_HELM, 0x356B },
{ Opcode.CMSG_SHOW_TRADE_SKILL, 0x36C6 },
{ Opcode.CMSG_SHOWING_CLOAK, 0x356C }, // NYI
{ Opcode.CMSG_SHOWING_HELM, 0x356B }, // NYI
{ Opcode.CMSG_SHOW_TRADE_SKILL, 0x36C6 }, // NYI
{ Opcode.CMSG_SIGN_PETITION, 0x3535 },
{ Opcode.CMSG_SILENCE_PARTY_TALKER, 0x3651 },
{ Opcode.CMSG_SILENCE_PARTY_TALKER, 0x3651 }, // NYI
{ Opcode.CMSG_SOCIAL_CONTRACT_REQUEST, 0x3748 },
{ Opcode.CMSG_SOCKET_GEMS, 0x34EB },
{ Opcode.CMSG_SPAWN_TRACKING_UPDATE, 0x3294 },
{ Opcode.CMSG_SPAWN_TRACKING_UPDATE, 0x3294 }, // NYI
{ Opcode.CMSG_SPELL_CLICK, 0x3495 },
{ Opcode.CMSG_SPIRIT_HEALER_ACTIVATE, 0x34AF },
{ Opcode.CMSG_SPLIT_GUILD_BANK_ITEM, 0x34C1 },
{ Opcode.CMSG_SPLIT_GUILD_BANK_ITEM_TO_INVENTORY, 0x34BE },
{ Opcode.CMSG_SPLIT_ITEM, 0x399C },
{ Opcode.CMSG_SPLIT_ITEM_TO_GUILD_BANK, 0x34BC },
{ Opcode.CMSG_STABLE_PET, 0x3169 },
{ Opcode.CMSG_STABLE_SWAP_PET, 0x316B },
{ Opcode.CMSG_STABLE_PET, 0x3169 }, // NYI
{ Opcode.CMSG_STABLE_SWAP_PET, 0x316B }, // NYI
{ Opcode.CMSG_STAND_STATE_CHANGE, 0x318E },
{ Opcode.CMSG_START_SPECTATOR_WAR_GAME, 0x35DF },
{ Opcode.CMSG_START_WAR_GAME, 0x35DE },
{ Opcode.CMSG_START_SPECTATOR_WAR_GAME, 0x35DF }, // NYI
{ Opcode.CMSG_START_WAR_GAME, 0x35DE }, // NYI
{ Opcode.CMSG_STORE_GUILD_BANK_ITEM, 0x34B7 },
{ Opcode.CMSG_SUBMIT_USER_FEEDBACK, 0x368F },
{ Opcode.CMSG_SUMMON_RESPONSE, 0x3668 },
{ Opcode.CMSG_SUPPORT_TICKET_SUBMIT_BUG, 0x3644 },
{ Opcode.CMSG_SUPPORT_TICKET_SUBMIT_BUG, 0x3644 }, // NYI
{ Opcode.CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT, 0x3643 },
{ Opcode.CMSG_SUPPORT_TICKET_SUBMIT_SUGGESTION, 0x3645 },
{ Opcode.CMSG_SUPPORT_TICKET_SUBMIT_SUGGESTION, 0x3645 }, // NYI
{ Opcode.CMSG_SUSPEND_COMMS_ACK, 0x3778 },
{ Opcode.CMSG_SUSPEND_TOKEN_RESPONSE, 0x377E },
{ Opcode.CMSG_SWAP_GUILD_BANK_ITEM_WITH_GUILD_BANK_ITEM, 0x34B9 },
Expand All @@ -664,44 +664,44 @@ public static BiDictionary<Opcode, int> Opcodes(Direction direction)
{ Opcode.CMSG_TAXI_NODE_STATUS_QUERY, 0x34A8 },
{ Opcode.CMSG_TAXI_QUERY_AVAILABLE_NODES, 0x34AA },
{ Opcode.CMSG_TAXI_REQUEST_EARLY_LANDING, 0x34AC },
{ Opcode.CMSG_TIME_ADJUSTMENT_RESPONSE, 0x3A40 },
{ Opcode.CMSG_TIME_ADJUSTMENT_RESPONSE, 0x3A40 }, // NYI
{ Opcode.CMSG_TIME_SYNC_RESPONSE, 0x3A3D },
{ Opcode.CMSG_TIME_SYNC_RESPONSE_DROPPED, 0x3A3F },
{ Opcode.CMSG_TIME_SYNC_RESPONSE_FAILED, 0x3A3E },
{ Opcode.CMSG_TOGGLE_DIFFICULTY, 0x3655 },
{ Opcode.CMSG_TIME_SYNC_RESPONSE_DROPPED, 0x3A3F }, // NYI
{ Opcode.CMSG_TIME_SYNC_RESPONSE_FAILED, 0x3A3E }, // NYI
{ Opcode.CMSG_TOGGLE_DIFFICULTY, 0x3655 }, // NYI
{ Opcode.CMSG_TOGGLE_PVP, 0x32AD },
{ Opcode.CMSG_TOTEM_DESTROYED, 0x34F8 },
{ Opcode.CMSG_TOY_CLEAR_FANFARE, 0x3128 },
{ Opcode.CMSG_TRAINER_BUY_SPELL, 0x34AE },
{ Opcode.CMSG_TRAINER_LIST, 0x34AD },
{ Opcode.CMSG_TRAITS_COMMIT_CONFIG, 0x3304 },
{ Opcode.CMSG_TRAITS_COMMIT_CONFIG, 0x3304 }, // NYI
{ Opcode.CMSG_TRANSMOGRIFY_ITEMS, 0x319A },
{ Opcode.CMSG_TURN_IN_PETITION, 0x3537 },
{ Opcode.CMSG_TUTORIAL, 0x36E0 },
{ Opcode.CMSG_UNACCEPT_TRADE, 0x315C },
{ Opcode.CMSG_UNDELETE_CHARACTER, 0x36E2 },
{ Opcode.CMSG_UNLEARN_SKILL, 0x34E5 },
{ Opcode.CMSG_UNLOCK_VOID_STORAGE, 0x31A4 },
{ Opcode.CMSG_UNSTABLE_PET, 0x316A },
{ Opcode.CMSG_UNSTABLE_PET, 0x316A }, // NYI
{ Opcode.CMSG_UPDATE_AADC_STATUS, 0x373D },
{ Opcode.CMSG_UPDATE_ACCOUNT_DATA, 0x3691 },
{ Opcode.CMSG_UPDATE_AREA_TRIGGER_VISUAL, 0x32A0 },
{ Opcode.CMSG_UPDATE_CLIENT_SETTINGS, 0x3662 },
{ Opcode.CMSG_UPDATE_AREA_TRIGGER_VISUAL, 0x32A0 }, // NYI
{ Opcode.CMSG_UPDATE_CLIENT_SETTINGS, 0x3662 }, // NYI
{ Opcode.CMSG_UPDATE_MISSILE_TRAJECTORY, 0x3A43 },
{ Opcode.CMSG_UPDATE_RAID_TARGET, 0x364F },
{ Opcode.CMSG_UPDATE_SPELL_VISUAL, 0x329F },
{ Opcode.CMSG_UPDATE_SPELL_VISUAL, 0x329F }, // NYI
{ Opcode.CMSG_UPDATE_VAS_PURCHASE_STATES, 0x36F7 },
{ Opcode.CMSG_USED_FOLLOW, 0x318B },
{ Opcode.CMSG_USED_FOLLOW, 0x318B }, // NYI
{ Opcode.CMSG_USE_CRITTER_ITEM, 0x3243 },
{ Opcode.CMSG_USE_EQUIPMENT_SET, 0x3995 },
{ Opcode.CMSG_USE_ITEM, 0x329A },
{ Opcode.CMSG_USE_TOY, 0x329C },
{ Opcode.CMSG_VAS_CHECK_TRANSFER_OK, 0x370F },
{ Opcode.CMSG_VAS_GET_QUEUE_MINUTES, 0x370E },
{ Opcode.CMSG_VAS_GET_SERVICE_STATUS, 0x370D },
{ Opcode.CMSG_VOICE_CHANNEL_STT_TOKEN_REQUEST, 0x3713 },
{ Opcode.CMSG_VOICE_CHAT_JOIN_CHANNEL, 0x3714 },
{ Opcode.CMSG_VOICE_CHAT_LOGIN, 0x3712 },
{ Opcode.CMSG_VOICE_CHANNEL_STT_TOKEN_REQUEST, 0x3713 }, // NYI
{ Opcode.CMSG_VOICE_CHAT_JOIN_CHANNEL, 0x3714 }, // NYI
{ Opcode.CMSG_VOICE_CHAT_LOGIN, 0x3712 }, // NYI
{ Opcode.CMSG_VOID_STORAGE_TRANSFER, 0x31A6 },
{ Opcode.CMSG_WARDEN3_DATA, 0x35EC },
{ Opcode.CMSG_WHO, 0x367F },
Expand Down
16 changes: 16 additions & 0 deletions WowPacketParserModule.V4_4_0_54481/Parsers/AccountDataHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,22 @@ public static void HandleServerUpdateAccountData(Packet packet)
packet.AddValue("Account Data", data);
}

[Parser(Opcode.CMSG_UPDATE_ACCOUNT_DATA)]
public static void HandleClientUpdateAccountData(Packet packet)
{
packet.ReadTime64("Time");

var decompCount = packet.ReadInt32();
packet.ReadPackedGuid128("Guid");
packet.ReadInt32E<AccountDataType>("DataType");
var compCount = packet.ReadInt32();

var pkt = packet.Inflate(compCount, decompCount, false);
var data = pkt.ReadWoWString(decompCount);

packet.AddValue("CompressedData", data);
}

[Parser(Opcode.SMSG_LOGOUT_CANCEL_ACK)]
public static void HandleAccountNull(Packet packet)
{
Expand Down
32 changes: 32 additions & 0 deletions WowPacketParserModule.V4_4_0_54481/Parsers/CharacterHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -641,6 +641,38 @@ public static void HandleReorderCharacters(Packet packet)
}
}

[Parser(Opcode.CMSG_SET_PLAYER_DECLINED_NAMES)]
public static void HandleSetPlayerDeclinedNames(Packet packet)
{
packet.ReadPackedGuid128("Player");

var count = new int[5];
for (var i = 0; i < 5; ++i)
count[i] = (int)packet.ReadBits(7);

for (var i = 0; i < 5; ++i)
packet.ReadWoWString("DeclinedName", count[i], i);
}

[Parser(Opcode.CMSG_SET_PVP)]
public static void HandleSetPVP(Packet packet)
{
packet.ReadBit("EnablePVP");
}

[Parser(Opcode.CMSG_SET_TITLE)]
public static void HandleSetTitle(Packet packet)
{
packet.ReadInt32("TitleID");
}

[Parser(Opcode.CMSG_UNDELETE_CHARACTER)]
public static void HandleUndeleteCharacter(Packet packet)
{
packet.ReadInt32("ClientToken");
packet.ReadPackedGuid128("CharacterGuid");
}

[Parser(Opcode.CMSG_CONFIRM_BARBERS_CHOICE)]
[Parser(Opcode.CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT)]
public static void HandleCharNull(Packet packet)
Expand Down
8 changes: 7 additions & 1 deletion WowPacketParserModule.V4_4_0_54481/Parsers/ChatHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -267,11 +267,17 @@ public static void HandleSendTextEmote(Packet packet)
packet.ReadInt32("SoundIndex");
var count = packet.ReadUInt32("SpellVisualKitCount");
packet.ReadInt32("SequenceVariation");

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

[Parser(Opcode.CMSG_UPDATE_AADC_STATUS)]
public static void HandleUpdateAADCStatus(Packet packet)
{
packet.ReadBit("ChatDisabled");
}

[Parser(Opcode.CMSG_EMOTE)]
public static void HandleChatNull(Packet packet)
{
Expand Down
8 changes: 8 additions & 0 deletions WowPacketParserModule.V4_4_0_54481/Parsers/CombatHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -161,10 +161,18 @@ public static void HandleCanDuel(Packet packet)
packet.ReadBit("ToTheDeath");
}

[Parser(Opcode.CMSG_SET_SHEATHED)]
public static void HandleSetSheathed(Packet packet)
{
packet.ReadInt32E<SheathState>("CurrentSheathState");
packet.ReadBit("Animate");
}

[Parser(Opcode.SMSG_CANCEL_COMBAT)]
[Parser(Opcode.SMSG_DUEL_IN_BOUNDS)]
[Parser(Opcode.SMSG_DUEL_OUT_OF_BOUNDS)]
[Parser(Opcode.CMSG_ATTACK_STOP)]
[Parser(Opcode.CMSG_TOGGLE_PVP)]
public static void HandleCombatNull(Packet packet)
{
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -477,5 +477,11 @@ public static void HandleSpellOrDamageImmune(Packet packet)

packet.ReadBit("IsPeriodic");
}

[Parser(Opcode.CMSG_SET_ADVANCED_COMBAT_LOGGING)]
public static void HandleSetAdvancedCombatLogging(Packet packet)
{
packet.ReadBit("Enable");
}
}
}
8 changes: 8 additions & 0 deletions WowPacketParserModule.V4_4_0_54481/Parsers/ContactHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -105,5 +105,13 @@ public static void HandleSendContactList(Packet packet)
{
packet.ReadUInt32("Flags");
}

[Parser(Opcode.CMSG_SET_CONTACT_NOTES)]
public static void HandleSetContactNotes(Packet packet)
{
ReadQualifiedGUID(packet, "QualifiedGUID");
var notesLength = packet.ReadBits(10);
packet.ReadWoWString("Notes", notesLength);
}
}
}
14 changes: 14 additions & 0 deletions WowPacketParserModule.V4_4_0_54481/Parsers/EquipmentSetHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -104,5 +104,19 @@ public static void HandleEquipmentSetSave(Packet packet)
packet.ReadWoWString("SetName", setNameLen);
packet.ReadWoWString("SetIcon", setIconLen);
}

[Parser(Opcode.CMSG_USE_EQUIPMENT_SET)]
public static void HandleUseEquipmentSet(Packet packet)
{
ItemHandler.ReadInvUpdate(packet, "InvUpdate");
for (int i = 0; i < NumSlots; i++)
{
packet.ReadPackedGuid128("Item");
packet.ReadByte("ContainerSlot");
packet.ReadByte("Slot");
}

packet.ReadUInt64("GUID");
}
}
}
85 changes: 85 additions & 0 deletions WowPacketParserModule.V4_4_0_54481/Parsers/GroupHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -439,6 +439,91 @@ public static void HandleRequestPartyMemberStats(Packet packet)
packet.ReadByte("PartyIndex");
}

[Parser(Opcode.CMSG_SET_ASSISTANT_LEADER)]
public static void HandleSetAssistantLeader(Packet packet)
{
var hasPartyIndex = packet.ReadBit("HasPartyIndex");
packet.ReadBit("Apply");
packet.ReadPackedGuid128("Target");

if (hasPartyIndex)
packet.ReadByte("PartyIndex");
}

[Parser(Opcode.CMSG_SET_EVERYONE_IS_ASSISTANT)]
public static void HandleSetEveryoneIsAssistant(Packet packet)
{
var hasPartyIndex = packet.ReadBit("HasPartyIndex");
packet.ReadBit("EveryoneIsAssistant");

if (hasPartyIndex)
packet.ReadByte("PartyIndex");
}

[Parser(Opcode.CMSG_SET_LOOT_METHOD)]
public static void HandleLootMethod(Packet packet)
{
var hasPartyIndex = packet.ReadBit("HasPartyIndex");
packet.ReadByteE<LootMethod>("Method");
packet.ReadPackedGuid128("Master");
packet.ReadInt32E<ItemQuality>("Threshold");

if (hasPartyIndex)
packet.ReadByte("PartyIndex");
}

[Parser(Opcode.CMSG_SET_PARTY_ASSIGNMENT)]
public static void HandleSetPartyAssigment(Packet packet)
{
var hasPartyIndex = packet.ReadBit("HasPartyIndex");
packet.ReadBit("Set");
packet.ReadByte("Assignment");
packet.ReadPackedGuid128("Target");

if (hasPartyIndex)
packet.ReadByte("PartyIndex");
}

[Parser(Opcode.CMSG_SET_PARTY_LEADER)]
public static void HandleSetPartyLeader(Packet packet)
{
var hasPartyIndex = packet.ReadBit("HasPartyIndex");
packet.ReadPackedGuid128("Target");
if (hasPartyIndex)
packet.ReadByte("PartyIndex");
}

[Parser(Opcode.CMSG_SET_ROLE)]
public static void HandleSetRole(Packet packet)
{
var hasPartyIndex = packet.ReadBit("HasPartyIndex");
packet.ReadPackedGuid128("ChangedUnit");
packet.ReadByte("Role");
if (hasPartyIndex)
packet.ReadByte("PartyIndex");
}

[Parser(Opcode.CMSG_SWAP_SUB_GROUPS)]
public static void HandleSwapSubGroups(Packet packet)
{
var hasPartyIndex = packet.ReadBit("HasPartyIndex");
packet.ReadPackedGuid128("FirstTarget");
packet.ReadPackedGuid128("SecondTarget"); ;
if (hasPartyIndex)
packet.ReadByte("PartyIndex");
}

[Parser(Opcode.CMSG_UPDATE_RAID_TARGET)]
public static void HandleUpdateRaidTarget(Packet packet)
{
var hasPartyIndex = packet.ReadBit("HasPartyIndex");
packet.ReadPackedGuid128("Target");
packet.ReadByte("Symbol");

if (hasPartyIndex)
packet.ReadByte("PartyIndex");
}

[Parser(Opcode.CMSG_REQUEST_RAID_INFO)]
[Parser(Opcode.SMSG_GROUP_DESTROYED)]
[Parser(Opcode.SMSG_GROUP_UNINVITE)]
Expand Down
Loading

0 comments on commit eec3e70

Please sign in to comment.