public static void HandleAttackStartStop(Packet packet) { packet.ReadPackedGuid128("Attacker Guid"); packet.ReadPackedGuid128("Victim Guid"); packet.ReadBit("NowDead"); }
public static void HandleAuctionListItems(Packet packet) { packet.ReadInt32("Offset"); packet.ReadPackedGuid128("Auctioneer"); packet.ReadByte("MinLevel"); packet.ReadByte("MaxLevel"); packet.ReadInt32("InvType"); packet.ReadInt32("ItemClass"); packet.ReadInt32("ItemSubclass"); packet.ReadInt32("Quality"); var sort = packet.ReadByte("SortCount"); packet.ResetBitReader(); var len = packet.ReadBits(8); packet.ReadWoWString("Name", len); packet.ReadBit("OnlyUsable"); packet.ReadBit("ExactMatch"); var size = packet.ReadInt32("DataSize"); var data = packet.ReadBytes(size); var sorts = new Packet(data, packet.Opcode, packet.Time, packet.Direction, packet.Number, packet.Writer, packet.FileName); for (var i = 0; i < sort; ++i) { sorts.ReadByte("UnkByte1", i); sorts.ReadByte("UnkByte2", i); } }
public static void HandleGuildBankActivate(Packet packet) { packet.ReadPackedGuid128("Banker"); packet.ResetBitReader(); packet.ReadBit("FullUpdate"); }
public static void HandleBattlePayDistributionAssignToTarget(Packet packet) { packet.ReadInt32("ClientToken"); packet.ReadInt64("DistributionID"); packet.ReadPackedGuid128("TargetCharacter"); packet.ReadInt32("ProductChoice"); }
public static void HandleLootResponse(Packet packet) { packet.ReadPackedGuid128("Owner"); packet.ReadPackedGuid128("LootObj"); packet.ReadByteE<LootError>("FailureReason"); packet.ReadByteE<LootType>("AcquireReason"); packet.ReadByteE<LootMethod>("LootMethod"); packet.ReadByteE<ItemQuality>("Threshold"); packet.ReadUInt32("Coins"); var itemCount = packet.ReadUInt32("ItemCount"); var currencyCount = packet.ReadUInt32("CurrencyCount"); packet.ResetBitReader(); packet.ReadBit("Acquired"); packet.ReadBit("AELooting"); packet.ReadBit("PersonalLooting"); for (var i = 0; i < itemCount; ++i) ReadLootItem(packet, i, "LootItem"); for (var i = 0; i < currencyCount; ++i) V6_0_2_19033.Parsers.LootHandler.ReadCurrenciesData(packet, i, "Currencies"); }
public static void HandleVoidItemSwapResponse(Packet packet) { packet.ReadPackedGuid128("VoidItemA"); packet.ReadInt32("VoidItemSlotA"); packet.ReadPackedGuid128("VoidItemB"); packet.ReadInt32("VoidItemSlotB"); }
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); }
public static void HandleAreaTriggerReShape(Packet packet) { packet.ReadPackedGuid128("TriggerGUID"); packet.ResetBitReader(); var hasAreaTriggerSpline = packet.ReadBit("HasAreaTriggerSpline"); var hasAreaTriggerUnkType = packet.ReadBit("HasAreaTriggerUnkType"); if (hasAreaTriggerSpline) ReadAreaTriggerSpline(packet); if (hasAreaTriggerUnkType) { packet.ResetBitReader(); var unk1 = packet.ReadBit("AreaTriggerUnk1"); var hasCenter = packet.ReadBit("HasCenter"); packet.ReadBit("Unk bit 703 1"); packet.ReadBit("Unk bit 703 2"); packet.ReadUInt32("Unk UInt 1"); packet.ReadInt32("Unk Int 1"); packet.ReadUInt32("Unk UInt 2"); packet.ReadSingle("Radius"); packet.ReadSingle("BlendFromRadius"); packet.ReadSingle("InitialAngel"); packet.ReadSingle("ZOffset"); if (unk1) packet.ReadPackedGuid128("AreaTriggerUnkGUID"); if (hasCenter) packet.ReadVector3("Center"); } }
public static void HandleContactList(Packet packet) { packet.ReadInt32E<ContactListFlag>("List Flags"); var bits6 = packet.ReadBits("ContactInfoCount", 8); for (var i = 0; i < bits6; i++) { packet.ReadPackedGuid128("Guid", i); packet.ReadPackedGuid128("WowAccount", i); packet.ReadInt32("VirtualRealmAddr", i); packet.ReadInt32("NativeRealmAddr", i); packet.ReadInt32("TypeFlags", i); packet.ReadByte("Status", i); packet.ReadInt32("AreaID", i); packet.ReadInt32("Level", i); packet.ReadInt32("ClassID", i); packet.ResetBitReader(); var bits44 = packet.ReadBits(10); packet.ReadWoWString("Notes", bits44, i); } }
public static void HandleCalendarSendEvent(Packet packet) { packet.ReadByte("EventType"); packet.ReadPackedGuid128("OwnerGUID"); packet.ReadInt64("EventID"); packet.ReadByte("GetEventType"); packet.ReadInt32("TextureID"); packet.ReadUInt32("Flags"); packet.ReadUInt32("Date"); packet.ReadUInt32("LockDate"); packet.ReadPackedGuid128("EventGuildID"); var inviteCount = packet.ReadInt32("InviteCount"); packet.ResetBitReader(); var lenEventName = packet.ReadBits(8); var lenDescription = packet.ReadBits(11); packet.ResetBitReader(); for (int i = 0; i < inviteCount; i++) V6_0_2_19033.Parsers.CalendarHandler.ReadCalendarEventInviteInfo(packet, "Invites", i); packet.ReadWoWString("EventName", lenEventName); packet.ReadWoWString("Description", lenDescription); }
public static void HandleSpellHealLog(Packet packet) { packet.ReadPackedGuid128("TargetGUID"); packet.ReadPackedGuid128("CasterGUID"); packet.ReadInt32<SpellId>("SpellID"); packet.ReadInt32("Health"); packet.ReadInt32("OverHeal"); packet.ReadInt32("Absorbed"); packet.ResetBitReader(); packet.ReadBit("Crit"); var hasCritRollMade = packet.ReadBit("HasCritRollMade"); var hasCritRollNeeded = packet.ReadBit("HasCritRollNeeded"); var hasLogData = packet.ReadBit("HasLogData"); var hasSandboxScaling = packet.ReadBit("HasLogData"); if (hasCritRollMade) packet.ReadSingle("CritRollMade"); if (hasCritRollNeeded) packet.ReadSingle("CritRollNeeded"); if (hasLogData) SpellHandler.ReadSpellCastLogData(packet); if (hasSandboxScaling) ReadSandboxScalingData(packet, "SandboxScalingData"); }
public static void HandleItemPushResult(Packet packet) { packet.ReadPackedGuid128("PlayerGUID"); packet.ReadByte("Slot"); packet.ReadInt32("SlotInBag"); packet.ReadUInt32("QuestLogItemID"); packet.ReadUInt32("Quantity"); packet.ReadUInt32("QuantityInInventory"); packet.ReadInt32("DungeonEncounterID"); packet.ReadUInt32("BattlePetBreedID"); packet.ReadUInt32("BattlePetBreedQuality"); packet.ReadUInt32("BattlePetSpeciesID"); packet.ReadUInt32("BattlePetLevel"); packet.ReadPackedGuid128("ItemGUID"); packet.ResetBitReader(); packet.ReadBit("Pushed"); packet.ReadBit("Created"); packet.ReadBits("DisplayText", 3); packet.ReadBit("IsBonusRoll"); packet.ReadBit("IsEncounterLoot"); V6_0_2_19033.Parsers.ItemHandler.ReadItemInstance(packet, "ItemInstance"); }
public static void HandleTradeStatus(Packet packet) { packet.ReadBit("FailureForYou"); var status = packet.ReadBits("Status", 5); if (status == 13) packet.ReadBit("PartnerIsSameBnetAccount"); if (status == 13) { packet.ReadInt32("CurrencyType"); packet.ReadInt32("CurrencyQuantity"); } if (status == 31) packet.ReadInt32("ID"); if (status == 4) { packet.ReadPackedGuid128("PartnerGuid"); packet.ReadPackedGuid128("PartnerWowAccount"); } if (status == 1 || status == 0) packet.ReadByte("TradeSlot"); if (status == 8 || status == 21) { packet.ReadInt32("BagResult"); packet.ReadInt32("ItemID"); } }
public static void HandleGuildQueryResponse(Packet packet) { packet.ReadPackedGuid128("Guild Guid"); var hasData = packet.ReadBit(); if (hasData) { packet.ReadPackedGuid128("GuildGUID"); packet.ReadInt32("VirtualRealmAddress"); var rankCount = packet.ReadInt32("RankCount"); packet.ReadInt32("EmblemColor"); packet.ReadInt32("EmblemStyle"); packet.ReadInt32("BorderColor"); packet.ReadInt32("BorderStyle"); packet.ReadInt32("BackgroundColor"); packet.ResetBitReader(); var nameLen = packet.ReadBits(7); for (var i = 0; i < rankCount; i++) { packet.ReadInt32("RankID", i); packet.ReadInt32("RankOrder", i); packet.ResetBitReader(); var rankNameLen = packet.ReadBits(7); packet.ReadWoWString("Rank Name", rankNameLen, i); } packet.ReadWoWString("Guild Name", nameLen); } }
public static void HandleDestructibleBuildingDamage(Packet packet) { packet.ReadPackedGuid128("Target"); packet.ReadPackedGuid128("Caster"); packet.ReadPackedGuid128("Owner"); packet.ReadInt32("Damage"); packet.ReadInt32<SpellId>("SpellID"); }
public static void HandleAvailableVoiceChannel(Packet packet) { packet.ReadPackedGuid128("SessionGUID"); packet.ReadPackedGuid128("LocalGUID"); packet.ReadByte("ChannelType"); var bits108 = packet.ReadBits(7); packet.ReadWoWString("ChannelName", bits108); }
public static void HandlePetAction(Packet packet) { packet.ReadPackedGuid128("PetGUID"); var action = (uint)packet.ReadUInt16() + (packet.ReadByte() << 16); packet.AddValue("Action", action); packet.ReadByte("Slot"); packet.ReadPackedGuid128("TargetGUID"); packet.ReadVector3("ActionPosition"); }
public static void HandlePetAction(Packet packet) { packet.ReadPackedGuid128("PetGUID"); ReadPetAction(packet, "Action"); packet.ReadPackedGuid128("TargetGUID"); packet.ReadVector3("ActionPosition"); }
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 HandleVoidStorageContents(Packet packet) { var count = packet.ReadBits(8); for (var i = 0; i < count; ++i) { packet.ReadPackedGuid128("Guid", i); packet.ReadPackedGuid128("Creator", i); packet.ReadUInt32("Slot", i); ItemHandler.ReadItemInstance(packet, i); } }
public static void HandleVoidStorageTransfer(Packet packet) { packet.ReadPackedGuid128("Npc"); var int32 = packet.ReadInt32("WithdrawalsCount"); var int48 = packet.ReadInt32("DepositsCount"); for (int i = 0; i < int32; i++) packet.ReadPackedGuid128("Withdrawals", i); for (int i = 0; i < int48; i++) packet.ReadPackedGuid128("Deposits", i); }
public static void HandleLootList(Packet packet) { packet.ReadPackedGuid128("Owner"); var bit48 = packet.ReadBit("HasMaster"); var bit72 = packet.ReadBit("HasRoundRobinWinner"); if (bit48) packet.ReadPackedGuid128("Master"); if (bit72) packet.ReadPackedGuid128("RoundRobinWinner"); }
public static void HandleMoveApplyMovementForce(Packet packet) { packet.ReadPackedGuid128("MoverGUID"); packet.ReadInt32("SequenceIndex"); packet.ReadPackedGuid128("TriggerGUID"); packet.ReadVector3("Direction"); packet.ReadInt32("TransportID"); packet.ReadSingle("Facing"); packet.ResetBitReader(); packet.ReadBits("Reason", 2); }
public static void HandleUpdateObject(Packet packet) { var count = packet.ReadUInt32("NumObjUpdates"); uint map = packet.ReadUInt16<MapId>("MapID"); packet.ResetBitReader(); var bit552 = packet.ReadBit("HasDestroyObjects"); if (bit552) { packet.ReadInt16("Int0"); var int8 = packet.ReadUInt32("DestroyObjectsCount"); for (var i = 0; i < int8; i++) packet.ReadPackedGuid128("Object GUID", i); } packet.ReadUInt32("Data size"); for (var i = 0; i < count; i++) { var type = packet.ReadByte(); var typeString = ((UpdateTypeCataclysm)type).ToString(); packet.AddValue("UpdateType", typeString, i); switch (typeString) { case "Values": { var guid = packet.ReadPackedGuid128("Object Guid", i); WoWObject obj; var updates = CoreParsers.UpdateHandler.ReadValuesUpdateBlock(packet, guid.GetObjectType(), i, false); if (Storage.Objects.TryGetValue(guid, out obj)) { if (obj.ChangedUpdateFieldsList == null) obj.ChangedUpdateFieldsList = new List<Dictionary<int, UpdateField>>(); obj.ChangedUpdateFieldsList.Add(updates); } break; } case "CreateObject1": case "CreateObject2": // Might != CreateObject1 on Cata { var guid = packet.ReadPackedGuid128("Object Guid", i); ReadCreateObjectBlock(packet, guid, map, i); break; } } } }
public static void HandleBuyItem(Packet packet) { packet.ReadPackedGuid128("VendorGUID"); packet.ReadPackedGuid128("ContainerGUID"); ReadItemInstance(packet); packet.ReadInt32("Quantity"); packet.ReadUInt32("Muid"); packet.ReadUInt32("Slot"); packet.ResetBitReader(); packet.ReadBits("ItemType", 2); }
public static void HandleEquipmentSetList(Packet packet) { var count = packet.ReadInt32("Count"); for (var i = 0; i < count; i++) { packet.ReadInt32("Type", i); packet.ReadUInt64("Guid", i); packet.ReadUInt32("SetID", i); uint ignoreMask = packet.ReadUInt32("IgnoreMask"); for (var j = 0; j < NumSlots; j++) { bool ignore = (ignoreMask & (1 << j)) != 0; packet.ReadPackedGuid128("Pieces" + (ignore ? " (Ignored)" : ""), i, j); packet.ReadInt32("Appearances", i); } for (var j = 0; j < 2; j++) packet.ReadInt32("Enchants", i); packet.ResetBitReader(); var setNameLen = packet.ReadBits(8); var setIconLen = packet.ReadBits(9); packet.ReadWoWString("SetName", setNameLen, i); packet.ReadWoWString("SetIcon", setIconLen, i); } }
public static void HandleMoveApplyMovementForce(Packet packet) { packet.ReadPackedGuid128("MoverGUID"); packet.ReadInt32("SequenceIndex"); ReadMovementForce(packet, "MovementForce"); }
public static void HandleProcResist(Packet packet) { packet.ReadPackedGuid128("Caster"); packet.ReadPackedGuid128("Target"); packet.ReadInt32("SpellID"); var bit20 = packet.ReadBit("HasRolled"); // unconfirmed order var bit32 = packet.ReadBit("HasNeeded"); // unconfirmed order if (bit20) packet.ReadSingle("Rolled"); // unconfirmed order if (bit32) packet.ReadSingle("Needed"); // unconfirmed order }
public static void HandlePetSpells(Packet packet) { packet.ReadPackedGuid128("PetGUID"); packet.ReadInt16("CreatureFamily"); packet.ReadInt16("Specialization"); packet.ReadInt32("TimeLimit"); ReadPetFlags(packet, "PetModeAndOrders"); const int maxCreatureSpells = 10; for (var i = 0; i < maxCreatureSpells; i++) // Read pet / vehicle spell ids V6_0_2_19033.Parsers.PetHandler.ReadPetAction(packet, "ActionButtons", i); var actionsCount = packet.ReadInt32("ActionsCount"); var cooldownsCount = packet.ReadUInt32("CooldownsCount"); var spellHistoryCount = packet.ReadUInt32("SpellHistoryCount"); for (int i = 0; i < actionsCount; i++) V6_0_2_19033.Parsers.PetHandler.ReadPetAction(packet, i, "Actions"); for (int i = 0; i < cooldownsCount; i++) V6_0_2_19033.Parsers.PetHandler.ReadPetSpellCooldownData(packet, i, "PetSpellCooldown"); for (int i = 0; i < spellHistoryCount; i++) V6_0_2_19033.Parsers.PetHandler.ReadPetSpellHistoryData(packet, i, "PetSpellHistory"); }
public static void HandleLootMethod(Packet packet) { packet.ReadByte("PartyIndex"); packet.ReadByteE<LootMethod>("Method"); packet.ReadPackedGuid128("Master"); packet.ReadInt32E<ItemQuality>("Threshold"); }