diff --git a/Source/Framework/Constants/AchievementConst.cs b/Source/Framework/Constants/AchievementConst.cs
index 46720b948..0df0fdc7c 100644
--- a/Source/Framework/Constants/AchievementConst.cs
+++ b/Source/Framework/Constants/AchievementConst.cs
@@ -774,10 +774,10 @@ namespace Framework.Constants
CompleteQuestsCountOnAccount = 257, /*NYI*/
- WarbandBankTabPurchased = 260, /*NYI*/
+ BankTabPurchased = 260, // Bank Tab Purchased in {#BankType}
ReachRenownLevel = 261,
LearnTaxiNode = 262,
- Count = 264
+ Count = 270
}
public enum CriteriaDataType
diff --git a/Source/Framework/Constants/AreaTriggerConst.cs b/Source/Framework/Constants/AreaTriggerConst.cs
index c28e6fb06..1bae22981 100644
--- a/Source/Framework/Constants/AreaTriggerConst.cs
+++ b/Source/Framework/Constants/AreaTriggerConst.cs
@@ -46,4 +46,28 @@ namespace Framework.Constants
HasCircularMovement = 0x400, // DEPRECATED
Unk5 = 0x800,
}
+
+ public enum AreaTriggerFieldFlags
+ {
+ None = 0x0000,
+ HeightIgnoresScale = 0x0001,
+ WowLabsCircle = 0x0002,
+ CanLoop = 0x0004,
+ AbsoluteOrientation = 0x0008,
+ DynamicShape = 0x0010,
+ Attached = 0x0020,
+ FaceMovementDir = 0x0040,
+ FollowsTerrain = 0x0080,
+ Unknown1025 = 0x0100,
+ AlwaysExterior = 0x0200,
+ HasPlayers = 0x0400,
+ }
+
+ public enum AreaTriggerPathType
+ {
+ Spline = 0,
+ Orbit = 1,
+ None = 2,
+ MovementScript = 3
+ }
}
diff --git a/Source/Framework/Constants/GameObjectConst.cs b/Source/Framework/Constants/GameObjectConst.cs
index 7af25425a..41403dfd9 100644
--- a/Source/Framework/Constants/GameObjectConst.cs
+++ b/Source/Framework/Constants/GameObjectConst.cs
@@ -68,6 +68,8 @@ namespace Framework.Constants
ClientModel = 60,
CraftingTable = 61,
PerksProgramChest = 62,
+ FuturePatch = 63,
+ AssistAction = 64,
Max
}
diff --git a/Source/Framework/Constants/ItemConst.cs b/Source/Framework/Constants/ItemConst.cs
index 3fa65c6d8..f01c76407 100644
--- a/Source/Framework/Constants/ItemConst.cs
+++ b/Source/Framework/Constants/ItemConst.cs
@@ -144,20 +144,14 @@ namespace Framework.Constants
public const byte ItemStart = 35;
public const byte ItemEnd = 63;
- public const byte BankItemStart = 63;
- public const byte BankItemEnd = 91;
+ public const byte BankBagStart = 63;
+ public const byte BankBagEnd = 69;
- public const byte BankBagStart = 91;
- public const byte BankBagEnd = 98;
+ public const byte BuyBackStart = 69;
+ public const byte BuyBackEnd = 81;
- public const byte BuyBackStart = 98;
- public const byte BuyBackEnd = 110;
-
- public const byte ReagentStart = 110;
- public const byte ReagentEnd = 208;
-
- public const byte ChildEquipmentStart = 208;
- public const byte ChildEquipmentEnd = 211;
+ public const byte ChildEquipmentStart = 81;
+ public const byte ChildEquipmentEnd = 84;
public const byte Bag0 = 255;
public const byte DefaultSize = 16;
@@ -165,22 +159,22 @@ namespace Framework.Constants
enum EquipableSpellSlots
{
- OffensiveSlot1 = 211,
- OffensiveSlot2 = 212,
- OffensiveSlot3 = 213,
- OffensiveSlot4 = 214,
- UtilitySlot1 = 215,
- UtilitySlot2 = 216,
- UtilitySlot3 = 217,
- UtilitySlot4 = 218,
- DefensiveSlot1 = 219,
- DefensiveSlot2 = 220,
- DefensiveSlot3 = 221,
- DefensiveSlot4 = 222,
- WeaponSlot1 = 223,
- WeaponSlot2 = 224,
- WeaponSlot3 = 225,
- WeaponSlot4 = 226,
+ OffensiveSlot1 = 84,
+ OffensiveSlot2 = 85,
+ OffensiveSlot3 = 86,
+ OffensiveSlot4 = 87,
+ UtilitySlot1 = 88,
+ UtilitySlot2 = 89,
+ UtilitySlot3 = 90,
+ UtilitySlot4 = 91,
+ DefensiveSlot1 = 92,
+ DefensiveSlot2 = 93,
+ DefensiveSlot3 = 94,
+ DefensiveSlot4 = 95,
+ WeaponSlot1 = 96,
+ WeaponSlot2 = 97,
+ WeaponSlot3 = 98,
+ WeaponSlot4 = 99,
}
public struct EquipmentSlot
@@ -761,7 +755,7 @@ namespace Framework.Constants
BnetAccountUntilEquipped = 9,
}
- public enum ItemClass : sbyte
+ public enum ItemClass : int
{
None = -1,
Consumable = 0,
@@ -1399,6 +1393,8 @@ namespace Framework.Constants
BankNotAccessible = 128,// This Character Does Not Have Access To This Bank.
CantTradeAccountItem = 129,// You Can't Trade An Item From The Warband Bank.
AccountMoneyLocked = 130,// You cannot withdraw or deposit gold from the warband bank currently; please try again later.
+ CharacterBankNotAccessible = 131,// This character does not have access to this bank.
+ CharacterBankNotConverted = 132,// Your character's bank has not been converted. Please try again later.
}
public enum BankType
@@ -1531,6 +1527,9 @@ namespace Framework.Constants
PriorityJunk = 0x10,
PriorityQuestItems = 0x20,
ExcludeJunkSell = 0x40,
+ PriorityReagents = 0x80,
+ ExpansionCurrent = 0x100,
+ ExpansionLegacy = 0x200,
}
public enum LootStoreItemType
diff --git a/Source/Framework/Constants/Network/Opcodes.cs b/Source/Framework/Constants/Network/Opcodes.cs
index 09776f39b..123d91942 100644
--- a/Source/Framework/Constants/Network/Opcodes.cs
+++ b/Source/Framework/Constants/Network/Opcodes.cs
@@ -5,2138 +5,2135 @@ namespace Framework.Constants
{
public enum ClientOpcodes : uint
{
- AbandonNpeResponse = 0x31029a,
- AcceptGuildInvite = 0x360029,
- AcceptReturningPlayerPrompt = 0x31025b,
- AcceptSocialContract = 0x360172,
- AcceptTrade = 0x310004,
- AcceptWargameInvite = 0x36000c,
- AccountBankDepositMoney = 0x3102dd,
- AccountBankWithdrawMoney = 0x3102de,
- AccountNotificationAcknowledged = 0x36015e,
- AccountStoreBeginPurchaseOrRefund = 0x3600be,
- ActivateSoulbind = 0x310289,
- ActivateTaxi = 0x32003e,
- AddonList = 0x360004,
- AddAccountCosmetic = 0x310170,
- AddBattlenetFriend = 0x360084,
- AddFriend = 0x3600fc,
- AddIgnore = 0x360100,
- AddToy = 0x31016f,
- AdventureJournalOpenQuest = 0x3100b3,
- AdventureJournalUpdateSuggestions = 0x31028c,
- AdventureMapStartQuest = 0x31022c,
- AlterAppearance = 0x32008f,
- AreaSpiritHealerQuery = 0x320043,
- AreaSpiritHealerQueue = 0x320044,
- AreaTrigger = 0x310086,
- ArtifactAddPower = 0x310056,
- ArtifactSetAppearance = 0x310058,
- AssignEquipmentSetSpec = 0x3100bf,
- AttackStop = 0x31011d,
- AttackSwing = 0x31011c,
- AuctionableTokenSell = 0x360112,
- AuctionableTokenSellAtMarketPrice = 0x360113,
- AuctionBrowseQuery = 0x320063,
- AuctionCancelCommoditiesPurchase = 0x32006b,
- AuctionConfirmCommoditiesPurchase = 0x32006a,
- AuctionGetCommodityQuote = 0x320069,
- AuctionHelloRequest = 0x32005e,
- AuctionListBiddedItems = 0x320067,
- AuctionListBucketsByBucketKeys = 0x320068,
- AuctionListItemsByBucketKey = 0x320064,
- AuctionListItemsByItemId = 0x320065,
- AuctionListOwnedItems = 0x320066,
- AuctionPlaceBid = 0x320062,
- AuctionRemoveItem = 0x320060,
- AuctionReplicateItems = 0x320061,
- AuctionSellCommodity = 0x32006c,
- AuctionSellItem = 0x32005f,
- AuctionSetFavoriteItem = 0x36015f,
- AuthContinuedSession = 0x370002,
- AuthSession = 0x370001,
- AutobankItem = 0x330003,
- AutobankReagent = 0x330005,
- AutostoreBankItem = 0x330002,
- AutostoreBankReagent = 0x330004,
- AutoDepositAccountBank = 0x3102e7,
- AutoEquipItem = 0x330006,
- AutoEquipItemSlot = 0x33000b,
- AutoGuildBankItem = 0x32004a,
- AutoStoreBagItem = 0x330007,
- AutoStoreGuildBankItem = 0x320053,
- AzeriteEmpoweredItemSelectPower = 0x310257,
- AzeriteEmpoweredItemViewed = 0x310238,
- AzeriteEssenceActivateEssence = 0x310259,
- AzeriteEssenceUnlockMilestone = 0x310258,
- BankerActivate = 0x320046,
- BattlefieldLeave = 0x31001f,
- BattlefieldList = 0x31002a,
- BattlefieldPort = 0x3200c5,
- BattlemasterHello = 0x31018e,
- BattlemasterJoin = 0x3200bc,
- BattlemasterJoinArena = 0x3200bd,
- BattlemasterJoinBrawl = 0x3200c3,
- BattlemasterJoinRatedBgBlitz = 0x3200bf,
- BattlemasterJoinRatedSoloShuffle = 0x3200be,
- BattlemasterJoinSkirmish = 0x3200c0,
- BattlenetChallengeResponse = 0x3600ff,
- BattlenetRequest = 0x360120,
- BattlePayAckFailedResponse = 0x3600f9,
- BattlePayCancelOpenCheckout = 0x36013c,
- BattlePayConfirmPurchaseResponse = 0x3600f8,
- BattlePayDistributionAssignToTarget = 0x3600ef,
- BattlePayDistributionAssignVas = 0x360162,
- BattlePayGetProductList = 0x3600e6,
- BattlePayGetPurchaseList = 0x3600e7,
- BattlePayOpenCheckout = 0x360135,
- BattlePayRequestPriceInfo = 0x360131,
- BattlePayStartPurchase = 0x3600f7,
- BattlePayStartVasPurchase = 0x36011e,
- BattlePetClearFanfare = 0x2b0002,
- BattlePetDeletePet = 0x36004f,
- BattlePetDeletePetCheat = 0x360050,
- BattlePetModifyName = 0x360052,
- BattlePetRequestJournal = 0x36004e,
- BattlePetRequestJournalLock = 0x36004d,
- BattlePetSetBattleSlot = 0x360057,
- BattlePetSetFlags = 0x36005a,
- BattlePetSummon = 0x360053,
- BattlePetUpdateDisplayNotify = 0x310090,
- BattlePetUpdateNotify = 0x31008f,
- BeginTrade = 0x310001,
- BinderActivate = 0x320045,
- BlackMarketBidOnItem = 0x3200cd,
- BlackMarketOpen = 0x3200cb,
- BlackMarketRequestItems = 0x3200cc,
- BonusRoll = 0x31025a,
- BugReport = 0x3600af,
- BusyTrade = 0x310002,
- BuyAccountBankTab = 0x320122,
- BuyBackItem = 0x320037,
- BuyBankSlot = 0x320047,
- BuyItem = 0x320036,
- BuyReagentBank = 0x320048,
- CageBattlePet = 0x3100a3,
- CalendarAddEvent = 0x3600a7,
- CalendarCommunityInvite = 0x36009b,
- CalendarComplain = 0x3600a3,
- CalendarCopyEvent = 0x3600a2,
- CalendarEventSignUp = 0x3600a5,
- CalendarGet = 0x360099,
- CalendarGetEvent = 0x36009a,
- CalendarGetNumPending = 0x3600a4,
- CalendarInvite = 0x36009c,
- CalendarModeratorStatus = 0x3600a0,
- CalendarRemoveEvent = 0x3600a1,
- CalendarRemoveInvite = 0x36009d,
- CalendarRsvp = 0x36009e,
- CalendarStatus = 0x36009f,
- CalendarUpdateEvent = 0x3600a8,
- CancelAura = 0x31005a,
- CancelAutoRepeatSpell = 0x320081,
- CancelCast = 0x310176,
- CancelChannelling = 0x310137,
- CancelGrowthAura = 0x31013f,
- CancelMasterLootRoll = 0x3100cc,
- CancelModSpeedNoControlAuras = 0x310059,
- CancelMountAura = 0x310152,
- CancelQueuedSpell = 0x31002b,
- CancelTempEnchantment = 0x32008c,
- CancelTrade = 0x310006,
- CanDuel = 0x36008c,
- CanRedeemTokenForBalance = 0x360130,
- CastSpell = 0x310173,
- ChallengeModeRequestLeaders = 0x2e0002,
- ChangeBagSlotFlag = 0x310210,
- ChangeBankBagSlotFlag = 0x310211,
- ChangeMonumentAppearance = 0x3101f1,
- ChangeRealmTicket = 0x360125,
- ChangeSubGroup = 0x360076,
- CharacterCheckUpgrade = 0x3600f2,
- CharacterRenameRequest = 0x3600ed,
- CharacterUpgradeManualUnrevokeRequest = 0x3600f0,
- CharacterUpgradeStart = 0x3600f1,
- CharCustomize = 0x3600b6,
- CharDelete = 0x3600c8,
- CharRaceOrFactionChange = 0x3600bc,
- ChatAddonMessage = 0x2d002a,
- ChatAddonMessageTargeted = 0x2d002b,
- ChatCanLocalWhisperTargetRequest = 0x2d0032,
- ChatChannelAnnouncements = 0x2d001f,
- ChatChannelBan = 0x2d001d,
- ChatChannelDeclineInvite = 0x2d0022,
- ChatChannelDisplayList = 0x2d0012,
- ChatChannelInvite = 0x2d001b,
- ChatChannelKick = 0x2d001c,
- ChatChannelList = 0x2d0011,
- ChatChannelModerate = 0x2d0016,
- ChatChannelModerator = 0x2d0017,
- ChatChannelOwner = 0x2d0015,
- ChatChannelPassword = 0x2d0013,
- ChatChannelSetOwner = 0x2d0014,
- ChatChannelSilenceAll = 0x2d0020,
- ChatChannelUnban = 0x2d001e,
- ChatChannelUnmoderator = 0x2d0018,
- ChatChannelUnsilenceAll = 0x2d0021,
- ChatDropCautionaryChatMessage = 0x2d000a,
- ChatJoinChannel = 0x2d0000,
- ChatLeaveChannel = 0x2d0001,
- ChatLobbyMatchmakerMessageInstanceChat = 0x2d0031,
- ChatLobbyMatchmakerMessageParty = 0x2d0030,
- ChatMessageAfk = 0x2d000f,
- ChatMessageChannel = 0x2d0007,
- ChatMessageDnd = 0x2d0010,
- ChatMessageEmote = 0x2d0024,
- ChatMessageGuild = 0x2d000d,
- ChatMessageInstanceChat = 0x2d0028,
- ChatMessageOfficer = 0x2d000e,
- ChatMessageParty = 0x2d0026,
- ChatMessageRaid = 0x2d0027,
- ChatMessageRaidWarning = 0x2d0029,
- ChatMessageSay = 0x2d0023,
- ChatMessageWhisper = 0x2d0008,
- ChatMessageYell = 0x2d0025,
- ChatRegisterAddonPrefixes = 0x2d0005,
- ChatReportFiltered = 0x2d0004,
- ChatReportIgnored = 0x2d0003,
- ChatSendCautionaryChannelMessage = 0x2d000b,
- ChatSendCautionaryChatMessage = 0x2d0009,
- ChatUnregisterAllAddonPrefixes = 0x2d0006,
- CheckCharacterNameAvailability = 0x36006f,
- CheckIsAdventureMapPoiValid = 0x31010e,
- ChoiceResponse = 0x31017b,
- ChromieTimeSelectExpansion = 0x310288,
- ClaimWeeklyReward = 0x310265,
- ClassTalentsDeleteConfig = 0x3102c2,
- ClassTalentsNotifyEmptyConfig = 0x3100c3,
- ClassTalentsNotifyValidationFailed = 0x3102c4,
- ClassTalentsRenameConfig = 0x3102c1,
- ClassTalentsRequestNewConfig = 0x3102c0,
- ClassTalentsSetStarterBuildActive = 0x3102c5,
- ClassTalentsSetUsesSharedActionBars = 0x3100c2,
- ClearNewAppearance = 0x2b0005,
- ClearRaidMarker = 0x310052,
- ClearTradeItem = 0x310008,
- ClientPortGraveyard = 0x3200c7,
- CloseInteraction = 0x320025,
- CloseQuestChoice = 0x31017c,
- CloseRuneforgeInteraction = 0x310290,
- CloseTraitSystemInteraction = 0x3102c6,
- ClubFinderApplicationResponse = 0x360147,
- ClubFinderGetApplicantsList = 0x360145,
- ClubFinderPost = 0x360142,
- ClubFinderRequestClubsData = 0x360149,
- ClubFinderRequestClubsList = 0x360143,
- ClubFinderRequestMembershipToClub = 0x360144,
- ClubFinderRequestPendingClubsList = 0x360148,
- ClubFinderRequestSubscribedClubPostingIds = 0x36014a,
- ClubFinderRespondToApplicant = 0x360146,
- ClubFinderWhisperApplicantRequest = 0x360165,
- ClubPresenceSubscribe = 0x360122,
- CollectionItemSetFavorite = 0x36005d,
- CommentatorEnable = 0x36001c,
- CommentatorEnterInstance = 0x360020,
- CommentatorExitInstance = 0x360021,
- CommentatorGetMapInfo = 0x36001d,
- CommentatorGetPlayerCooldowns = 0x36001f,
- CommentatorGetPlayerInfo = 0x36001e,
- CommentatorSpectate = 0x360163,
- CommentatorStartWargame = 0x36001b,
- CommerceTokenGetCount = 0x360110,
- CommerceTokenGetLog = 0x36011a,
- CommerceTokenGetMarketPrice = 0x360111,
- Complaint = 0x360096,
- CompleteCinematic = 0x3200e5,
- CompleteMovie = 0x320077,
- ConfirmArtifactRespec = 0x310057,
- ConfirmProfessionRespec = 0x3100c6,
- ConfirmRespecWipe = 0x3100c5,
- ConnectToFailed = 0x360000,
- ConsumableTokenBuy = 0x360115,
- ConsumableTokenBuyAtMarketPrice = 0x360116,
- ConsumableTokenCanVeteranBuy = 0x360114,
- ConsumableTokenRedeem = 0x360118,
- ConsumableTokenRedeemConfirmation = 0x360119,
- ContentTrackingStartTracking = 0x3102d6,
- ContentTrackingStopTracking = 0x3102d7,
- ContributionContribute = 0x3200fa,
- ContributionLastUpdateRequest = 0x3200fb,
- ConversationCinematicReady = 0x3200e7,
- ConversationLineStarted = 0x3200e6,
- ConvertItemToBindToAccount = 0x3102e6,
- ConvertRaid = 0x360078,
- CovenantRenownRequestCatchupState = 0x32010e,
- CraftingOrderCancel = 0x32011a,
- CraftingOrderClaim = 0x320117,
- CraftingOrderCreate = 0x320113,
- CraftingOrderFulfill = 0x320119,
- CraftingOrderGetNpcRewardInfo = 0x320116,
- CraftingOrderListCrafterOrders = 0x320115,
- CraftingOrderListMyOrders = 0x320114,
- CraftingOrderReject = 0x32011b,
- CraftingOrderRelease = 0x320118,
- CraftingOrderReportPlayer = 0x32011c,
- CraftingOrderUpdateIgnoreList = 0x32011d,
- CreateCharacter = 0x36006e,
- CreateShipment = 0x3101da,
- DbQueryBulk = 0x360010,
- DeclineGuildInvites = 0x3200b9,
- DeclinePetition = 0x3200d4,
- DeleteEquipmentSet = 0x3200a5,
- DelveTeleportOut = 0x320129,
- DelFriend = 0x3600fd,
- DelIgnore = 0x360101,
- DepositReagentBank = 0x31021a,
- DestroyItem = 0x310169,
- DfBootPlayerVote = 0x360044,
- DfConfirmExpandSearch = 0x360036,
- DfGetJoinStatus = 0x360042,
- DfGetSystemInfo = 0x360041,
- DfJoin = 0x360037,
- DfLeave = 0x360040,
- DfProposalResponse = 0x360035,
- DfReadyCheckResponse = 0x360048,
- DfSetRoles = 0x360043,
- DfTeleport = 0x360045,
- DiscardedTimeSyncAcks = 0x34005e,
- DismissCritter = 0x320093,
- DoCountdown = 0x360141,
- DoMasterLootRoll = 0x3100cb,
- DoReadyCheck = 0x36005e,
- DuelResponse = 0x32007c,
- EjectPassenger = 0x310103,
- Emote = 0x3200e1,
- EnableNagle = 0x370007,
- EnableTaxiNode = 0x32003c,
- EngineSurvey = 0x36010f,
- EnterEncryptedModeAck = 0x370003,
- EnumCharacters = 0x360014,
- EnumCharactersDeletedByClient = 0x360109,
- FarSight = 0x320082,
- GameEventDebugDisable = 0x31005e,
- GameEventDebugEnable = 0x31005d,
- GameObjReportUse = 0x320089,
- GameObjUse = 0x320088,
- GarrisonAddFollowerHealth = 0x3101d5,
- GarrisonAssignFollowerToBuilding = 0x3101bb,
- GarrisonCancelConstruction = 0x3101a8,
- GarrisonCheckUpgradeable = 0x31020c,
- GarrisonCompleteMission = 0x3101fe,
- GarrisonFullyHealAllFollowers = 0x3101d6,
- GarrisonGenerateRecruits = 0x3101be,
- GarrisonGetClassSpecCategoryInfo = 0x3101cd,
- GarrisonGetMapData = 0x3101d4,
- GarrisonGetMissionReward = 0x310230,
- GarrisonLearnTalent = 0x3101c9,
- GarrisonMissionBonusRoll = 0x310200,
- GarrisonPurchaseBuilding = 0x3101a4,
- GarrisonRecruitFollower = 0x3101c0,
- GarrisonRemoveFollower = 0x3101f5,
- GarrisonRemoveFollowerFromBuilding = 0x3101bc,
- GarrisonRenameFollower = 0x3101bd,
- GarrisonRequestBlueprintAndSpecializationData = 0x3101a3,
- GarrisonRequestShipmentInfo = 0x3101d8,
- GarrisonResearchTalent = 0x3101c1,
- GarrisonSetBuildingActive = 0x3101a5,
- GarrisonSetFollowerFavorite = 0x3101b9,
- GarrisonSetFollowerInactive = 0x3101b1,
- GarrisonSetRecruitmentPreferences = 0x3101bf,
- GarrisonSocketTalent = 0x31029d,
- GarrisonStartMission = 0x3101fd,
- GarrisonSwapBuildings = 0x3101a9,
- GenerateRandomCharacterName = 0x360013,
- GetAccountCharacterList = 0x3600e1,
- GetAccountNotifications = 0x36015d,
- GetGarrisonInfo = 0x31019e,
- GetItemPurchaseData = 0x3200cf,
- GetLandingPageShipments = 0x3101d9,
- GetMirrorImageData = 0x31016d,
- GetPvpOptionsEnabled = 0x36001a,
- GetRafAccountInfo = 0x36014b,
- GetRegionwideCharacterRestrictionAndMailData = 0x36018e,
- GetRemainingGameTime = 0x360117,
- GetTrophyList = 0x3101ee,
- GetUndeleteCharacterCooldownStatus = 0x36010b,
- GetVasAccountCharacterList = 0x36011c,
- GetVasTransferTargetRealmList = 0x36011d,
- GmTicketAcknowledgeSurvey = 0x3600ba,
- GmTicketGetCaseStatus = 0x3600b9,
- GmTicketGetSystemStatus = 0x3600b8,
- GossipRefreshOptions = 0x32010d,
- GossipSelectOption = 0x320026,
- GuildAddBattlenetFriend = 0x2f0020,
- GuildAddRank = 0x2f0005,
- GuildAssignMemberRank = 0x2f0002,
- GuildBankActivate = 0x320049,
- GuildBankBuyTab = 0x320057,
- GuildBankDepositMoney = 0x320059,
- GuildBankLogQuery = 0x2f0019,
- GuildBankQueryTab = 0x320056,
- GuildBankRemainingWithdrawMoneyQuery = 0x2f001a,
- GuildBankSetTabText = 0x2f001d,
- GuildBankTextQuery = 0x2f001e,
- GuildBankUpdateTab = 0x320058,
- GuildBankWithdrawMoney = 0x32005a,
- GuildChallengeUpdateRequest = 0x2f0017,
- GuildChangeNameRequest = 0x2f0018,
- GuildDeclineInvitation = 0x36002a,
- GuildDelete = 0x2f0009,
- GuildDeleteRank = 0x2f0006,
- GuildDemoteMember = 0x2f0001,
- GuildEventLogQuery = 0x2f001c,
- GuildGetAchievementMembers = 0x2f0012,
- GuildGetRanks = 0x2f000e,
- GuildGetRoster = 0x2f0014,
- GuildInviteByName = 0x360034,
- GuildLeave = 0x2f0003,
- GuildNewsUpdateSticky = 0x2f000f,
- GuildOfficerRemoveMember = 0x2f0004,
- GuildPermissionsQuery = 0x2f001b,
- GuildPromoteMember = 0x2f0000,
- GuildQueryMembersForRecipe = 0x2f000c,
- GuildQueryMemberRecipes = 0x2f000a,
- GuildQueryNews = 0x2f000d,
- GuildQueryRecipes = 0x2f000b,
- GuildReplaceGuildMaster = 0x2f001f,
- GuildRequestRename = 0x2f0023,
- GuildRequestRenameNameCheck = 0x2f0022,
- GuildRequestRenameRefund = 0x2f0024,
- GuildRequestRenameStatus = 0x2f0021,
- GuildSetAchievementTracking = 0x2f0010,
- GuildSetFocusedAchievement = 0x2f0011,
- GuildSetGuildMaster = 0x3600f4,
- GuildSetMemberNote = 0x2f0013,
- GuildSetRankPermissions = 0x2f0008,
- GuildShiftRank = 0x2f0007,
- GuildUpdateInfoText = 0x2f0016,
- GuildUpdateMotdText = 0x2f0015,
- HearthAndResurrect = 0x3200a1,
- HideQuestChoice = 0x31017d,
- HotfixRequest = 0x360011,
- IgnoreTrade = 0x310003,
- InitiateRolePoll = 0x360006,
- InitiateTrade = 0x310000,
- Inspect = 0x3200c9,
- InstanceLockResponse = 0x3200a6,
- IslandQueue = 0x310261,
- ItemPurchaseRefund = 0x3200d0,
- ItemTextQuery = 0x31020d,
- JoinPetBattleQueue = 0x31008d,
- JoinRatedBattleground = 0x310025,
- KeepAlive = 0x3600a9,
- KeyboundOverride = 0x3100e1,
- LatencyReport = 0x37000d,
- LearnPvpTalents = 0x3200f9,
- LearnTalents = 0x3200f7,
- LeaveGroup = 0x360073,
- LeavePetBattleQueue = 0x31008e,
- LfgListApplyToGroup = 0x36003b,
- LfgListCancelApplication = 0x36003c,
- LfgListDeclineApplicant = 0x36003d,
- LfgListGetStatus = 0x360039,
- LfgListInviteApplicant = 0x36003e,
- LfgListInviteResponse = 0x36003f,
- LfgListJoin = 0x310255,
- LfgListLeave = 0x360038,
- LfgListSearch = 0x36003a,
- LfgListUpdateRequest = 0x310256,
- ListInventory = 0x320033,
- LiveRegionAccountRestore = 0x3600e4,
- LiveRegionCharacterCopy = 0x3600e3,
- LiveRegionGetAccountCharacterList = 0x3600e2,
- LiveRegionKeyBindingsCopy = 0x3600e5,
- LoadingScreenNotify = 0x360024,
- LoadSelectedTrophy = 0x3101ef,
- LobbyMatchmakerAbandonQueue = 0x360170,
- LobbyMatchmakerAcceptPartyInvite = 0x360167,
- LobbyMatchmakerCreateCharacter = 0x360179,
- LobbyMatchmakerEnterQueue = 0x36016e,
- LobbyMatchmakerLeaveParty = 0x36016a,
- LobbyMatchmakerPartyInvite = 0x360166,
- LobbyMatchmakerPartyUninvite = 0x360169,
- LobbyMatchmakerQueuePropsalResponse = 0x36016f,
- LobbyMatchmakerRejectPartyInvite = 0x360168,
- LobbyMatchmakerSetPartyPlaylistEntry = 0x36016b,
- LobbyMatchmakerSetPlayerReady = 0x36016c,
- LogoutCancel = 0x320072,
- LogoutInstant = 0x320073,
- LogoutLobbyMatchmaker = 0x320121,
- LogoutRequest = 0x320071,
- LogDisconnect = 0x370005,
- LogStreamingError = 0x370009,
- LootItem = 0x3100c9,
- LootMoney = 0x3100c8,
- LootRelease = 0x3100cd,
- LootRoll = 0x3100ce,
- LootUnit = 0x3100c7,
- LowLevelRaid1 = 0x3600cc,
- LowLevelRaid2 = 0x3200ad,
- MailCreateTextItem = 0x3200db,
- MailDelete = 0x3100e3,
- MailGetList = 0x3200d6,
- MailMarkAsRead = 0x3200da,
- MailReturnToSender = 0x36007f,
- MailTakeItem = 0x3200d8,
- MailTakeMoney = 0x3200d7,
- MakeContitionalAppearancePermanent = 0x3100e4,
- MasterLootItem = 0x3100ca,
- MergeGuildBankItemWithGuildBankItem = 0x320054,
- MergeGuildBankItemWithItem = 0x320051,
- MergeItemWithGuildBankItem = 0x32004f,
- MinimapPing = 0x360075,
- MissileTrajectoryCollision = 0x310036,
- MountClearFanfare = 0x2b0003,
- MountSetFavorite = 0x36005c,
- MountSpecialAnim = 0x310153,
- MoveAddImpulseAck = 0x34006d,
- MoveApplyInertiaAck = 0x34006b,
- MoveApplyMovementForceAck = 0x340031,
- MoveChangeTransport = 0x34004c,
- MoveChangeVehicleSeats = 0x340051,
- MoveCollisionDisableAck = 0x340056,
- MoveCollisionEnableAck = 0x340057,
- MoveDismissVehicle = 0x340050,
- MoveDoubleJump = 0x340007,
- MoveEnableDoubleJumpAck = 0x34003a,
- MoveEnableFullSpeedTurningAck = 0x340083,
- MoveEnableSwimToFlyTransAck = 0x340040,
- MoveFallLand = 0x340017,
- MoveFallReset = 0x340035,
- MoveFeatherFallAck = 0x340038,
- MoveForceFlightBackSpeedChangeAck = 0x34004b,
- MoveForceFlightSpeedChangeAck = 0x34004a,
- MoveForcePitchRateChangeAck = 0x34004f,
- MoveForceRootAck = 0x34002a,
- MoveForceRunBackSpeedChangeAck = 0x340028,
- MoveForceRunSpeedChangeAck = 0x340027,
- MoveForceSwimBackSpeedChangeAck = 0x34003e,
- MoveForceSwimSpeedChangeAck = 0x340029,
- MoveForceTurnRateChangeAck = 0x34003f,
- MoveForceUnrootAck = 0x34002b,
- MoveForceWalkSpeedChangeAck = 0x34003d,
- MoveGravityDisableAck = 0x340052,
- MoveGravityEnableAck = 0x340053,
- MoveGuildBankItem = 0x32004e,
- MoveHeartbeat = 0x34002c,
- MoveHoverAck = 0x34002f,
- MoveInertiaDisableAck = 0x340054,
- MoveInertiaEnableAck = 0x340055,
- MoveInitActiveMoverComplete = 0x340063,
- MoveJump = 0x340006,
- MoveKnockBackAck = 0x34002e,
- MoveRemoveInertiaAck = 0x34006c,
- MoveRemoveMovementForces = 0x340033,
- MoveRemoveMovementForceAck = 0x340032,
- MoveSetAdvFly = 0x34006f,
- MoveSetAdvFlyingAddImpulseMaxSpeedAck = 0x340077,
- MoveSetAdvFlyingAirFrictionAck = 0x340072,
- MoveSetAdvFlyingBankingRateAck = 0x340078,
- MoveSetAdvFlyingDoubleJumpVelModAck = 0x340075,
- MoveSetAdvFlyingGlideStartMinHeightAck = 0x340076,
- MoveSetAdvFlyingLaunchSpeedCoefficientAck = 0x34007f,
- MoveSetAdvFlyingLiftCoefficientAck = 0x340074,
- MoveSetAdvFlyingMaxVelAck = 0x340073,
- MoveSetAdvFlyingOverMaxDecelerationAck = 0x34007d,
- MoveSetAdvFlyingPitchingRateDownAck = 0x340079,
- MoveSetAdvFlyingPitchingRateUpAck = 0x34007a,
- MoveSetAdvFlyingSurfaceFrictionAck = 0x34007c,
- MoveSetAdvFlyingTurnVelocityThresholdAck = 0x34007b,
- MoveSetCanAdvFlyAck = 0x34006e,
- MoveSetCanDriveAck = 0x340070,
- MoveSetCanFlyAck = 0x340043,
- MoveSetCanTurnWhileFallingAck = 0x340041,
- MoveSetCollisionHeightAck = 0x340058,
- MoveSetFacing = 0x340025,
- MoveSetFacingHeartbeat = 0x34007e,
- MoveSetFly = 0x340045,
- MoveSetIgnoreMovementForcesAck = 0x340042,
- MoveSetModMovementForceMagnitudeAck = 0x34005f,
- MoveSetPitch = 0x340026,
- MoveSetRunMode = 0x34000e,
- MoveSetTurnRateCheat = 0x340022,
- MoveSetVehicleRecIdAck = 0x340030,
- MoveSetWalkMode = 0x34000f,
- MoveSplineDone = 0x340034,
- MoveStartAscend = 0x340046,
- MoveStartBackward = 0x340001,
- MoveStartDescend = 0x34004d,
- MoveStartDriveForward = 0x340071,
- MoveStartForward = 0x340000,
- MoveStartPitchDown = 0x34000c,
- MoveStartPitchUp = 0x34000b,
- MoveStartStrafeLeft = 0x340003,
- MoveStartStrafeRight = 0x340004,
- MoveStartSwim = 0x340018,
- MoveStartTurnLeft = 0x340008,
- MoveStartTurnRight = 0x340009,
- MoveStop = 0x340002,
- MoveStopAscend = 0x340047,
- MoveStopPitch = 0x34000d,
- MoveStopStrafe = 0x340005,
- MoveStopSwim = 0x340019,
- MoveStopTurn = 0x34000a,
- MoveTeleportAck = 0x340016,
- MoveTimeSkipped = 0x340037,
- MoveUpdateFallSpeed = 0x340036,
- MoveWaterWalkAck = 0x340039,
- MythicPlusRequestMapStats = 0x2e0001,
- NeutralPlayerSelectFaction = 0x310083,
- NextCinematicCamera = 0x3200e4,
- ObjectUpdateFailed = 0x31002c,
- ObjectUpdateRescued = 0x31002d,
- OfferPetition = 0x310287,
- OpeningCinematic = 0x3200e3,
- OpenItem = 0x31020e,
- OpenMissionNpc = 0x3101cf,
- OpenShipmentNpc = 0x3101d7,
- OpenTradeskillNpc = 0x3101e2,
- OptOutOfLoot = 0x320090,
- OverrideScreenFlash = 0x3200ba,
- PartyInvite = 0x360030,
- PartyInviteResponse = 0x360032,
- PartyUninvite = 0x360071,
- PerformItemInteraction = 0x3100ec,
- PerksProgramItemsRefreshed = 0x3102af,
- PerksProgramRequestCartCheckout = 0x3102b2,
- PerksProgramRequestPendingRewards = 0x2b0012,
- PerksProgramRequestPurchase = 0x3102b1,
- PerksProgramRequestRefund = 0x3102b3,
- PerksProgramSetFrozenVendorItem = 0x3102b4,
- PerksProgramStatusRequest = 0x3102b0,
- PetitionBuy = 0x32005c,
- PetitionRenameGuild = 0x3600f5,
- PetitionShowList = 0x32005b,
- PetitionShowSignatures = 0x32005d,
- PetAbandon = 0x32001e,
- PetAbandonByNumber = 0x32001f,
- PetAction = 0x32001c,
- PetBattleFinalNotify = 0x310092,
- PetBattleInput = 0x36006b,
- PetBattleQueueProposeMatchResult = 0x3100e2,
- PetBattleQuitNotify = 0x310091,
- PetBattleReplaceFrontPet = 0x36006c,
- PetBattleRequestPvp = 0x31008b,
- PetBattleRequestUpdate = 0x31008c,
- PetBattleRequestWild = 0x310089,
- PetBattleScriptErrorNotify = 0x310093,
- PetBattleWildLocationFail = 0x31008a,
- PetCancelAura = 0x320020,
- PetCastSpell = 0x310172,
- PetRename = 0x3600ae,
- PetSetAction = 0x32001b,
- PetSpellAutocast = 0x320021,
- PetStopAttack = 0x32001d,
- Ping = 0x370004,
- PlayerLogin = 0x360016,
- PushQuestToParty = 0x320031,
- PvpLogData = 0x310028,
- QueryBattlePetName = 0x310146,
- QueryCorpseLocationFromClient = 0x36008a,
- QueryCorpseTransport = 0x36008b,
- QueryCountdownTimer = 0x310055,
- QueryCreature = 0x310140,
- QueryGameObject = 0x310141,
- QueryGarrisonPetName = 0x310147,
- QueryGuildInfo = 0x3600b4,
- QueryInspectAchievements = 0x32009a,
- QueryNextMailTime = 0x3200d9,
- QueryNpcText = 0x310142,
- QueryPageText = 0x310144,
- QueryPetition = 0x310148,
- QueryPetName = 0x310145,
- QueryPlayerNames = 0x37000e,
- QueryPlayerNamesForCommunity = 0x37000c,
- QueryPlayerNameByCommunityId = 0x37000b,
- QueryQuestCompletionNpcs = 0x310021,
- QueryQuestInfo = 0x310143,
- QueryQuestItemUsability = 0x310022,
- QueryRealmName = 0x3600b3,
- QueryScenarioPoi = 0x360080,
- QuerySelectedWowLabsArea = 0x3102eb,
- QueryTime = 0x320070,
- QueryTreasurePicker = 0x310233,
- QueryVoidStorage = 0x31004e,
- QueryWowLabsAreaInfo = 0x3102ec,
- QuestConfirmAccept = 0x320030,
- QuestGiverAcceptQuest = 0x32002a,
- QuestGiverChooseReward = 0x32002c,
- QuestGiverCloseQuest = 0x3200ea,
- QuestGiverCompleteQuest = 0x32002b,
- QuestGiverHello = 0x320028,
- QuestGiverQueryQuest = 0x320029,
- QuestGiverRequestReward = 0x32002d,
- QuestGiverStatusMultipleQuery = 0x32002f,
- QuestGiverStatusQuery = 0x32002e,
- QuestLogRemoveQuest = 0x3200ce,
- QuestPoiQuery = 0x3600db,
- QuestPushResult = 0x320032,
- QuestSessionBeginResponse = 0x310279,
- QuestSessionRequestStart = 0x310278,
- QuestSessionRequestStop = 0x360156,
- QueuedMessagesEnd = 0x370008,
- QuickJoinAutoAcceptRequests = 0x36012e,
- QuickJoinRequestInvite = 0x36012d,
- QuickJoinRequestInviteWithConfirmation = 0x36015b,
- QuickJoinRespondToInvite = 0x36012c,
- QuickJoinSignalToastDisplayed = 0x36012b,
- RafClaimActivityReward = 0x32009e,
- RafClaimNextReward = 0x36014c,
- RafGenerateRecruitmentLink = 0x36014e,
- RafUpdateRecruitmentInfo = 0x36014d,
- RandomRoll = 0x36007e,
- ReadyCheckResponse = 0x36005f,
- ReadItem = 0x31020f,
- ReclaimCorpse = 0x320075,
- RemoveNewItem = 0x310237,
- RemoveRafRecruit = 0x36014f,
- ReorderCharacters = 0x360015,
- RepairItem = 0x320086,
- ReplaceTrophy = 0x3101f0,
- RepopRequest = 0x3200c6,
- ReportPvpPlayerAfk = 0x32008e,
- ReportServerLag = 0x310271,
- ReportStuckInCombat = 0x310272,
- RequestAccountData = 0x3600c0,
- RequestAreaPoiUpdate = 0x310235,
- RequestBattlefieldStatus = 0x360008,
- RequestCemeteryList = 0x310023,
- RequestCharacterGuildFollowInfo = 0x3600b5,
- RequestCovenantCallings = 0x310263,
- RequestCrowdControlSpell = 0x3200ca,
- RequestCurrencyDataForAccountCharacters = 0x2b0019,
- RequestGarrisonTalentWorldQuestUnlocks = 0x31029c,
- RequestGuildPartyState = 0x310054,
- RequestGuildRewardsList = 0x310053,
- RequestLatestSplashScreen = 0x310273,
- RequestLfgListBlacklist = 0x31017e,
- RequestMythicPlusAffixes = 0x3100b7,
- RequestMythicPlusSeasonData = 0x3100b8,
- RequestPartyEligibilityForDelveTiers = 0x3102ea,
- RequestPartyJoinUpdates = 0x360023,
- RequestPartyMemberStats = 0x36007d,
- RequestPetInfo = 0x320022,
- RequestPlayedTime = 0x31014b,
- RequestPvpRewards = 0x310041,
- RequestRaidInfo = 0x3600f6,
- RequestRatedPvpInfo = 0x36000f,
- RequestRealmGuildMasterInfo = 0x360191,
- RequestScheduledAreaPoiUpdate = 0x310236,
- RequestScheduledPvpInfo = 0x310042,
- RequestStabledPets = 0x320023,
- RequestStoreFrontInfoUpdate = 0x2b001e,
- RequestVehicleExit = 0x3100fe,
- RequestVehicleNextSeat = 0x310100,
- RequestVehiclePrevSeat = 0x3100ff,
- RequestVehicleSwitchSeat = 0x310101,
- RequestWeeklyRewards = 0x310266,
- RequestWorldQuestUpdate = 0x310234,
- ResetChallengeMode = 0x3100b5,
- ResetChallengeModeCheat = 0x3100b6,
- ResetInstances = 0x360092,
- ResurrectResponse = 0x3600ad,
- RevertMonumentAppearance = 0x3101f2,
- RideVehicleInteract = 0x310102,
- RpeResetCharacter = 0x36017c,
- SaveAccountDataExport = 0x360176,
- SaveCufProfiles = 0x310037,
- SaveEquipmentSet = 0x3200a4,
- SaveGuildEmblem = 0x310183,
- SavePersonalEmblem = 0x310184,
- ScenePlaybackCanceled = 0x3100de,
- ScenePlaybackComplete = 0x3100dd,
- SceneTriggerEvent = 0x3100df,
- SeamlessTransferComplete = 0x3102d9,
- SelectWowLabsArea = 0x3102ed,
- SelfRes = 0x3200d1,
- SellAllJunkItems = 0x320035,
- SellItem = 0x320034,
- SendCharacterClubInvitation = 0x360124,
- SendContactList = 0x3600fb,
- SendMail = 0x360026,
- SendPingUnit = 0x3102db,
- SendPingWorldPoint = 0x3102dc,
- SendTextEmote = 0x320019,
- ServerTimeOffsetRequest = 0x3600c7,
- SetupWarbandGroups = 0x36018a,
- SetActionBarToggles = 0x3200d2,
- SetActionButton = 0x360060,
- SetActiveMover = 0x340059,
- SetAdvancedCombatLogging = 0x310191,
- SetAssistantLeader = 0x360079,
- SetBackpackAutosortDisabled = 0x310212,
- SetBackpackSellJunkDisabled = 0x310213,
- SetBankAutosortDisabled = 0x310214,
- SetContactNotes = 0x3600fe,
- SetCurrencyFlags = 0x310015,
- SetDifficultyId = 0x3100e0,
- SetDungeonDifficulty = 0x3600ac,
- SetEmpowerMinHoldStagePercent = 0x31013a,
- SetEveryoneIsAssistant = 0x360046,
- SetExcludedChatCensorSources = 0x36012f,
- SetFactionAtWar = 0x320078,
- SetFactionInactive = 0x32007a,
- SetFactionNotAtWar = 0x320079,
- SetGameEventDebugViewState = 0x310065,
- SetInsertItemsLeftToRight = 0x310216,
- SetLootMethod = 0x360072,
- SetLootSpecialization = 0x3200df,
- SetPartyAssignment = 0x36007b,
- SetPartyLeader = 0x360074,
- SetPetFavorite = 0x310012,
- SetPetSlot = 0x310011,
- SetPetSpecialization = 0x310013,
- SetPlayerDeclinedNames = 0x3600b2,
- SetPreferredCemetery = 0x310024,
- SetPvp = 0x310188,
- SetRaidDifficulty = 0x360107,
- SetRestrictPingsToAssistants = 0x360047,
- SetRole = 0x360005,
- SetSavedInstanceExtend = 0x3600b0,
- SetSelection = 0x3200c8,
- SetSheathed = 0x32001a,
- SetSortBagsRightToLeft = 0x310215,
- SetTaxiBenchmarkMode = 0x32008d,
- SetTitle = 0x310151,
- SetTradeCurrency = 0x31000a,
- SetTradeGold = 0x310009,
- SetTradeItem = 0x310007,
- SetUsingPartyGarrison = 0x3101d1,
- SetWarMode = 0x310189,
- SetWatchedFaction = 0x32007b,
- ShowTradeSkill = 0x3600ee,
- SignPetition = 0x3200d3,
- SilencePartyTalker = 0x36007c,
- SocialContractRequest = 0x360171,
- SocketGems = 0x320085,
- SortAccountBankBags = 0x3102df,
- SortBags = 0x310217,
- SortBankBags = 0x310218,
- SortReagentBankBags = 0x310219,
- SpawnTrackingUpdate = 0x310166,
- SpectateChange = 0x3102d2,
- SpellClick = 0x320027,
- SpellEmpowerRelease = 0x310138,
- SpellEmpowerRestart = 0x310139,
- SpiritHealerActivate = 0x320042,
- SplitGuildBankItem = 0x320055,
- SplitGuildBankItemToInventory = 0x320052,
- SplitItem = 0x33000a,
- SplitItemToGuildBank = 0x320050,
- StandStateChange = 0x310035,
- StartChallengeMode = 0x3200eb,
- StartSpectatorWarGame = 0x36000b,
- StartWarGame = 0x36000a,
- StoreGuildBankItem = 0x32004b,
- SubmitUserFeedback = 0x3600bf,
- SubscriptionInterstitialResponse = 0x310291,
- SummonResponse = 0x360094,
- SupportTicketSubmitComplaint = 0x360070,
- SurrenderArena = 0x310020,
- SuspendCommsAck = 0x370000,
- SuspendTokenResponse = 0x370006,
- SwapGuildBankItemWithGuildBankItem = 0x32004d,
- SwapInvItem = 0x330009,
- SwapItem = 0x330008,
- SwapItemWithGuildBankItem = 0x32004c,
- SwapSubGroups = 0x360077,
- SwapVoidItem = 0x310050,
- TabardVendorActivate = 0x310185,
- TalkToGossip = 0x320024,
- TaxiNodeStatusQuery = 0x32003b,
- TaxiQueryAvailableNodes = 0x32003d,
- TaxiRequestEarlyLanding = 0x32003f,
- TimeAdjustmentResponse = 0x34005d,
- TimeSyncResponse = 0x34005a,
- TimeSyncResponseDropped = 0x34005c,
- TimeSyncResponseFailed = 0x34005b,
- ToggleDifficulty = 0x360081,
- TogglePvp = 0x310187,
- TotemDestroyed = 0x320092,
- ToyClearFanfare = 0x2b0004,
- TradeSkillSetFavorite = 0x310232,
- TrainerBuySpell = 0x320041,
- TrainerList = 0x320040,
- TraitsCommitConfig = 0x3102ba,
- TraitsTalentTestUnlearnSpells = 0x3102b8,
- TransferCurrencyFromAccountCharacter = 0x3102e8,
- TransmogrifyItems = 0x310043,
- TurnInPetition = 0x3200d5,
- Tutorial = 0x360108,
- UiMapQuestLinesRequest = 0x310262,
- UnacceptTrade = 0x310005,
- UndeleteCharacter = 0x36010a,
- UnlearnSkill = 0x32007f,
- UnlearnSpecialization = 0x310051,
- UnlockVoidStorage = 0x31004d,
- UpdateAadcStatus = 0x360161,
- UpdateAccountBankTabSettings = 0x320128,
- UpdateAccountData = 0x3600c1,
- UpdateAreaTriggerVisual = 0x310175,
- UpdateClientSettings = 0x36008e,
- UpdateCraftingNpcRecipes = 0x3101e3,
- UpdateMissileTrajectory = 0x340060,
- UpdateRaidTarget = 0x36007a,
- UpdateSpellVisual = 0x310174,
- UpdateVasPurchaseStates = 0x36011f,
- UpgradeGarrison = 0x310199,
- UpgradeRuneforgeLegendary = 0x31028f,
- UsedFollow = 0x310032,
- UseCritterItem = 0x310108,
- UseEquipmentSet = 0x330001,
- UseItem = 0x31016e,
- UseToy = 0x310171,
- VasCheckTransferOk = 0x360134,
- VasGetQueueMinutes = 0x360133,
- VasGetServiceStatus = 0x360132,
- ViolenceLevel = 0x310030,
- VoiceChannelSttTokenRequest = 0x360138,
- VoiceChatJoinChannel = 0x360139,
- VoiceChatLogin = 0x360137,
- VoidStorageTransfer = 0x31004f,
- Warden3Data = 0x360018,
- Who = 0x3600ab,
- WhoIs = 0x3600aa,
- WorldLootObjectClick = 0x3102d5,
- WorldPortResponse = 0x360025,
- WrapItem = 0x330000,
+ AbandonNpeResponse = 0x2f0299,
+ AcceptGuildInvite = 0x340029,
+ AcceptReturningPlayerPrompt = 0x2f025a,
+ AcceptSocialContract = 0x340174,
+ AcceptTrade = 0x2f0004,
+ AcceptWargameInvite = 0x34000c,
+ AccountBankDepositMoney = 0x2f02dc,
+ AccountBankWithdrawMoney = 0x2f02dd,
+ AccountNotificationAcknowledged = 0x340160,
+ AccountStoreBeginPurchaseOrRefund = 0x3400c0,
+ ActivateSoulbind = 0x2f0288,
+ ActivateTaxi = 0x30003e,
+ AddonList = 0x340004,
+ AddAccountCosmetic = 0x2f0171,
+ AddBattlenetFriend = 0x340086,
+ AddFriend = 0x3400fe,
+ AddIgnore = 0x340102,
+ AddToy = 0x2f0170,
+ AdventureJournalOpenQuest = 0x2f00b3,
+ AdventureJournalUpdateSuggestions = 0x2f028b,
+ AdventureMapStartQuest = 0x2f022b,
+ AlterAppearance = 0x30008d,
+ AreaSpiritHealerQuery = 0x300043,
+ AreaSpiritHealerQueue = 0x300044,
+ AreaTrigger = 0x2f0086,
+ ArtifactAddPower = 0x2f0056,
+ ArtifactSetAppearance = 0x2f0058,
+ AssignEquipmentSetSpec = 0x2f00bf,
+ AttackStop = 0x2f011d,
+ AttackSwing = 0x2f011c,
+ AuctionableTokenSell = 0x340114,
+ AuctionableTokenSellAtMarketPrice = 0x340115,
+ AuctionBrowseQuery = 0x300061,
+ AuctionCancelCommoditiesPurchase = 0x300069,
+ AuctionConfirmCommoditiesPurchase = 0x300068,
+ AuctionGetCommodityQuote = 0x300067,
+ AuctionHelloRequest = 0x30005c,
+ AuctionListBiddedItems = 0x300065,
+ AuctionListBucketsByBucketKeys = 0x300066,
+ AuctionListItemsByBucketKey = 0x300062,
+ AuctionListItemsByItemId = 0x300063,
+ AuctionListOwnedItems = 0x300064,
+ AuctionPlaceBid = 0x300060,
+ AuctionRemoveItem = 0x30005e,
+ AuctionReplicateItems = 0x30005f,
+ AuctionSellCommodity = 0x30006a,
+ AuctionSellItem = 0x30005d,
+ AuctionSetFavoriteItem = 0x340161,
+ AuthContinuedSession = 0x350002,
+ AuthSession = 0x350001,
+ AutobankItem = 0x310003,
+ AutostoreBankItem = 0x310002,
+ AutoDepositAccountBank = 0x2f02e6,
+ AutoDepositCharacterBank = 0x2f02ee,
+ AutoEquipItem = 0x310004,
+ AutoEquipItemSlot = 0x310009,
+ AutoGuildBankItem = 0x300048,
+ AutoStoreBagItem = 0x310005,
+ AutoStoreGuildBankItem = 0x300051,
+ AzeriteEmpoweredItemSelectPower = 0x2f0256,
+ AzeriteEmpoweredItemViewed = 0x2f0237,
+ AzeriteEssenceActivateEssence = 0x2f0258,
+ AzeriteEssenceUnlockMilestone = 0x2f0257,
+ BankerActivate = 0x300046,
+ BattlefieldLeave = 0x2f001f,
+ BattlefieldList = 0x2f002a,
+ BattlefieldPort = 0x3000c3,
+ BattlemasterHello = 0x2f018f,
+ BattlemasterJoin = 0x3000ba,
+ BattlemasterJoinArena = 0x3000bb,
+ BattlemasterJoinBrawl = 0x3000c1,
+ BattlemasterJoinRatedBgBlitz = 0x3000bd,
+ BattlemasterJoinRatedSoloShuffle = 0x3000bc,
+ BattlemasterJoinSkirmish = 0x3000be,
+ BattlenetChallengeResponse = 0x340101,
+ BattlenetRequest = 0x340122,
+ BattlePayAckFailedResponse = 0x3400fb,
+ BattlePayCancelOpenCheckout = 0x34013e,
+ BattlePayConfirmPurchaseResponse = 0x3400fa,
+ BattlePayDistributionAssignToTarget = 0x3400f1,
+ BattlePayDistributionAssignVas = 0x340164,
+ BattlePayGetProductList = 0x3400e8,
+ BattlePayGetPurchaseList = 0x3400e9,
+ BattlePayOpenCheckout = 0x340137,
+ BattlePayRequestPriceInfo = 0x340133,
+ BattlePayStartPurchase = 0x3400f9,
+ BattlePayStartVasPurchase = 0x340120,
+ BattlePetClearFanfare = 0x290002,
+ BattlePetDeletePet = 0x34004f,
+ BattlePetDeletePetCheat = 0x340050,
+ BattlePetModifyName = 0x340052,
+ BattlePetRequestJournal = 0x34004e,
+ BattlePetRequestJournalLock = 0x34004d,
+ BattlePetSetBattleSlot = 0x340057,
+ BattlePetSetFlags = 0x34005a,
+ BattlePetSummon = 0x340053,
+ BattlePetUpdateDisplayNotify = 0x2f0090,
+ BattlePetUpdateNotify = 0x2f008f,
+ BeginTrade = 0x2f0001,
+ BinderActivate = 0x300045,
+ BlackMarketBidOnItem = 0x3000cb,
+ BlackMarketOpen = 0x3000c9,
+ BlackMarketRequestItems = 0x3000ca,
+ BonusRoll = 0x2f0259,
+ BugReport = 0x3400b1,
+ BusyTrade = 0x2f0002,
+ BuyAccountBankTab = 0x300123,
+ BuyBackItem = 0x300037,
+ BuyItem = 0x300036,
+ CageBattlePet = 0x2f00a3,
+ CalendarAddEvent = 0x3400a9,
+ CalendarCommunityInvite = 0x34009d,
+ CalendarComplain = 0x3400a5,
+ CalendarCopyEvent = 0x3400a4,
+ CalendarEventSignUp = 0x3400a7,
+ CalendarGet = 0x34009b,
+ CalendarGetEvent = 0x34009c,
+ CalendarGetNumPending = 0x3400a6,
+ CalendarInvite = 0x34009e,
+ CalendarModeratorStatus = 0x3400a2,
+ CalendarRemoveEvent = 0x3400a3,
+ CalendarRemoveInvite = 0x34009f,
+ CalendarRsvp = 0x3400a0,
+ CalendarStatus = 0x3400a1,
+ CalendarUpdateEvent = 0x3400aa,
+ CancelAura = 0x2f005a,
+ CancelAutoRepeatSpell = 0x30007f,
+ CancelCast = 0x2f0177,
+ CancelChannelling = 0x2f0138,
+ CancelGrowthAura = 0x2f0140,
+ CancelMasterLootRoll = 0x2f00cc,
+ CancelModSpeedNoControlAuras = 0x2f0059,
+ CancelMountAura = 0x2f0153,
+ CancelQueuedSpell = 0x2f002b,
+ CancelTempEnchantment = 0x30008a,
+ CancelTrade = 0x2f0006,
+ CanDuel = 0x34008e,
+ CanRedeemTokenForBalance = 0x340132,
+ CastSpell = 0x2f0174,
+ ChallengeModeRequestLeaders = 0x2c0002,
+ ChangeBagSlotFlag = 0x2f0211,
+ ChangeBankBagSlotFlag = 0x2f0212,
+ ChangeMonumentAppearance = 0x2f01f2,
+ ChangeRealmTicket = 0x340127,
+ ChangeSubGroup = 0x340078,
+ CharacterCheckUpgrade = 0x3400f4,
+ CharacterRenameRequest = 0x3400ef,
+ CharacterUpgradeManualUnrevokeRequest = 0x3400f2,
+ CharacterUpgradeStart = 0x3400f3,
+ CharCustomize = 0x3400b8,
+ CharDelete = 0x3400ca,
+ CharRaceOrFactionChange = 0x3400be,
+ ChatAddonMessage = 0x2b002a,
+ ChatAddonMessageTargeted = 0x2b002b,
+ ChatCanLocalWhisperTargetRequest = 0x2b0032,
+ ChatChannelAnnouncements = 0x2b001f,
+ ChatChannelBan = 0x2b001d,
+ ChatChannelDeclineInvite = 0x2b0022,
+ ChatChannelDisplayList = 0x2b0012,
+ ChatChannelInvite = 0x2b001b,
+ ChatChannelKick = 0x2b001c,
+ ChatChannelList = 0x2b0011,
+ ChatChannelModerate = 0x2b0016,
+ ChatChannelModerator = 0x2b0017,
+ ChatChannelOwner = 0x2b0015,
+ ChatChannelPassword = 0x2b0013,
+ ChatChannelSetOwner = 0x2b0014,
+ ChatChannelSilenceAll = 0x2b0020,
+ ChatChannelUnban = 0x2b001e,
+ ChatChannelUnmoderator = 0x2b0018,
+ ChatChannelUnsilenceAll = 0x2b0021,
+ ChatDropCautionaryChatMessage = 0x2b000a,
+ ChatJoinChannel = 0x2b0000,
+ ChatLeaveChannel = 0x2b0001,
+ ChatLobbyMatchmakerMessageInstanceChat = 0x2b0031,
+ ChatLobbyMatchmakerMessageParty = 0x2b0030,
+ ChatMessageAfk = 0x2b000f,
+ ChatMessageChannel = 0x2b0007,
+ ChatMessageDnd = 0x2b0010,
+ ChatMessageEmote = 0x2b0024,
+ ChatMessageGuild = 0x2b000d,
+ ChatMessageInstanceChat = 0x2b0028,
+ ChatMessageOfficer = 0x2b000e,
+ ChatMessageParty = 0x2b0026,
+ ChatMessageRaid = 0x2b0027,
+ ChatMessageRaidWarning = 0x2b0029,
+ ChatMessageSay = 0x2b0023,
+ ChatMessageWhisper = 0x2b0008,
+ ChatMessageYell = 0x2b0025,
+ ChatRegisterAddonPrefixes = 0x2b0005,
+ ChatReportFiltered = 0x2b0004,
+ ChatReportIgnored = 0x2b0003,
+ ChatSendCautionaryChannelMessage = 0x2b000b,
+ ChatSendCautionaryChatMessage = 0x2b0009,
+ ChatUnregisterAllAddonPrefixes = 0x2b0006,
+ CheckCharacterNameAvailability = 0x340071,
+ CheckIsAdventureMapPoiValid = 0x2f010e,
+ ChoiceResponse = 0x2f017c,
+ ChromieTimeSelectExpansion = 0x2f0287,
+ ClaimWeeklyReward = 0x2f0264,
+ ClassTalentsDeleteConfig = 0x2f02c1,
+ ClassTalentsNotifyEmptyConfig = 0x2f00c3,
+ ClassTalentsNotifyValidationFailed = 0x2f02c3,
+ ClassTalentsRenameConfig = 0x2f02c0,
+ ClassTalentsRequestNewConfig = 0x2f02bf,
+ ClassTalentsSetStarterBuildActive = 0x2f02c4,
+ ClassTalentsSetUsesSharedActionBars = 0x2f00c2,
+ ClearNewAppearance = 0x290005,
+ ClearRaidMarker = 0x2f0052,
+ ClearTradeItem = 0x2f0008,
+ ClientPortGraveyard = 0x3000c5,
+ CloseInteraction = 0x300025,
+ CloseQuestChoice = 0x2f017d,
+ CloseRuneforgeInteraction = 0x2f028f,
+ CloseTraitSystemInteraction = 0x2f02c5,
+ ClubFinderApplicationResponse = 0x340149,
+ ClubFinderGetApplicantsList = 0x340147,
+ ClubFinderPost = 0x340144,
+ ClubFinderRequestClubsData = 0x34014b,
+ ClubFinderRequestClubsList = 0x340145,
+ ClubFinderRequestMembershipToClub = 0x340146,
+ ClubFinderRequestPendingClubsList = 0x34014a,
+ ClubFinderRequestSubscribedClubPostingIds = 0x34014c,
+ ClubFinderRespondToApplicant = 0x340148,
+ ClubFinderWhisperApplicantRequest = 0x340167,
+ ClubPresenceSubscribe = 0x340124,
+ CollectionItemSetFavorite = 0x34005d,
+ CommentatorEnable = 0x34001c,
+ CommentatorEnterInstance = 0x340020,
+ CommentatorExitInstance = 0x340021,
+ CommentatorGetMapInfo = 0x34001d,
+ CommentatorGetPlayerCooldowns = 0x34001f,
+ CommentatorGetPlayerInfo = 0x34001e,
+ CommentatorSpectate = 0x340165,
+ CommentatorStartWargame = 0x34001b,
+ CommerceTokenGetCount = 0x340112,
+ CommerceTokenGetLog = 0x34011c,
+ CommerceTokenGetMarketPrice = 0x340113,
+ Complaint = 0x340098,
+ CompleteCinematic = 0x3000e3,
+ CompleteMovie = 0x300075,
+ ConfirmArtifactRespec = 0x2f0057,
+ ConfirmProfessionRespec = 0x2f00c6,
+ ConfirmRespecWipe = 0x2f00c5,
+ ConnectToFailed = 0x340000,
+ ConsumableTokenBuy = 0x340117,
+ ConsumableTokenBuyAtMarketPrice = 0x340118,
+ ConsumableTokenCanVeteranBuy = 0x340116,
+ ConsumableTokenRedeem = 0x34011a,
+ ConsumableTokenRedeemConfirmation = 0x34011b,
+ ContentTrackingStartTracking = 0x2f02d5,
+ ContentTrackingStopTracking = 0x2f02d6,
+ ContributionContribute = 0x3000fb,
+ ContributionLastUpdateRequest = 0x3000fc,
+ ConversationCinematicReady = 0x3000e5,
+ ConversationLineStarted = 0x3000e4,
+ ConvertItemToBindToAccount = 0x2f02e5,
+ ConvertRaid = 0x34007a,
+ CovenantRenownRequestCatchupState = 0x30010f,
+ CraftingOrderCancel = 0x30011b,
+ CraftingOrderClaim = 0x300118,
+ CraftingOrderCreate = 0x300114,
+ CraftingOrderFulfill = 0x30011a,
+ CraftingOrderGetNpcRewardInfo = 0x300117,
+ CraftingOrderListCrafterOrders = 0x300116,
+ CraftingOrderListMyOrders = 0x300115,
+ CraftingOrderReject = 0x30011c,
+ CraftingOrderRelease = 0x300119,
+ CraftingOrderReportPlayer = 0x30011d,
+ CraftingOrderUpdateIgnoreList = 0x30011e,
+ CreateCharacter = 0x340070,
+ CreateShipment = 0x2f01db,
+ DbQueryBulk = 0x340010,
+ DeclineGuildInvites = 0x3000b7,
+ DeclinePetition = 0x3000d2,
+ DeleteEquipmentSet = 0x3000a3,
+ DelveTeleportOut = 0x30012b,
+ DelFriend = 0x3400ff,
+ DelIgnore = 0x340103,
+ DestroyItem = 0x2f016a,
+ DfBootPlayerVote = 0x340044,
+ DfConfirmExpandSearch = 0x340036,
+ DfGetJoinStatus = 0x340042,
+ DfGetSystemInfo = 0x340041,
+ DfJoin = 0x340037,
+ DfLeave = 0x340040,
+ DfProposalResponse = 0x340035,
+ DfReadyCheckResponse = 0x340048,
+ DfSetRoles = 0x340043,
+ DfTeleport = 0x340045,
+ DiscardedTimeSyncAcks = 0x32005e,
+ DismissCritter = 0x300091,
+ DoCountdown = 0x340143,
+ DoMasterLootRoll = 0x2f00cb,
+ DoReadyCheck = 0x34005e,
+ DuelResponse = 0x30007a,
+ EjectPassenger = 0x2f0103,
+ Emote = 0x3000df,
+ EnableNagle = 0x350007,
+ EnableTaxiNode = 0x30003c,
+ EngineSurvey = 0x340111,
+ EnterEncryptedModeAck = 0x350003,
+ EnumCharacters = 0x340014,
+ EnumCharactersDeletedByClient = 0x34010b,
+ FarSight = 0x300080,
+ GameEventDebugDisable = 0x2f005e,
+ GameEventDebugEnable = 0x2f005d,
+ GameObjReportUse = 0x300087,
+ GameObjUse = 0x300086,
+ GarrisonAddFollowerHealth = 0x2f01d6,
+ GarrisonAssignFollowerToBuilding = 0x2f01bc,
+ GarrisonCancelConstruction = 0x2f01a9,
+ GarrisonCheckUpgradeable = 0x2f020d,
+ GarrisonCompleteMission = 0x2f01ff,
+ GarrisonFullyHealAllFollowers = 0x2f01d7,
+ GarrisonGenerateRecruits = 0x2f01bf,
+ GarrisonGetClassSpecCategoryInfo = 0x2f01ce,
+ GarrisonGetMapData = 0x2f01d5,
+ GarrisonGetMissionReward = 0x2f022f,
+ GarrisonLearnTalent = 0x2f01ca,
+ GarrisonMissionBonusRoll = 0x2f0201,
+ GarrisonPurchaseBuilding = 0x2f01a5,
+ GarrisonRecruitFollower = 0x2f01c1,
+ GarrisonRemoveFollower = 0x2f01f6,
+ GarrisonRemoveFollowerFromBuilding = 0x2f01bd,
+ GarrisonRenameFollower = 0x2f01be,
+ GarrisonRequestBlueprintAndSpecializationData = 0x2f01a4,
+ GarrisonRequestShipmentInfo = 0x2f01d9,
+ GarrisonResearchTalent = 0x2f01c2,
+ GarrisonSetBuildingActive = 0x2f01a6,
+ GarrisonSetFollowerFavorite = 0x2f01ba,
+ GarrisonSetFollowerInactive = 0x2f01b2,
+ GarrisonSetRecruitmentPreferences = 0x2f01c0,
+ GarrisonSocketTalent = 0x2f029c,
+ GarrisonStartMission = 0x2f01fe,
+ GarrisonSwapBuildings = 0x2f01aa,
+ GenerateRandomCharacterName = 0x340013,
+ GetAccountCharacterList = 0x3400e3,
+ GetAccountNotifications = 0x34015f,
+ GetGarrisonInfo = 0x2f019f,
+ GetItemPurchaseData = 0x3000cd,
+ GetLandingPageShipments = 0x2f01da,
+ GetMirrorImageData = 0x2f016e,
+ GetPvpOptionsEnabled = 0x34001a,
+ GetRafAccountInfo = 0x34014d,
+ GetRegionwideCharacterRestrictionAndMailData = 0x340190,
+ GetRemainingGameTime = 0x340119,
+ GetTrophyList = 0x2f01ef,
+ GetUndeleteCharacterCooldownStatus = 0x34010d,
+ GetVasAccountCharacterList = 0x34011e,
+ GetVasTransferTargetRealmList = 0x34011f,
+ GmTicketAcknowledgeSurvey = 0x3400bc,
+ GmTicketGetCaseStatus = 0x3400bb,
+ GmTicketGetSystemStatus = 0x3400ba,
+ GossipRefreshOptions = 0x30010e,
+ GossipSelectOption = 0x300026,
+ GuildAddBattlenetFriend = 0x2d0020,
+ GuildAddRank = 0x2d0005,
+ GuildAssignMemberRank = 0x2d0002,
+ GuildBankActivate = 0x300047,
+ GuildBankBuyTab = 0x300055,
+ GuildBankDepositMoney = 0x300057,
+ GuildBankLogQuery = 0x2d0019,
+ GuildBankQueryTab = 0x300054,
+ GuildBankRemainingWithdrawMoneyQuery = 0x2d001a,
+ GuildBankSetTabText = 0x2d001d,
+ GuildBankTextQuery = 0x2d001e,
+ GuildBankUpdateTab = 0x300056,
+ GuildBankWithdrawMoney = 0x300058,
+ GuildChallengeUpdateRequest = 0x2d0017,
+ GuildChangeNameRequest = 0x2d0018,
+ GuildDeclineInvitation = 0x34002a,
+ GuildDelete = 0x2d0009,
+ GuildDeleteRank = 0x2d0006,
+ GuildDemoteMember = 0x2d0001,
+ GuildEventLogQuery = 0x2d001c,
+ GuildGetAchievementMembers = 0x2d0012,
+ GuildGetRanks = 0x2d000e,
+ GuildGetRoster = 0x2d0014,
+ GuildInviteByName = 0x340034,
+ GuildLeave = 0x2d0003,
+ GuildNewsUpdateSticky = 0x2d000f,
+ GuildOfficerRemoveMember = 0x2d0004,
+ GuildPermissionsQuery = 0x2d001b,
+ GuildPromoteMember = 0x2d0000,
+ GuildQueryMembersForRecipe = 0x2d000c,
+ GuildQueryMemberRecipes = 0x2d000a,
+ GuildQueryNews = 0x2d000d,
+ GuildQueryRecipes = 0x2d000b,
+ GuildReplaceGuildMaster = 0x2d001f,
+ GuildRequestRename = 0x2d0023,
+ GuildRequestRenameNameCheck = 0x2d0022,
+ GuildRequestRenameRefund = 0x2d0024,
+ GuildRequestRenameStatus = 0x2d0021,
+ GuildSetAchievementTracking = 0x2d0010,
+ GuildSetFocusedAchievement = 0x2d0011,
+ GuildSetGuildMaster = 0x3400f6,
+ GuildSetMemberNote = 0x2d0013,
+ GuildSetRankPermissions = 0x2d0008,
+ GuildShiftRank = 0x2d0007,
+ GuildUpdateInfoText = 0x2d0016,
+ GuildUpdateMotdText = 0x2d0015,
+ HearthAndResurrect = 0x30009f,
+ HideQuestChoice = 0x2f017e,
+ HotfixRequest = 0x340011,
+ IgnoreTrade = 0x2f0003,
+ InitiateRolePoll = 0x340006,
+ InitiateTrade = 0x2f0000,
+ Inspect = 0x3000c7,
+ InstanceAbandonVoteResponse = 0x340061,
+ InstanceLockResponse = 0x3000a4,
+ IslandQueue = 0x2f0260,
+ ItemPurchaseRefund = 0x3000ce,
+ ItemTextQuery = 0x2f020e,
+ JoinPetBattleQueue = 0x2f008d,
+ JoinRatedBattleground = 0x2f0025,
+ KeepAlive = 0x3400ab,
+ KeyboundOverride = 0x2f00e1,
+ LatencyReport = 0x35000d,
+ LearnPvpTalents = 0x3000fa,
+ LearnTalents = 0x3000f8,
+ LeaveGroup = 0x340075,
+ LeavePetBattleQueue = 0x2f008e,
+ LfgListApplyToGroup = 0x34003b,
+ LfgListCancelApplication = 0x34003c,
+ LfgListDeclineApplicant = 0x34003d,
+ LfgListGetStatus = 0x340039,
+ LfgListInviteApplicant = 0x34003e,
+ LfgListInviteResponse = 0x34003f,
+ LfgListJoin = 0x2f0254,
+ LfgListLeave = 0x340038,
+ LfgListSearch = 0x34003a,
+ LfgListUpdateRequest = 0x2f0255,
+ ListInventory = 0x300033,
+ LiveRegionAccountRestore = 0x3400e6,
+ LiveRegionCharacterCopy = 0x3400e5,
+ LiveRegionGetAccountCharacterList = 0x3400e4,
+ LiveRegionKeyBindingsCopy = 0x3400e7,
+ LoadingScreenNotify = 0x340024,
+ LoadSelectedTrophy = 0x2f01f0,
+ LobbyMatchmakerAbandonQueue = 0x340172,
+ LobbyMatchmakerAcceptPartyInvite = 0x340169,
+ LobbyMatchmakerCreateCharacter = 0x34017b,
+ LobbyMatchmakerEnterQueue = 0x340170,
+ LobbyMatchmakerLeaveParty = 0x34016c,
+ LobbyMatchmakerPartyInvite = 0x340168,
+ LobbyMatchmakerPartyUninvite = 0x34016b,
+ LobbyMatchmakerQueuePropsalResponse = 0x340171,
+ LobbyMatchmakerRejectPartyInvite = 0x34016a,
+ LobbyMatchmakerSetPartyPlaylistEntry = 0x34016d,
+ LobbyMatchmakerSetPlayerReady = 0x34016e,
+ LogoutCancel = 0x300070,
+ LogoutInstant = 0x300071,
+ LogoutLobbyMatchmaker = 0x300122,
+ LogoutRequest = 0x30006f,
+ LogDisconnect = 0x350005,
+ LogStreamingError = 0x350009,
+ LootItem = 0x2f00c9,
+ LootMoney = 0x2f00c8,
+ LootRelease = 0x2f00cd,
+ LootRoll = 0x2f00ce,
+ LootUnit = 0x2f00c7,
+ LowLevelRaid1 = 0x3400ce,
+ LowLevelRaid2 = 0x3000ab,
+ MailCreateTextItem = 0x3000d9,
+ MailDelete = 0x2f00e3,
+ MailGetList = 0x3000d4,
+ MailMarkAsRead = 0x3000d8,
+ MailReturnToSender = 0x340081,
+ MailTakeItem = 0x3000d6,
+ MailTakeMoney = 0x3000d5,
+ MakeContitionalAppearancePermanent = 0x2f00e4,
+ MasterLootItem = 0x2f00ca,
+ MergeGuildBankItemWithGuildBankItem = 0x300052,
+ MergeGuildBankItemWithItem = 0x30004f,
+ MergeItemWithGuildBankItem = 0x30004d,
+ MinimapPing = 0x340077,
+ MissileTrajectoryCollision = 0x2f0036,
+ MountClearFanfare = 0x290003,
+ MountSetFavorite = 0x34005c,
+ MountSpecialAnim = 0x2f0154,
+ MoveAddImpulseAck = 0x32006d,
+ MoveApplyInertiaAck = 0x32006b,
+ MoveApplyMovementForceAck = 0x320031,
+ MoveChangeTransport = 0x32004c,
+ MoveChangeVehicleSeats = 0x320051,
+ MoveCollisionDisableAck = 0x320056,
+ MoveCollisionEnableAck = 0x320057,
+ MoveDismissVehicle = 0x320050,
+ MoveDoubleJump = 0x320007,
+ MoveEnableDoubleJumpAck = 0x32003a,
+ MoveEnableFullSpeedTurningAck = 0x320083,
+ MoveEnableSwimToFlyTransAck = 0x320040,
+ MoveFallLand = 0x320017,
+ MoveFallReset = 0x320035,
+ MoveFeatherFallAck = 0x320038,
+ MoveForceFlightBackSpeedChangeAck = 0x32004b,
+ MoveForceFlightSpeedChangeAck = 0x32004a,
+ MoveForcePitchRateChangeAck = 0x32004f,
+ MoveForceRootAck = 0x32002a,
+ MoveForceRunBackSpeedChangeAck = 0x320028,
+ MoveForceRunSpeedChangeAck = 0x320027,
+ MoveForceSwimBackSpeedChangeAck = 0x32003e,
+ MoveForceSwimSpeedChangeAck = 0x320029,
+ MoveForceTurnRateChangeAck = 0x32003f,
+ MoveForceUnrootAck = 0x32002b,
+ MoveForceWalkSpeedChangeAck = 0x32003d,
+ MoveGravityDisableAck = 0x320052,
+ MoveGravityEnableAck = 0x320053,
+ MoveGuildBankItem = 0x30004c,
+ MoveHeartbeat = 0x32002c,
+ MoveHoverAck = 0x32002f,
+ MoveInertiaDisableAck = 0x320054,
+ MoveInertiaEnableAck = 0x320055,
+ MoveInitActiveMoverComplete = 0x320063,
+ MoveJump = 0x320006,
+ MoveKnockBackAck = 0x32002e,
+ MoveRemoveInertiaAck = 0x32006c,
+ MoveRemoveMovementForces = 0x320033,
+ MoveRemoveMovementForceAck = 0x320032,
+ MoveSetAdvFly = 0x32006f,
+ MoveSetAdvFlyingAddImpulseMaxSpeedAck = 0x320077,
+ MoveSetAdvFlyingAirFrictionAck = 0x320072,
+ MoveSetAdvFlyingBankingRateAck = 0x320078,
+ MoveSetAdvFlyingDoubleJumpVelModAck = 0x320075,
+ MoveSetAdvFlyingGlideStartMinHeightAck = 0x320076,
+ MoveSetAdvFlyingLaunchSpeedCoefficientAck = 0x32007f,
+ MoveSetAdvFlyingLiftCoefficientAck = 0x320074,
+ MoveSetAdvFlyingMaxVelAck = 0x320073,
+ MoveSetAdvFlyingOverMaxDecelerationAck = 0x32007d,
+ MoveSetAdvFlyingPitchingRateDownAck = 0x320079,
+ MoveSetAdvFlyingPitchingRateUpAck = 0x32007a,
+ MoveSetAdvFlyingSurfaceFrictionAck = 0x32007c,
+ MoveSetAdvFlyingTurnVelocityThresholdAck = 0x32007b,
+ MoveSetCanAdvFlyAck = 0x32006e,
+ MoveSetCanDriveAck = 0x320070,
+ MoveSetCanFlyAck = 0x320043,
+ MoveSetCanTurnWhileFallingAck = 0x320041,
+ MoveSetCollisionHeightAck = 0x320058,
+ MoveSetFacing = 0x320025,
+ MoveSetFacingHeartbeat = 0x32007e,
+ MoveSetFly = 0x320045,
+ MoveSetIgnoreMovementForcesAck = 0x320042,
+ MoveSetModMovementForceMagnitudeAck = 0x32005f,
+ MoveSetPitch = 0x320026,
+ MoveSetRunMode = 0x32000e,
+ MoveSetTurnRateCheat = 0x320022,
+ MoveSetVehicleRecIdAck = 0x320030,
+ MoveSetWalkMode = 0x32000f,
+ MoveSplineDone = 0x320034,
+ MoveStartAscend = 0x320046,
+ MoveStartBackward = 0x320001,
+ MoveStartDescend = 0x32004d,
+ MoveStartDriveForward = 0x320071,
+ MoveStartForward = 0x320000,
+ MoveStartPitchDown = 0x32000c,
+ MoveStartPitchUp = 0x32000b,
+ MoveStartStrafeLeft = 0x320003,
+ MoveStartStrafeRight = 0x320004,
+ MoveStartSwim = 0x320018,
+ MoveStartTurnLeft = 0x320008,
+ MoveStartTurnRight = 0x320009,
+ MoveStop = 0x320002,
+ MoveStopAscend = 0x320047,
+ MoveStopPitch = 0x32000d,
+ MoveStopStrafe = 0x320005,
+ MoveStopSwim = 0x320019,
+ MoveStopTurn = 0x32000a,
+ MoveTeleportAck = 0x320016,
+ MoveTimeSkipped = 0x320037,
+ MoveUpdateFallSpeed = 0x320036,
+ MoveWaterWalkAck = 0x320039,
+ MythicPlusRequestMapStats = 0x2c0001,
+ NeutralPlayerSelectFaction = 0x2f0083,
+ NextCinematicCamera = 0x3000e2,
+ ObjectUpdateFailed = 0x2f002c,
+ ObjectUpdateRescued = 0x2f002d,
+ OfferPetition = 0x2f0286,
+ OpeningCinematic = 0x3000e1,
+ OpenItem = 0x2f020f,
+ OpenMissionNpc = 0x2f01d0,
+ OpenShipmentNpc = 0x2f01d8,
+ OpenTradeskillNpc = 0x2f01e3,
+ OptOutOfLoot = 0x30008e,
+ OverrideScreenFlash = 0x3000b8,
+ PartyInvite = 0x340030,
+ PartyInviteResponse = 0x340032,
+ PartyUninvite = 0x340073,
+ PerformItemInteraction = 0x2f00ec,
+ PerksProgramItemsRefreshed = 0x2f02ae,
+ PerksProgramRequestCartCheckout = 0x2f02b1,
+ PerksProgramRequestPendingRewards = 0x290012,
+ PerksProgramRequestPurchase = 0x2f02b0,
+ PerksProgramRequestRefund = 0x2f02b2,
+ PerksProgramSetFrozenVendorItem = 0x2f02b3,
+ PerksProgramStatusRequest = 0x2f02af,
+ PetitionBuy = 0x30005a,
+ PetitionRenameGuild = 0x3400f7,
+ PetitionShowList = 0x300059,
+ PetitionShowSignatures = 0x30005b,
+ PetAbandon = 0x30001e,
+ PetAbandonByNumber = 0x30001f,
+ PetAction = 0x30001c,
+ PetBattleFinalNotify = 0x2f0092,
+ PetBattleInput = 0x34006d,
+ PetBattleQueueProposeMatchResult = 0x2f00e2,
+ PetBattleQuitNotify = 0x2f0091,
+ PetBattleReplaceFrontPet = 0x34006e,
+ PetBattleRequestPvp = 0x2f008b,
+ PetBattleRequestUpdate = 0x2f008c,
+ PetBattleRequestWild = 0x2f0089,
+ PetBattleScriptErrorNotify = 0x2f0093,
+ PetBattleWildLocationFail = 0x3d008a,
+ PetCancelAura = 0x300020,
+ PetCastSpell = 0x2f0173,
+ PetRename = 0x3400b0,
+ PetSetAction = 0x30001b,
+ PetSpellAutocast = 0x300021,
+ PetStopAttack = 0x30001d,
+ Ping = 0x350004,
+ PlayerLogin = 0x340016,
+ PushQuestToParty = 0x300031,
+ PvpLogData = 0x2f0028,
+ QueryBattlePetName = 0x2f0147,
+ QueryCorpseLocationFromClient = 0x34008c,
+ QueryCorpseTransport = 0x34008d,
+ QueryCountdownTimer = 0x2f0055,
+ QueryCreature = 0x2f0141,
+ QueryGameObject = 0x2f0142,
+ QueryGarrisonPetName = 0x2f0148,
+ QueryGuildInfo = 0x3400b6,
+ QueryInspectAchievements = 0x300098,
+ QueryNextMailTime = 0x3000d7,
+ QueryNpcText = 0x2f0143,
+ QueryPageText = 0x2f0145,
+ QueryPetition = 0x2f0149,
+ QueryPetName = 0x2f0146,
+ QueryPlayerNames = 0x35000e,
+ QueryPlayerNamesForCommunity = 0x35000c,
+ QueryPlayerNameByCommunityId = 0x35000b,
+ QueryQuestCompletionNpcs = 0x2f0021,
+ QueryQuestInfo = 0x2f0144,
+ QueryQuestItemUsability = 0x2f0022,
+ QueryRealmName = 0x3400b5,
+ QueryScenarioPoi = 0x340082,
+ QuerySelectedWowLabsArea = 0x2f02ea,
+ QueryTime = 0x30006e,
+ QueryTreasurePicker = 0x2f0232,
+ QueryWowLabsAreaInfo = 0x2f02eb,
+ QuestConfirmAccept = 0x300030,
+ QuestGiverAcceptQuest = 0x30002a,
+ QuestGiverChooseReward = 0x30002c,
+ QuestGiverCloseQuest = 0x3000e8,
+ QuestGiverCompleteQuest = 0x30002b,
+ QuestGiverHello = 0x300028,
+ QuestGiverQueryQuest = 0x300029,
+ QuestGiverRequestReward = 0x30002d,
+ QuestGiverStatusMultipleQuery = 0x30002f,
+ QuestGiverStatusQuery = 0x30002e,
+ QuestLogRemoveQuest = 0x3000cc,
+ QuestPoiQuery = 0x3400dd,
+ QuestPushResult = 0x300032,
+ QuestSessionBeginResponse = 0x2f0278,
+ QuestSessionRequestStart = 0x2f0277,
+ QuestSessionRequestStop = 0x340158,
+ QueuedMessagesEnd = 0x350008,
+ QuickJoinAutoAcceptRequests = 0x340130,
+ QuickJoinRequestInvite = 0x34012f,
+ QuickJoinRequestInviteWithConfirmation = 0x34015d,
+ QuickJoinRespondToInvite = 0x34012e,
+ QuickJoinSignalToastDisplayed = 0x34012d,
+ RafClaimActivityReward = 0x30009c,
+ RafClaimNextReward = 0x34014e,
+ RafGenerateRecruitmentLink = 0x340150,
+ RafUpdateRecruitmentInfo = 0x34014f,
+ RandomRoll = 0x340080,
+ ReadyCheckResponse = 0x34005f,
+ ReadItem = 0x2f0210,
+ ReclaimCorpse = 0x300073,
+ RemoveNewItem = 0x2f0236,
+ RemoveRafRecruit = 0x340151,
+ ReorderCharacters = 0x340015,
+ RepairItem = 0x300084,
+ ReplaceTrophy = 0x2f01f1,
+ RepopRequest = 0x3000c4,
+ ReportPvpPlayerAfk = 0x30008c,
+ ReportServerLag = 0x2f0270,
+ ReportStuckInCombat = 0x2f0271,
+ RequestAccountData = 0x3400c2,
+ RequestAreaPoiUpdate = 0x2f0234,
+ RequestBattlefieldStatus = 0x340008,
+ RequestCemeteryList = 0x2f0023,
+ RequestCharacterGuildFollowInfo = 0x3400b7,
+ RequestCovenantCallings = 0x2f0262,
+ RequestCrowdControlSpell = 0x3000c8,
+ RequestCurrencyDataForAccountCharacters = 0x290019,
+ RequestGarrisonTalentWorldQuestUnlocks = 0x2f029b,
+ RequestGuildPartyState = 0x2f0054,
+ RequestGuildRewardsList = 0x2f0053,
+ RequestLatestSplashScreen = 0x2f0272,
+ RequestLfgListBlacklist = 0x2f017f,
+ RequestMythicPlusAffixes = 0x2f00b7,
+ RequestMythicPlusSeasonData = 0x2f00b8,
+ RequestPartyEligibilityForDelveTiers = 0x2f02e9,
+ RequestPartyJoinUpdates = 0x340023,
+ RequestPartyMemberStats = 0x34007f,
+ RequestPetInfo = 0x300022,
+ RequestPlayedTime = 0x2f014c,
+ RequestPvpRewards = 0x2f0041,
+ RequestRaidInfo = 0x3400f8,
+ RequestRatedPvpInfo = 0x34000f,
+ RequestRealmGuildMasterInfo = 0x340193,
+ RequestScheduledAreaPoiUpdate = 0x2f0235,
+ RequestScheduledPvpInfo = 0x2f0042,
+ RequestStabledPets = 0x300023,
+ RequestStoreFrontInfoUpdate = 0x29001e,
+ RequestVehicleExit = 0x2f00fe,
+ RequestVehicleNextSeat = 0x2f0100,
+ RequestVehiclePrevSeat = 0x2f00ff,
+ RequestVehicleSwitchSeat = 0x2f0101,
+ RequestWeeklyRewards = 0x2f0265,
+ RequestWorldQuestUpdate = 0x2f0233,
+ ResetChallengeMode = 0x2f00b5,
+ ResetChallengeModeCheat = 0x2f00b6,
+ ResetInstances = 0x340094,
+ ResurrectResponse = 0x3400af,
+ RevertMonumentAppearance = 0x2f01f3,
+ RideVehicleInteract = 0x2f0102,
+ RpeResetCharacter = 0x34017e,
+ SaveAccountDataExport = 0x340178,
+ SaveCufProfiles = 0x2f0037,
+ SaveEquipmentSet = 0x3000a2,
+ SaveGuildEmblem = 0x2f0184,
+ SavePersonalEmblem = 0x2f0185,
+ ScenePlaybackCanceled = 0x2f00de,
+ ScenePlaybackComplete = 0x2f00dd,
+ SceneTriggerEvent = 0x2f00df,
+ SeamlessTransferComplete = 0x2f02d8,
+ SelectWowLabsArea = 0x2f02ec,
+ SelfRes = 0x3000cf,
+ SellAllJunkItems = 0x300035,
+ SellItem = 0x300034,
+ SendCharacterClubInvitation = 0x340126,
+ SendContactList = 0x3400fd,
+ SendMail = 0x340026,
+ SendPingUnit = 0x2f02da,
+ SendPingWorldPoint = 0x2f02db,
+ SendTextEmote = 0x300019,
+ ServerTimeOffsetRequest = 0x3400c9,
+ SetupWarbandGroups = 0x34018c,
+ SetActionBarToggles = 0x3000d0,
+ SetActionButton = 0x340062,
+ SetActiveMover = 0x320059,
+ SetAdvancedCombatLogging = 0x2f0192,
+ SetAssistantLeader = 0x34007b,
+ SetBackpackAutosortDisabled = 0x2f0213,
+ SetBackpackSellJunkDisabled = 0x2f0214,
+ SetBankAutosortDisabled = 0x2f0215,
+ SetContactNotes = 0x340100,
+ SetCurrencyFlags = 0x2f0015,
+ SetDifficultyId = 0x2f00e0,
+ SetDungeonDifficulty = 0x3400ae,
+ SetEmpowerMinHoldStagePercent = 0x2f013b,
+ SetEveryoneIsAssistant = 0x340046,
+ SetExcludedChatCensorSources = 0x340131,
+ SetFactionAtWar = 0x300076,
+ SetFactionInactive = 0x300078,
+ SetFactionNotAtWar = 0x300077,
+ SetGameEventDebugViewState = 0x2f0065,
+ SetInsertItemsLeftToRight = 0x2f0217,
+ SetLootMethod = 0x340074,
+ SetLootSpecialization = 0x3000dd,
+ SetPartyAssignment = 0x34007d,
+ SetPartyLeader = 0x340076,
+ SetPetFavorite = 0x2f0012,
+ SetPetSlot = 0x2f0011,
+ SetPetSpecialization = 0x2f0013,
+ SetPlayerDeclinedNames = 0x3400b4,
+ SetPreferredCemetery = 0x2f0024,
+ SetPvp = 0x2f0189,
+ SetRaidDifficulty = 0x340109,
+ SetRestrictPingsToAssistants = 0x340047,
+ SetRole = 0x340005,
+ SetSavedInstanceExtend = 0x3400b2,
+ SetSelection = 0x3000c6,
+ SetSheathed = 0x30001a,
+ SetSortBagsRightToLeft = 0x2f0216,
+ SetTaxiBenchmarkMode = 0x30008b,
+ SetTitle = 0x2f0152,
+ SetTradeCurrency = 0x2f000a,
+ SetTradeGold = 0x2f0009,
+ SetTradeItem = 0x2f0007,
+ SetUsingPartyGarrison = 0x2f01d2,
+ SetWarMode = 0x2f018a,
+ SetWatchedFaction = 0x300079,
+ ShowTradeSkill = 0x3400f0,
+ SignPetition = 0x3000d1,
+ SilencePartyTalker = 0x34007e,
+ SocialContractRequest = 0x340173,
+ SocketGems = 0x300083,
+ SortAccountBankBags = 0x2f02de,
+ SortBags = 0x2f0218,
+ SortBankBags = 0x2f0219,
+ SpawnTrackingUpdate = 0x2f0167,
+ SpectateChange = 0x2f02d1,
+ SpellClick = 0x300027,
+ SpellEmpowerRelease = 0x2f0139,
+ SpellEmpowerRestart = 0x2f013a,
+ SpiritHealerActivate = 0x300042,
+ SplitGuildBankItem = 0x300053,
+ SplitGuildBankItemToInventory = 0x300050,
+ SplitItem = 0x310008,
+ SplitItemToGuildBank = 0x30004e,
+ StandStateChange = 0x2f0035,
+ StartChallengeMode = 0x3000e9,
+ StartInstanceAbandonVote = 0x340060,
+ StartSpectatorWarGame = 0x34000b,
+ StartWarGame = 0x34000a,
+ StoreGuildBankItem = 0x300049,
+ SubmitUserFeedback = 0x3400c1,
+ SubscriptionInterstitialResponse = 0x2f0290,
+ SummonResponse = 0x340096,
+ SupportTicketSubmitComplaint = 0x340072,
+ SurrenderArena = 0x2f0020,
+ SuspendCommsAck = 0x350000,
+ SuspendTokenResponse = 0x350006,
+ SwapGuildBankItemWithGuildBankItem = 0x30004b,
+ SwapInvItem = 0x310007,
+ SwapItem = 0x310006,
+ SwapItemWithGuildBankItem = 0x30004a,
+ SwapSubGroups = 0x340079,
+ TabardVendorActivate = 0x2f0186,
+ TalkToGossip = 0x300024,
+ TaxiNodeStatusQuery = 0x30003b,
+ TaxiQueryAvailableNodes = 0x30003d,
+ TaxiRequestEarlyLanding = 0x30003f,
+ TimeAdjustmentResponse = 0x32005d,
+ TimeSyncResponse = 0x32005a,
+ TimeSyncResponseDropped = 0x32005c,
+ TimeSyncResponseFailed = 0x32005b,
+ ToggleDifficulty = 0x340083,
+ TogglePvp = 0x2f0188,
+ TotemDestroyed = 0x300090,
+ ToyClearFanfare = 0x290004,
+ TradeSkillSetFavorite = 0x2f0231,
+ TrainerBuySpell = 0x300041,
+ TrainerList = 0x300040,
+ TraitsCommitConfig = 0x2f02b9,
+ TraitsTalentTestUnlearnSpells = 0x2f02b7,
+ TransferCurrencyFromAccountCharacter = 0x2f02e7,
+ TransmogrifyItems = 0x2f0043,
+ TurnInPetition = 0x3000d3,
+ Tutorial = 0x34010a,
+ UiMapQuestLinesRequest = 0x2f0261,
+ UnacceptTrade = 0x2f0005,
+ UndeleteCharacter = 0x34010c,
+ UnlearnSkill = 0x30007d,
+ UnlearnSpecialization = 0x2f0051,
+ UpdateAadcStatus = 0x340163,
+ UpdateAccountBankTabSettings = 0x30012a,
+ UpdateAccountData = 0x3400c3,
+ UpdateAreaTriggerVisual = 0x2f0176,
+ UpdateClientSettings = 0x340090,
+ UpdateCraftingNpcRecipes = 0x2f01e4,
+ UpdateMissileTrajectory = 0x320060,
+ UpdateRaidTarget = 0x34007c,
+ UpdateSpellVisual = 0x2f0175,
+ UpdateVasPurchaseStates = 0x340121,
+ UpgradeGarrison = 0x2f019a,
+ UpgradeRuneforgeLegendary = 0x2f028e,
+ UsedFollow = 0x2f0032,
+ UseCritterItem = 0x2f0108,
+ UseEquipmentSet = 0x310001,
+ UseItem = 0x2f016f,
+ UseToy = 0x2f0172,
+ VasCheckTransferOk = 0x340136,
+ VasGetQueueMinutes = 0x340135,
+ VasGetServiceStatus = 0x340134,
+ ViolenceLevel = 0x2f0030,
+ VoiceChannelSttTokenRequest = 0x34013a,
+ VoiceChatJoinChannel = 0x34013b,
+ VoiceChatLogin = 0x340139,
+ Warden3Data = 0x340018,
+ Who = 0x3400ad,
+ WhoIs = 0x3400ac,
+ WorldLootObjectClick = 0x2f02d4,
+ WorldPortResponse = 0x340025,
+ WrapItem = 0x310000,
Unknown = 0xbadd
}
public enum ServerOpcodes : uint
{
- AbortNewWorld = 0x380030,
- AccountCharacterCurrencyLists = 0x380342,
- AccountConversionStateUpdate = 0x380347,
- AccountCosmeticAdded = 0x3802fb,
- AccountCriteriaUpdate = 0x3802e3,
- AccountDataTimes = 0x3801a4,
- AccountExportResponse = 0x380333,
- AccountItemCollectionData = 0x38034d,
- AccountMountRemoved = 0x380047,
- AccountMountUpdate = 0x380046,
- AccountNotificationsResponse = 0x3802fa,
- AccountStoreCurrencyUpdate = 0x38031c,
- AccountStoreFrontUpdate = 0x38031d,
- AccountStoreItemStateChanged = 0x38031e,
- AccountStoreResult = 0x38031f,
- AccountToyUpdate = 0x380048,
- AccountTransmogSetFavoritesUpdate = 0x38004c,
- AccountTransmogUpdate = 0x38004b,
- AccountWarbandSceneUpdate = 0x38004e,
- AchievementDeleted = 0x380181,
- AchievementEarned = 0x3800db,
- ActivateEssenceFailed = 0x4b0020,
- ActivateSoulbindFailed = 0x4b0022,
- ActivateTaxiReply = 0x380118,
- ActiveGlyphs = 0x4e0045,
- ActiveScheduledWorldStateInfo = 0x3801df,
- AddonListRequest = 0x3800da,
- AddBattlenetFriendResponse = 0x3800d5,
- AddItemPassive = 0x380042,
- AddLossOfControl = 0x38010b,
- AddRunePower = 0x380152,
- AdjustSplineDuration = 0x380069,
- AdvancedCombatLog = 0x3802f8,
- AdventureJournalDataResponse = 0x3802f3,
- AeLootTargets = 0x3800b0,
- AeLootTargetAck = 0x3800b1,
- AiReaction = 0x38014f,
- AlliedRaceDetails = 0x38028d,
- AllAccountCriteria = 0x380005,
- AllAchievementData = 0x380004,
- AllGuildAchievements = 0x440000,
- ApplyMountEquipmentResult = 0x3802d0,
- ArchaeologySurveryCast = 0x38001d,
- AreaPoiUpdateResponse = 0x4b0018,
- AreaSpiritHealerTime = 0x3801d8,
- AreaTriggerDenied = 0x390009,
- AreaTriggerForceSetPositionAndFacing = 0x390006,
- AreaTriggerNoCorpse = 0x3801b0,
- AreaTriggerPlaySpellVisual = 0x390004,
- AreaTriggerRePath = 0x390003,
- AreaTriggerReShape = 0x390008,
- AreaTriggerUnattach = 0x390007,
- AreaTriggerUpdateDecalProperties = 0x390005,
- ArenaClearOpponents = 0x3800e1,
- ArenaCrowdControlSpellResult = 0x3800ca,
- ArenaPrepOpponentSpecializations = 0x3800e0,
- ArtifactEndgamePowersRefunded = 0x38023a,
- ArtifactForgeError = 0x380238,
- ArtifactRespecPrompt = 0x380239,
- ArtifactXpGain = 0x380280,
- AttackerStateUpdate = 0x3e002c,
- AttackStart = 0x3e0017,
- AttackStop = 0x3e0018,
- AttackSwingError = 0x3e0026,
- AttackSwingLandedLog = 0x3e0027,
- AuctionableTokenAuctionSold = 0x380269,
- AuctionableTokenSellAtMarketPriceResponse = 0x380268,
- AuctionableTokenSellConfirmRequired = 0x380267,
- AuctionClosedNotification = 0x38018c,
- AuctionCommandResult = 0x380189,
- AuctionDisableNewPostings = 0x380320,
- AuctionFavoriteList = 0x3802ea,
- AuctionGetCommodityQuoteResult = 0x3802e2,
- AuctionHelloResponse = 0x380187,
- AuctionListBiddedItemsResult = 0x3802e1,
- AuctionListBucketsResult = 0x3802dd,
- AuctionListItemsResult = 0x3802de,
- AuctionListOwnedItemsResult = 0x3802e0,
- AuctionOutbidNotification = 0x38018b,
- AuctionOwnerBidNotification = 0x38018d,
- AuctionReplicateResponse = 0x380188,
- AuctionWonNotification = 0x38018a,
- AuraPointsDepleted = 0x4e0012,
- AuraUpdate = 0x4e0011,
- AuthChallenge = 0x3f0000,
- AuthFailed = 0x380000,
- AuthResponse = 0x380001,
- AvailableHotfixes = 0x3c0001,
- BackpackDefaultSizeChanged = 0x380321,
- BagCleanupFinished = 0x4f0007,
- BarberShopResult = 0x380157,
- BatchPresenceSubscription = 0x3802c1,
- BattlefieldList = 0x3e0005,
- BattlefieldPortDenied = 0x3e000b,
- BattlefieldStatusActive = 0x3e0001,
- BattlefieldStatusFailed = 0x3e0004,
- BattlefieldStatusGroupProposalFailed = 0x3e000e,
- BattlefieldStatusNeedConfirmation = 0x3e0000,
- BattlefieldStatusNone = 0x3e0003,
- BattlefieldStatusQueued = 0x3e0002,
- BattlefieldStatusWaitForGroups = 0x3e000d,
- BattlegroundInfoThrottled = 0x3e000c,
- BattlegroundInit = 0x3e0029,
- BattlegroundPlayerJoined = 0x3e0009,
- BattlegroundPlayerLeft = 0x3e000a,
- BattlegroundPlayerPositions = 0x3e0006,
- BattlegroundPoints = 0x3e0028,
- BattlenetChallengeAbort = 0x380222,
- BattlenetChallengeStart = 0x380221,
- BattlenetNotification = 0x380299,
- BattlenetResponse = 0x380298,
- BattleNetConnectionStatus = 0x38029a,
- BattlePayAckFailed = 0x38021d,
- BattlePayBattlePetDelivered = 0x380212,
- BattlePayCollectionItemDelivered = 0x380213,
- BattlePayConfirmPurchase = 0x38021c,
- BattlePayDeliveryEnded = 0x380210,
- BattlePayDeliveryStarted = 0x38020f,
- BattlePayDistributionAssignVasResponse = 0x380300,
- BattlePayDistributionUnrevoked = 0x38020d,
- BattlePayDistributionUpdate = 0x38020e,
- BattlePayGetDistributionListResponse = 0x38020c,
- BattlePayGetProductListResponse = 0x38020a,
- BattlePayGetPurchaseListResponse = 0x38020b,
- BattlePayMountDelivered = 0x380211,
- BattlePayPurchaseUpdate = 0x38021b,
- BattlePayStartCheckout = 0x3802b5,
- BattlePayStartDistributionAssignToTargetResponse = 0x380219,
- BattlePayStartPurchaseResponse = 0x380218,
- BattlePayValidatePurchaseResponse = 0x3802a9,
- BattlePetsHealed = 0x38008b,
- BattlePetCageDateError = 0x380113,
- BattlePetDeleted = 0x380088,
- BattlePetError = 0x3800d0,
- BattlePetJournal = 0x380087,
- BattlePetJournalLockAcquired = 0x380085,
- BattlePetJournalLockDenied = 0x380086,
- BattlePetRestored = 0x38008a,
- BattlePetRevoked = 0x380089,
- BattlePetTrapLevel = 0x380083,
- BattlePetUpdates = 0x380082,
- BindPointUpdate = 0x380011,
- BlackMarketBidOnItemResult = 0x3800c0,
- BlackMarketOutbid = 0x3800c1,
- BlackMarketRequestItemsResult = 0x3800bf,
- BlackMarketWon = 0x3800c2,
- BonusRollEmpty = 0x3800dd,
- BossKill = 0x3e002b,
- BreakTarget = 0x3e0016,
- BroadcastAchievement = 0x3d0012,
- BroadcastSummonCast = 0x3802c3,
- BroadcastSummonResponse = 0x3802c4,
- BuyFailed = 0x380160,
- BuySucceeded = 0x38015f,
- CacheInfo = 0x3c000f,
- CacheVersion = 0x3c000e,
- CalendarClearPendingAction = 0x380138,
- CalendarCommandResult = 0x380139,
- CalendarCommunityInvite = 0x380128,
- CalendarEventRemovedAlert = 0x380130,
- CalendarEventUpdatedAlert = 0x380131,
- CalendarInviteAdded = 0x380129,
- CalendarInviteAlert = 0x38012d,
- CalendarInviteNotes = 0x380132,
- CalendarInviteNotesAlert = 0x380133,
- CalendarInviteRemoved = 0x38012a,
- CalendarInviteRemovedAlert = 0x38012f,
- CalendarInviteStatus = 0x38012b,
- CalendarInviteStatusAlert = 0x38012e,
- CalendarModeratorStatus = 0x38012c,
- CalendarRaidLockoutAdded = 0x380134,
- CalendarRaidLockoutRemoved = 0x380135,
- CalendarRaidLockoutUpdated = 0x380136,
- CalendarSendCalendar = 0x380126,
- CalendarSendEvent = 0x380127,
- CalendarSendNumPending = 0x380137,
- CameraEffect = 0x3801be,
- CancelAutoRepeat = 0x380177,
- CancelCombat = 0x3e0025,
- CancelOrphanSpellVisual = 0x4e0037,
- CancelPingPin = 0x38003b,
- CancelPreloadWorld = 0x38002e,
- CancelScene = 0x3800cf,
- CancelSpellVisual = 0x4e0035,
- CancelSpellVisualKit = 0x4e0039,
- CanDuelResult = 0x3e0021,
- CanRedeemTokenForBalanceResponse = 0x3802a8,
- CapturePointRemoved = 0x3e0008,
- CastFailed = 0x4e0048,
- CasRefreshRemoteData = 0x380111,
- CautionaryChannelMessage = 0x3d0009,
- CautionaryChatMessage = 0x3d0008,
- ChainMissileBounce = 0x380061,
- ChallengeModeComplete = 0x3800a2,
- ChallengeModeRequestLeadersResult = 0x3800a8,
- ChallengeModeReset = 0x3800a1,
- ChallengeModeStart = 0x38009f,
- ChallengeModeUpdateDeathCount = 0x3800a0,
- ChangePlayerDifficultyResult = 0x4b000c,
- ChangeRealmTicketResponse = 0x38029b,
- ChannelList = 0x3d001b,
- ChannelNotify = 0x3d0017,
- ChannelNotifyJoined = 0x3d0019,
- ChannelNotifyLeft = 0x3d001a,
- ChannelNotifyNpeJoinedBatch = 0x3d0018,
- CharacterCheckUpgradeResult = 0x380255,
- CharacterLoginFailed = 0x38019e,
- CharacterObjectTestResponse = 0x380220,
- CharacterRenameResult = 0x3801fb,
- CharacterUpgradeAborted = 0x380254,
- CharacterUpgradeComplete = 0x380253,
- CharacterUpgradeManualUnrevokeResult = 0x380256,
- CharacterUpgradeStarted = 0x380252,
- CharCustomizeFailure = 0x38017b,
- CharCustomizeSuccess = 0x38017c,
- CharFactionChangeResult = 0x38023f,
- Chat = 0x3d0001,
- ChatAutoResponded = 0x3d000e,
- ChatCanLocalWhisperTargetResponse = 0x3d0022,
- ChatDown = 0x3d0014,
- ChatIgnoredAccountMuted = 0x3d0000,
- ChatIsDown = 0x3d0015,
- ChatNotInGuild = 0x3d0023,
- ChatNotInParty = 0x3d0006,
- ChatPlayerAmbiguous = 0x3d0004,
- ChatPlayerNotfound = 0x3d000d,
- ChatReconnect = 0x3d0016,
- ChatRegionalServiceStatus = 0x3d001d,
- ChatRestricted = 0x3d0007,
- ChatServerMessage = 0x3d001c,
- CheatIgnoreDimishingReturns = 0x4e0002,
- CheckAbandonNpe = 0x4b0023,
- CheckCharacterNameAvailabilityResult = 0x38001b,
- CheckWargameEntry = 0x380027,
- ChromieTimeSelectExpansionSuccess = 0x3802ed,
- ClaimRafRewardResponse = 0x3802d4,
- ClearAllSpellCharges = 0x4e0016,
- ClearBossEmotes = 0x380054,
- ClearCooldown = 0x380154,
- ClearCooldowns = 0x4e0015,
- ClearResurrect = 0x380013,
- ClearSpellCharges = 0x4e0017,
- ClearTarget = 0x3e0022,
- ClearTreasurePickerCache = 0x4c0022,
- CloseArtifactForge = 0x380237,
- ClubFinderErrorMessage = 0x3802cc,
- ClubFinderGetClubPostingIdsResponse = 0x3802cf,
- ClubFinderLookupClubPostingsList = 0x3802cd,
- ClubFinderResponseCharacterApplicationList = 0x3802ca,
- ClubFinderResponsePostRecruitmentMessage = 0x3802ce,
- ClubFinderUpdateApplications = 0x3802cb,
- ClubFinderWhisperApplicantResponse = 0x38030c,
- CoinRemoved = 0x3800af,
- CombatEventFailed = 0x3e0019,
- CommentatorMapInfo = 0x3801a0,
- CommentatorPlayerInfo = 0x3801a1,
- CommentatorStateChanged = 0x38019f,
- CommerceTokenGetCountResponse = 0x380264,
- CommerceTokenGetLogResponse = 0x380270,
- CommerceTokenGetMarketPriceResponse = 0x380266,
- CommerceTokenUpdate = 0x380265,
- ComplaintResult = 0x380146,
- CompleteShipmentResponse = 0x380230,
- ConfirmPartyInvite = 0x3802a7,
- ConnectTo = 0x3f0005,
- ConsoleWrite = 0x3800cd,
- ConsumableTokenBuyAtMarketPriceResponse = 0x38026c,
- ConsumableTokenBuyChoiceRequired = 0x38026b,
- ConsumableTokenCanVeteranBuyResponse = 0x38026a,
- ConsumableTokenRedeemConfirmRequired = 0x38026e,
- ConsumableTokenRedeemResponse = 0x38026f,
- ContactList = 0x38021e,
- ContributionLastUpdateResponse = 0x3802ae,
- ControlUpdate = 0x3800df,
- ConvertItemsToCurrencyValue = 0x3802f6,
- CooldownCheat = 0x3801d1,
- CooldownEvent = 0x380153,
- CorpseLocation = 0x3800e7,
- CorpseReclaimDelay = 0x3801e2,
- CorpseTransportQuery = 0x3801ac,
- CovenantCallingsAvailabilityResponse = 0x4c0024,
- CovenantPreviewOpenNpc = 0x380290,
- CovenantRenownSendCatchupState = 0x3802f7,
- CraftingHouseHelloResponse = 0x38032d,
- CraftingOrderCancelResult = 0x380329,
- CraftingOrderClaimResult = 0x380325,
- CraftingOrderCraftResult = 0x380327,
- CraftingOrderCreateResult = 0x380323,
- CraftingOrderFulfillResult = 0x380328,
- CraftingOrderListOrdersResponse = 0x380324,
- CraftingOrderNpcRewardInfo = 0x38032f,
- CraftingOrderRejectResult = 0x38032b,
- CraftingOrderReleaseResult = 0x380326,
- CraftingOrderUpdateState = 0x38032e,
- CraftEnchantResult = 0x38032c,
- CreateChar = 0x38019a,
- CreateShipmentResponse = 0x38022f,
- CreatorVisualsOverride = 0x380332,
- CriteriaDeleted = 0x380180,
- CriteriaUpdate = 0x38017a,
- CrossedInebriationThreshold = 0x38015b,
- CurrencyTransferLog = 0x380344,
- CurrencyTransferResult = 0x380343,
- CustomLoadScreen = 0x380064,
- DailyQuestsReset = 0x4c0000,
- DamageCalcLog = 0x4e0054,
- DbReply = 0x3c0000,
- DeathReleaseLoc = 0x38016d,
- DebugMenuManagerFullUpdate = 0x3800ef,
- DefenseMessage = 0x3d000c,
- DeleteChar = 0x38019b,
- DeleteExpiredMissionsResult = 0x420022,
- DelvesAccountDataElementChanged = 0x380349,
- DestroyArenaUnit = 0x3801da,
- DestructibleBuildingDamage = 0x380192,
- DifferentInstanceFromParty = 0x380020,
- DisenchantCredit = 0x38003f,
- DismountResult = 0x380010,
- DispelFailed = 0x4e001e,
- DisplayGameError = 0x380035,
- DisplayPlayerChoice = 0x4b0004,
- DisplayPromotion = 0x3800e4,
- DisplayQuestPopup = 0x4c001e,
- DisplayToast = 0x3800bc,
- DisplayWorldText = 0x380281,
- DisplayWorldTextOnTarget = 0x4e0053,
- DontAutoPushSpellsToActionBar = 0x380079,
- DropNewConnection = 0x3f0004,
- DuelArranged = 0x3e001b,
- DuelComplete = 0x3e001f,
- DuelCountdown = 0x3e001e,
- DuelInBounds = 0x3e001d,
- DuelOutOfBounds = 0x3e001c,
- DuelRequested = 0x3e001a,
- DuelWinner = 0x3e0020,
- DurabilityDamageDeath = 0x3801dd,
- Emote = 0x38025c,
- EnableBarberShop = 0x380156,
- EnchantmentLog = 0x3801ad,
- EncounterEnd = 0x380217,
- EncounterStart = 0x380216,
- EndLightningStorm = 0x380143,
- EnterEncryptedMode = 0x3f0001,
- EnumCharactersResult = 0x380018,
- EnumVasPurchaseStatesResponse = 0x380286,
- EnvironmentalDamageLog = 0x4e000e,
- EquipmentSetId = 0x38014c,
- ExpectedSpamRecords = 0x3d0005,
- ExplorationExperience = 0x3801f7,
- ExportAccountProfile = 0x3800ec,
- ExternalTransactionIdGenerated = 0x3802f4,
- FactionBonusInfo = 0x3801bd,
- FailedPlayerCondition = 0x4b0002,
- FailedQuestTurnIn = 0x3802a4,
- FeatureSystemStatus = 0x380058,
- FeatureSystemStatus2 = 0x380341,
- FeatureSystemStatusGlueScreen = 0x380059,
- FeignDeathResisted = 0x3801dc,
- FishEscaped = 0x38016a,
- FishNotHooked = 0x380169,
- FlightSplineSync = 0x49005b,
- FlushCombatLogFile = 0x4e0010,
- ForcedDeathUpdate = 0x38016e,
- ForceAnim = 0x3801e9,
- ForceAnimations = 0x3801ea,
- ForceObjectRelink = 0x3800e3,
- ForceRandomTransmogToast = 0x38004a,
- ForceSpawnTrackingUpdate = 0x4c0021,
- FriendStatus = 0x38021f,
- GainMawPower = 0x380275,
- GameObjectActivateAnimKit = 0x38005c,
- GameObjectBase = 0x3802bb,
- GameObjectCloseInteraction = 0x38030b,
- GameObjectCustomAnim = 0x38005d,
- GameObjectDespawn = 0x38005e,
- GameObjectInteraction = 0x38030a,
- GameObjectPlaySpellVisual = 0x4e003c,
- GameObjectPlaySpellVisualKit = 0x4e003b,
- GameObjectResetState = 0x3801b7,
- GameObjectSetStateLocal = 0x380297,
- GameSpeedSet = 0x38011c,
- GameTimeSet = 0x3801a6,
- GameTimeUpdate = 0x3801a5,
- GarrisonActivateMissionBonusAbility = 0x420024,
- GarrisonAddEvent = 0x420048,
- GarrisonAddFollowerResult = 0x420016,
- GarrisonAddMissionResult = 0x42001a,
- GarrisonAddSpecGroups = 0x42004b,
- GarrisonApplyTalentSocketDataChanges = 0x42004f,
- GarrisonAssignFollowerToBuildingResult = 0x42002c,
- GarrisonAutoTroopMinLevelUpdateResult = 0x420051,
- GarrisonBuildingActivated = 0x42000b,
- GarrisonBuildingRemoved = 0x420004,
- GarrisonBuildingSetActiveSpecializationResult = 0x420006,
- GarrisonChangeMissionStartTimeResult = 0x42001d,
- GarrisonClearCollection = 0x420047,
- GarrisonClearEventList = 0x42004a,
- GarrisonClearSpecGroups = 0x42004c,
- GarrisonCollectionRemoveEntry = 0x420046,
- GarrisonCollectionUpdateEntry = 0x420045,
- GarrisonCompleteBuildingConstructionResult = 0x42003d,
- GarrisonCompleteMissionResult = 0x42001c,
- GarrisonCreateResult = 0x42000c,
- GarrisonDeleteMissionResult = 0x420023,
- GarrisonDeleteResult = 0x420035,
- GarrisonFollowerActivationsSet = 0x42002b,
- GarrisonFollowerChangedFlags = 0x420029,
- GarrisonFollowerChangedItemLevel = 0x420027,
- GarrisonFollowerChangedQuality = 0x420028,
- GarrisonFollowerChangedXp = 0x420026,
- GarrisonFollowerFatigueCleared = 0x42002a,
- GarrisonGenerateFollowersResult = 0x420033,
- GarrisonGetClassSpecCategoryInfoResult = 0x420015,
- GarrisonGetRecallPortalLastUsedTimeResult = 0x42001e,
- GarrisonIsUpgradeableResponse = 0x42003f,
- GarrisonLearnBlueprintResult = 0x420007,
- GarrisonLearnSpecializationResult = 0x420005,
- GarrisonListCompletedMissionsCheatResult = 0x420040,
- GarrisonListFollowersCheatResult = 0x420019,
- GarrisonMapDataResponse = 0x420042,
- GarrisonMissionBonusRollResult = 0x420020,
- GarrisonMissionRequestRewardInfoResponse = 0x420043,
- GarrisonMissionStartConditionUpdate = 0x420025,
- GarrisonOpenCrafter = 0x420037,
- GarrisonOpenRecruitmentNpc = 0x420030,
- GarrisonPlaceBuildingResult = 0x420003,
- GarrisonPlotPlaced = 0x420001,
- GarrisonPlotRemoved = 0x420002,
- GarrisonRecruitFollowerResult = 0x420034,
- GarrisonRemoteInfo = 0x42000a,
- GarrisonRemoveEvent = 0x420049,
- GarrisonRemoveFollowerAbilityResult = 0x42002f,
- GarrisonRemoveFollowerFromBuildingResult = 0x42002d,
- GarrisonRemoveFollowerResult = 0x420017,
- GarrisonRenameFollowerResult = 0x42002e,
- GarrisonRequestBlueprintAndSpecializationDataResult = 0x420009,
- GarrisonResearchTalentResult = 0x42000e,
- GarrisonResetTalentTree = 0x420013,
- GarrisonResetTalentTreeSocketData = 0x420014,
- GarrisonStartMissionResult = 0x42001b,
- GarrisonSwapBuildingsResponse = 0x42003c,
- GarrisonSwitchTalentTreeBranch = 0x42004d,
- GarrisonTalentCompleted = 0x42000f,
- GarrisonTalentRemoved = 0x420010,
- GarrisonTalentRemoveSocketData = 0x420012,
- GarrisonTalentUpdateSocketData = 0x420011,
- GarrisonTalentWorldQuestUnlocksResponse = 0x42004e,
- GarrisonUnlearnBlueprintResult = 0x420008,
- GarrisonUpdateFollower = 0x420018,
- GarrisonUpdateGarrisonMonumentSelections = 0x42003e,
- GarrisonUpdateMissionCheatResult = 0x420050,
- GarrisonUpgradeResult = 0x42000d,
- GarrisonUseRecallPortalResult = 0x42001f,
- GenerateRandomCharacterNameResult = 0x38001c,
- GenerateSsoTokenResponse = 0x3802af,
- GetAccountCharacterListResult = 0x3801f9,
- GetGarrisonInfoResult = 0x420000,
- GetLandingPageShipmentsResponse = 0x380232,
- GetRealmHiddenResult = 0x380338,
- GetRemainingGameTimeResponse = 0x38026d,
- GetSelectedTrophyIdResponse = 0x38025a,
- GetShipmentsOfTypeResponse = 0x380231,
- GetShipmentInfoResponse = 0x38022d,
- GetTrophyListResponse = 0x380259,
- GetVasAccountCharacterListResult = 0x380282,
- GetVasTransferTargetRealmListResult = 0x380283,
- GmPlayerInfo = 0x4b000d,
- GmRequestPlayerInfo = 0x4b0003,
- GmTicketCaseStatus = 0x38013e,
- GmTicketSystemStatus = 0x38013d,
- GodMode = 0x380195,
- GossipComplete = 0x4c0017,
- GossipMessage = 0x4c0018,
- GossipOptionNpcInteraction = 0x4c0028,
- GossipPoi = 0x38022a,
- GossipQuestUpdate = 0x4c0019,
- GossipRefreshOptions = 0x4c0027,
- GroupActionThrottled = 0x380024,
- GroupAutoKick = 0x380227,
- GroupDecline = 0x380223,
- GroupDestroyed = 0x380226,
- GroupNewLeader = 0x3800c5,
- GroupRequestDecline = 0x380224,
- GroupUninvite = 0x380225,
- GuildAchievementDeleted = 0x44000d,
- GuildAchievementEarned = 0x44000c,
- GuildAchievementMembers = 0x44000f,
- GuildBankLogQueryResults = 0x440027,
- GuildBankQueryResults = 0x440026,
- GuildBankRemainingWithdrawMoney = 0x440028,
- GuildBankTextQueryResult = 0x44002b,
- GuildChallengeCompleted = 0x44001b,
- GuildChallengeUpdate = 0x44001a,
- GuildChangeNameResult = 0x440025,
- GuildCommandResult = 0x440002,
- GuildCriteriaDeleted = 0x44000e,
- GuildCriteriaUpdate = 0x44000b,
- GuildEventBankContentsChanged = 0x440040,
- GuildEventBankMoneyChanged = 0x44003f,
- GuildEventDisbanded = 0x440035,
- GuildEventLogQueryResults = 0x44002a,
- GuildEventMotd = 0x440036,
- GuildEventNewLeader = 0x440034,
- GuildEventPlayerJoined = 0x440032,
- GuildEventPlayerLeft = 0x440033,
- GuildEventPresenceChange = 0x440037,
- GuildEventRanksUpdated = 0x440039,
- GuildEventRankChanged = 0x44003a,
- GuildEventStatusChange = 0x440038,
- GuildEventTabAdded = 0x44003b,
- GuildEventTabDeleted = 0x44003c,
- GuildEventTabModified = 0x44003d,
- GuildEventTabTextChanged = 0x44003e,
- GuildFlaggedForRename = 0x440024,
- GuildHardcoreMemberDeath = 0x440004,
- GuildInvite = 0x440012,
- GuildInviteDeclined = 0x440030,
- GuildInviteExpired = 0x440031,
- GuildItemLootedNotify = 0x44001c,
- GuildKnownRecipes = 0x440006,
- GuildMembersWithRecipe = 0x440007,
- GuildMemberDailyReset = 0x44002c,
- GuildMemberRecipes = 0x440005,
- GuildMemberUpdateNote = 0x440011,
- GuildMoved = 0x440022,
- GuildMoveStarting = 0x440021,
- GuildNameChanged = 0x440023,
- GuildNews = 0x440009,
- GuildNewsDeleted = 0x44000a,
- GuildPartyState = 0x440013,
- GuildPermissionsQueryResults = 0x440029,
- GuildRanks = 0x440010,
- GuildRenameNameCheck = 0x440044,
- GuildRenameRefundResult = 0x440046,
- GuildRenameRequestedResult = 0x440045,
- GuildRenameStatusUpdate = 0x440043,
- GuildReputationReactionChanged = 0x440014,
- GuildReset = 0x440020,
- GuildRewardList = 0x440008,
- GuildRoster = 0x440003,
- GuildSendRankChange = 0x440001,
- HardcoreDeathAlert = 0x380340,
- HealthUpdate = 0x38016b,
- HighestThreatUpdate = 0x380173,
- HotfixConnect = 0x3c0003,
- HotfixMessage = 0x3c0002,
- InitializeFactions = 0x3801bc,
- InitialSetup = 0x380014,
- InitWorldStates = 0x3801de,
- InspectResult = 0x3800c9,
- InstanceEncounterChangePriority = 0x380245,
- InstanceEncounterDisengageUnit = 0x380244,
- InstanceEncounterEnd = 0x38024d,
- InstanceEncounterEngageUnit = 0x380243,
- InstanceEncounterGainCombatResurrectionCharge = 0x38024f,
- InstanceEncounterInCombatResurrection = 0x38024e,
- InstanceEncounterObjectiveComplete = 0x380248,
- InstanceEncounterObjectiveStart = 0x380247,
- InstanceEncounterObjectiveUpdate = 0x38024c,
- InstanceEncounterPhaseShiftChanged = 0x380250,
- InstanceEncounterStart = 0x380249,
- InstanceEncounterTimerStart = 0x380246,
- InstanceEncounterUpdateAllowReleaseInProgress = 0x38024b,
- InstanceEncounterUpdateSuppressRelease = 0x38024a,
- InstanceGroupSizeChanged = 0x380193,
- InstanceInfo = 0x3800cc,
- InstanceReset = 0x380121,
- InstanceResetFailed = 0x380122,
- InstanceSaveCreated = 0x380215,
- InterruptPowerRegen = 0x4e004a,
- InvalidatePageText = 0x3c000a,
- InvalidatePlayer = 0x4b0007,
- InvalidPromotionCode = 0x3801eb,
- InventoryChangeFailure = 0x4f0005,
- InventoryFixupComplete = 0x3802a6,
- InventoryFullOverflow = 0x3802b7,
- IslandAzeriteGain = 0x3801f4,
- IslandComplete = 0x3801f5,
- IsQuestCompleteResponse = 0x4c0004,
- ItemChanged = 0x380184,
- ItemCooldown = 0x38025b,
- ItemEnchantTimeUpdate = 0x3801ed,
- ItemExpirePurchaseRefund = 0x380034,
- ItemInteractionComplete = 0x3802ec,
- ItemPurchaseRefundResult = 0x380032,
- ItemPushResult = 0x3800bb,
- ItemTimeUpdate = 0x3801ec,
- KickReason = 0x380124,
- LatencyReportPing = 0x3802fc,
- LearnedSpells = 0x4e003e,
- LearnPvpTalentFailed = 0x38006d,
- LearnTalentFailed = 0x38006c,
- LegacyLootRules = 0x3802bc,
- LevelLinkingResult = 0x3802d2,
- LevelUpInfo = 0x380182,
- LfgBootPlayer = 0x460019,
- LfgDisabled = 0x460017,
- LfgExpandSearchPrompt = 0x46001f,
- LfgInstanceShutdownCountdown = 0x460009,
- LfgJoinLobbyMatchmakerQueue = 0x460020,
- LfgJoinResult = 0x460000,
- LfgListApplicantListUpdate = 0x46000f,
- LfgListApplicationStatusUpdate = 0x46000c,
- LfgListApplyToGroupResult = 0x46000d,
- LfgListJoinResult = 0x460001,
- LfgListSearchResults = 0x460002,
- LfgListSearchResultsUpdate = 0x460010,
- LfgListSearchStatus = 0x460003,
- LfgListUpdateBlacklist = 0x46000e,
- LfgListUpdateExpiration = 0x46000b,
- LfgListUpdateStatus = 0x46000a,
- LfgOfferContinue = 0x460018,
- LfgPartyInfo = 0x46001a,
- LfgPlayerInfo = 0x46001b,
- LfgPlayerReward = 0x46001c,
- LfgProposalUpdate = 0x460011,
- LfgQueueStatus = 0x460004,
- LfgReadyCheckResult = 0x46001e,
- LfgReadyCheckUpdate = 0x460006,
- LfgRoleCheckUpdate = 0x460005,
- LfgSlotInvalid = 0x460014,
- LfgTeleportDenied = 0x460016,
- LfgUpdateStatus = 0x460008,
- LiveRegionAccountRestoreResult = 0x380207,
- LiveRegionCharacterCopyResult = 0x380206,
- LiveRegionGetAccountCharacterListResult = 0x3801fa,
- LiveRegionKeyBindingsCopyResult = 0x380208,
- LoadCufProfiles = 0x380055,
- LoadEquipmentSet = 0x3801a8,
- LobbyMatchmakerLobbyAcquiredServer = 0x38030d,
- LobbyMatchmakerPartyInfo = 0x38030e,
- LobbyMatchmakerPartyInviteRejected = 0x38030f,
- LobbyMatchmakerQueueProposed = 0x380311,
- LobbyMatchmakerQueueResult = 0x380312,
- LobbyMatchmakerReceiveInvite = 0x380310,
- LoginSetTimeSpeed = 0x3801a7,
- LoginVerifyWorld = 0x38002f,
- LogoutCancelAck = 0x380120,
- LogoutComplete = 0x38011f,
- LogoutResponse = 0x38011e,
- LogXpGain = 0x38017e,
- LootAllPassed = 0x3800b9,
- LootList = 0x3801d9,
- LootMoneyNotify = 0x3800b4,
- LootRelease = 0x3800b3,
- LootReleaseAll = 0x3800b2,
- LootRemoved = 0x3800ae,
- LootResponse = 0x3800ad,
- LootRoll = 0x3800b6,
- LootRollsComplete = 0x3800b8,
- LootRollWon = 0x3800ba,
- LossOfControlAuraUpdate = 0x38010a,
- MailCommandResult = 0x3800d3,
- MailListResult = 0x3801ee,
- MailQueryNextTimeResult = 0x3801ef,
- MapObjectivesInit = 0x3e002a,
- MapObjEvents = 0x38005f,
- MasterLootCandidateList = 0x3800b7,
- MeetingStoneFailed = 0x380313,
- MessageBox = 0x38000a,
- MinimapPing = 0x380168,
- MirrorImageComponentedData = 0x4e0004,
- MirrorImageCreatureData = 0x4e0003,
- MissileCancel = 0x380060,
- ModifyCooldown = 0x3801fc,
- Motd = 0x3d0003,
- MountResult = 0x38000f,
- MovementEnforcementAlert = 0x3802c2,
- MoveAddImpulse = 0x490062,
- MoveApplyInertia = 0x49005e,
- MoveApplyMovementForce = 0x490045,
- MoveDisableCollision = 0x490041,
- MoveDisableDoubleJump = 0x49002b,
- MoveDisableFullSpeedTurning = 0x490075,
- MoveDisableGravity = 0x49003d,
- MoveDisableInertia = 0x49003f,
- MoveDisableTransitionBetweenSwimAndFly = 0x49003c,
- MoveEnableCollision = 0x490042,
- MoveEnableDoubleJump = 0x49002a,
- MoveEnableFullSpeedTurning = 0x490074,
- MoveEnableGravity = 0x49003e,
- MoveEnableInertia = 0x490040,
- MoveEnableTransitionBetweenSwimAndFly = 0x49003b,
- MoveKnockBack = 0x490031,
- MoveRemoveInertia = 0x49005f,
- MoveRemoveMovementForce = 0x490046,
- MoveRoot = 0x490027,
- MoveSetActiveMover = 0x490003,
- MoveSetAdvFlyingAddImpulseMaxSpeed = 0x49006b,
- MoveSetAdvFlyingAirFriction = 0x490066,
- MoveSetAdvFlyingBankingRate = 0x49006c,
- MoveSetAdvFlyingDoubleJumpVelMod = 0x490069,
- MoveSetAdvFlyingGlideStartMinHeight = 0x49006a,
- MoveSetAdvFlyingLaunchSpeedCoefficient = 0x490072,
- MoveSetAdvFlyingLiftCoefficient = 0x490068,
- MoveSetAdvFlyingMaxVel = 0x490067,
- MoveSetAdvFlyingOverMaxDeceleration = 0x490071,
- MoveSetAdvFlyingPitchingRateDown = 0x49006d,
- MoveSetAdvFlyingPitchingRateUp = 0x49006e,
- MoveSetAdvFlyingSurfaceFriction = 0x490070,
- MoveSetAdvFlyingTurnVelocityThreshold = 0x49006f,
- MoveSetCantSwim = 0x490035,
- MoveSetCanAdvFly = 0x490064,
- MoveSetCanDrive = 0x490076,
- MoveSetCanFly = 0x490033,
- MoveSetCanTurnWhileFalling = 0x490037,
- MoveSetCollisionHeight = 0x490043,
- MoveSetCompoundState = 0x490047,
- MoveSetFeatherFall = 0x49002d,
- MoveSetFlightBackSpeed = 0x490023,
- MoveSetFlightSpeed = 0x490022,
- MoveSetHovering = 0x49002f,
- MoveSetIgnoreMovementForces = 0x490039,
- MoveSetLandWalk = 0x49002c,
- MoveSetModMovementForceMagnitude = 0x490014,
- MoveSetNormalFall = 0x49002e,
- MoveSetPitchRate = 0x490026,
- MoveSetRunBackSpeed = 0x49001f,
- MoveSetRunSpeed = 0x49001e,
- MoveSetSwimBackSpeed = 0x490021,
- MoveSetSwimSpeed = 0x490020,
- MoveSetTurnRate = 0x490025,
- MoveSetVehicleRecId = 0x490044,
- MoveSetWalkSpeed = 0x490024,
- MoveSetWaterWalk = 0x490029,
- MoveSkipTime = 0x490048,
- MoveSplineDisableCollision = 0x49004d,
- MoveSplineDisableGravity = 0x49004b,
- MoveSplineEnableCollision = 0x49004e,
- MoveSplineEnableGravity = 0x49004c,
- MoveSplineRoot = 0x490049,
- MoveSplineSetFeatherFall = 0x49004f,
- MoveSplineSetFlightBackSpeed = 0x49001a,
- MoveSplineSetFlightSpeed = 0x490019,
- MoveSplineSetFlying = 0x490059,
- MoveSplineSetHover = 0x490051,
- MoveSplineSetLandWalk = 0x490054,
- MoveSplineSetNormalFall = 0x490050,
- MoveSplineSetPitchRate = 0x49001d,
- MoveSplineSetRunBackSpeed = 0x490016,
- MoveSplineSetRunMode = 0x490057,
- MoveSplineSetRunSpeed = 0x490015,
- MoveSplineSetSwimBackSpeed = 0x490018,
- MoveSplineSetSwimSpeed = 0x490017,
- MoveSplineSetTurnRate = 0x49001c,
- MoveSplineSetWalkMode = 0x490058,
- MoveSplineSetWalkSpeed = 0x49001b,
- MoveSplineSetWaterWalk = 0x490053,
- MoveSplineStartSwim = 0x490055,
- MoveSplineStopSwim = 0x490056,
- MoveSplineUnroot = 0x49004a,
- MoveSplineUnsetFlying = 0x49005a,
- MoveSplineUnsetHover = 0x490052,
- MoveTeleport = 0x490032,
- MoveUnroot = 0x490028,
- MoveUnsetCantSwim = 0x490036,
- MoveUnsetCanAdvFly = 0x490065,
- MoveUnsetCanDrive = 0x490077,
- MoveUnsetCanFly = 0x490034,
- MoveUnsetCanTurnWhileFalling = 0x490038,
- MoveUnsetHovering = 0x490030,
- MoveUnsetIgnoreMovementForces = 0x49003a,
- MoveUpdate = 0x49000e,
- MoveUpdateAddImpulse = 0x490063,
- MoveUpdateApplyInertia = 0x490060,
- MoveUpdateApplyMovementForce = 0x490012,
- MoveUpdateCollisionHeight = 0x49000d,
- MoveUpdateFlightBackSpeed = 0x49000a,
- MoveUpdateFlightSpeed = 0x490009,
- MoveUpdateKnockBack = 0x490010,
- MoveUpdateModMovementForceMagnitude = 0x490011,
- MoveUpdatePitchRate = 0x49000c,
- MoveUpdateRemoveInertia = 0x490061,
- MoveUpdateRemoveMovementForce = 0x490013,
- MoveUpdateRunBackSpeed = 0x490005,
- MoveUpdateRunSpeed = 0x490004,
- MoveUpdateSwimBackSpeed = 0x490008,
- MoveUpdateSwimSpeed = 0x490007,
- MoveUpdateTeleport = 0x49000f,
- MoveUpdateTurnRate = 0x49000b,
- MoveUpdateWalkSpeed = 0x490006,
- MultiFloorLeaveFloor = 0x380272,
- MultiFloorNewFloor = 0x380271,
- MythicPlusAllMapStats = 0x3800a3,
- MythicPlusCurrentAffixes = 0x3800a5,
- MythicPlusNewWeekRecord = 0x3800aa,
- MythicPlusSeasonData = 0x3800a4,
- NeutralPlayerFactionSelectResult = 0x380074,
- NewDataBuild = 0x380337,
- NewTaxiPath = 0x380119,
- NewWorld = 0x38002b,
- NotifyDestLocSpellCast = 0x4e0034,
- NotifyMissileTrajectoryCollision = 0x380145,
- NotifyMoney = 0x380031,
- NotifyReceivedMail = 0x3800d4,
- NpcInteractionOpenResult = 0x380309,
- OfferPetitionError = 0x380150,
- OnCancelExpectedRideVehicleAura = 0x38017f,
- OnMonsterMove = 0x490002,
- OpenArtifactForge = 0x380236,
- OpenContainer = 0x4f0006,
- OpenLfgDungeonFinder = 0x460015,
- OpenShipmentNpcResult = 0x38022e,
- OverrideLight = 0x380155,
- PageText = 0x3801b3,
- PartyCommandResult = 0x380228,
- PartyEligibilityForDelveTiersResponse = 0x38034c,
- PartyInvite = 0x380056,
- PartyKillLog = 0x3801f2,
- PartyMemberFullState = 0x3801f1,
- PartyMemberPartialState = 0x3801f0,
- PartyNotifyLfgLeaderChange = 0x3802f2,
- PartyUpdate = 0x38008c,
- PastTimeEvents = 0x38005b,
- PauseMirrorTimer = 0x3801aa,
- PendingRaidLock = 0x380191,
- PerksProgramActivityComplete = 0x380306,
- PerksProgramActivityUpdate = 0x380302,
- PerksProgramDisabled = 0x380307,
- PerksProgramResult = 0x380303,
- PerksProgramVendorUpdate = 0x380301,
- PetitionAlreadySigned = 0x380037,
- PetitionRenameGuildResponse = 0x440042,
- PetitionShowList = 0x380158,
- PetitionShowSignatures = 0x380159,
- PetitionSignResults = 0x3801e4,
- PetActionFeedback = 0x3801e1,
- PetActionSound = 0x38013b,
- PetBattleChatRestricted = 0x38009a,
- PetBattleDebugQueueDumpResponse = 0x38010f,
- PetBattleFinalizeLocation = 0x380093,
- PetBattleFinalRound = 0x380098,
- PetBattleFinished = 0x380099,
- PetBattleFirstRound = 0x380095,
- PetBattleInitialUpdate = 0x380094,
- PetBattleMaxGameLengthWarning = 0x38009b,
- PetBattlePvpChallenge = 0x380092,
- PetBattleQueueProposeMatch = 0x3800d1,
- PetBattleQueueStatus = 0x3800d2,
- PetBattleReplacementsMade = 0x380097,
- PetBattleRequestFailed = 0x380091,
- PetBattleRoundResult = 0x380096,
- PetBattleSlotUpdates = 0x380084,
- PetCastFailed = 0x4e0049,
- PetClearSpells = 0x4e0013,
- PetDismissSound = 0x38013c,
- PetGodMode = 0x380116,
- PetGuids = 0x38019d,
- PetLearnedSpells = 0x4e0040,
- PetMode = 0x38001f,
- PetNameInvalid = 0x38015d,
- PetNewlyTamed = 0x38001e,
- PetSpellsMessage = 0x4e0014,
- PetStableResult = 0x38002a,
- PetTameFailure = 0x38014d,
- PetUnlearnedSpells = 0x4e0041,
- PhaseShiftChange = 0x38000c,
- PlayedTime = 0x38016f,
- PlayerAckowledgeArrowCallout = 0x4b002d,
- PlayerAzeriteItemEquippedStatusChanged = 0x4b001f,
- PlayerAzeriteItemGains = 0x4b001e,
- PlayerBonusRollFailed = 0x4b0021,
- PlayerBound = 0x4b0000,
- PlayerChoiceClear = 0x4b0006,
- PlayerChoiceDisplayError = 0x4b0005,
- PlayerConditionResult = 0x4b0012,
- PlayerEndOfMatchDetails = 0x4b002f,
- PlayerHideArrowCallout = 0x4b002c,
- PlayerIsAdventureMapPoiValid = 0x4b0011,
- PlayerOpenSubscriptionInterstitial = 0x4b0016,
- PlayerSaveGuildEmblem = 0x440041,
- PlayerSavePersonalEmblem = 0x4b002e,
- PlayerShowArrowCallout = 0x4b002b,
- PlayerShowGenericWidgetDisplay = 0x4b0029,
- PlayerShowPartyPoseUi = 0x4b002a,
- PlayerShowUiEventToast = 0x4b0024,
- PlayerSkinned = 0x4b000e,
- PlayerTutorialHighlightSpell = 0x4b0015,
- PlayerTutorialUnhighlightSpell = 0x4b0014,
- PlayMusic = 0x380201,
- PlayObjectSound = 0x380203,
- PlayOneShotAnimKit = 0x3801c9,
- PlayOrphanSpellVisual = 0x4e0038,
- PlayScene = 0x3800ce,
- PlaySound = 0x380200,
- PlaySpeakerbotSound = 0x380204,
- PlaySpellVisual = 0x4e0036,
- PlaySpellVisualKit = 0x4e003a,
- PlayTimeWarning = 0x380197,
- Pong = 0x3f0006,
- PowerUpdate = 0x38016c,
- PreloadChildMap = 0x38000d,
- PreloadWorld = 0x38002c,
- PrepopulateNameCache = 0x3802c5,
- PreRessurect = 0x3801ff,
- PrintNotification = 0x380063,
- ProcResist = 0x3801f3,
- ProfessionGossip = 0x380292,
- PushSpellToActionBar = 0x4e0042,
- PvpCredit = 0x3e0024,
- PvpMatchComplete = 0x3e002f,
- PvpMatchInitialize = 0x3e0030,
- PvpMatchSetState = 0x3e002e,
- PvpMatchStart = 0x3e002d,
- PvpMatchStatistics = 0x3e0010,
- PvpOptionsEnabled = 0x3e0013,
- PvpTierRecord = 0x3802fd,
- QueryBattlePetNameResponse = 0x3c000c,
- QueryCreatureResponse = 0x3c0006,
- QueryGameObjectResponse = 0x3c0007,
- QueryGarrisonPetNameResponse = 0x420041,
- QueryGuildFollowInfoResponse = 0x44002f,
- QueryGuildInfoResponse = 0x44002d,
- QueryItemTextResponse = 0x3c0010,
- QueryNpcTextResponse = 0x3c0008,
- QueryPageTextResponse = 0x3c0009,
- QueryPetitionResponse = 0x3c000d,
- QueryPetNameResponse = 0x3c000b,
- QueryPlayerNamesResponse = 0x4b0026,
- QueryPlayerNameByCommunityIdResponse = 0x4b000a,
- QueryQuestInfoResponse = 0x4c0016,
- QueryRealmGuildMasterInfoResponse = 0x44002e,
- QueryTimeResponse = 0x38017d,
- QuestCompletionNpcResponse = 0x4c0001,
- QuestConfirmAccept = 0x4c000f,
- QuestForceRemoved = 0x4c001c,
- QuestGiverInvalidQuest = 0x4c0005,
- QuestGiverOfferRewardMessage = 0x4c0014,
- QuestGiverQuestComplete = 0x4c0003,
- QuestGiverQuestDetails = 0x4c0012,
- QuestGiverQuestFailed = 0x4c0006,
- QuestGiverQuestListMessage = 0x4c001a,
- QuestGiverRequestItems = 0x4c0013,
- QuestGiverStatus = 0x4c001b,
- QuestGiverStatusMultiple = 0x4c0011,
- QuestItemUsabilityResponse = 0x4c0002,
- QuestLogFull = 0x4c0007,
- QuestNonLogUpdateComplete = 0x4c0008,
- QuestPoiQueryResponse = 0x4c001d,
- QuestPoiUpdateResponse = 0x4c001f,
- QuestPushResult = 0x4c0010,
- QuestSessionInfoResponse = 0x3802e8,
- QuestSessionReadyCheck = 0x3802d6,
- QuestSessionReadyCheckResponse = 0x3802d7,
- QuestSessionResult = 0x3802d5,
- QuestUpdateAddCredit = 0x4c000c,
- QuestUpdateAddCreditSimple = 0x4c000d,
- QuestUpdateAddPvpCredit = 0x4c000e,
- QuestUpdateComplete = 0x4c0009,
- QuestUpdateFailed = 0x4c000a,
- QuestUpdateFailedTimer = 0x4c000b,
- QueueSummaryUpdate = 0x3802a5,
- RafAccountInfo = 0x3802d3,
- RafActivityStateChanged = 0x3802e4,
- RafDebugFriendMonths = 0x380334,
- RaidDifficultySet = 0x380240,
- RaidGroupOnly = 0x380242,
- RaidInstanceMessage = 0x3d000a,
- RaidMarkersChanged = 0x380038,
- RandomRoll = 0x3800c8,
- RatedPvpInfo = 0x3e000f,
- ReadyCheckCompleted = 0x380090,
- ReadyCheckResponse = 0x38008f,
- ReadyCheckStarted = 0x38008e,
- ReadItemResultFailed = 0x38023c,
- ReadItemResultOk = 0x380233,
- RealmQueryResponse = 0x3c0005,
- ReattachResurrect = 0x3801e3,
- ReceivePingUnit = 0x380039,
- ReceivePingWorldPoint = 0x38003a,
- RecraftItemResult = 0x38032a,
- RecruitAFriendFailure = 0x38015a,
- RefreshComponent = 0x3800e9,
- RegionwideCharacterMailData = 0x38001a,
- RegionwideCharacterRestrictionsData = 0x380019,
- RemoveItemPassive = 0x380043,
- RemoveSpellFromActionBar = 0x4e0043,
- ReplaceTrophyResponse = 0x380258,
- ReportPvpPlayerAfkResult = 0x4b0009,
- RequestCemeteryListResponse = 0x380025,
- RequestPvpRewardsResponse = 0x3e0014,
- RequestScheduledPvpInfoResponse = 0x3e0015,
- ResetCompressionContext = 0x3f0007,
- ResetFailedNotify = 0x380151,
- ResetLastLoadedConfigCvars = 0x380331,
- ResetQuestPoi = 0x4c0020,
- ResetRangedCombatTimer = 0x3e0023,
- ResetWeeklyCurrency = 0x380009,
- RespecWipeConfirm = 0x3800ab,
- RespondInspectAchievements = 0x380006,
- ResponsePerkPendingRewards = 0x380304,
- ResponsePerkRecentPurchases = 0x380305,
- RestartGlobalCooldown = 0x4e0052,
- RestrictedAccountWarning = 0x380052,
- ResumeCast = 0x4e002c,
- ResumeCastBar = 0x4e002f,
- ResumeComms = 0x3f0003,
- ResumeToken = 0x380041,
- ResurrectRequest = 0x380012,
- ResyncRunes = 0x4e0050,
- ReturningPlayerPrompt = 0x38023b,
- ReturnApplicantList = 0x3802c9,
- ReturnRecruitingClubs = 0x3802c8,
- RoleChangedInform = 0x380021,
- RoleChosen = 0x46001d,
- RolePollInform = 0x380022,
- RuneforgeLegendaryCraftingOpenNpc = 0x380291,
- RuneRegenDebug = 0x38004f,
- ScenarioCompleted = 0x38027f,
- ScenarioPois = 0x3800cb,
- ScenarioProgressUpdate = 0x3800c4,
- ScenarioShowCriteria = 0x380295,
- ScenarioState = 0x3800c3,
- ScenarioUiUpdate = 0x380294,
- ScenarioVacate = 0x38023d,
- SceneObjectEvent = 0x38007a,
- SceneObjectPetBattleFinalRound = 0x38007f,
- SceneObjectPetBattleFinished = 0x380080,
- SceneObjectPetBattleFirstRound = 0x38007c,
- SceneObjectPetBattleInitialUpdate = 0x38007b,
- SceneObjectPetBattleReplacementsMade = 0x38007e,
- SceneObjectPetBattleRoundResult = 0x38007d,
- ScheduledAreaPoiUpdateResponse = 0x4b0019,
- ScriptCast = 0x4e0047,
- SeasonInfo = 0x38005a,
- SellResponse = 0x38015e,
- SendItemPassives = 0x380044,
- SendKnownSpells = 0x4e0019,
- SendRaidTargetUpdateAll = 0x3800c6,
- SendRaidTargetUpdateSingle = 0x3800c7,
- SendSpellCharges = 0x4e001b,
- SendSpellHistory = 0x4e001a,
- SendUnlearnSpells = 0x4e001c,
- ServerFirstAchievements = 0x3800e6,
- ServerTime = 0x38011d,
- ServerTimeOffset = 0x3801ae,
- SetupCombatLogFileFlush = 0x4e000f,
- SetupCurrency = 0x380007,
- SetAiAnimKit = 0x3801c8,
- SetAnimTier = 0x3801cc,
- SetChrUpgradeTier = 0x380077,
- SetCurrency = 0x380008,
- SetDfFastLaunchResult = 0x460012,
- SetDungeonDifficulty = 0x38013f,
- SetFactionAtWar = 0x380199,
- SetFactionNotVisible = 0x3801c3,
- SetFactionStanding = 0x3801c4,
- SetFactionVisible = 0x3801c2,
- SetFlatSpellModifier = 0x4e0027,
- SetItemPurchaseData = 0x380033,
- SetLootMethodFailed = 0x380263,
- SetMaxWeeklyQuantity = 0x380036,
- SetMeleeAnimKit = 0x3801cb,
- SetMovementAnimKit = 0x3801ca,
- SetPctSpellModifier = 0x4e0028,
- SetPetSpecialization = 0x3800bd,
- SetPlayerDeclinedNamesResult = 0x4b000b,
- SetPlayHoverAnim = 0x380053,
- SetProficiency = 0x3801cd,
- SetQuestReplayCooldownOverride = 0x3802dc,
- SetShipmentReadyResponse = 0x42003a,
- SetSpellCharges = 0x4e0018,
- SetTimeZoneInformation = 0x380112,
- SetVehicleRecId = 0x380190,
- ShadowlandsCapacitanceUpdate = 0x380308,
- ShipmentFactionUpdateResult = 0x42003b,
- ShowDelvesCompanionConfigurationUi = 0x38034a,
- ShowDelvesDisplayUi = 0x380348,
- ShowNeutralPlayerFactionSelectUi = 0x380073,
- ShowQuestCompletionText = 0x4c0015,
- ShowTaxiNodes = 0x380167,
- ShowTradeSkillResponse = 0x380209,
- SocialContractRequestResponse = 0x380314,
- SocketGemsFailure = 0x3801c0,
- SocketGemsSuccess = 0x3801bf,
- SpecialMountAnim = 0x38013a,
- SpectateEnd = 0x380336,
- SpectatePlayer = 0x380335,
- SpecInvoluntarilyChanged = 0x3801b2,
- SpellAbsorbLog = 0x4e000c,
- SpellCategoryCooldown = 0x4e0006,
- SpellChannelStart = 0x4e0022,
- SpellChannelUpdate = 0x4e0023,
- SpellCooldown = 0x4e0005,
- SpellDamageShield = 0x4e001f,
- SpellDelayed = 0x4e0030,
- SpellDispellLog = 0x4e0007,
- SpellEmpowerSetStage = 0x4e0026,
- SpellEmpowerStart = 0x4e0024,
- SpellEmpowerUpdate = 0x4e0025,
- SpellEnergizeLog = 0x4e0009,
- SpellExecuteLog = 0x4e0031,
- SpellFailedOther = 0x4e0046,
- SpellFailure = 0x4e0044,
- SpellFailureMessage = 0x4e004b,
- SpellGo = 0x4e002a,
- SpellHealAbsorbLog = 0x4e000b,
- SpellHealLog = 0x4e000a,
- SpellInstakillLog = 0x4e0021,
- SpellInterruptLog = 0x4e000d,
- SpellMissLog = 0x4e0032,
- SpellNonMeleeDamageLog = 0x4e0020,
- SpellOrDamageImmune = 0x4e001d,
- SpellPeriodicAuraLog = 0x4e0008,
- SpellPrepare = 0x4e0029,
- SpellStart = 0x4e002b,
- SpellVisualLoadScreen = 0x380065,
- SplashScreenShowLatest = 0x3802ee,
- StandStateUpdate = 0x3801b6,
- StarterBuildActivateFailed = 0x38006b,
- StartElapsedTimer = 0x38009c,
- StartElapsedTimers = 0x38009e,
- StartLightningStorm = 0x380142,
- StartLootRoll = 0x3800b5,
- StartMirrorTimer = 0x3801a9,
- StartTimer = 0x38003d,
- StopElapsedTimer = 0x38009d,
- StopMirrorTimer = 0x3801ab,
- StopSpeakerbotSound = 0x380205,
- StopTimer = 0x38003e,
- StreamingMovies = 0x38003c,
- SuggestInviteInform = 0x380229,
- SummonCancel = 0x38014b,
- SummonRaidMemberValidateFailed = 0x380023,
- SummonRequest = 0x3801ba,
- SupercededSpells = 0x4e003d,
- SuspendComms = 0x3f0002,
- SuspendToken = 0x380040,
- SyncWowEntitlements = 0x3802e6,
- TalentsInvoluntarilyReset = 0x3801b1,
- TaxiNodeStatus = 0x380117,
- TextEmote = 0x380115,
- ThreatClear = 0x380176,
- ThreatRemove = 0x380175,
- ThreatUpdate = 0x380174,
- TimerunningSeasonEnded = 0x38034b,
- TimeAdjustment = 0x490001,
- TimeSyncRequest = 0x490000,
- TitleEarned = 0x380171,
- TitleLost = 0x380172,
- TotemCreated = 0x380161,
- TotemDurationChanged = 0x380163,
- TotemMoved = 0x380164,
- TotemRemoved = 0x380162,
- TradeStatus = 0x380017,
- TradeUpdated = 0x380016,
- TrainerBuyFailed = 0x380179,
- TrainerList = 0x380178,
- TraitConfigCommitFailed = 0x38006a,
- TransferAborted = 0x38019c,
- TransferPending = 0x380066,
- TreasurePickerResponse = 0x3c0011,
- TriggerCinematic = 0x38025d,
- TriggerMovie = 0x380165,
- TurnInPetitionResult = 0x3801e6,
- TutorialFlags = 0x380251,
- UiAction = 0x380202,
- UiMapQuestLinesResponse = 0x4c0023,
- UndeleteCharacterResponse = 0x38025e,
- UndeleteCooldownStatusResponse = 0x38025f,
- UnlearnedSpells = 0x4e003f,
- UnloadChildMap = 0x38000e,
- UpdateAadcStatusResponse = 0x3802fe,
- UpdateAccountData = 0x3801a2,
- UpdateAccountDataComplete = 0x3801a3,
- UpdateActionButtons = 0x380078,
- UpdateBnetSessionKey = 0x3802b6,
- UpdateCapturePoint = 0x3e0007,
- UpdateCelestialBody = 0x3802b2,
- UpdateCharacterFlags = 0x380257,
- UpdateChargeCategoryCooldown = 0x3801fe,
- UpdateCooldown = 0x3801fd,
- UpdateCraftingNpcRecipes = 0x420038,
- UpdateDailyMissionCounter = 0x420021,
- UpdateExpansionLevel = 0x3800de,
- UpdateGameTimeState = 0x3802b9,
- UpdateInstanceOwnership = 0x380144,
- UpdateLastInstance = 0x380123,
- UpdateObject = 0x480000,
- UpdatePrimarySpec = 0x380070,
- UpdateRecentPlayerGuids = 0x38008d,
- UpdateTalentData = 0x38006f,
- UpdateWorldState = 0x3801e0,
- UserlistAdd = 0x3d000f,
- UserlistRemove = 0x3d0010,
- UserlistUpdate = 0x3d0011,
- UseEquipmentSetResult = 0x3801e7,
- VasCheckTransferOkResponse = 0x3802ad,
- VasGetQueueMinutesResponse = 0x3802ab,
- VasGetServiceStatusResponse = 0x3802aa,
- VasPurchaseComplete = 0x380285,
- VasPurchaseStateUpdate = 0x380284,
- VendorInventory = 0x380051,
- VignetteUpdate = 0x4b0010,
- VoiceChannelInfoResponse = 0x3802b1,
- VoiceChannelSttTokenResponse = 0x3802f9,
- VoiceLoginResponse = 0x3802b0,
- VoidItemSwapResponse = 0x4f0004,
- VoidStorageContents = 0x4f0001,
- VoidStorageFailed = 0x4f0000,
- VoidStorageTransferChanges = 0x4f0002,
- VoidTransferResult = 0x4f0003,
- WaitQueueFinish = 0x380003,
- WaitQueueUpdate = 0x380002,
- Warden3Data = 0x38000b,
- Warden3Disabled = 0x3802b4,
- Warden3Enabled = 0x3802b3,
- WarfrontComplete = 0x3801f6,
- WargameRequestOpponentResponse = 0x3e0012,
- WargameRequestSuccessfullySentToOpponent = 0x3e0011,
- Weather = 0x380141,
- WeeklyRewardsProgressResult = 0x3802f1,
- WeeklyRewardsResult = 0x3802ef,
- WeeklyRewardClaimResult = 0x3802f0,
- Who = 0x3d0002,
- WhoIs = 0x380140,
- WillBeKickedForAddedSubscriptionTime = 0x3802b8,
- WorldQuestUpdateResponse = 0x4b0017,
- WorldServerInfo = 0x380045,
- WowEntitlementNotification = 0x3802e7,
- WowLabsAreaInfo = 0x380319,
- WowLabsNotifyPlayersMatchEnd = 0x380315,
- WowLabsNotifyPlayersMatchStateChanged = 0x380316,
- WowLabsPartyError = 0x380322,
- WowLabsSetAreaIdResult = 0x380317,
- WowLabsSetPredictionCircle = 0x38031b,
- WowLabsSetSelectedAreaId = 0x380318,
- XpAwardedFromCurrency = 0x380330,
- XpGainAborted = 0x380062,
- XpGainEnabled = 0x380241,
- ZoneUnderAttack = 0x3d000b,
+ AbortNewWorld = 0x360030,
+ AccountCharacterCurrencyLists = 0x360346,
+ AccountConversionStateUpdate = 0x36034b,
+ AccountCosmeticAdded = 0x3602ff,
+ AccountCriteriaUpdate = 0x3602e7,
+ AccountDataTimes = 0x3601a8,
+ AccountExportResponse = 0x360337,
+ AccountItemCollectionData = 0x360351,
+ AccountMountRemoved = 0x360047,
+ AccountMountUpdate = 0x360046,
+ AccountNotificationsResponse = 0x3602fe,
+ AccountStoreCurrencyUpdate = 0x360320,
+ AccountStoreFrontUpdate = 0x360321,
+ AccountStoreItemStateChanged = 0x360322,
+ AccountStoreResult = 0x360323,
+ AccountToyUpdate = 0x360048,
+ AccountTransmogSetFavoritesUpdate = 0x36004c,
+ AccountTransmogUpdate = 0x36004b,
+ AccountWarbandSceneUpdate = 0x36004e,
+ AchievementDeleted = 0x360185,
+ AchievementEarned = 0x3600e0,
+ ActivateEssenceFailed = 0x4a0020,
+ ActivateSoulbindFailed = 0x4a0022,
+ ActivateTaxiReply = 0x36011c,
+ ActiveGlyphs = 0x4d0045,
+ ActiveScheduledWorldStateInfo = 0x3601e3,
+ AddonListRequest = 0x3600df,
+ AddBattlenetFriendResponse = 0x3600da,
+ AddItemPassive = 0x360042,
+ AddLossOfControl = 0x36010f,
+ AddRunePower = 0x360156,
+ AdjustSplineDuration = 0x360069,
+ AdvancedCombatLog = 0x3602fc,
+ AdventureJournalDataResponse = 0x3602f7,
+ AeLootTargets = 0x3600b5,
+ AeLootTargetAck = 0x3600b6,
+ AiReaction = 0x360153,
+ AlliedRaceDetails = 0x360291,
+ AllAccountCriteria = 0x360005,
+ AllAchievementData = 0x360004,
+ AllGuildAchievements = 0x420000,
+ ApplyMountEquipmentResult = 0x3602d4,
+ ArchaeologySurveryCast = 0x36001d,
+ AreaPoiUpdateResponse = 0x4a0018,
+ AreaSpiritHealerTime = 0x3601dc,
+ AreaTriggerDenied = 0x370004,
+ AreaTriggerNoCorpse = 0x3601b4,
+ AreaTriggerPlaySpellVisual = 0x370002,
+ AreaTriggerUpdateDecalProperties = 0x370003,
+ ArenaClearOpponents = 0x3600e6,
+ ArenaCrowdControlSpellResult = 0x3600cf,
+ ArenaPrepOpponentSpecializations = 0x3600e5,
+ ArtifactEndgamePowersRefunded = 0x36023e,
+ ArtifactForgeError = 0x36023c,
+ ArtifactRespecPrompt = 0x36023d,
+ ArtifactXpGain = 0x360284,
+ AttackerStateUpdate = 0x3c002c,
+ AttackStart = 0x3c0017,
+ AttackStop = 0x3c0018,
+ AttackSwingError = 0x3c0026,
+ AttackSwingLandedLog = 0x3c0027,
+ AuctionableTokenAuctionSold = 0x36026d,
+ AuctionableTokenSellAtMarketPriceResponse = 0x36026c,
+ AuctionableTokenSellConfirmRequired = 0x36026b,
+ AuctionClosedNotification = 0x360190,
+ AuctionCommandResult = 0x36018d,
+ AuctionDisableNewPostings = 0x360324,
+ AuctionFavoriteList = 0x3602ee,
+ AuctionGetCommodityQuoteResult = 0x3602e6,
+ AuctionHelloResponse = 0x36018b,
+ AuctionListBiddedItemsResult = 0x3602e5,
+ AuctionListBucketsResult = 0x3602e1,
+ AuctionListItemsResult = 0x3602e2,
+ AuctionListOwnedItemsResult = 0x3602e4,
+ AuctionOutbidNotification = 0x36018f,
+ AuctionOwnerBidNotification = 0x360191,
+ AuctionReplicateResponse = 0x36018c,
+ AuctionWonNotification = 0x36018e,
+ AuraPointsDepleted = 0x4d0012,
+ AuraUpdate = 0x4d0011,
+ AuthChallenge = 0x3d0000,
+ AuthFailed = 0x360000,
+ AuthResponse = 0x360001,
+ AvailableHotfixes = 0x3a0001,
+ BackpackDefaultSizeChanged = 0x360325,
+ BagCleanupFinished = 0x4e0007,
+ BarberShopResult = 0x36015b,
+ BatchPresenceSubscription = 0x3602c5,
+ BattlefieldList = 0x3c0005,
+ BattlefieldPortDenied = 0x3c000b,
+ BattlefieldStatusActive = 0x3c0001,
+ BattlefieldStatusFailed = 0x3c0004,
+ BattlefieldStatusGroupProposalFailed = 0x3c000e,
+ BattlefieldStatusNeedConfirmation = 0x3c0000,
+ BattlefieldStatusNone = 0x3c0003,
+ BattlefieldStatusQueued = 0x3c0002,
+ BattlefieldStatusWaitForGroups = 0x3c000d,
+ BattlegroundInfoThrottled = 0x3c000c,
+ BattlegroundInit = 0x3c0029,
+ BattlegroundPlayerJoined = 0x3c0009,
+ BattlegroundPlayerLeft = 0x3c000a,
+ BattlegroundPlayerPositions = 0x3c0006,
+ BattlegroundPoints = 0x3c0028,
+ BattlenetChallengeAbort = 0x360226,
+ BattlenetChallengeStart = 0x360225,
+ BattlenetNotification = 0x36029d,
+ BattlenetResponse = 0x36029c,
+ BattleNetConnectionStatus = 0x36029e,
+ BattlePayAckFailed = 0x360221,
+ BattlePayBattlePetDelivered = 0x360216,
+ BattlePayCollectionItemDelivered = 0x360217,
+ BattlePayConfirmPurchase = 0x360220,
+ BattlePayDeliveryEnded = 0x360214,
+ BattlePayDeliveryStarted = 0x360213,
+ BattlePayDistributionAssignVasResponse = 0x360304,
+ BattlePayDistributionUnrevoked = 0x360211,
+ BattlePayDistributionUpdate = 0x360212,
+ BattlePayGetDistributionListResponse = 0x360210,
+ BattlePayGetProductListResponse = 0x36020e,
+ BattlePayGetPurchaseListResponse = 0x36020f,
+ BattlePayMountDelivered = 0x360215,
+ BattlePayPurchaseUpdate = 0x36021f,
+ BattlePayStartCheckout = 0x3602b9,
+ BattlePayStartDistributionAssignToTargetResponse = 0x36021d,
+ BattlePayStartPurchaseResponse = 0x36021c,
+ BattlePayValidatePurchaseResponse = 0x3602ad,
+ BattlePetsHealed = 0x36008b,
+ BattlePetCageDateError = 0x360117,
+ BattlePetDeleted = 0x360088,
+ BattlePetError = 0x3600d5,
+ BattlePetJournal = 0x360087,
+ BattlePetJournalLockAcquired = 0x360085,
+ BattlePetJournalLockDenied = 0x360086,
+ BattlePetRestored = 0x36008a,
+ BattlePetRevoked = 0x360089,
+ BattlePetTrapLevel = 0x360083,
+ BattlePetUpdates = 0x360082,
+ BindPointUpdate = 0x360011,
+ BlackMarketBidOnItemResult = 0x3600c5,
+ BlackMarketOutbid = 0x3600c6,
+ BlackMarketRequestItemsResult = 0x3600c4,
+ BlackMarketWon = 0x3600c7,
+ BonusRollEmpty = 0x3600e2,
+ BossKill = 0x3c002b,
+ BreakTarget = 0x3c0016,
+ BroadcastAchievement = 0x3b0012,
+ BroadcastSummonCast = 0x3602c7,
+ BroadcastSummonResponse = 0x3602c8,
+ BuyFailed = 0x360164,
+ BuySucceeded = 0x360163,
+ CacheInfo = 0x3a000f,
+ CacheVersion = 0x3a000e,
+ CalendarClearPendingAction = 0x36013c,
+ CalendarCommandResult = 0x36013d,
+ CalendarCommunityInvite = 0x36012c,
+ CalendarEventRemovedAlert = 0x360134,
+ CalendarEventUpdatedAlert = 0x360135,
+ CalendarInviteAdded = 0x36012d,
+ CalendarInviteAlert = 0x360131,
+ CalendarInviteNotes = 0x360136,
+ CalendarInviteNotesAlert = 0x360137,
+ CalendarInviteRemoved = 0x36012e,
+ CalendarInviteRemovedAlert = 0x360133,
+ CalendarInviteStatus = 0x36012f,
+ CalendarInviteStatusAlert = 0x360132,
+ CalendarModeratorStatus = 0x360130,
+ CalendarRaidLockoutAdded = 0x360138,
+ CalendarRaidLockoutRemoved = 0x360139,
+ CalendarRaidLockoutUpdated = 0x36013a,
+ CalendarSendCalendar = 0x36012a,
+ CalendarSendEvent = 0x36012b,
+ CalendarSendNumPending = 0x36013b,
+ CameraEffect = 0x3601c2,
+ CancelAutoRepeat = 0x36017b,
+ CancelCombat = 0x3c0025,
+ CancelOrphanSpellVisual = 0x4d0037,
+ CancelPingPin = 0x36003b,
+ CancelPreloadWorld = 0x36002e,
+ CancelScene = 0x3600d4,
+ CancelSpellVisual = 0x4d0035,
+ CancelSpellVisualKit = 0x4d0039,
+ CanDuelResult = 0x3c0021,
+ CanRedeemTokenForBalanceResponse = 0x3602ac,
+ CapturePointRemoved = 0x3c0008,
+ CastFailed = 0x4d0048,
+ CasRefreshRemoteData = 0x360115,
+ CautionaryChannelMessage = 0x3b0009,
+ CautionaryChatMessage = 0x3b0008,
+ ChainMissileBounce = 0x360061,
+ ChallengeModeComplete = 0x3600a6,
+ ChallengeModeNewPlayerRecord = 0x3600a7,
+ ChallengeModeRequestLeadersResult = 0x3600ad,
+ ChallengeModeReset = 0x3600a5,
+ ChallengeModeSetLeaverPenaltyTimer = 0x4a0030,
+ ChallengeModeStart = 0x3600a3,
+ ChallengeModeUpdateDeathCount = 0x3600a4,
+ ChangePlayerDifficultyResult = 0x4a000c,
+ ChangeRealmTicketResponse = 0x36029f,
+ ChannelList = 0x3b001b,
+ ChannelNotify = 0x3b0017,
+ ChannelNotifyJoined = 0x3b0019,
+ ChannelNotifyLeft = 0x3b001a,
+ ChannelNotifyNpeJoinedBatch = 0x3b0018,
+ CharacterCheckUpgradeResult = 0x360259,
+ CharacterLoginFailed = 0x3601a2,
+ CharacterObjectTestResponse = 0x360224,
+ CharacterRenameResult = 0x3601ff,
+ CharacterUpgradeAborted = 0x360258,
+ CharacterUpgradeComplete = 0x360257,
+ CharacterUpgradeManualUnrevokeResult = 0x36025a,
+ CharacterUpgradeStarted = 0x360256,
+ CharCustomizeFailure = 0x36017f,
+ CharCustomizeSuccess = 0x360180,
+ CharFactionChangeResult = 0x360243,
+ Chat = 0x3b0001,
+ ChatAutoResponded = 0x3b000e,
+ ChatCanLocalWhisperTargetResponse = 0x3b0022,
+ ChatDown = 0x3b0014,
+ ChatIgnoredAccountMuted = 0x3b0000,
+ ChatIsDown = 0x3b0015,
+ ChatNotInGuild = 0x3b0023,
+ ChatNotInParty = 0x3b0006,
+ ChatPlayerAmbiguous = 0x3b0004,
+ ChatPlayerNotfound = 0x3b000d,
+ ChatReconnect = 0x3b0016,
+ ChatRegionalServiceStatus = 0x3b001d,
+ ChatRestricted = 0x3b0007,
+ ChatServerMessage = 0x3b001c,
+ CheatIgnoreDimishingReturns = 0x4d0002,
+ CheckAbandonNpe = 0x4a0023,
+ CheckCharacterNameAvailabilityResult = 0x36001b,
+ CheckWargameEntry = 0x360027,
+ ChromieTimeSelectExpansionSuccess = 0x3602f1,
+ ClaimRafRewardResponse = 0x3602d8,
+ ClearAllSpellCharges = 0x4d0016,
+ ClearBossEmotes = 0x360054,
+ ClearCooldown = 0x360158,
+ ClearCooldowns = 0x4d0015,
+ ClearResurrect = 0x360013,
+ ClearSpellCharges = 0x4d0017,
+ ClearTarget = 0x3c0022,
+ ClearTreasurePickerCache = 0x4b0022,
+ CloseArtifactForge = 0x36023b,
+ ClubFinderErrorMessage = 0x3602d0,
+ ClubFinderGetClubPostingIdsResponse = 0x3602d3,
+ ClubFinderLookupClubPostingsList = 0x3602d1,
+ ClubFinderResponseCharacterApplicationList = 0x3602ce,
+ ClubFinderResponsePostRecruitmentMessage = 0x3602d2,
+ ClubFinderUpdateApplications = 0x3602cf,
+ ClubFinderWhisperApplicantResponse = 0x360310,
+ CoinRemoved = 0x3600b4,
+ CombatEventFailed = 0x3c0019,
+ CommentatorMapInfo = 0x3601a4,
+ CommentatorPlayerInfo = 0x3601a5,
+ CommentatorStateChanged = 0x3601a3,
+ CommerceTokenGetCountResponse = 0x360268,
+ CommerceTokenGetLogResponse = 0x360274,
+ CommerceTokenGetMarketPriceResponse = 0x36026a,
+ CommerceTokenUpdate = 0x360269,
+ ComplaintResult = 0x36014a,
+ CompleteShipmentResponse = 0x360234,
+ ConfirmPartyInvite = 0x3602ab,
+ ConnectTo = 0x3d0005,
+ ConsoleWrite = 0x3600d2,
+ ConsumableTokenBuyAtMarketPriceResponse = 0x360270,
+ ConsumableTokenBuyChoiceRequired = 0x36026f,
+ ConsumableTokenCanVeteranBuyResponse = 0x36026e,
+ ConsumableTokenRedeemConfirmRequired = 0x360272,
+ ConsumableTokenRedeemResponse = 0x360273,
+ ContactList = 0x360222,
+ ContributionLastUpdateResponse = 0x3602b2,
+ ControlUpdate = 0x3600e4,
+ ConvertItemsToCurrencyValue = 0x3602fa,
+ CooldownCheat = 0x3601d5,
+ CooldownEvent = 0x360157,
+ CorpseLocation = 0x3600eb,
+ CorpseReclaimDelay = 0x3601e6,
+ CorpseTransportQuery = 0x3601b0,
+ CovenantCallingsAvailabilityResponse = 0x4b0024,
+ CovenantPreviewOpenNpc = 0x360294,
+ CovenantRenownSendCatchupState = 0x3602fb,
+ CraftingHouseHelloResponse = 0x360331,
+ CraftingOrderCancelResult = 0x36032d,
+ CraftingOrderClaimResult = 0x360329,
+ CraftingOrderCraftResult = 0x36032b,
+ CraftingOrderCreateResult = 0x360327,
+ CraftingOrderFulfillResult = 0x36032c,
+ CraftingOrderListOrdersResponse = 0x360328,
+ CraftingOrderNpcRewardInfo = 0x360333,
+ CraftingOrderRejectResult = 0x36032f,
+ CraftingOrderReleaseResult = 0x36032a,
+ CraftingOrderUpdateState = 0x360332,
+ CraftEnchantResult = 0x360330,
+ CreateChar = 0x36019e,
+ CreateShipmentResponse = 0x360233,
+ CreatorVisualsOverride = 0x360336,
+ CriteriaDeleted = 0x360184,
+ CriteriaUpdate = 0x36017e,
+ CrossedInebriationThreshold = 0x36015f,
+ CurrencyTransferLog = 0x360348,
+ CurrencyTransferResult = 0x360347,
+ CustomLoadScreen = 0x360064,
+ DailyQuestsReset = 0x4b0000,
+ DamageCalcLog = 0x4d0054,
+ DbReply = 0x3a0000,
+ DeathReleaseLoc = 0x360171,
+ DebugMenuManagerFullUpdate = 0x3600f3,
+ DefenseMessage = 0x3b000c,
+ DeleteChar = 0x36019f,
+ DeleteExpiredMissionsResult = 0x400022,
+ DelvesAccountDataElementChanged = 0x36034d,
+ DestroyArenaUnit = 0x3601de,
+ DestructibleBuildingDamage = 0x360196,
+ DifferentInstanceFromParty = 0x360020,
+ DisenchantCredit = 0x36003f,
+ DismountResult = 0x360010,
+ DispelFailed = 0x4d001e,
+ DisplayGameError = 0x360035,
+ DisplayPlayerChoice = 0x4a0004,
+ DisplayPromotion = 0x3600e8,
+ DisplayQuestPopup = 0x4b001e,
+ DisplayToast = 0x3600c1,
+ DisplayWorldText = 0x360285,
+ DisplayWorldTextOnTarget = 0x4d0053,
+ DontAutoPushSpellsToActionBar = 0x360079,
+ DropNewConnection = 0x3d0004,
+ DuelArranged = 0x3c001b,
+ DuelComplete = 0x3c001f,
+ DuelCountdown = 0x3c001e,
+ DuelInBounds = 0x3c001d,
+ DuelOutOfBounds = 0x3c001c,
+ DuelRequested = 0x3c001a,
+ DuelWinner = 0x3c0020,
+ DurabilityDamageDeath = 0x3601e1,
+ Emote = 0x360260,
+ EnableBarberShop = 0x36015a,
+ EnchantmentLog = 0x3601b1,
+ EncounterEnd = 0x36021b,
+ EncounterStart = 0x36021a,
+ EndLightningStorm = 0x360147,
+ EnterEncryptedMode = 0x3d0001,
+ EnumCharactersResult = 0x360018,
+ EnumVasPurchaseStatesResponse = 0x36028a,
+ EnvironmentalDamageLog = 0x4d000e,
+ EquipmentSetId = 0x360150,
+ ExpectedSpamRecords = 0x3b0005,
+ ExplorationExperience = 0x3601fb,
+ ExportAccountProfile = 0x3600f0,
+ ExternalTransactionIdGenerated = 0x3602f8,
+ FactionBonusInfo = 0x3601c1,
+ FailedPlayerCondition = 0x4a0002,
+ FailedQuestTurnIn = 0x3602a8,
+ FeatureSystemStatus = 0x360058,
+ FeatureSystemStatus2 = 0x360345,
+ FeatureSystemStatusGlueScreen = 0x360059,
+ FeignDeathResisted = 0x3601e0,
+ FishEscaped = 0x36016e,
+ FishNotHooked = 0x36016d,
+ FlightSplineSync = 0x48005b,
+ FlushCombatLogFile = 0x4d0010,
+ ForcedDeathUpdate = 0x360172,
+ ForceAnim = 0x3601ed,
+ ForceAnimations = 0x3601ee,
+ ForceRandomTransmogToast = 0x36004a,
+ ForceSpawnTrackingUpdate = 0x4b0021,
+ FriendStatus = 0x360223,
+ GainMawPower = 0x360279,
+ GameObjectActivateAnimKit = 0x36005c,
+ GameObjectBase = 0x3602bf,
+ GameObjectCloseInteraction = 0x36030f,
+ GameObjectCustomAnim = 0x36005d,
+ GameObjectDespawn = 0x36005e,
+ GameObjectInteraction = 0x36030e,
+ GameObjectPlaySpellVisual = 0x4d003c,
+ GameObjectPlaySpellVisualKit = 0x4d003b,
+ GameObjectResetState = 0x3601bb,
+ GameObjectSetStateLocal = 0x36029b,
+ GameSpeedSet = 0x360120,
+ GameTimeSet = 0x3601aa,
+ GameTimeUpdate = 0x3601a9,
+ GarrisonActivateMissionBonusAbility = 0x400024,
+ GarrisonAddEvent = 0x400048,
+ GarrisonAddFollowerResult = 0x400016,
+ GarrisonAddMissionResult = 0x40001a,
+ GarrisonAddSpecGroups = 0x40004b,
+ GarrisonApplyTalentSocketDataChanges = 0x40004f,
+ GarrisonAssignFollowerToBuildingResult = 0x40002c,
+ GarrisonAutoTroopMinLevelUpdateResult = 0x400051,
+ GarrisonBuildingActivated = 0x40000b,
+ GarrisonBuildingRemoved = 0x400004,
+ GarrisonBuildingSetActiveSpecializationResult = 0x400006,
+ GarrisonChangeMissionStartTimeResult = 0x40001d,
+ GarrisonClearCollection = 0x400047,
+ GarrisonClearEventList = 0x40004a,
+ GarrisonClearSpecGroups = 0x40004c,
+ GarrisonCollectionRemoveEntry = 0x400046,
+ GarrisonCollectionUpdateEntry = 0x400045,
+ GarrisonCompleteBuildingConstructionResult = 0x40003d,
+ GarrisonCompleteMissionResult = 0x40001c,
+ GarrisonCreateResult = 0x40000c,
+ GarrisonDeleteMissionResult = 0x400023,
+ GarrisonDeleteResult = 0x400035,
+ GarrisonFollowerActivationsSet = 0x40002b,
+ GarrisonFollowerChangedFlags = 0x400029,
+ GarrisonFollowerChangedItemLevel = 0x400027,
+ GarrisonFollowerChangedQuality = 0x400028,
+ GarrisonFollowerChangedXp = 0x400026,
+ GarrisonFollowerFatigueCleared = 0x40002a,
+ GarrisonGenerateFollowersResult = 0x400033,
+ GarrisonGetClassSpecCategoryInfoResult = 0x400015,
+ GarrisonGetRecallPortalLastUsedTimeResult = 0x40001e,
+ GarrisonIsUpgradeableResponse = 0x40003f,
+ GarrisonLearnBlueprintResult = 0x400007,
+ GarrisonLearnSpecializationResult = 0x400005,
+ GarrisonListCompletedMissionsCheatResult = 0x400040,
+ GarrisonListFollowersCheatResult = 0x400019,
+ GarrisonMapDataResponse = 0x400042,
+ GarrisonMissionBonusRollResult = 0x400020,
+ GarrisonMissionRequestRewardInfoResponse = 0x400043,
+ GarrisonMissionStartConditionUpdate = 0x400025,
+ GarrisonOpenCrafter = 0x400037,
+ GarrisonOpenRecruitmentNpc = 0x400030,
+ GarrisonPlaceBuildingResult = 0x400003,
+ GarrisonPlotPlaced = 0x400001,
+ GarrisonPlotRemoved = 0x400002,
+ GarrisonRecruitFollowerResult = 0x400034,
+ GarrisonRemoteInfo = 0x40000a,
+ GarrisonRemoveEvent = 0x400049,
+ GarrisonRemoveFollowerAbilityResult = 0x40002f,
+ GarrisonRemoveFollowerFromBuildingResult = 0x40002d,
+ GarrisonRemoveFollowerResult = 0x400017,
+ GarrisonRenameFollowerResult = 0x40002e,
+ GarrisonRequestBlueprintAndSpecializationDataResult = 0x400009,
+ GarrisonResearchTalentResult = 0x40000e,
+ GarrisonResetTalentTree = 0x400013,
+ GarrisonResetTalentTreeSocketData = 0x400014,
+ GarrisonStartMissionResult = 0x40001b,
+ GarrisonSwapBuildingsResponse = 0x40003c,
+ GarrisonSwitchTalentTreeBranch = 0x40004d,
+ GarrisonTalentCompleted = 0x40000f,
+ GarrisonTalentRemoved = 0x400010,
+ GarrisonTalentRemoveSocketData = 0x400012,
+ GarrisonTalentUpdateSocketData = 0x400011,
+ GarrisonTalentWorldQuestUnlocksResponse = 0x40004e,
+ GarrisonUnlearnBlueprintResult = 0x400008,
+ GarrisonUpdateFollower = 0x400018,
+ GarrisonUpdateGarrisonMonumentSelections = 0x40003e,
+ GarrisonUpdateMissionCheatResult = 0x400050,
+ GarrisonUpgradeResult = 0x40000d,
+ GarrisonUseRecallPortalResult = 0x40001f,
+ GenerateRandomCharacterNameResult = 0x36001c,
+ GenerateSsoTokenResponse = 0x3602b3,
+ GetAccountCharacterListResult = 0x3601fd,
+ GetGarrisonInfoResult = 0x400000,
+ GetLandingPageShipmentsResponse = 0x360236,
+ GetRealmHiddenResult = 0x36033c,
+ GetRemainingGameTimeResponse = 0x360271,
+ GetSelectedTrophyIdResponse = 0x36025e,
+ GetShipmentsOfTypeResponse = 0x360235,
+ GetShipmentInfoResponse = 0x360231,
+ GetTrophyListResponse = 0x36025d,
+ GetVasAccountCharacterListResult = 0x360286,
+ GetVasTransferTargetRealmListResult = 0x360287,
+ GmPlayerInfo = 0x4a000d,
+ GmRequestPlayerInfo = 0x4a0003,
+ GmTicketCaseStatus = 0x360142,
+ GmTicketSystemStatus = 0x360141,
+ GodMode = 0x360199,
+ GossipComplete = 0x4b0017,
+ GossipMessage = 0x4b0018,
+ GossipOptionNpcInteraction = 0x4b0028,
+ GossipPoi = 0x36022e,
+ GossipQuestUpdate = 0x4b0019,
+ GossipRefreshOptions = 0x4b0027,
+ GroupActionThrottled = 0x360024,
+ GroupAutoKick = 0x36022b,
+ GroupDecline = 0x360227,
+ GroupDestroyed = 0x36022a,
+ GroupNewLeader = 0x3600ca,
+ GroupRequestDecline = 0x360228,
+ GroupUninvite = 0x360229,
+ GuildAchievementDeleted = 0x42000d,
+ GuildAchievementEarned = 0x42000c,
+ GuildAchievementMembers = 0x42000f,
+ GuildBankLogQueryResults = 0x420027,
+ GuildBankQueryResults = 0x420026,
+ GuildBankRemainingWithdrawMoney = 0x420028,
+ GuildBankTextQueryResult = 0x42002b,
+ GuildChallengeCompleted = 0x42001b,
+ GuildChallengeUpdate = 0x42001a,
+ GuildChangeNameResult = 0x420025,
+ GuildCommandResult = 0x420002,
+ GuildCriteriaDeleted = 0x42000e,
+ GuildCriteriaUpdate = 0x42000b,
+ GuildEventBankContentsChanged = 0x420040,
+ GuildEventBankMoneyChanged = 0x42003f,
+ GuildEventDisbanded = 0x420035,
+ GuildEventLogQueryResults = 0x42002a,
+ GuildEventMotd = 0x420036,
+ GuildEventNewLeader = 0x420034,
+ GuildEventPlayerJoined = 0x420032,
+ GuildEventPlayerLeft = 0x420033,
+ GuildEventPresenceChange = 0x420037,
+ GuildEventRanksUpdated = 0x420039,
+ GuildEventRankChanged = 0x42003a,
+ GuildEventStatusChange = 0x420038,
+ GuildEventTabAdded = 0x42003b,
+ GuildEventTabDeleted = 0x42003c,
+ GuildEventTabModified = 0x42003d,
+ GuildEventTabTextChanged = 0x42003e,
+ GuildFlaggedForRename = 0x420024,
+ GuildHardcoreMemberDeath = 0x420004,
+ GuildInvite = 0x420012,
+ GuildInviteDeclined = 0x420030,
+ GuildInviteExpired = 0x420031,
+ GuildItemLootedNotify = 0x42001c,
+ GuildKnownRecipes = 0x420006,
+ GuildMembersWithRecipe = 0x420007,
+ GuildMemberDailyReset = 0x42002c,
+ GuildMemberRecipes = 0x420005,
+ GuildMemberUpdateNote = 0x420011,
+ GuildMoved = 0x420022,
+ GuildMoveStarting = 0x420021,
+ GuildNameChanged = 0x420023,
+ GuildNews = 0x420009,
+ GuildNewsDeleted = 0x42000a,
+ GuildPartyState = 0x420013,
+ GuildPermissionsQueryResults = 0x420029,
+ GuildRanks = 0x420010,
+ GuildRenameNameCheck = 0x420044,
+ GuildRenameRefundResult = 0x420046,
+ GuildRenameRequestedResult = 0x420045,
+ GuildRenameStatusUpdate = 0x420043,
+ GuildReputationReactionChanged = 0x420014,
+ GuildReset = 0x420020,
+ GuildRewardList = 0x420008,
+ GuildRoster = 0x420003,
+ GuildSendRankChange = 0x420001,
+ HardcoreDeathAlert = 0x360344,
+ HealthUpdate = 0x36016f,
+ HighestThreatUpdate = 0x360177,
+ HotfixConnect = 0x3a0003,
+ HotfixMessage = 0x3a0002,
+ InitializeFactions = 0x3601c0,
+ InitialSetup = 0x360014,
+ InitWorldStates = 0x3601e2,
+ InspectResult = 0x3600ce,
+ InstanceAbandonVoteCompleted = 0x360093,
+ InstanceAbandonVotePlayerLeft = 0x360094,
+ InstanceAbandonVoteResponse = 0x360092,
+ InstanceAbandonVoteStarted = 0x360091,
+ InstanceEncounterChangePriority = 0x360249,
+ InstanceEncounterDisengageUnit = 0x360248,
+ InstanceEncounterEnd = 0x360251,
+ InstanceEncounterEngageUnit = 0x360247,
+ InstanceEncounterGainCombatResurrectionCharge = 0x360253,
+ InstanceEncounterInCombatResurrection = 0x360252,
+ InstanceEncounterObjectiveComplete = 0x36024c,
+ InstanceEncounterObjectiveStart = 0x36024b,
+ InstanceEncounterObjectiveUpdate = 0x360250,
+ InstanceEncounterPhaseShiftChanged = 0x360254,
+ InstanceEncounterStart = 0x36024d,
+ InstanceEncounterTimerStart = 0x36024a,
+ InstanceEncounterUpdateAllowReleaseInProgress = 0x36024f,
+ InstanceEncounterUpdateSuppressRelease = 0x36024e,
+ InstanceGroupSizeChanged = 0x360197,
+ InstanceInfo = 0x3600d1,
+ InstanceReset = 0x360125,
+ InstanceResetFailed = 0x360126,
+ InstanceSaveCreated = 0x360219,
+ InterruptPowerRegen = 0x4d004a,
+ InvalidatePageText = 0x3a000a,
+ InvalidatePlayer = 0x4a0007,
+ InvalidPromotionCode = 0x3601ef,
+ InventoryChangeFailure = 0x4e0005,
+ InventoryFixupComplete = 0x3602aa,
+ InventoryFullOverflow = 0x3602bb,
+ IslandAzeriteGain = 0x3601f8,
+ IslandComplete = 0x3601f9,
+ IsQuestCompleteResponse = 0x4b0004,
+ ItemChanged = 0x360188,
+ ItemCooldown = 0x36025f,
+ ItemEnchantTimeUpdate = 0x3601f1,
+ ItemExpirePurchaseRefund = 0x360034,
+ ItemInteractionComplete = 0x3602f0,
+ ItemPurchaseRefundResult = 0x360032,
+ ItemPushResult = 0x3600c0,
+ ItemTimeUpdate = 0x3601f0,
+ KickReason = 0x360128,
+ LatencyReportPing = 0x360300,
+ LearnedSpells = 0x4d003e,
+ LearnPvpTalentFailed = 0x36006d,
+ LearnTalentFailed = 0x36006c,
+ LegacyLootRules = 0x3602c0,
+ LevelLinkingResult = 0x3602d6,
+ LevelUpInfo = 0x360186,
+ LfgBootPlayer = 0x440019,
+ LfgDisabled = 0x440017,
+ LfgExpandSearchPrompt = 0x44001f,
+ LfgInstanceShutdownCountdown = 0x440009,
+ LfgJoinLobbyMatchmakerQueue = 0x440020,
+ LfgJoinResult = 0x440000,
+ LfgListApplicantListUpdate = 0x44000f,
+ LfgListApplicationStatusUpdate = 0x44000c,
+ LfgListApplyToGroupResult = 0x44000d,
+ LfgListJoinResult = 0x440001,
+ LfgListSearchResults = 0x440002,
+ LfgListSearchResultsUpdate = 0x440010,
+ LfgListSearchStatus = 0x440003,
+ LfgListUpdateBlacklist = 0x44000e,
+ LfgListUpdateExpiration = 0x44000b,
+ LfgListUpdateStatus = 0x44000a,
+ LfgOfferContinue = 0x440018,
+ LfgPartyInfo = 0x44001a,
+ LfgPlayerInfo = 0x44001b,
+ LfgPlayerReward = 0x44001c,
+ LfgProposalUpdate = 0x440011,
+ LfgQueueStatus = 0x440004,
+ LfgReadyCheckResult = 0x44001e,
+ LfgReadyCheckUpdate = 0x440006,
+ LfgRoleCheckUpdate = 0x440005,
+ LfgSlotInvalid = 0x440014,
+ LfgTeleportDenied = 0x440016,
+ LfgUpdateStatus = 0x440008,
+ LiveRegionAccountRestoreResult = 0x36020b,
+ LiveRegionCharacterCopyResult = 0x36020a,
+ LiveRegionGetAccountCharacterListResult = 0x3601fe,
+ LiveRegionKeyBindingsCopyResult = 0x36020c,
+ LoadCufProfiles = 0x360055,
+ LoadEquipmentSet = 0x3601ac,
+ LobbyMatchmakerLobbyAcquiredServer = 0x360311,
+ LobbyMatchmakerPartyInfo = 0x360312,
+ LobbyMatchmakerPartyInviteRejected = 0x360313,
+ LobbyMatchmakerQueueProposed = 0x360315,
+ LobbyMatchmakerQueueResult = 0x360316,
+ LobbyMatchmakerReceiveInvite = 0x360314,
+ LoginSetTimeSpeed = 0x3601ab,
+ LoginVerifyWorld = 0x36002f,
+ LogoutCancelAck = 0x360124,
+ LogoutComplete = 0x360123,
+ LogoutResponse = 0x360122,
+ LogXpGain = 0x360182,
+ LootAllPassed = 0x3600be,
+ LootList = 0x3601dd,
+ LootMoneyNotify = 0x3600b9,
+ LootRelease = 0x3600b8,
+ LootReleaseAll = 0x3600b7,
+ LootRemoved = 0x3600b3,
+ LootResponse = 0x3600b2,
+ LootRoll = 0x3600bb,
+ LootRollsComplete = 0x3600bd,
+ LootRollWon = 0x3600bf,
+ LossOfControlAuraUpdate = 0x36010e,
+ MailCommandResult = 0x3600d8,
+ MailListResult = 0x3601f2,
+ MailQueryNextTimeResult = 0x3601f3,
+ MapObjectivesInit = 0x3c002a,
+ MapObjEvents = 0x36005f,
+ MasterLootCandidateList = 0x3600bc,
+ MeetingStoneFailed = 0x360317,
+ MessageBox = 0x36000a,
+ MinimapPing = 0x36016c,
+ MirrorImageComponentedData = 0x4d0004,
+ MirrorImageCreatureData = 0x4d0003,
+ MirrorVars = 0x360355,
+ MissileCancel = 0x360060,
+ ModifyCooldown = 0x360200,
+ Motd = 0x3b0003,
+ MountResult = 0x36000f,
+ MovementEnforcementAlert = 0x3602c6,
+ MoveAddImpulse = 0x480062,
+ MoveApplyInertia = 0x48005e,
+ MoveApplyMovementForce = 0x480045,
+ MoveDisableCollision = 0x480041,
+ MoveDisableDoubleJump = 0x48002b,
+ MoveDisableFullSpeedTurning = 0x480075,
+ MoveDisableGravity = 0x48003d,
+ MoveDisableInertia = 0x48003f,
+ MoveDisableTransitionBetweenSwimAndFly = 0x48003c,
+ MoveEnableCollision = 0x480042,
+ MoveEnableDoubleJump = 0x48002a,
+ MoveEnableFullSpeedTurning = 0x480074,
+ MoveEnableGravity = 0x48003e,
+ MoveEnableInertia = 0x480040,
+ MoveEnableTransitionBetweenSwimAndFly = 0x48003b,
+ MoveKnockBack = 0x480031,
+ MoveRemoveInertia = 0x48005f,
+ MoveRemoveMovementForce = 0x480046,
+ MoveRoot = 0x480027,
+ MoveSetActiveMover = 0x480003,
+ MoveSetAdvFlyingAddImpulseMaxSpeed = 0x48006b,
+ MoveSetAdvFlyingAirFriction = 0x480066,
+ MoveSetAdvFlyingBankingRate = 0x48006c,
+ MoveSetAdvFlyingDoubleJumpVelMod = 0x480069,
+ MoveSetAdvFlyingGlideStartMinHeight = 0x48006a,
+ MoveSetAdvFlyingLaunchSpeedCoefficient = 0x480072,
+ MoveSetAdvFlyingLiftCoefficient = 0x480068,
+ MoveSetAdvFlyingMaxVel = 0x480067,
+ MoveSetAdvFlyingOverMaxDeceleration = 0x480071,
+ MoveSetAdvFlyingPitchingRateDown = 0x48006d,
+ MoveSetAdvFlyingPitchingRateUp = 0x48006e,
+ MoveSetAdvFlyingSurfaceFriction = 0x480070,
+ MoveSetAdvFlyingTurnVelocityThreshold = 0x48006f,
+ MoveSetCantSwim = 0x480035,
+ MoveSetCanAdvFly = 0x480064,
+ MoveSetCanDrive = 0x480076,
+ MoveSetCanFly = 0x480033,
+ MoveSetCanTurnWhileFalling = 0x480037,
+ MoveSetCollisionHeight = 0x480043,
+ MoveSetCompoundState = 0x480047,
+ MoveSetFeatherFall = 0x48002d,
+ MoveSetFlightBackSpeed = 0x480023,
+ MoveSetFlightSpeed = 0x480022,
+ MoveSetHovering = 0x48002f,
+ MoveSetIgnoreMovementForces = 0x480039,
+ MoveSetLandWalk = 0x48002c,
+ MoveSetModMovementForceMagnitude = 0x480014,
+ MoveSetNormalFall = 0x48002e,
+ MoveSetPitchRate = 0x480026,
+ MoveSetRunBackSpeed = 0x48001f,
+ MoveSetRunSpeed = 0x48001e,
+ MoveSetSwimBackSpeed = 0x480021,
+ MoveSetSwimSpeed = 0x480020,
+ MoveSetTurnRate = 0x480025,
+ MoveSetVehicleRecId = 0x480044,
+ MoveSetWalkSpeed = 0x480024,
+ MoveSetWaterWalk = 0x480029,
+ MoveSkipTime = 0x480048,
+ MoveSplineDisableCollision = 0x48004d,
+ MoveSplineDisableGravity = 0x48004b,
+ MoveSplineEnableCollision = 0x48004e,
+ MoveSplineEnableGravity = 0x48004c,
+ MoveSplineRoot = 0x480049,
+ MoveSplineSetFeatherFall = 0x48004f,
+ MoveSplineSetFlightBackSpeed = 0x48001a,
+ MoveSplineSetFlightSpeed = 0x480019,
+ MoveSplineSetFlying = 0x480059,
+ MoveSplineSetHover = 0x480051,
+ MoveSplineSetLandWalk = 0x480054,
+ MoveSplineSetNormalFall = 0x480050,
+ MoveSplineSetPitchRate = 0x48001d,
+ MoveSplineSetRunBackSpeed = 0x480016,
+ MoveSplineSetRunMode = 0x480057,
+ MoveSplineSetRunSpeed = 0x480015,
+ MoveSplineSetSwimBackSpeed = 0x480018,
+ MoveSplineSetSwimSpeed = 0x480017,
+ MoveSplineSetTurnRate = 0x48001c,
+ MoveSplineSetWalkMode = 0x480058,
+ MoveSplineSetWalkSpeed = 0x48001b,
+ MoveSplineSetWaterWalk = 0x480053,
+ MoveSplineStartSwim = 0x480055,
+ MoveSplineStopSwim = 0x480056,
+ MoveSplineUnroot = 0x48004a,
+ MoveSplineUnsetFlying = 0x48005a,
+ MoveSplineUnsetHover = 0x480052,
+ MoveTeleport = 0x480032,
+ MoveUnroot = 0x480028,
+ MoveUnsetCantSwim = 0x480036,
+ MoveUnsetCanAdvFly = 0x480065,
+ MoveUnsetCanDrive = 0x480077,
+ MoveUnsetCanFly = 0x480034,
+ MoveUnsetCanTurnWhileFalling = 0x480038,
+ MoveUnsetHovering = 0x480030,
+ MoveUnsetIgnoreMovementForces = 0x48003a,
+ MoveUpdate = 0x48000e,
+ MoveUpdateAddImpulse = 0x480063,
+ MoveUpdateApplyInertia = 0x480060,
+ MoveUpdateApplyMovementForce = 0x480012,
+ MoveUpdateCollisionHeight = 0x48000d,
+ MoveUpdateFlightBackSpeed = 0x48000a,
+ MoveUpdateFlightSpeed = 0x480009,
+ MoveUpdateKnockBack = 0x480010,
+ MoveUpdateModMovementForceMagnitude = 0x480011,
+ MoveUpdatePitchRate = 0x48000c,
+ MoveUpdateRemoveInertia = 0x480061,
+ MoveUpdateRemoveMovementForce = 0x480013,
+ MoveUpdateRunBackSpeed = 0x480005,
+ MoveUpdateRunSpeed = 0x480004,
+ MoveUpdateSwimBackSpeed = 0x480008,
+ MoveUpdateSwimSpeed = 0x480007,
+ MoveUpdateTeleport = 0x48000f,
+ MoveUpdateTurnRate = 0x48000b,
+ MoveUpdateWalkSpeed = 0x480006,
+ MultiFloorLeaveFloor = 0x360276,
+ MultiFloorNewFloor = 0x360275,
+ MythicPlusAllMapStats = 0x3600a8,
+ MythicPlusCurrentAffixes = 0x3600aa,
+ MythicPlusNewWeekRecord = 0x3600af,
+ MythicPlusSeasonData = 0x3600a9,
+ NeutralPlayerFactionSelectResult = 0x360074,
+ NewDataBuild = 0x36033b,
+ NewTaxiPath = 0x36011d,
+ NewWorld = 0x36002b,
+ NotifyDestLocSpellCast = 0x4d0034,
+ NotifyMissileTrajectoryCollision = 0x360149,
+ NotifyMoney = 0x360031,
+ NotifyReceivedMail = 0x3600d9,
+ NpcInteractionOpenResult = 0x36030d,
+ OfferPetitionError = 0x360154,
+ OnCancelExpectedRideVehicleAura = 0x360183,
+ OnMonsterMove = 0x480002,
+ OpenArtifactForge = 0x36023a,
+ OpenContainer = 0x4e0006,
+ OpenLfgDungeonFinder = 0x440015,
+ OpenShipmentNpcResult = 0x360232,
+ OverrideLight = 0x360159,
+ PageText = 0x3601b7,
+ PartyCommandResult = 0x36022c,
+ PartyEligibilityForDelveTiersResponse = 0x360350,
+ PartyInvite = 0x360056,
+ PartyKillLog = 0x3601f6,
+ PartyMemberFullState = 0x3601f5,
+ PartyMemberPartialState = 0x3601f4,
+ PartyNotifyLfgLeaderChange = 0x3602f6,
+ PartyUpdate = 0x36008c,
+ PastTimeEvents = 0x36005b,
+ PauseMirrorTimer = 0x3601ae,
+ PendingRaidLock = 0x360195,
+ PerksProgramActivityComplete = 0x36030a,
+ PerksProgramActivityUpdate = 0x360306,
+ PerksProgramDisabled = 0x36030b,
+ PerksProgramResult = 0x360307,
+ PerksProgramVendorUpdate = 0x360305,
+ PetitionAlreadySigned = 0x360037,
+ PetitionRenameGuildResponse = 0x420042,
+ PetitionShowList = 0x36015c,
+ PetitionShowSignatures = 0x36015d,
+ PetitionSignResults = 0x3601e8,
+ PetActionFeedback = 0x3601e5,
+ PetActionSound = 0x36013f,
+ PetBattleChatRestricted = 0x36009e,
+ PetBattleDebugQueueDumpResponse = 0x360113,
+ PetBattleFinalizeLocation = 0x360097,
+ PetBattleFinalRound = 0x36009c,
+ PetBattleFinished = 0x36009d,
+ PetBattleFirstRound = 0x360099,
+ PetBattleInitialUpdate = 0x360098,
+ PetBattleMaxGameLengthWarning = 0x36009f,
+ PetBattlePvpChallenge = 0x360096,
+ PetBattleQueueProposeMatch = 0x3600d6,
+ PetBattleQueueStatus = 0x3600d7,
+ PetBattleReplacementsMade = 0x36009b,
+ PetBattleRequestFailed = 0x360095,
+ PetBattleRoundResult = 0x36009a,
+ PetBattleSlotUpdates = 0x360084,
+ PetCastFailed = 0x4d0049,
+ PetClearSpells = 0x4d0013,
+ PetDismissSound = 0x360140,
+ PetGodMode = 0x36011a,
+ PetGuids = 0x3601a1,
+ PetLearnedSpells = 0x4d0040,
+ PetMode = 0x36001f,
+ PetNameInvalid = 0x360161,
+ PetNewlyTamed = 0x36001e,
+ PetSpellsMessage = 0x4d0014,
+ PetStableResult = 0x36002a,
+ PetTameFailure = 0x360151,
+ PetUnlearnedSpells = 0x4d0041,
+ PhaseShiftChange = 0x36000c,
+ PlayedTime = 0x360173,
+ PlayerAckowledgeArrowCallout = 0x4a002d,
+ PlayerAzeriteItemEquippedStatusChanged = 0x4a001f,
+ PlayerAzeriteItemGains = 0x4a001e,
+ PlayerBonusRollFailed = 0x4a0021,
+ PlayerBound = 0x4a0000,
+ PlayerChoiceClear = 0x4a0006,
+ PlayerChoiceDisplayError = 0x4a0005,
+ PlayerConditionResult = 0x4a0012,
+ PlayerEndOfMatchDetails = 0x4a002f,
+ PlayerHideArrowCallout = 0x4a002c,
+ PlayerIsAdventureMapPoiValid = 0x4a0011,
+ PlayerOpenSubscriptionInterstitial = 0x4a0016,
+ PlayerSaveGuildEmblem = 0x420041,
+ PlayerSavePersonalEmblem = 0x4a002e,
+ PlayerShowArrowCallout = 0x4a002b,
+ PlayerShowGenericWidgetDisplay = 0x4a0029,
+ PlayerShowPartyPoseUi = 0x4a002a,
+ PlayerShowUiEventToast = 0x4a0024,
+ PlayerSkinned = 0x4a000e,
+ PlayerTutorialHighlightSpell = 0x4a0015,
+ PlayerTutorialUnhighlightSpell = 0x4a0014,
+ PlayMusic = 0x360205,
+ PlayObjectSound = 0x360207,
+ PlayOneShotAnimKit = 0x3601cd,
+ PlayOrphanSpellVisual = 0x4d0038,
+ PlayScene = 0x3600d3,
+ PlaySound = 0x360204,
+ PlaySpeakerbotSound = 0x360208,
+ PlaySpellVisual = 0x4d0036,
+ PlaySpellVisualKit = 0x4d003a,
+ PlayTimeWarning = 0x36019b,
+ Pong = 0x3d0006,
+ PowerUpdate = 0x360170,
+ PreloadChildMap = 0x36000d,
+ PreloadWorld = 0x36002c,
+ PrepopulateNameCache = 0x3602c9,
+ PreRessurect = 0x360203,
+ PrintNotification = 0x360063,
+ ProcResist = 0x3601f7,
+ ProfessionGossip = 0x360296,
+ PushSpellToActionBar = 0x4d0042,
+ PvpCredit = 0x3c0024,
+ PvpMatchComplete = 0x3c002f,
+ PvpMatchInitialize = 0x3c0030,
+ PvpMatchSetState = 0x3c002e,
+ PvpMatchStart = 0x3c002d,
+ PvpMatchStatistics = 0x3c0010,
+ PvpOptionsEnabled = 0x3c0013,
+ PvpTierRecord = 0x360301,
+ QueryBattlePetNameResponse = 0x3a000c,
+ QueryCreatureResponse = 0x3a0006,
+ QueryGameObjectResponse = 0x3a0007,
+ QueryGarrisonPetNameResponse = 0x400041,
+ QueryGuildFollowInfoResponse = 0x42002f,
+ QueryGuildInfoResponse = 0x42002d,
+ QueryItemTextResponse = 0x3a0010,
+ QueryNpcTextResponse = 0x3a0008,
+ QueryPageTextResponse = 0x3a0009,
+ QueryPetitionResponse = 0x3a000d,
+ QueryPetNameResponse = 0x3a000b,
+ QueryPlayerNamesResponse = 0x4a0026,
+ QueryPlayerNameByCommunityIdResponse = 0x4a000a,
+ QueryQuestInfoResponse = 0x4b0016,
+ QueryRealmGuildMasterInfoResponse = 0x42002e,
+ QueryTimeResponse = 0x360181,
+ QuestCompletionNpcResponse = 0x4b0001,
+ QuestConfirmAccept = 0x4b000f,
+ QuestForceRemoved = 0x4b001c,
+ QuestGiverInvalidQuest = 0x4b0005,
+ QuestGiverOfferRewardMessage = 0x4b0014,
+ QuestGiverQuestComplete = 0x4b0003,
+ QuestGiverQuestDetails = 0x4b0012,
+ QuestGiverQuestFailed = 0x4b0006,
+ QuestGiverQuestListMessage = 0x4b001a,
+ QuestGiverRequestItems = 0x4b0013,
+ QuestGiverStatus = 0x4b001b,
+ QuestGiverStatusMultiple = 0x4b0011,
+ QuestItemUsabilityResponse = 0x4b0002,
+ QuestLogFull = 0x4b0007,
+ QuestNonLogUpdateComplete = 0x4b0008,
+ QuestPoiQueryResponse = 0x4b001d,
+ QuestPoiUpdateResponse = 0x4b001f,
+ QuestPushResult = 0x4b0010,
+ QuestSessionInfoResponse = 0x3602ec,
+ QuestSessionReadyCheck = 0x3602da,
+ QuestSessionReadyCheckResponse = 0x3602db,
+ QuestSessionResult = 0x3602d9,
+ QuestUpdateAddCredit = 0x4b000c,
+ QuestUpdateAddCreditSimple = 0x4b000d,
+ QuestUpdateAddPvpCredit = 0x4b000e,
+ QuestUpdateComplete = 0x4b0009,
+ QuestUpdateFailed = 0x4b000a,
+ QuestUpdateFailedTimer = 0x4b000b,
+ QueueSummaryUpdate = 0x3602a9,
+ RafAccountInfo = 0x3602d7,
+ RafActivityStateChanged = 0x3602e8,
+ RafDebugFriendMonths = 0x360338,
+ RaidDifficultySet = 0x360244,
+ RaidGroupOnly = 0x360246,
+ RaidInstanceMessage = 0x3b000a,
+ RaidMarkersChanged = 0x360038,
+ RandomRoll = 0x3600cd,
+ RatedPvpInfo = 0x3c000f,
+ ReadyCheckCompleted = 0x360090,
+ ReadyCheckResponse = 0x36008f,
+ ReadyCheckStarted = 0x36008e,
+ ReadItemResultFailed = 0x360240,
+ ReadItemResultOk = 0x360237,
+ RealmQueryResponse = 0x3a0005,
+ ReattachResurrect = 0x3601e7,
+ ReceivePingUnit = 0x360039,
+ ReceivePingWorldPoint = 0x36003a,
+ RecraftItemResult = 0x36032e,
+ RecruitAFriendFailure = 0x36015e,
+ RefreshComponent = 0x3600ed,
+ RegionwideCharacterMailData = 0x36001a,
+ RegionwideCharacterRestrictionsData = 0x360019,
+ RemoveItemPassive = 0x360043,
+ RemoveSpellFromActionBar = 0x4d0043,
+ ReplaceTrophyResponse = 0x36025c,
+ ReportPvpPlayerAfkResult = 0x4a0009,
+ RequestCemeteryListResponse = 0x360025,
+ RequestPvpRewardsResponse = 0x3c0014,
+ RequestScheduledPvpInfoResponse = 0x3c0015,
+ ResetCompressionContext = 0x3d0007,
+ ResetFailedNotify = 0x360155,
+ ResetLastLoadedConfigCvars = 0x360335,
+ ResetQuestPoi = 0x4b0020,
+ ResetRangedCombatTimer = 0x3c0023,
+ ResetWeeklyCurrency = 0x360009,
+ RespecWipeConfirm = 0x3600b0,
+ RespondInspectAchievements = 0x360006,
+ ResponsePerkPendingRewards = 0x360308,
+ ResponsePerkRecentPurchases = 0x360309,
+ RestartGlobalCooldown = 0x4d0052,
+ RestrictedAccountWarning = 0x360052,
+ ResumeCast = 0x4d002c,
+ ResumeCastBar = 0x4d002f,
+ ResumeComms = 0x3d0003,
+ ResumeToken = 0x360041,
+ ResurrectRequest = 0x360012,
+ ResyncRunes = 0x4d0050,
+ ReturningPlayerPrompt = 0x36023f,
+ ReturnApplicantList = 0x3602cd,
+ ReturnRecruitingClubs = 0x3602cc,
+ RoleChangedInform = 0x360021,
+ RoleChosen = 0x44001d,
+ RolePollInform = 0x360022,
+ RuneforgeLegendaryCraftingOpenNpc = 0x360295,
+ RuneRegenDebug = 0x36004f,
+ ScenarioCompleted = 0x360283,
+ ScenarioPois = 0x3600d0,
+ ScenarioProgressUpdate = 0x3600c9,
+ ScenarioShowCriteria = 0x360299,
+ ScenarioState = 0x3600c8,
+ ScenarioUiUpdate = 0x360298,
+ ScenarioVacate = 0x360241,
+ SceneObjectEvent = 0x36007a,
+ SceneObjectPetBattleFinalRound = 0x36007f,
+ SceneObjectPetBattleFinished = 0x360080,
+ SceneObjectPetBattleFirstRound = 0x36007c,
+ SceneObjectPetBattleInitialUpdate = 0x36007b,
+ SceneObjectPetBattleReplacementsMade = 0x36007e,
+ SceneObjectPetBattleRoundResult = 0x36007d,
+ ScheduledAreaPoiUpdateResponse = 0x4a0019,
+ ScriptCast = 0x4d0047,
+ SeasonInfo = 0x36005a,
+ SellResponse = 0x360162,
+ SendItemPassives = 0x360044,
+ SendKnownSpells = 0x4d0019,
+ SendRaidTargetUpdateAll = 0x3600cb,
+ SendRaidTargetUpdateSingle = 0x3600cc,
+ SendSpellCharges = 0x4d001b,
+ SendSpellHistory = 0x4d001a,
+ SendUnlearnSpells = 0x4d001c,
+ ServerFirstAchievements = 0x3600ea,
+ ServerTime = 0x360121,
+ ServerTimeOffset = 0x3601b2,
+ SetupCombatLogFileFlush = 0x4d000f,
+ SetupCurrency = 0x360007,
+ SetAiAnimKit = 0x3601cc,
+ SetAnimTier = 0x3601d0,
+ SetChrUpgradeTier = 0x360077,
+ SetCurrency = 0x360008,
+ SetDfFastLaunchResult = 0x440012,
+ SetDungeonDifficulty = 0x360143,
+ SetFactionAtWar = 0x36019d,
+ SetFactionNotVisible = 0x3601c7,
+ SetFactionStanding = 0x3601c8,
+ SetFactionVisible = 0x3601c6,
+ SetFlatSpellModifier = 0x4d0027,
+ SetInstanceLeaver = 0x360356,
+ SetItemPurchaseData = 0x360033,
+ SetLootMethodFailed = 0x360267,
+ SetMaxWeeklyQuantity = 0x360036,
+ SetMeleeAnimKit = 0x3601cf,
+ SetMovementAnimKit = 0x3601ce,
+ SetPctSpellModifier = 0x4d0028,
+ SetPetSpecialization = 0x3600c2,
+ SetPlayerDeclinedNamesResult = 0x4a000b,
+ SetPlayHoverAnim = 0x360053,
+ SetProficiency = 0x3601d1,
+ SetQuestReplayCooldownOverride = 0x3602e0,
+ SetShipmentReadyResponse = 0x40003a,
+ SetSpellCharges = 0x4d0018,
+ SetTimeZoneInformation = 0x360116,
+ SetVehicleRecId = 0x360194,
+ ShadowlandsCapacitanceUpdate = 0x36030c,
+ ShipmentFactionUpdateResult = 0x40003b,
+ ShowDelvesCompanionConfigurationUi = 0x36034e,
+ ShowDelvesDisplayUi = 0x36034c,
+ ShowNeutralPlayerFactionSelectUi = 0x360073,
+ ShowQuestCompletionText = 0x4b0015,
+ ShowTaxiNodes = 0x36016b,
+ ShowTradeSkillResponse = 0x36020d,
+ SocialContractRequestResponse = 0x360318,
+ SocketGemsFailure = 0x3601c4,
+ SocketGemsSuccess = 0x3601c3,
+ SpecialMountAnim = 0x36013e,
+ SpectateEnd = 0x36033a,
+ SpectatePlayer = 0x360339,
+ SpecInvoluntarilyChanged = 0x3601b6,
+ SpellAbsorbLog = 0x4d000c,
+ SpellCategoryCooldown = 0x4d0006,
+ SpellChannelStart = 0x4d0022,
+ SpellChannelUpdate = 0x4d0023,
+ SpellCooldown = 0x4d0005,
+ SpellDamageShield = 0x4d001f,
+ SpellDelayed = 0x4d0030,
+ SpellDispellLog = 0x4d0007,
+ SpellEmpowerSetStage = 0x4d0026,
+ SpellEmpowerStart = 0x4d0024,
+ SpellEmpowerUpdate = 0x4d0025,
+ SpellEnergizeLog = 0x4d0009,
+ SpellExecuteLog = 0x4d0031,
+ SpellFailedOther = 0x4d0046,
+ SpellFailure = 0x4d0044,
+ SpellFailureMessage = 0x4d004b,
+ SpellGo = 0x4d002a,
+ SpellHealAbsorbLog = 0x4d000b,
+ SpellHealLog = 0x4d000a,
+ SpellInstakillLog = 0x4d0021,
+ SpellInterruptLog = 0x4d000d,
+ SpellMissLog = 0x4d0032,
+ SpellNonMeleeDamageLog = 0x4d0020,
+ SpellOrDamageImmune = 0x4d001d,
+ SpellPeriodicAuraLog = 0x4d0008,
+ SpellPrepare = 0x4d0029,
+ SpellStart = 0x4d002b,
+ SpellVisualLoadScreen = 0x360065,
+ SplashScreenShowLatest = 0x3602f2,
+ StandStateUpdate = 0x3601ba,
+ StarterBuildActivateFailed = 0x36006b,
+ StartElapsedTimer = 0x3600a0,
+ StartElapsedTimers = 0x3600a2,
+ StartLightningStorm = 0x360146,
+ StartLootRoll = 0x3600ba,
+ StartMirrorTimer = 0x3601ad,
+ StartTimer = 0x36003d,
+ StopElapsedTimer = 0x3600a1,
+ StopMirrorTimer = 0x3601af,
+ StopSpeakerbotSound = 0x360209,
+ StopTimer = 0x36003e,
+ StreamingMovies = 0x36003c,
+ SuggestInviteInform = 0x36022d,
+ SummonCancel = 0x36014f,
+ SummonRaidMemberValidateFailed = 0x360023,
+ SummonRequest = 0x3601be,
+ SupercededSpells = 0x4d003d,
+ SuspendComms = 0x3d0002,
+ SuspendToken = 0x360040,
+ SyncWowEntitlements = 0x3602ea,
+ TalentsInvoluntarilyReset = 0x3601b5,
+ TaxiNodeStatus = 0x36011b,
+ TextEmote = 0x360119,
+ ThreatClear = 0x36017a,
+ ThreatRemove = 0x360179,
+ ThreatUpdate = 0x360178,
+ TimerunningSeasonEnded = 0x36034f,
+ TimeAdjustment = 0x480001,
+ TimeSyncRequest = 0x480000,
+ TitleEarned = 0x360175,
+ TitleLost = 0x360176,
+ TotemCreated = 0x360165,
+ TotemDurationChanged = 0x360167,
+ TotemMoved = 0x360168,
+ TotemRemoved = 0x360166,
+ TradeStatus = 0x360017,
+ TradeUpdated = 0x360016,
+ TrainerBuyFailed = 0x36017d,
+ TrainerList = 0x36017c,
+ TraitConfigCommitFailed = 0x36006a,
+ TransferAborted = 0x3601a0,
+ TransferPending = 0x360066,
+ TreasurePickerResponse = 0x3a0011,
+ TriggerCinematic = 0x360261,
+ TriggerMovie = 0x360169,
+ TurnInPetitionResult = 0x3601ea,
+ TutorialFlags = 0x360255,
+ UiAction = 0x360206,
+ UiMapQuestLinesResponse = 0x4b0023,
+ UndeleteCharacterResponse = 0x360262,
+ UndeleteCooldownStatusResponse = 0x360263,
+ UnlearnedSpells = 0x4d003f,
+ UnloadChildMap = 0x36000e,
+ UnsetInstanceLeaver = 0x360357,
+ UpdateAadcStatusResponse = 0x360302,
+ UpdateAccountData = 0x3601a6,
+ UpdateAccountDataComplete = 0x3601a7,
+ UpdateActionButtons = 0x360078,
+ UpdateBnetSessionKey = 0x3602ba,
+ UpdateCapturePoint = 0x3c0007,
+ UpdateCelestialBody = 0x3602b6,
+ UpdateCharacterFlags = 0x36025b,
+ UpdateChargeCategoryCooldown = 0x360202,
+ UpdateCooldown = 0x360201,
+ UpdateCraftingNpcRecipes = 0x400038,
+ UpdateDailyMissionCounter = 0x400021,
+ UpdateExpansionLevel = 0x3600e3,
+ UpdateGameTimeState = 0x3602bd,
+ UpdateInstanceOwnership = 0x360148,
+ UpdateLastInstance = 0x360127,
+ UpdateObject = 0x460000,
+ UpdatePrimarySpec = 0x360070,
+ UpdateRecentPlayerGuids = 0x36008d,
+ UpdateTalentData = 0x36006f,
+ UpdateWorldState = 0x3601e4,
+ UserlistAdd = 0x3b000f,
+ UserlistRemove = 0x3b0010,
+ UserlistUpdate = 0x3b0011,
+ UseEquipmentSetResult = 0x3601eb,
+ VasCheckTransferOkResponse = 0x3602b1,
+ VasGetQueueMinutesResponse = 0x3602af,
+ VasGetServiceStatusResponse = 0x3602ae,
+ VasPurchaseComplete = 0x360289,
+ VasPurchaseStateUpdate = 0x360288,
+ VendorInventory = 0x360051,
+ VignetteUpdate = 0x4a0010,
+ VoiceChannelInfoResponse = 0x3602b5,
+ VoiceChannelSttTokenResponse = 0x3602fd,
+ VoiceLoginResponse = 0x3602b4,
+ VoidItemSwapResponse = 0x4e0004,
+ VoidStorageContents = 0x4e0001,
+ VoidStorageFailed = 0x4e0000,
+ VoidStorageTransferChanges = 0x4e0002,
+ VoidTransferResult = 0x4e0003,
+ WaitQueueFinish = 0x360003,
+ WaitQueueUpdate = 0x360002,
+ Warden3Data = 0x36000b,
+ Warden3Disabled = 0x3602b8,
+ Warden3Enabled = 0x3602b7,
+ WarfrontComplete = 0x3601fa,
+ WargameRequestOpponentResponse = 0x3c0012,
+ WargameRequestSuccessfullySentToOpponent = 0x3c0011,
+ Weather = 0x360145,
+ WeeklyRewardsProgressResult = 0x3602f5,
+ WeeklyRewardsResult = 0x3602f3,
+ WeeklyRewardClaimResult = 0x3602f4,
+ Who = 0x3b0002,
+ WhoIs = 0x360144,
+ WillBeKickedForAddedSubscriptionTime = 0x3602bc,
+ WorldQuestUpdateResponse = 0x4a0017,
+ WorldServerInfo = 0x360045,
+ WowEntitlementNotification = 0x3602eb,
+ WowLabsAreaInfo = 0x36031d,
+ WowLabsNotifyPlayersMatchEnd = 0x360319,
+ WowLabsNotifyPlayersMatchStateChanged = 0x36031a,
+ WowLabsPartyError = 0x360326,
+ WowLabsSetAreaIdResult = 0x36031b,
+ WowLabsSetPredictionCircle = 0x36031f,
+ WowLabsSetSelectedAreaId = 0x36031c,
+ XpAwardedFromCurrency = 0x360334,
+ XpGainAborted = 0x360062,
+ XpGainEnabled = 0x360245,
+ ZoneUnderAttack = 0x3b000b,
// Opcodes That Are Not Generated Automatically
AccountHeirloomUpdate = AccountToyUpdate + 1, // No Client Handler
diff --git a/Source/Framework/Constants/PlayerConst.cs b/Source/Framework/Constants/PlayerConst.cs
index 77e0657d5..564b34e03 100644
--- a/Source/Framework/Constants/PlayerConst.cs
+++ b/Source/Framework/Constants/PlayerConst.cs
@@ -532,7 +532,10 @@ namespace Framework.Constants
AccountSecured = 0x1000, // Script_IsAccountSecured
OverrideTransportServerTime = 0x8000,
MentorRestricted = 0x20000,
- WeeklyRewardAvailable = 0x40000
+ HasAccountBankLock = 0x40000,
+ CharacterBankDisabled = 0x80000,
+ CharacterBankConversionFailed = 0x100000,
+ AccountBankDisabled = 0x200000,
}
public enum PlayerFieldByte2Flags
@@ -592,14 +595,14 @@ namespace Framework.Constants
// first slot for item stored (in any way in player items data)
Start = 0,
// last+1 slot for item stored (in any way in player items data)
- End = 232,
+ End = 105,
Count = (End - Start)
}
- enum AccountBankBagSlots
+ public enum AccountBankBagSlots
{
- Start = 227,
- End = 232
+ Start = 100,
+ End = 105
}
public enum PlayerTitle : ulong
diff --git a/Source/Framework/Constants/SharedConst.cs b/Source/Framework/Constants/SharedConst.cs
index 031fa44ff..5644c3fe4 100644
--- a/Source/Framework/Constants/SharedConst.cs
+++ b/Source/Framework/Constants/SharedConst.cs
@@ -118,15 +118,6 @@ namespace Framework.Constants
public const int ArenaTimeLimitPointsLoss = -16;
public const int MaxArenaSlot = 3;
- ///
- /// Void Storage Const
- ///
- public const uint VoidStorageUnlockCost = 100 * MoneyConstants.Gold;
- public const uint VoidStorageStoreItemCost = 10 * MoneyConstants.Gold;
- public const uint VoidStorageMaxDeposit = 9;
- public const uint VoidStorageMaxWithdraw = 9;
- public const byte VoidStorageMaxSlot = 160;
-
///
/// Calendar Const
///
@@ -1380,20 +1371,6 @@ namespace Framework.Constants
CastleNathria32 = 1222 // Enter Castle Nathria And Confront Sire Denathrius In His Citadel.
}
- public enum VoidTransferError
- {
- Ok = 0,
- InternalError1 = 1,
- InternalError2 = 2,
- Full = 3,
- InternalError3 = 4,
- InternalError4 = 5,
- NotEnoughMoney = 6,
- InventoryFull = 7,
- ItemInvalid = 8,
- TransferUnknown = 9
- }
-
public enum eScriptFlags
{
// Talk Flags
@@ -2220,903 +2197,910 @@ namespace Framework.Constants
SetLootRoundrobin = 294,
SetLootMaster = 295,
SetLootGroup = 296,
- SetLootThresholdS = 297,
- NewLootMasterS = 298,
- SpecifyMasterLooter = 299,
- LootSpecChangedS = 300,
- TameFailed = 301,
- ChatWhileDead = 302,
- ChatPlayerNotFoundS = 303,
- Newtaxipath = 304,
- NoPet = 305,
- Notyourpet = 306,
- PetNotRenameable = 307,
- QuestObjectiveCompleteS = 308,
- QuestUnknownComplete = 309,
- QuestAddKillSii = 310,
- QuestAddFoundSii = 311,
- QuestAddItemSii = 312,
- QuestAddPlayerKillSii = 313,
- Cannotcreatedirectory = 314,
- Cannotcreatefile = 315,
- PlayerWrongFaction = 316,
- PlayerIsNeutral = 317,
- BankslotFailedTooMany = 318,
- BankslotInsufficientFunds = 319,
- BankslotNotbanker = 320,
- FriendDbError = 321,
- FriendListFull = 322,
- FriendAddedS = 323,
- BattletagFriendAddedS = 324,
- FriendOnlineSs = 325,
- FriendOfflineS = 326,
- FriendNotFound = 327,
- FriendWrongFaction = 328,
- FriendRemovedS = 329,
- BattletagFriendRemovedS = 330,
- FriendError = 331,
- FriendAlreadyS = 332,
- FriendSelf = 333,
- FriendDeleted = 334,
- IgnoreFull = 335,
- IgnoreSelf = 336,
- IgnoreNotFound = 337,
- IgnoreAlreadyS = 338,
- IgnoreAddedS = 339,
- IgnoreRemovedS = 340,
- IgnoreAmbiguous = 341,
- IgnoreDeleted = 342,
- OnlyOneBolt = 343,
- OnlyOneAmmo = 344,
- SpellFailedEquippedSpecificItem = 345,
- WrongBagTypeSubclass = 346,
- CantWrapStackable = 347,
- CantWrapEquipped = 348,
- CantWrapWrapped = 349,
- CantWrapBound = 350,
- CantWrapUnique = 351,
- CantWrapBags = 352,
- OutOfMana = 353,
- OutOfRage = 354,
- OutOfFocus = 355,
- OutOfEnergy = 356,
- OutOfChi = 357,
- OutOfHealth = 358,
- OutOfRunes = 359,
- OutOfRunicPower = 360,
- OutOfSoulShards = 361,
- OutOfLunarPower = 362,
- OutOfHolyPower = 363,
- OutOfMaelstrom = 364,
- OutOfComboPoints = 365,
- OutOfInsanity = 366,
- OutOfEssence = 367,
- OutOfArcaneCharges = 368,
- OutOfFury = 369,
- OutOfPain = 370,
- OutOfPowerDisplay = 371,
- OutOfRuneBlood = 372,
- OutOfRuneFrost = 373,
- OutOfRuneUnholy = 374,
- OutOfAlternateQuest = 375,
- OutOfAlternateEncounter = 376,
- OutOfAlternateMount = 377,
- OutOfBalance = 378,
- OutOfHappiness = 379,
- OutOfShadowOrbs = 380,
- OutOfRuneChromatic = 381,
- LootGone = 382,
- MountForceddismount = 383,
- AutofollowTooFar = 384,
- UnitNotFound = 385,
- InvalidFollowTarget = 386,
- InvalidFollowPvpCombat = 387,
- InvalidFollowTargetPvpCombat = 388,
- InvalidInspectTarget = 389,
- GuildemblemSuccess = 390,
- GuildemblemInvalidTabardColors = 391,
- GuildemblemNoguild = 392,
- GuildemblemNotguildmaster = 393,
- GuildemblemNotenoughmoney = 394,
- GuildemblemInvalidvendor = 395,
- EmblemerrorNotabardgeoset = 396,
- SpellOutOfRange = 397,
- CommandNeedsTarget = 398,
- NoammoS = 399,
- Toobusytofollow = 400,
- DuelRequested = 401,
- DuelCancelled = 402,
- Deathbindalreadybound = 403,
- DeathbindSuccessS = 404,
- Noemotewhilerunning = 405,
- ZoneExplored = 406,
- ZoneExploredXp = 407,
- InvalidItemTarget = 408,
- InvalidQuestTarget = 409,
- IgnoringYouS = 410,
- FishNotHooked = 411,
- FishEscaped = 412,
- SpellFailedNotunsheathed = 413,
- PetitionOfferedS = 414,
- PetitionSigned = 415,
- PetitionSignedS = 416,
- PetitionDeclinedS = 417,
- PetitionAlreadySigned = 418,
- PetitionRestrictedAccountTrial = 419,
- PetitionAlreadySignedOther = 420,
- PetitionInGuild = 421,
- PetitionCreator = 422,
- PetitionNotEnoughSignatures = 423,
- PetitionNotSameServer = 424,
- PetitionFull = 425,
- PetitionAlreadySignedByS = 426,
- GuildNameInvalid = 427,
- SpellUnlearnedS = 428,
- PetSpellRooted = 429,
- PetSpellAffectingCombat = 430,
- PetSpellOutOfRange = 431,
- PetSpellNotBehind = 432,
- PetSpellTargetsDead = 433,
- PetSpellDead = 434,
- PetSpellNopath = 435,
- ItemCantBeDestroyed = 436,
- TicketAlreadyExists = 437,
- TicketCreateError = 438,
- TicketUpdateError = 439,
- TicketDbError = 440,
- TicketNoText = 441,
- TicketTextTooLong = 442,
- ObjectIsBusy = 443,
- ExhaustionWellrested = 444,
- ExhaustionRested = 445,
- ExhaustionNormal = 446,
- ExhaustionTired = 447,
- ExhaustionExhausted = 448,
- NoItemsWhileShapeshifted = 449,
- CantInteractShapeshifted = 450,
- RealmNotFound = 451,
- MailQuestItem = 452,
- MailBoundItem = 453,
- MailConjuredItem = 454,
- MailBag = 455,
- MailToSelf = 456,
- MailTargetNotFound = 457,
- MailDatabaseError = 458,
- MailDeleteItemError = 459,
- MailWrappedCod = 460,
- MailCantSendRealm = 461,
- MailTempReturnOutage = 462,
- MailRecepientCantReceiveMail = 463,
- MailSent = 464,
- MailTargetIsTrial = 465,
- NotHappyEnough = 466,
- UseCantImmune = 467,
- CantBeDisenchanted = 468,
- CantUseDisarmed = 469,
- AuctionDatabaseError = 470,
- AuctionHigherBid = 471,
- AuctionAlreadyBid = 472,
- AuctionOutbidS = 473,
- AuctionWonS = 474,
- AuctionRemovedS = 475,
- AuctionBidPlaced = 476,
- LogoutFailed = 477,
- QuestPushSuccessS = 478,
- QuestPushInvalidS = 479,
- QuestPushInvalidToRecipientS = 480,
- QuestPushAcceptedS = 481,
- QuestPushDeclinedS = 482,
- QuestPushBusyS = 483,
- QuestPushDeadS = 484,
- QuestPushDeadToRecipientS = 485,
- QuestPushLogFullS = 486,
- QuestPushLogFullToRecipientS = 487,
- QuestPushOnquestS = 488,
- QuestPushOnquestToRecipientS = 489,
- QuestPushAlreadyDoneS = 490,
- QuestPushAlreadyDoneToRecipientS = 491,
- QuestPushNotDailyS = 492,
- QuestPushTimerExpiredS = 493,
- QuestPushNotInPartyS = 494,
- QuestPushDifferentServerDailyS = 495,
- QuestPushDifferentServerDailyToRecipientS = 496,
- QuestPushNotAllowedS = 497,
- QuestPushPrerequisiteS = 498,
- QuestPushPrerequisiteToRecipientS = 499,
- QuestPushLowLevelS = 500,
- QuestPushLowLevelToRecipientS = 501,
- QuestPushHighLevelS = 502,
- QuestPushHighLevelToRecipientS = 503,
- QuestPushClassS = 504,
- QuestPushClassToRecipientS = 505,
- QuestPushRaceS = 506,
- QuestPushRaceToRecipientS = 507,
- QuestPushLowFactionS = 508,
- QuestPushLowFactionToRecipientS = 509,
- QuestPushHighFactionS = 510,
- QuestPushHighFactionToRecipientS = 511,
- QuestPushExpansionS = 512,
- QuestPushExpansionToRecipientS = 513,
- QuestPushNotGarrisonOwnerS = 514,
- QuestPushNotGarrisonOwnerToRecipientS = 515,
- QuestPushWrongCovenantS = 516,
- QuestPushWrongCovenantToRecipientS = 517,
- QuestPushNewPlayerExperienceS = 518,
- QuestPushNewPlayerExperienceToRecipientS = 519,
- QuestPushWrongFactionS = 520,
- QuestPushWrongFactionToRecipientS = 521,
- QuestPushCrossFactionRestrictedS = 522,
- RaidGroupLowlevel = 523,
- RaidGroupOnly = 524,
- RaidGroupFull = 525,
- RaidGroupRequirementsUnmatch = 526,
- CorpseIsNotInInstance = 527,
- PvpKillHonorable = 528,
- PvpKillDishonorable = 529,
- SpellFailedAlreadyAtFullHealth = 530,
- SpellFailedAlreadyAtFullMana = 531,
- SpellFailedAlreadyAtFullPowerS = 532,
- AutolootMoneyS = 533,
- GenericStunned = 534,
- GenericThrottle = 535,
- ClubFinderSearchingTooFast = 536,
- TargetStunned = 537,
- MustRepairDurability = 538,
- RaidYouJoined = 539,
- RaidYouLeft = 540,
- InstanceGroupJoinedWithParty = 541,
- InstanceGroupJoinedWithRaid = 542,
- RaidMemberAddedS = 543,
- RaidMemberRemovedS = 544,
- InstanceGroupAddedS = 545,
- InstanceGroupRemovedS = 546,
- ClickOnItemToFeed = 547,
- TooManyChatChannels = 548,
- LootRollPending = 549,
- LootPlayerNotFound = 550,
- NotInRaid = 551,
- LoggingOut = 552,
- TargetLoggingOut = 553,
- NotWhileMounted = 554,
- NotWhileShapeshifted = 555,
- NotInCombat = 556,
- NotWhileDisarmed = 557,
- PetBroken = 558,
- TalentWipeError = 559,
- SpecWipeError = 560,
- GlyphWipeError = 561,
- PetSpecWipeError = 562,
- FeignDeathResisted = 563,
- MeetingStoneInQueueS = 564,
- MeetingStoneLeftQueueS = 565,
- MeetingStoneOtherMemberLeft = 566,
- MeetingStonePartyKickedFromQueue = 567,
- MeetingStoneMemberStillInQueue = 568,
- MeetingStoneSuccess = 569,
- MeetingStoneInProgress = 570,
- MeetingStoneMemberAddedS = 571,
- MeetingStoneGroupFull = 572,
- MeetingStoneNotLeader = 573,
- MeetingStoneInvalidLevel = 574,
- MeetingStoneTargetNotInParty = 575,
- MeetingStoneTargetInvalidLevel = 576,
- MeetingStoneMustBeLeader = 577,
- MeetingStoneNoRaidGroup = 578,
- MeetingStoneNeedParty = 579,
- MeetingStoneNotFound = 580,
- MeetingStoneTargetInVehicle = 581,
- GuildemblemSame = 582,
- EquipTradeItem = 583,
- PvpToggleOn = 584,
- PvpToggleOff = 585,
- GroupJoinBattlegroundDeserters = 586,
- GroupJoinBattlegroundDead = 587,
- GroupJoinBattlegroundS = 588,
- GroupJoinBattlegroundFail = 589,
- GroupJoinBattlegroundTooMany = 590,
- SoloJoinBattlegroundS = 591,
- JoinSingleScenarioS = 592,
- BattlegroundTooManyQueues = 593,
- BattlegroundCannotQueueForRated = 594,
- BattledgroundQueuedForRated = 595,
- BattlegroundTeamLeftQueue = 596,
- BattlegroundNotInBattleground = 597,
- AlreadyInArenaTeamS = 598,
- InvalidPromotionCode = 599,
- BgPlayerJoinedSs = 600,
- BgPlayerLeftS = 601,
- RestrictedAccount = 602,
- RestrictedAccountTrial = 603,
- NotEnoughPurchasedGameTime = 604,
- PlayTimeExceeded = 605,
- ApproachingPartialPlayTime = 606,
- ApproachingPartialPlayTime2 = 607,
- ApproachingNoPlayTime = 608,
- ApproachingNoPlayTime2 = 609,
- UnhealthyTime = 610,
- ChatRestrictedTrial = 611,
- ChatThrottled = 612,
- MailReachedCap = 613,
- InvalidRaidTarget = 614,
- RaidLeaderReadyCheckStartS = 615,
- ReadyCheckInProgress = 616,
- ReadyCheckThrottled = 617,
- DungeonDifficultyFailed = 618,
- DungeonDifficultyChangedS = 619,
- TradeWrongRealm = 620,
- TradeNotOnTaplist = 621,
- ChatPlayerAmbiguousS = 622,
- LootCantLootThatNow = 623,
- LootMasterInvFull = 624,
- LootMasterUniqueItem = 625,
- LootMasterOther = 626,
- FilteringYouS = 627,
- UsePreventedByMechanicS = 628,
- ItemUniqueEquippable = 629,
- LfgLeaderIsLfmS = 630,
- LfgPending = 631,
- CantSpeakLangage = 632,
- VendorMissingTurnins = 633,
- BattlegroundNotInTeam = 634,
- NotInBattleground = 635,
- NotEnoughHonorPoints = 636,
- NotEnoughArenaPoints = 637,
- SocketingRequiresMetaGem = 638,
- SocketingMetaGemOnlyInMetaslot = 639,
- SocketingRequiresHydraulicGem = 640,
- SocketingHydraulicGemOnlyInHydraulicslot = 641,
- SocketingRequiresCogwheelGem = 642,
- SocketingCogwheelGemOnlyInCogwheelslot = 643,
- SocketingItemTooLowLevel = 644,
- ItemMaxCountSocketed = 645,
- SystemDisabled = 646,
- QuestFailedTooManyDailyQuestsI = 647,
- ItemMaxCountEquippedSocketed = 648,
- ItemUniqueEquippableSocketed = 649,
- UserSquelched = 650,
- AccountSilenced = 651,
- PartyMemberSilenced = 652,
- PartyMemberSilencedLfgDelist = 653,
- TooMuchGold = 654,
- NotBarberSitting = 655,
- QuestFailedCais = 656,
- InviteRestrictedTrial = 657,
- VoiceIgnoreFull = 658,
- VoiceIgnoreSelf = 659,
- VoiceIgnoreNotFound = 660,
- VoiceIgnoreAlreadyS = 661,
- VoiceIgnoreAddedS = 662,
- VoiceIgnoreRemovedS = 663,
- VoiceIgnoreAmbiguous = 664,
- VoiceIgnoreDeleted = 665,
- UnknownMacroOptionS = 666,
- NotDuringArenaMatch = 667,
- NotInRatedBattleground = 668,
- PlayerSilenced = 669,
- PlayerUnsilenced = 670,
- ComsatDisconnect = 671,
- ComsatReconnectAttempt = 672,
- ComsatConnectFail = 673,
- MailInvalidAttachmentSlot = 674,
- MailTooManyAttachments = 675,
- MailInvalidAttachment = 676,
- MailAttachmentExpired = 677,
- VoiceChatParentalDisableMic = 678,
- ProfaneChatName = 679,
- PlayerSilencedEcho = 680,
- PlayerUnsilencedEcho = 681,
- LootCantLootThat = 682,
- ArenaExpiredCais = 683,
- GroupActionThrottled = 684,
- AlreadyPickpocketed = 685,
- NameInvalid = 686,
- NameNoName = 687,
- NameTooShort = 688,
- NameTooLong = 689,
- NameMixedLanguages = 690,
- NameProfane = 691,
- NameReserved = 692,
- NameThreeConsecutive = 693,
- NameInvalidSpace = 694,
- NameConsecutiveSpaces = 695,
- NameRussianConsecutiveSilentCharacters = 696,
- NameRussianSilentCharacterAtBeginningOrEnd = 697,
- NameDeclensionDoesntMatchBaseName = 698,
- RecruitAFriendNotLinked = 699,
- RecruitAFriendNotNow = 700,
- RecruitAFriendSummonLevelMax = 701,
- RecruitAFriendSummonCooldown = 702,
- RecruitAFriendSummonOffline = 703,
- RecruitAFriendInsufExpanLvl = 704,
- RecruitAFriendMapIncomingTransferNotAllowed = 705,
- NotSameAccount = 706,
- BadOnUseEnchant = 707,
- TradeSelf = 708,
- TooManySockets = 709,
- ItemMaxLimitCategoryCountExceededIs = 710,
- TradeTargetMaxLimitCategoryCountExceededIs = 711,
- ItemMaxLimitCategorySocketedExceededIs = 712,
- ItemMaxLimitCategoryEquippedExceededIs = 713,
- ShapeshiftFormCannotEquip = 714,
- ItemInventoryFullSatchel = 715,
- ScalingStatItemLevelExceeded = 716,
- ScalingStatItemLevelTooLow = 717,
- PurchaseLevelTooLow = 718,
- GroupSwapFailed = 719,
- InviteInCombat = 720,
- InvalidGlyphSlot = 721,
- GenericNoValidTargets = 722,
- CalendarEventAlertS = 723,
- PetLearnSpellS = 724,
- PetLearnAbilityS = 725,
- PetSpellUnlearnedS = 726,
- InviteUnknownRealm = 727,
- InviteNoPartyServer = 728,
- InvitePartyBusy = 729,
- InvitePartyBusyPendingRequest = 730,
- InvitePartyBusyPendingSuggest = 731,
- PartyTargetAmbiguous = 732,
- PartyLfgInviteRaidLocked = 733,
- PartyLfgBootLimit = 734,
- PartyLfgBootCooldownS = 735,
- PartyLfgBootNotEligibleS = 736,
- PartyLfgBootInpatientTimerS = 737,
- PartyLfgBootInProgress = 738,
- PartyLfgBootTooFewPlayers = 739,
- PartyLfgBootVoteSucceeded = 740,
- PartyLfgBootVoteFailed = 741,
- PartyLfgBootDisallowedByMap = 742,
- PartyLfgBootDungeonComplete = 743,
- PartyLfgBootLootRolls = 744,
- PartyLfgBootVoteRegistered = 745,
- PartyPrivateGroupOnly = 746,
- PartyLfgTeleportInCombat = 747,
- PartyTimeRunningSeasonIdMustMatch = 748,
- RaidDisallowedByLevel = 749,
- RaidDisallowedByCrossRealm = 750,
- PartyRoleNotAvailable = 751,
- JoinLfgObjectFailed = 752,
- LfgRemovedLevelup = 753,
- LfgRemovedXpToggle = 754,
- LfgRemovedFactionChange = 755,
- BattlegroundInfoThrottled = 756,
- BattlegroundAlreadyIn = 757,
- ArenaTeamChangeFailedQueued = 758,
- ArenaTeamPermissions = 759,
- NotWhileFalling = 760,
- NotWhileMoving = 761,
- NotWhileFatigued = 762,
- MaxSockets = 763,
- MultiCastActionTotemS = 764,
- BattlegroundJoinLevelup = 765,
- RemoveFromPvpQueueXpGain = 766,
- BattlegroundJoinXpGain = 767,
- BattlegroundJoinMercenary = 768,
- BattlegroundJoinTooManyHealers = 769,
- BattlegroundJoinRatedTooManyHealers = 770,
- BattlegroundJoinTooManyTanks = 771,
- BattlegroundJoinTooManyDamage = 772,
- RaidDifficultyFailed = 773,
- RaidDifficultyChangedS = 774,
- LegacyRaidDifficultyChangedS = 775,
- RaidLockoutChangedS = 776,
- RaidConvertedToParty = 777,
- PartyConvertedToRaid = 778,
- PlayerDifficultyChangedS = 779,
- GmresponseDbError = 780,
- BattlegroundJoinRangeIndex = 781,
- ArenaJoinRangeIndex = 782,
- RemoveFromPvpQueueFactionChange = 783,
- BattlegroundJoinFailed = 784,
- BattlegroundJoinNoValidSpecForRole = 785,
- BattlegroundJoinRespec = 786,
- BattlegroundInvitationDeclined = 787,
- BattlegroundInvitationDeclinedBy = 788,
- BattlegroundJoinTimedOut = 789,
- BattlegroundDupeQueue = 790,
- BattlegroundJoinMustCompleteQuest = 791,
- InBattlegroundRespec = 792,
- MailLimitedDurationItem = 793,
- YellRestrictedTrial = 794,
- ChatRaidRestrictedTrial = 795,
- LfgRoleCheckFailed = 796,
- LfgRoleCheckFailedTimeout = 797,
- LfgRoleCheckFailedNotViable = 798,
- LfgReadyCheckFailed = 799,
- LfgReadyCheckFailedTimeout = 800,
- LfgGroupFull = 801,
- LfgNoLfgObject = 802,
- LfgNoSlotsPlayer = 803,
- LfgNoSlotsParty = 804,
- LfgNoSpec = 805,
- LfgMismatchedSlots = 806,
- LfgMismatchedSlotsLocalXrealm = 807,
- LfgPartyPlayersFromDifferentRealms = 808,
- LfgMembersNotPresent = 809,
- LfgGetInfoTimeout = 810,
- LfgInvalidSlot = 811,
- LfgDeserterPlayer = 812,
- LfgDeserterParty = 813,
- LfgDead = 814,
- LfgRandomCooldownPlayer = 815,
- LfgRandomCooldownParty = 816,
- LfgTooManyMembers = 817,
- LfgTooFewMembers = 818,
- LfgProposalFailed = 819,
- LfgProposalDeclinedSelf = 820,
- LfgProposalDeclinedParty = 821,
- LfgNoSlotsSelected = 822,
- LfgNoRolesSelected = 823,
- LfgRoleCheckInitiated = 824,
- LfgReadyCheckInitiated = 825,
- LfgPlayerDeclinedRoleCheck = 826,
- LfgPlayerDeclinedReadyCheck = 827,
- LfgLorewalking = 828,
- LfgJoinedQueue = 829,
- LfgJoinedFlexQueue = 830,
- LfgJoinedRfQueue = 831,
- LfgJoinedScenarioQueue = 832,
- LfgJoinedWorldPvpQueue = 833,
- LfgJoinedBattlefieldQueue = 834,
- LfgJoinedList = 835,
- QueuedPlunderstorm = 836,
- LfgLeftQueue = 837,
- LfgLeftList = 838,
- LfgRoleCheckAborted = 839,
- LfgReadyCheckAborted = 840,
- LfgCantUseBattleground = 841,
- LfgCantUseDungeons = 842,
- LfgReasonTooManyLfg = 843,
- LfgFarmLimit = 844,
- LfgNoCrossFactionParties = 845,
- InvalidTeleportLocation = 846,
- TooFarToInteract = 847,
- BattlegroundPlayersFromDifferentRealms = 848,
- DifficultyChangeCooldownS = 849,
- DifficultyChangeCombatCooldownS = 850,
- DifficultyChangeWorldstate = 851,
- DifficultyChangeEncounter = 852,
- DifficultyChangeCombat = 853,
- DifficultyChangePlayerBusy = 854,
- DifficultyChangePlayerOnVehicle = 855,
- DifficultyChangeAlreadyStarted = 856,
- DifficultyChangeOtherHeroicS = 857,
- DifficultyChangeHeroicInstanceAlreadyRunning = 858,
- ArenaTeamPartySize = 859,
- SoloShuffleWargameGroupSize = 860,
- SoloShuffleWargameGroupComp = 861,
- SoloRbgWargameGroupSize = 862,
- SoloRbgWargameGroupComp = 863,
- SoloMinItemLevel = 864,
- PvpPlayerAbandoned = 865,
- BattlegroundJoinGroupQueueWithoutHealer = 866,
- QuestForceRemovedS = 867,
- AttackNoActions = 868,
- InRandomBg = 869,
- InNonRandomBg = 870,
- BnFriendSelf = 871,
- BnFriendAlready = 872,
- BnFriendBlocked = 873,
- BnFriendListFull = 874,
- BnFriendRequestSent = 875,
- BnBroadcastThrottle = 876,
- BgDeveloperOnly = 877,
- CurrencySpellSlotMismatch = 878,
- CurrencyNotTradable = 879,
- RequiresExpansionS = 880,
- QuestFailedSpell = 881,
- TalentFailedUnspentTalentPoints = 882,
- TalentFailedNotEnoughTalentsInPrimaryTree = 883,
- TalentFailedNoPrimaryTreeSelected = 884,
- TalentFailedCantRemoveTalent = 885,
- TalentFailedUnknown = 886,
- TalentFailedInCombat = 887,
- TalentFailedInPvpMatch = 888,
- TalentFailedInMythicPlus = 889,
- WargameRequestFailure = 890,
- RankRequiresAuthenticator = 891,
- GuildBankVoucherFailed = 892,
- WargameRequestSent = 893,
- RequiresAchievementI = 894,
- RefundResultExceedMaxCurrency = 895,
- CantBuyQuantity = 896,
- ItemIsBattlePayLocked = 897,
- PartyAlreadyInBattlegroundQueue = 898,
- PartyConfirmingBattlegroundQueue = 899,
- BattlefieldTeamPartySize = 900,
- InsuffTrackedCurrencyIs = 901,
- NotOnTournamentRealm = 902,
- GuildTrialAccountTrial = 903,
- GuildTrialAccountVeteran = 904,
- GuildUndeletableDueToLevel = 905,
- CantDoThatInAGroup = 906,
- GuildLeaderReplaced = 907,
- TransmogrifyCantEquip = 908,
- TransmogrifyInvalidItemType = 909,
- TransmogrifyNotSoulbound = 910,
- TransmogrifyInvalidSource = 911,
- TransmogrifyInvalidDestination = 912,
- TransmogrifyMismatch = 913,
- TransmogrifyLegendary = 914,
- TransmogrifySameItem = 915,
- TransmogrifySameAppearance = 916,
- TransmogrifyNotEquipped = 917,
- VoidDepositFull = 918,
- VoidWithdrawFull = 919,
- VoidStorageWrapped = 920,
- VoidStorageStackable = 921,
- VoidStorageUnbound = 922,
- VoidStorageRepair = 923,
- VoidStorageCharges = 924,
- VoidStorageQuest = 925,
- VoidStorageConjured = 926,
- VoidStorageMail = 927,
- VoidStorageBag = 928,
- VoidTransferStorageFull = 929,
- VoidTransferInvFull = 930,
- VoidTransferInternalError = 931,
- VoidTransferItemInvalid = 932,
- DifficultyDisabledInLfg = 933,
- VoidStorageUnique = 934,
- VoidStorageLoot = 935,
- VoidStorageHoliday = 936,
- VoidStorageDuration = 937,
- VoidStorageLoadFailed = 938,
- VoidStorageInvalidItem = 939,
- VoidStorageAccountItem = 940,
- ParentalControlsChatMuted = 941,
- SorStartExperienceIncomplete = 942,
- SorInvalidEmail = 943,
- SorInvalidComment = 944,
- ChallengeModeResetCooldownS = 945,
- ChallengeModeResetKeystone = 946,
- PetJournalAlreadyInLoadout = 947,
- ReportSubmittedSuccessfully = 948,
- ReportSubmissionFailed = 949,
- SuggestionSubmittedSuccessfully = 950,
- BugSubmittedSuccessfully = 951,
- ChallengeModeEnabled = 952,
- ChallengeModeDisabled = 953,
- PetbattleCreateFailed = 954,
- PetbattleNotHere = 955,
- PetbattleNotHereOnTransport = 956,
- PetbattleNotHereUnevenGround = 957,
- PetbattleNotHereObstructed = 958,
- PetbattleNotWhileInCombat = 959,
- PetbattleNotWhileDead = 960,
- PetbattleNotWhileFlying = 961,
- PetbattleTargetInvalid = 962,
- PetbattleTargetOutOfRange = 963,
- PetbattleTargetNotCapturable = 964,
- PetbattleNotATrainer = 965,
- PetbattleDeclined = 966,
- PetbattleInBattle = 967,
- PetbattleInvalidLoadout = 968,
- PetbattleAllPetsDead = 969,
- PetbattleNoPetsInSlots = 970,
- PetbattleNoAccountLock = 971,
- PetbattleWildPetTapped = 972,
- PetbattleRestrictedAccount = 973,
- PetbattleOpponentNotAvailable = 974,
- PetbattleNotWhileInMatchedBattle = 975,
- CantHaveMorePetsOfThatType = 976,
- CantHaveMorePets = 977,
- PvpMapNotFound = 978,
- PvpMapNotSet = 979,
- PetbattleQueueQueued = 980,
- PetbattleQueueAlreadyQueued = 981,
- PetbattleQueueJoinFailed = 982,
- PetbattleQueueJournalLock = 983,
- PetbattleQueueRemoved = 984,
- PetbattleQueueProposalDeclined = 985,
- PetbattleQueueProposalTimeout = 986,
- PetbattleQueueOpponentDeclined = 987,
- PetbattleQueueRequeuedInternal = 988,
- PetbattleQueueRequeuedRemoved = 989,
- PetbattleQueueSlotLocked = 990,
- PetbattleQueueSlotEmpty = 991,
- PetbattleQueueSlotNoTracker = 992,
- PetbattleQueueSlotNoSpecies = 993,
- PetbattleQueueSlotCantBattle = 994,
- PetbattleQueueSlotRevoked = 995,
- PetbattleQueueSlotDead = 996,
- PetbattleQueueSlotNoPet = 997,
- PetbattleQueueNotWhileNeutral = 998,
- PetbattleGameTimeLimitWarning = 999,
- PetbattleGameRoundsLimitWarning = 1000,
- HasRestriction = 1001,
- ItemUpgradeItemTooLowLevel = 1002,
- ItemUpgradeNoPath = 1003,
- ItemUpgradeNoMoreUpgrades = 1004,
- BonusRollEmpty = 1005,
- ChallengeModeFull = 1006,
- ChallengeModeInProgress = 1007,
- ChallengeModeIncorrectKeystone = 1008,
- BattletagFriendNotFound = 1009,
- BattletagFriendNotValid = 1010,
- BattletagFriendNotAllowed = 1011,
- BattletagFriendThrottled = 1012,
- BattletagFriendSuccess = 1013,
- PetTooHighLevelToUncage = 1014,
- PetbattleInternal = 1015,
- CantCagePetYet = 1016,
- NoLootInChallengeMode = 1017,
- QuestPetBattleVictoriesPvpIi = 1018,
- RoleCheckAlreadyInProgress = 1019,
- RecruitAFriendAccountLimit = 1020,
- RecruitAFriendFailed = 1021,
- SetLootPersonal = 1022,
- SetLootMethodFailedCombat = 1023,
- ReagentBankFull = 1024,
- ReagentBankLocked = 1025,
- GarrisonBuildingExists = 1026,
- GarrisonInvalidPlot = 1027,
- GarrisonInvalidBuildingid = 1028,
- GarrisonInvalidPlotBuilding = 1029,
- GarrisonRequiresBlueprint = 1030,
- GarrisonNotEnoughCurrency = 1031,
- GarrisonNotEnoughGold = 1032,
- GarrisonCompleteMissionWrongFollowerType = 1033,
- AlreadyUsingLfgList = 1034,
- RestrictedAccountLfgListTrial = 1035,
- ToyUseLimitReached = 1036,
- ToyAlreadyKnown = 1037,
- TransmogSetAlreadyKnown = 1038,
- NotEnoughCurrency = 1039,
- SpecIsDisabled = 1040,
- FeatureRestrictedTrial = 1041,
- CantBeObliterated = 1042,
- CantBeScrapped = 1043,
- CantBeRecrafted = 1044,
- ArtifactRelicDoesNotMatchArtifact = 1045,
- MustEquipArtifact = 1046,
- CantDoThatRightNow = 1047,
- AffectingCombat = 1048,
- EquipmentManagerCombatSwapS = 1049,
- EquipmentManagerBagsFull = 1050,
- EquipmentManagerMissingItemS = 1051,
- MovieRecordingWarningPerf = 1052,
- MovieRecordingWarningDiskFull = 1053,
- MovieRecordingWarningNoMovie = 1054,
- MovieRecordingWarningRequirements = 1055,
- MovieRecordingWarningCompressing = 1056,
- NoChallengeModeReward = 1057,
- ClaimedChallengeModeReward = 1058,
- ChallengeModePeriodResetSs = 1059,
- CantDoThatChallengeModeActive = 1060,
- TalentFailedRestArea = 1061,
- CannotAbandonLastPet = 1062,
- TestCvarSetSss = 1063,
- QuestTurnInFailReason = 1064,
- ClaimedChallengeModeRewardOld = 1065,
- TalentGrantedByAura = 1066,
- ChallengeModeAlreadyComplete = 1067,
- GlyphTargetNotAvailable = 1068,
- PvpWarmodeToggleOn = 1069,
- PvpWarmodeToggleOff = 1070,
- SpellFailedLevelRequirement = 1071,
- SpellFailedCantFlyHere = 1072,
- BattlegroundJoinRequiresLevel = 1073,
- BattlegroundJoinDisqualified = 1074,
- BattlegroundJoinDisqualifiedNoName = 1075,
- VoiceChatGenericUnableToConnect = 1076,
- VoiceChatServiceLost = 1077,
- VoiceChatChannelNameTooShort = 1078,
- VoiceChatChannelNameTooLong = 1079,
- VoiceChatChannelAlreadyExists = 1080,
- VoiceChatTargetNotFound = 1081,
- VoiceChatTooManyRequests = 1082,
- VoiceChatPlayerSilenced = 1083,
- VoiceChatParentalDisableAll = 1084,
- VoiceChatDisabled = 1085,
- NoPvpReward = 1086,
- ClaimedPvpReward = 1087,
- AzeriteEssenceSelectionFailedEssenceNotUnlocked = 1088,
- AzeriteEssenceSelectionFailedCantRemoveEssence = 1089,
- AzeriteEssenceSelectionFailedConditionFailed = 1090,
- AzeriteEssenceSelectionFailedRestArea = 1091,
- AzeriteEssenceSelectionFailedSlotLocked = 1092,
- AzeriteEssenceSelectionFailedNotAtForge = 1093,
- AzeriteEssenceSelectionFailedHeartLevelTooLow = 1094,
- AzeriteEssenceSelectionFailedNotEquipped = 1095,
- SocketingRequiresPunchcardredGem = 1096,
- SocketingPunchcardredGemOnlyInPunchcardredslot = 1097,
- SocketingRequiresPunchcardyellowGem = 1098,
- SocketingPunchcardyellowGemOnlyInPunchcardyellowslot = 1099,
- SocketingRequiresPunchcardblueGem = 1100,
- SocketingPunchcardblueGemOnlyInPunchcardblueslot = 1101,
- SocketingRequiresDominationShard = 1102,
- SocketingDominationShardOnlyInDominationslot = 1103,
- SocketingRequiresCypherGem = 1104,
- SocketingCypherGemOnlyInCypherslot = 1105,
- SocketingRequiresTinkerGem = 1106,
- SocketingTinkerGemOnlyInTinkerslot = 1107,
- SocketingRequiresPrimordialGem = 1108,
- SocketingPrimordialGemOnlyInPrimordialslot = 1109,
- SocketingRequiresFragranceGem = 1110,
- SocketingFragranceGemOnlyInFragranceslot = 1111,
- SocketingRequiresSingingThunderGem = 1112,
- SocketingSingingthunderGemOnlyInSingingthunderslot = 1113,
- SocketingRequiresSingingSeaGem = 1114,
- SocketingSingingseaGemOnlyInSingingseaslot = 1115,
- SocketingRequiresSingingWindGem = 1116,
- SocketingSingingwindGemOnlyInSingingwindslot = 1117,
- LevelLinkingResultLinked = 1118,
- LevelLinkingResultUnlinked = 1119,
- ClubFinderErrorPostClub = 1120,
- ClubFinderErrorApplyClub = 1121,
- ClubFinderErrorRespondApplicant = 1122,
- ClubFinderErrorCancelApplication = 1123,
- ClubFinderErrorTypeAcceptApplication = 1124,
- ClubFinderErrorTypeNoInvitePermissions = 1125,
- ClubFinderErrorTypeNoPostingPermissions = 1126,
- ClubFinderErrorTypeApplicantList = 1127,
- ClubFinderErrorTypeApplicantListNoPerm = 1128,
- ClubFinderErrorTypeFinderNotAvailable = 1129,
- ClubFinderErrorTypeGetPostingIds = 1130,
- ClubFinderErrorTypeJoinApplication = 1131,
- ClubFinderErrorTypeRealmNotEligible = 1132,
- ClubFinderErrorTypeFlaggedRename = 1133,
- ClubFinderErrorTypeFlaggedDescriptionChange = 1134,
- ItemInteractionNotEnoughGold = 1135,
- ItemInteractionNotEnoughCurrency = 1136,
- ItemInteractionNoConversionOutput = 1137,
- PlayerChoiceErrorPendingChoice = 1138,
- SoulbindInvalidConduit = 1139,
- SoulbindInvalidConduitItem = 1140,
- SoulbindInvalidTalent = 1141,
- SoulbindDuplicateConduit = 1142,
- ActivateSoulbindS = 1143,
- ActivateSoulbindFailedRestArea = 1144,
- CantUseProfanity = 1145,
- NotInPetBattle = 1146,
- NotInNpe = 1147,
- NoSpec = 1148,
- NoDominationshardOverwrite = 1149,
- UseWeeklyRewardsDisabled = 1150,
- CrossFactionGroupJoined = 1151,
- CantTargetUnfriendlyInOverworld = 1152,
- EquipablespellsSlotsFull = 1153,
- ItemModAppearanceGroupAlreadyKnown = 1154,
- CantBulkSellItemWithRefund = 1155,
- NoSoulboundItemInAccountBank = 1156,
- NoRefundableItemInAccountBank = 1157,
- CantDeleteInAccountBank = 1158,
- NoImmediateContainerInAccountBank = 1159,
- NoOpenImmediateContainerInAccountBank = 1160,
- CantTradeAccountItem = 1161,
- NoAccountInventoryLock = 1162,
- BankNotAccessible = 1163,
- TooManyAccountBankTabs = 1164,
- AccountBankTabNotUnlocked = 1165,
- AccountMoneyLocked = 1166,
- BankTabInvalidName = 1167,
- BankTabInvalidText = 1168,
- WowLabsPartyErrorTypePartyIsFull = 1169,
- WowLabsPartyErrorTypeMaxInviteSent = 1170,
- WowLabsPartyErrorTypePlayerAlreadyInvited = 1171,
- WowLabsPartyErrorTypePartyInviteInvalid = 1172,
- WowLabsLobbyMatchmakerErrorEnterQueueFailed = 1173,
- WowLabsLobbyMatchmakerErrorLeaveQueueFailed = 1174,
- WowLabsSetWowLabsAreaIdFailed = 1175,
- PlunderstormCannotQueue = 1176,
- TargetIsSelfFoundCannotTrade = 1177,
- PlayerIsSelfFoundCannotTrade = 1178,
- MailRecepientIsSelfFoundCannotReceiveMail = 1179,
- PlayerIsSelfFoundCannotSendMail = 1180,
- PlayerIsSelfFoundCannotUseAuctionHouse = 1181,
- MailTargetCannotReceiveMail = 1182,
- RemixInvalidTransferRequest = 1183,
- CurrencyTransferInvalidCharacter = 1184,
- CurrencyTransferInvalidCurrency = 1185,
- CurrencyTransferInsufficientCurrency = 1186,
- CurrencyTransferMaxQuantity = 1187,
- CurrencyTransferNoValidSource = 1188,
- CurrencyTransferCharacterLoggedIn = 1189,
- CurrencyTransferServerError = 1190,
- CurrencyTransferUnmetRequirements = 1191,
- CurrencyTransferTransactionInProgress = 1192,
- CurrencyTransferDisabled = 1193,
+ SetLootNbg = 297,
+ SetLootThresholdS = 298,
+ NewLootMasterS = 299,
+ SpecifyMasterLooter = 300,
+ LootSpecChangedS = 301,
+ TameFailed = 302,
+ ChatWhileDead = 303,
+ ChatPlayerNotFoundS = 304,
+ Newtaxipath = 305,
+ NoPet = 306,
+ Notyourpet = 307,
+ PetNotRenameable = 308,
+ QuestObjectiveCompleteS = 309,
+ QuestUnknownComplete = 310,
+ QuestAddKillSii = 311,
+ QuestAddFoundSii = 312,
+ QuestAddItemSii = 313,
+ QuestAddPlayerKillSii = 314,
+ Cannotcreatedirectory = 315,
+ Cannotcreatefile = 316,
+ PlayerWrongFaction = 317,
+ PlayerIsNeutral = 318,
+ BankslotFailedTooMany = 319,
+ BankslotInsufficientFunds = 320,
+ BankslotNotbanker = 321,
+ FriendDbError = 322,
+ FriendListFull = 323,
+ FriendAddedS = 324,
+ BattletagFriendAddedS = 325,
+ FriendOnlineSs = 326,
+ FriendOfflineS = 327,
+ FriendNotFound = 328,
+ FriendWrongFaction = 329,
+ FriendRemovedS = 330,
+ BattletagFriendRemovedS = 331,
+ FriendError = 332,
+ FriendAlreadyS = 333,
+ FriendSelf = 334,
+ FriendDeleted = 335,
+ IgnoreFull = 336,
+ IgnoreSelf = 337,
+ IgnoreNotFound = 338,
+ IgnoreAlreadyS = 339,
+ IgnoreAddedS = 340,
+ IgnoreRemovedS = 341,
+ IgnoreAmbiguous = 342,
+ IgnoreDeleted = 343,
+ OnlyOneBolt = 344,
+ OnlyOneAmmo = 345,
+ SpellFailedEquippedSpecificItem = 346,
+ WrongBagTypeSubclass = 347,
+ CantWrapStackable = 348,
+ CantWrapEquipped = 349,
+ CantWrapWrapped = 350,
+ CantWrapBound = 351,
+ CantWrapUnique = 352,
+ CantWrapBags = 353,
+ OutOfMana = 354,
+ OutOfRage = 355,
+ OutOfFocus = 356,
+ OutOfEnergy = 357,
+ OutOfChi = 358,
+ OutOfHealth = 359,
+ OutOfRunes = 360,
+ OutOfRunicPower = 361,
+ OutOfSoulShards = 362,
+ OutOfLunarPower = 363,
+ OutOfHolyPower = 364,
+ OutOfMaelstrom = 365,
+ OutOfComboPoints = 366,
+ OutOfInsanity = 367,
+ OutOfEssence = 368,
+ OutOfArcaneCharges = 369,
+ OutOfFury = 370,
+ OutOfPain = 371,
+ OutOfPowerDisplay = 372,
+ OutOfRuneBlood = 373,
+ OutOfRuneFrost = 374,
+ OutOfRuneUnholy = 375,
+ OutOfAlternateQuest = 376,
+ OutOfAlternateEncounter = 377,
+ OutOfAlternateMount = 378,
+ OutOfBalance = 379,
+ OutOfHappiness = 380,
+ OutOfShadowOrbs = 381,
+ OutOfRuneChromatic = 382,
+ LootGone = 383,
+ MountForceddismount = 384,
+ AutofollowTooFar = 385,
+ UnitNotFound = 386,
+ InvalidFollowTarget = 387,
+ InvalidFollowPvpCombat = 388,
+ InvalidFollowTargetPvpCombat = 389,
+ InvalidInspectTarget = 390,
+ GuildemblemSuccess = 391,
+ GuildemblemInvalidTabardColors = 392,
+ GuildemblemNoguild = 393,
+ GuildemblemNotguildmaster = 394,
+ GuildemblemNotenoughmoney = 395,
+ GuildemblemInvalidvendor = 396,
+ EmblemerrorNotabardgeoset = 397,
+ SpellOutOfRange = 398,
+ CommandNeedsTarget = 399,
+ NoammoS = 400,
+ Toobusytofollow = 401,
+ DuelRequested = 402,
+ DuelCancelled = 403,
+ Deathbindalreadybound = 404,
+ DeathbindSuccessS = 405,
+ Noemotewhilerunning = 406,
+ ZoneExplored = 407,
+ ZoneExploredXp = 408,
+ InvalidItemTarget = 409,
+ InvalidQuestTarget = 410,
+ IgnoringYouS = 411,
+ FishNotHooked = 412,
+ FishEscaped = 413,
+ SpellFailedNotunsheathed = 414,
+ PetitionOfferedS = 415,
+ PetitionSigned = 416,
+ PetitionSignedS = 417,
+ PetitionDeclinedS = 418,
+ PetitionAlreadySigned = 419,
+ PetitionRestrictedAccountTrial = 420,
+ PetitionAlreadySignedOther = 421,
+ PetitionInGuild = 422,
+ PetitionCreator = 423,
+ PetitionNotEnoughSignatures = 424,
+ PetitionNotSameServer = 425,
+ PetitionFull = 426,
+ PetitionAlreadySignedByS = 427,
+ GuildNameInvalid = 428,
+ SpellUnlearnedS = 429,
+ PetSpellRooted = 430,
+ PetSpellAffectingCombat = 431,
+ PetSpellOutOfRange = 432,
+ PetSpellNotBehind = 433,
+ PetSpellTargetsDead = 434,
+ PetSpellDead = 435,
+ PetSpellNopath = 436,
+ ItemCantBeDestroyed = 437,
+ TicketAlreadyExists = 438,
+ TicketCreateError = 439,
+ TicketUpdateError = 440,
+ TicketDbError = 441,
+ TicketNoText = 442,
+ TicketTextTooLong = 443,
+ ObjectIsBusy = 444,
+ ExhaustionWellrested = 445,
+ ExhaustionRested = 446,
+ ExhaustionNormal = 447,
+ ExhaustionTired = 448,
+ ExhaustionExhausted = 449,
+ NoItemsWhileShapeshifted = 450,
+ CantInteractShapeshifted = 451,
+ RealmNotFound = 452,
+ MailQuestItem = 453,
+ MailBoundItem = 454,
+ MailConjuredItem = 455,
+ MailBag = 456,
+ MailToSelf = 457,
+ MailTargetNotFound = 458,
+ MailDatabaseError = 459,
+ MailDeleteItemError = 460,
+ MailWrappedCod = 461,
+ MailCantSendRealm = 462,
+ MailTempReturnOutage = 463,
+ MailRecepientCantReceiveMail = 464,
+ MailSent = 465,
+ MailTargetIsTrial = 466,
+ NotHappyEnough = 467,
+ UseCantImmune = 468,
+ CantBeDisenchanted = 469,
+ CantUseDisarmed = 470,
+ AuctionDatabaseError = 471,
+ AuctionHigherBid = 472,
+ AuctionAlreadyBid = 473,
+ AuctionOutbidS = 474,
+ AuctionWonS = 475,
+ AuctionRemovedS = 476,
+ AuctionBidPlaced = 477,
+ LogoutFailed = 478,
+ QuestPushSuccessS = 479,
+ QuestPushInvalidS = 480,
+ QuestPushInvalidToRecipientS = 481,
+ QuestPushAcceptedS = 482,
+ QuestPushDeclinedS = 483,
+ QuestPushBusyS = 484,
+ QuestPushDeadS = 485,
+ QuestPushDeadToRecipientS = 486,
+ QuestPushLogFullS = 487,
+ QuestPushLogFullToRecipientS = 488,
+ QuestPushOnquestS = 489,
+ QuestPushOnquestToRecipientS = 490,
+ QuestPushAlreadyDoneS = 491,
+ QuestPushAlreadyDoneToRecipientS = 492,
+ QuestPushNotDailyS = 493,
+ QuestPushTimerExpiredS = 494,
+ QuestPushNotInPartyS = 495,
+ QuestPushDifferentServerDailyS = 496,
+ QuestPushDifferentServerDailyToRecipientS = 497,
+ QuestPushNotAllowedS = 498,
+ QuestPushPrerequisiteS = 499,
+ QuestPushPrerequisiteToRecipientS = 500,
+ QuestPushLowLevelS = 501,
+ QuestPushLowLevelToRecipientS = 502,
+ QuestPushHighLevelS = 503,
+ QuestPushHighLevelToRecipientS = 504,
+ QuestPushClassS = 505,
+ QuestPushClassToRecipientS = 506,
+ QuestPushRaceS = 507,
+ QuestPushRaceToRecipientS = 508,
+ QuestPushLowFactionS = 509,
+ QuestPushLowFactionToRecipientS = 510,
+ QuestPushHighFactionS = 511,
+ QuestPushHighFactionToRecipientS = 512,
+ QuestPushExpansionS = 513,
+ QuestPushExpansionToRecipientS = 514,
+ QuestPushNotGarrisonOwnerS = 515,
+ QuestPushNotGarrisonOwnerToRecipientS = 516,
+ QuestPushWrongCovenantS = 517,
+ QuestPushWrongCovenantToRecipientS = 518,
+ QuestPushNewPlayerExperienceS = 519,
+ QuestPushNewPlayerExperienceToRecipientS = 520,
+ QuestPushWrongFactionS = 521,
+ QuestPushWrongFactionToRecipientS = 522,
+ QuestPushCrossFactionRestrictedS = 523,
+ RaidGroupLowlevel = 524,
+ RaidGroupOnly = 525,
+ RaidGroupFull = 526,
+ RaidGroupRequirementsUnmatch = 527,
+ CorpseIsNotInInstance = 528,
+ PvpKillHonorable = 529,
+ PvpKillDishonorable = 530,
+ SpellFailedAlreadyAtFullHealth = 531,
+ SpellFailedAlreadyAtFullMana = 532,
+ SpellFailedAlreadyAtFullPowerS = 533,
+ AutolootMoneyS = 534,
+ GenericStunned = 535,
+ GenericThrottle = 536,
+ ClubFinderSearchingTooFast = 537,
+ TargetStunned = 538,
+ MustRepairDurability = 539,
+ RaidYouJoined = 540,
+ RaidYouLeft = 541,
+ InstanceGroupJoinedWithParty = 542,
+ InstanceGroupJoinedWithRaid = 543,
+ RaidMemberAddedS = 544,
+ RaidMemberRemovedS = 545,
+ InstanceGroupAddedS = 546,
+ InstanceGroupRemovedS = 547,
+ ClickOnItemToFeed = 548,
+ TooManyChatChannels = 549,
+ LootRollPending = 550,
+ LootPlayerNotFound = 551,
+ NotInRaid = 552,
+ LoggingOut = 553,
+ TargetLoggingOut = 554,
+ NotWhileMounted = 555,
+ NotWhileShapeshifted = 556,
+ NotInCombat = 557,
+ NotWhileDisarmed = 558,
+ PetBroken = 559,
+ TalentWipeError = 560,
+ SpecWipeError = 561,
+ GlyphWipeError = 562,
+ PetSpecWipeError = 563,
+ FeignDeathResisted = 564,
+ MeetingStoneInQueueS = 565,
+ MeetingStoneLeftQueueS = 566,
+ MeetingStoneOtherMemberLeft = 567,
+ MeetingStonePartyKickedFromQueue = 568,
+ MeetingStoneMemberStillInQueue = 569,
+ MeetingStoneSuccess = 570,
+ MeetingStoneInProgress = 571,
+ MeetingStoneMemberAddedS = 572,
+ MeetingStoneGroupFull = 573,
+ MeetingStoneNotLeader = 574,
+ MeetingStoneInvalidLevel = 575,
+ MeetingStoneTargetNotInParty = 576,
+ MeetingStoneTargetInvalidLevel = 577,
+ MeetingStoneMustBeLeader = 578,
+ MeetingStoneNoRaidGroup = 579,
+ MeetingStoneNeedParty = 580,
+ MeetingStoneNotFound = 581,
+ MeetingStoneTargetInVehicle = 582,
+ GuildemblemSame = 583,
+ EquipTradeItem = 584,
+ PvpToggleOn = 585,
+ PvpToggleOff = 586,
+ GroupJoinBattlegroundDeserters = 587,
+ GroupJoinBattlegroundDead = 588,
+ GroupJoinBattlegroundS = 589,
+ GroupJoinBattlegroundFail = 590,
+ GroupJoinBattlegroundTooMany = 591,
+ SoloJoinBattlegroundS = 592,
+ JoinSingleScenarioS = 593,
+ BattlegroundTooManyQueues = 594,
+ BattlegroundCannotQueueForRated = 595,
+ BattledgroundQueuedForRated = 596,
+ BattlegroundTeamLeftQueue = 597,
+ BattlegroundNotInBattleground = 598,
+ AlreadyInArenaTeamS = 599,
+ InvalidPromotionCode = 600,
+ BgPlayerJoinedSs = 601,
+ BgPlayerLeftS = 602,
+ RestrictedAccount = 603,
+ RestrictedAccountTrial = 604,
+ NotEnoughPurchasedGameTime = 605,
+ PlayTimeExceeded = 606,
+ ApproachingPartialPlayTime = 607,
+ ApproachingPartialPlayTime2 = 608,
+ ApproachingNoPlayTime = 609,
+ ApproachingNoPlayTime2 = 610,
+ UnhealthyTime = 611,
+ ChatRestrictedTrial = 612,
+ ChatThrottled = 613,
+ MailReachedCap = 614,
+ InvalidRaidTarget = 615,
+ RaidLeaderReadyCheckStartS = 616,
+ ReadyCheckInProgress = 617,
+ ReadyCheckThrottled = 618,
+ VoteToAbandonNotYet = 619,
+ DungeonDifficultyFailed = 620,
+ DungeonDifficultyChangedS = 621,
+ TradeWrongRealm = 622,
+ TradeNotOnTaplist = 623,
+ ChatPlayerAmbiguousS = 624,
+ LootCantLootThatNow = 625,
+ LootMasterInvFull = 626,
+ LootMasterUniqueItem = 627,
+ LootMasterOther = 628,
+ FilteringYouS = 629,
+ UsePreventedByMechanicS = 630,
+ ItemUniqueEquippable = 631,
+ LfgLeaderIsLfmS = 632,
+ LfgPending = 633,
+ CantSpeakLangage = 634,
+ VendorMissingTurnins = 635,
+ BattlegroundNotInTeam = 636,
+ NotInBattleground = 637,
+ NotEnoughHonorPoints = 638,
+ NotEnoughArenaPoints = 639,
+ SocketingRequiresMetaGem = 640,
+ SocketingMetaGemOnlyInMetaslot = 641,
+ SocketingRequiresHydraulicGem = 642,
+ SocketingHydraulicGemOnlyInHydraulicslot = 643,
+ SocketingRequiresCogwheelGem = 644,
+ SocketingCogwheelGemOnlyInCogwheelslot = 645,
+ SocketingItemTooLowLevel = 646,
+ ItemMaxCountSocketed = 647,
+ SystemDisabled = 648,
+ QuestFailedTooManyDailyQuestsI = 649,
+ ItemMaxCountEquippedSocketed = 650,
+ ItemUniqueEquippableSocketed = 651,
+ UserSquelched = 652,
+ AccountSilenced = 653,
+ PartyMemberSilenced = 654,
+ PartyMemberSilencedLfgDelist = 655,
+ TooMuchGold = 656,
+ NotBarberSitting = 657,
+ QuestFailedCais = 658,
+ InviteRestrictedTrial = 659,
+ VoiceIgnoreFull = 660,
+ VoiceIgnoreSelf = 661,
+ VoiceIgnoreNotFound = 662,
+ VoiceIgnoreAlreadyS = 663,
+ VoiceIgnoreAddedS = 664,
+ VoiceIgnoreRemovedS = 665,
+ VoiceIgnoreAmbiguous = 666,
+ VoiceIgnoreDeleted = 667,
+ UnknownMacroOptionS = 668,
+ NotDuringArenaMatch = 669,
+ NotInRatedBattleground = 670,
+ PlayerSilenced = 671,
+ PlayerUnsilenced = 672,
+ ComsatDisconnect = 673,
+ ComsatReconnectAttempt = 674,
+ ComsatConnectFail = 675,
+ MailInvalidAttachmentSlot = 676,
+ MailTooManyAttachments = 677,
+ MailInvalidAttachment = 678,
+ MailAttachmentExpired = 679,
+ VoiceChatParentalDisableMic = 680,
+ ProfaneChatName = 681,
+ PlayerSilencedEcho = 682,
+ PlayerUnsilencedEcho = 683,
+ LootCantLootThat = 684,
+ ArenaExpiredCais = 685,
+ GroupActionThrottled = 686,
+ AlreadyPickpocketed = 687,
+ NameInvalid = 688,
+ NameNoName = 689,
+ NameTooShort = 690,
+ NameTooLong = 691,
+ NameMixedLanguages = 692,
+ NameProfane = 693,
+ NameReserved = 694,
+ NameThreeConsecutive = 695,
+ NameInvalidSpace = 696,
+ NameConsecutiveSpaces = 697,
+ NameRussianConsecutiveSilentCharacters = 698,
+ NameRussianSilentCharacterAtBeginningOrEnd = 699,
+ NameDeclensionDoesntMatchBaseName = 700,
+ RecruitAFriendNotLinked = 701,
+ RecruitAFriendNotNow = 702,
+ RecruitAFriendSummonLevelMax = 703,
+ RecruitAFriendSummonCooldown = 704,
+ RecruitAFriendSummonOffline = 705,
+ RecruitAFriendInsufExpanLvl = 706,
+ RecruitAFriendMapIncomingTransferNotAllowed = 707,
+ NotSameAccount = 708,
+ BadOnUseEnchant = 709,
+ TradeSelf = 710,
+ TooManySockets = 711,
+ ItemMaxLimitCategoryCountExceededIs = 712,
+ TradeTargetMaxLimitCategoryCountExceededIs = 713,
+ ItemMaxLimitCategorySocketedExceededIs = 714,
+ ItemMaxLimitCategoryEquippedExceededIs = 715,
+ ShapeshiftFormCannotEquip = 716,
+ ItemInventoryFullSatchel = 717,
+ ScalingStatItemLevelExceeded = 718,
+ ScalingStatItemLevelTooLow = 719,
+ PurchaseLevelTooLow = 720,
+ GroupSwapFailed = 721,
+ InviteInCombat = 722,
+ InvalidGlyphSlot = 723,
+ GenericNoValidTargets = 724,
+ CalendarEventAlertS = 725,
+ PetLearnSpellS = 726,
+ PetLearnAbilityS = 727,
+ PetSpellUnlearnedS = 728,
+ InviteUnknownRealm = 729,
+ InviteNoPartyServer = 730,
+ InvitePartyBusy = 731,
+ InvitePartyBusyPendingRequest = 732,
+ InvitePartyBusyPendingSuggest = 733,
+ PartyTargetAmbiguous = 734,
+ PartyLfgInviteRaidLocked = 735,
+ PartyLfgBootLimit = 736,
+ PartyLfgBootCooldownS = 737,
+ PartyLfgBootNotEligibleS = 738,
+ PartyLfgBootInpatientTimerS = 739,
+ PartyLfgBootInProgress = 740,
+ PartyLfgBootTooFewPlayers = 741,
+ PartyLfgBootVoteSucceeded = 742,
+ PartyLfgBootVoteFailed = 743,
+ PartyLfgBootDisallowedByMap = 744,
+ PartyLfgBootDungeonComplete = 745,
+ PartyLfgBootLootRolls = 746,
+ PartyLfgBootVoteRegistered = 747,
+ PartyPrivateGroupOnly = 748,
+ PartyLfgTeleportInCombat = 749,
+ PartyTimeRunningSeasonIdMustMatch = 750,
+ RaidDisallowedByLevel = 751,
+ RaidDisallowedByCrossRealm = 752,
+ PartyRoleNotAvailable = 753,
+ JoinLfgObjectFailed = 754,
+ LfgRemovedLevelup = 755,
+ LfgRemovedXpToggle = 756,
+ LfgRemovedFactionChange = 757,
+ BattlegroundInfoThrottled = 758,
+ BattlegroundAlreadyIn = 759,
+ ArenaTeamChangeFailedQueued = 760,
+ ArenaTeamPermissions = 761,
+ NotWhileFalling = 762,
+ NotWhileMoving = 763,
+ NotWhileFatigued = 764,
+ MaxSockets = 765,
+ MultiCastActionTotemS = 766,
+ BattlegroundJoinLevelup = 767,
+ RemoveFromPvpQueueXpGain = 768,
+ BattlegroundJoinXpGain = 769,
+ BattlegroundJoinMercenary = 770,
+ BattlegroundJoinTooManyHealers = 771,
+ BattlegroundJoinRatedTooManyHealers = 772,
+ BattlegroundJoinTooManyTanks = 773,
+ BattlegroundJoinTooManyDamage = 774,
+ RaidDifficultyFailed = 775,
+ RaidDifficultyChangedS = 776,
+ LegacyRaidDifficultyChangedS = 777,
+ RaidLockoutChangedS = 778,
+ RaidConvertedToParty = 779,
+ PartyConvertedToRaid = 780,
+ PlayerDifficultyChangedS = 781,
+ GmresponseDbError = 782,
+ BattlegroundJoinRangeIndex = 783,
+ ArenaJoinRangeIndex = 784,
+ RemoveFromPvpQueueFactionChange = 785,
+ BattlegroundJoinFailed = 786,
+ BattlegroundJoinNoValidSpecForRole = 787,
+ BattlegroundJoinRespec = 788,
+ BattlegroundInvitationDeclined = 789,
+ BattlegroundInvitationDeclinedBy = 790,
+ BattlegroundJoinTimedOut = 791,
+ BattlegroundDupeQueue = 792,
+ BattlegroundJoinMustCompleteQuest = 793,
+ InBattlegroundRespec = 794,
+ MailLimitedDurationItem = 795,
+ YellRestrictedTrial = 796,
+ ChatRaidRestrictedTrial = 797,
+ LfgRoleCheckFailed = 798,
+ LfgRoleCheckFailedTimeout = 799,
+ LfgRoleCheckFailedNotViable = 800,
+ LfgReadyCheckFailed = 801,
+ LfgReadyCheckFailedTimeout = 802,
+ LfgGroupFull = 803,
+ LfgNoLfgObject = 804,
+ LfgNoSlotsPlayer = 805,
+ LfgNoSlotsParty = 806,
+ LfgNoSpec = 807,
+ LfgMismatchedSlots = 808,
+ LfgMismatchedSlotsLocalXrealm = 809,
+ LfgPartyPlayersFromDifferentRealms = 810,
+ LfgMembersNotPresent = 811,
+ LfgGetInfoTimeout = 812,
+ LfgInvalidSlot = 813,
+ LfgDeserterPlayer = 814,
+ LfgDeserterParty = 815,
+ LfgDead = 816,
+ LfgRandomCooldownPlayer = 817,
+ LfgRandomCooldownParty = 818,
+ LfgTooManyMembers = 819,
+ LfgTooFewMembers = 820,
+ LfgProposalFailed = 821,
+ LfgProposalDeclinedSelf = 822,
+ LfgProposalDeclinedParty = 823,
+ LfgNoSlotsSelected = 824,
+ LfgNoRolesSelected = 825,
+ LfgRoleCheckInitiated = 826,
+ LfgReadyCheckInitiated = 827,
+ LfgPlayerDeclinedRoleCheck = 828,
+ LfgPlayerDeclinedReadyCheck = 829,
+ LfgLorewalking = 830,
+ LfgJoinedQueue = 831,
+ LfgJoinedFlexQueue = 832,
+ LfgJoinedRfQueue = 833,
+ LfgJoinedScenarioQueue = 834,
+ LfgJoinedWorldPvpQueue = 835,
+ LfgJoinedBattlefieldQueue = 836,
+ LfgJoinedList = 837,
+ QueuedPlunderstorm = 838,
+ LfgLeftQueue = 839,
+ LfgLeftList = 840,
+ LfgRoleCheckAborted = 841,
+ LfgReadyCheckAborted = 842,
+ LfgCantUseBattleground = 843,
+ LfgCantUseDungeons = 844,
+ LfgReasonTooManyLfg = 845,
+ LfgFarmLimit = 846,
+ LfgNoCrossFactionParties = 847,
+ InvalidTeleportLocation = 848,
+ TooFarToInteract = 849,
+ BattlegroundPlayersFromDifferentRealms = 850,
+ DifficultyChangeCooldownS = 851,
+ DifficultyChangeCombatCooldownS = 852,
+ DifficultyChangeWorldstate = 853,
+ DifficultyChangeEncounter = 854,
+ DifficultyChangeCombat = 855,
+ DifficultyChangePlayerBusy = 856,
+ DifficultyChangePlayerOnVehicle = 857,
+ DifficultyChangeAlreadyStarted = 858,
+ DifficultyChangeOtherHeroicS = 859,
+ DifficultyChangeHeroicInstanceAlreadyRunning = 860,
+ ArenaTeamPartySize = 861,
+ SoloShuffleWargameGroupSize = 862,
+ SoloShuffleWargameGroupComp = 863,
+ SoloRbgWargameGroupSize = 864,
+ SoloRbgWargameGroupComp = 865,
+ SoloMinItemLevel = 866,
+ PvpPlayerAbandoned = 867,
+ BattlegroundJoinGroupQueueWithoutHealer = 868,
+ QuestForceRemovedS = 869,
+ AttackNoActions = 870,
+ InRandomBg = 871,
+ InNonRandomBg = 872,
+ BnFriendSelf = 873,
+ BnFriendAlready = 874,
+ BnFriendBlocked = 875,
+ BnFriendListFull = 876,
+ BnFriendRequestSent = 877,
+ BnBroadcastThrottle = 878,
+ BgDeveloperOnly = 879,
+ CurrencySpellSlotMismatch = 880,
+ CurrencyNotTradable = 881,
+ RequiresExpansionS = 882,
+ QuestFailedSpell = 883,
+ TalentFailedUnspentTalentPoints = 884,
+ TalentFailedNotEnoughTalentsInPrimaryTree = 885,
+ TalentFailedNoPrimaryTreeSelected = 886,
+ TalentFailedCantRemoveTalent = 887,
+ TalentFailedUnknown = 888,
+ TalentFailedInCombat = 889,
+ TalentFailedInPvpMatch = 890,
+ TalentFailedInMythicPlus = 891,
+ WargameRequestFailure = 892,
+ RankRequiresAuthenticator = 893,
+ GuildBankVoucherFailed = 894,
+ WargameRequestSent = 895,
+ RequiresAchievementI = 896,
+ RefundResultExceedMaxCurrency = 897,
+ CantBuyQuantity = 898,
+ ItemIsBattlePayLocked = 899,
+ PartyAlreadyInBattlegroundQueue = 900,
+ PartyConfirmingBattlegroundQueue = 901,
+ BattlefieldTeamPartySize = 902,
+ InsuffTrackedCurrencyIs = 903,
+ NotOnTournamentRealm = 904,
+ GuildTrialAccountTrial = 905,
+ GuildTrialAccountVeteran = 906,
+ GuildUndeletableDueToLevel = 907,
+ CantDoThatInAGroup = 908,
+ GuildLeaderReplaced = 909,
+ TransmogrifyCantEquip = 910,
+ TransmogrifyInvalidItemType = 911,
+ TransmogrifyNotSoulbound = 912,
+ TransmogrifyInvalidSource = 913,
+ TransmogrifyInvalidDestination = 914,
+ TransmogrifyMismatch = 915,
+ TransmogrifyLegendary = 916,
+ TransmogrifySameItem = 917,
+ TransmogrifySameAppearance = 918,
+ TransmogrifyNotEquipped = 919,
+ VoidDepositFull = 920,
+ VoidWithdrawFull = 921,
+ VoidStorageWrapped = 922,
+ VoidStorageStackable = 923,
+ VoidStorageUnbound = 924,
+ VoidStorageRepair = 925,
+ VoidStorageCharges = 926,
+ VoidStorageQuest = 927,
+ VoidStorageConjured = 928,
+ VoidStorageMail = 929,
+ VoidStorageBag = 930,
+ VoidTransferStorageFull = 931,
+ VoidTransferInvFull = 932,
+ VoidTransferInternalError = 933,
+ VoidTransferItemInvalid = 934,
+ DifficultyDisabledInLfg = 935,
+ VoidStorageUnique = 936,
+ VoidStorageLoot = 937,
+ VoidStorageHoliday = 938,
+ VoidStorageDuration = 939,
+ VoidStorageLoadFailed = 940,
+ VoidStorageInvalidItem = 941,
+ VoidStorageAccountItem = 942,
+ ParentalControlsChatMuted = 943,
+ SorStartExperienceIncomplete = 944,
+ SorInvalidEmail = 945,
+ SorInvalidComment = 946,
+ ChallengeModeResetCooldownS = 947,
+ ChallengeModeResetKeystone = 948,
+ PetJournalAlreadyInLoadout = 949,
+ ReportSubmittedSuccessfully = 950,
+ ReportSubmissionFailed = 951,
+ SuggestionSubmittedSuccessfully = 952,
+ BugSubmittedSuccessfully = 953,
+ ChallengeModeEnabled = 954,
+ ChallengeModeDisabled = 955,
+ PetbattleCreateFailed = 956,
+ PetbattleNotHere = 957,
+ PetbattleNotHereOnTransport = 958,
+ PetbattleNotHereUnevenGround = 959,
+ PetbattleNotHereObstructed = 960,
+ PetbattleNotWhileInCombat = 961,
+ PetbattleNotWhileDead = 962,
+ PetbattleNotWhileFlying = 963,
+ PetbattleTargetInvalid = 964,
+ PetbattleTargetOutOfRange = 965,
+ PetbattleTargetNotCapturable = 966,
+ PetbattleNotATrainer = 967,
+ PetbattleDeclined = 968,
+ PetbattleInBattle = 969,
+ PetbattleInvalidLoadout = 970,
+ PetbattleAllPetsDead = 971,
+ PetbattleNoPetsInSlots = 972,
+ PetbattleNoAccountLock = 973,
+ PetbattleWildPetTapped = 974,
+ PetbattleRestrictedAccount = 975,
+ PetbattleOpponentNotAvailable = 976,
+ PetbattleNotWhileInMatchedBattle = 977,
+ CantHaveMorePetsOfThatType = 978,
+ CantHaveMorePets = 979,
+ PvpMapNotFound = 980,
+ PvpMapNotSet = 981,
+ PetbattleQueueQueued = 982,
+ PetbattleQueueAlreadyQueued = 983,
+ PetbattleQueueJoinFailed = 984,
+ PetbattleQueueJournalLock = 985,
+ PetbattleQueueRemoved = 986,
+ PetbattleQueueProposalDeclined = 987,
+ PetbattleQueueProposalTimeout = 988,
+ PetbattleQueueOpponentDeclined = 989,
+ PetbattleQueueRequeuedInternal = 990,
+ PetbattleQueueRequeuedRemoved = 991,
+ PetbattleQueueSlotLocked = 992,
+ PetbattleQueueSlotEmpty = 993,
+ PetbattleQueueSlotNoTracker = 994,
+ PetbattleQueueSlotNoSpecies = 995,
+ PetbattleQueueSlotCantBattle = 996,
+ PetbattleQueueSlotRevoked = 997,
+ PetbattleQueueSlotDead = 998,
+ PetbattleQueueSlotNoPet = 999,
+ PetbattleQueueNotWhileNeutral = 1000,
+ PetbattleGameTimeLimitWarning = 1001,
+ PetbattleGameRoundsLimitWarning = 1002,
+ HasRestriction = 1003,
+ ItemUpgradeItemTooLowLevel = 1004,
+ ItemUpgradeNoPath = 1005,
+ ItemUpgradeNoMoreUpgrades = 1006,
+ BonusRollEmpty = 1007,
+ ChallengeModeFull = 1008,
+ ChallengeModeInProgress = 1009,
+ ChallengeModeIncorrectKeystone = 1010,
+ StartRestrictedChallengeMode = 1011,
+ BattletagFriendNotFound = 1012,
+ BattletagFriendNotValid = 1013,
+ BattletagFriendNotAllowed = 1014,
+ BattletagFriendThrottled = 1015,
+ BattletagFriendSuccess = 1016,
+ PetTooHighLevelToUncage = 1017,
+ PetbattleInternal = 1018,
+ CantCagePetYet = 1019,
+ NoLootInChallengeMode = 1020,
+ QuestPetBattleVictoriesPvpIi = 1021,
+ RoleCheckAlreadyInProgress = 1022,
+ RecruitAFriendAccountLimit = 1023,
+ RecruitAFriendFailed = 1024,
+ SetLootPersonal = 1025,
+ SetLootMethodFailedCombat = 1026,
+ ReagentBankFull = 1027,
+ ReagentBankLocked = 1028,
+ GarrisonBuildingExists = 1029,
+ GarrisonInvalidPlot = 1030,
+ GarrisonInvalidBuildingid = 1031,
+ GarrisonInvalidPlotBuilding = 1032,
+ GarrisonRequiresBlueprint = 1033,
+ GarrisonNotEnoughCurrency = 1034,
+ GarrisonNotEnoughGold = 1035,
+ GarrisonCompleteMissionWrongFollowerType = 1036,
+ AlreadyUsingLfgList = 1037,
+ RestrictedAccountLfgListTrial = 1038,
+ ToyUseLimitReached = 1039,
+ ToyAlreadyKnown = 1040,
+ TransmogSetAlreadyKnown = 1041,
+ NotEnoughCurrency = 1042,
+ SpecIsDisabled = 1043,
+ FeatureRestrictedTrial = 1044,
+ CantBeObliterated = 1045,
+ CantBeScrapped = 1046,
+ CantBeRecrafted = 1047,
+ ArtifactRelicDoesNotMatchArtifact = 1048,
+ MustEquipArtifact = 1049,
+ CantDoThatRightNow = 1050,
+ AffectingCombat = 1051,
+ EquipmentManagerCombatSwapS = 1052,
+ EquipmentManagerBagsFull = 1053,
+ EquipmentManagerMissingItemS = 1054,
+ MovieRecordingWarningPerf = 1055,
+ MovieRecordingWarningDiskFull = 1056,
+ MovieRecordingWarningNoMovie = 1057,
+ MovieRecordingWarningRequirements = 1058,
+ MovieRecordingWarningCompressing = 1059,
+ NoChallengeModeReward = 1060,
+ ClaimedChallengeModeReward = 1061,
+ ChallengeModePeriodResetSs = 1062,
+ CantDoThatChallengeModeActive = 1063,
+ TalentFailedRestArea = 1064,
+ CannotAbandonLastPet = 1065,
+ TestCvarSetSss = 1066,
+ QuestTurnInFailReason = 1067,
+ ClaimedChallengeModeRewardOld = 1068,
+ TalentGrantedByAura = 1069,
+ ChallengeModeAlreadyComplete = 1070,
+ GlyphTargetNotAvailable = 1071,
+ PvpWarmodeToggleOn = 1072,
+ PvpWarmodeToggleOff = 1073,
+ SpellFailedLevelRequirement = 1074,
+ SpellFailedCantFlyHere = 1075,
+ BattlegroundJoinRequiresLevel = 1076,
+ BattlegroundJoinDisqualified = 1077,
+ BattlegroundJoinDisqualifiedNoName = 1078,
+ VoiceChatGenericUnableToConnect = 1079,
+ VoiceChatServiceLost = 1080,
+ VoiceChatChannelNameTooShort = 1081,
+ VoiceChatChannelNameTooLong = 1082,
+ VoiceChatChannelAlreadyExists = 1083,
+ VoiceChatTargetNotFound = 1084,
+ VoiceChatTooManyRequests = 1085,
+ VoiceChatPlayerSilenced = 1086,
+ VoiceChatParentalDisableAll = 1087,
+ VoiceChatDisabled = 1088,
+ NoPvpReward = 1089,
+ ClaimedPvpReward = 1090,
+ AzeriteEssenceSelectionFailedEssenceNotUnlocked = 1091,
+ AzeriteEssenceSelectionFailedCantRemoveEssence = 1092,
+ AzeriteEssenceSelectionFailedConditionFailed = 1093,
+ AzeriteEssenceSelectionFailedRestArea = 1094,
+ AzeriteEssenceSelectionFailedSlotLocked = 1095,
+ AzeriteEssenceSelectionFailedNotAtForge = 1096,
+ AzeriteEssenceSelectionFailedHeartLevelTooLow = 1097,
+ AzeriteEssenceSelectionFailedNotEquipped = 1098,
+ SocketingGenericFailure = 1099,
+ SocketingRequiresPunchcardredGem = 1100,
+ SocketingPunchcardredGemOnlyInPunchcardredslot = 1101,
+ SocketingRequiresPunchcardyellowGem = 1102,
+ SocketingPunchcardyellowGemOnlyInPunchcardyellowslot = 1103,
+ SocketingRequiresPunchcardblueGem = 1104,
+ SocketingPunchcardblueGemOnlyInPunchcardblueslot = 1105,
+ SocketingRequiresDominationShard = 1106,
+ SocketingDominationShardOnlyInDominationslot = 1107,
+ SocketingRequiresCypherGem = 1108,
+ SocketingCypherGemOnlyInCypherslot = 1109,
+ SocketingRequiresTinkerGem = 1110,
+ SocketingTinkerGemOnlyInTinkerslot = 1111,
+ SocketingRequiresPrimordialGem = 1112,
+ SocketingPrimordialGemOnlyInPrimordialslot = 1113,
+ SocketingRequiresFragranceGem = 1114,
+ SocketingFragranceGemOnlyInFragranceslot = 1115,
+ SocketingRequiresSingingThunderGem = 1116,
+ SocketingSingingthunderGemOnlyInSingingthunderslot = 1117,
+ SocketingRequiresSingingSeaGem = 1118,
+ SocketingSingingseaGemOnlyInSingingseaslot = 1119,
+ SocketingRequiresSingingWindGem = 1120,
+ SocketingSingingwindGemOnlyInSingingwindslot = 1121,
+ SocketingRequiresFiberGem = 1122,
+ SocketingFiberGemOnlyInFiberslot = 1123,
+ LevelLinkingResultLinked = 1124,
+ LevelLinkingResultUnlinked = 1125,
+ ClubFinderErrorPostClub = 1126,
+ ClubFinderErrorApplyClub = 1127,
+ ClubFinderErrorRespondApplicant = 1128,
+ ClubFinderErrorCancelApplication = 1129,
+ ClubFinderErrorTypeAcceptApplication = 1130,
+ ClubFinderErrorTypeNoInvitePermissions = 1131,
+ ClubFinderErrorTypeNoPostingPermissions = 1132,
+ ClubFinderErrorTypeApplicantList = 1133,
+ ClubFinderErrorTypeApplicantListNoPerm = 1134,
+ ClubFinderErrorTypeFinderNotAvailable = 1135,
+ ClubFinderErrorTypeGetPostingIds = 1136,
+ ClubFinderErrorTypeJoinApplication = 1137,
+ ClubFinderErrorTypeRealmNotEligible = 1138,
+ ClubFinderErrorTypeFlaggedRename = 1139,
+ ClubFinderErrorTypeFlaggedDescriptionChange = 1140,
+ ItemInteractionNotEnoughGold = 1141,
+ ItemInteractionNotEnoughCurrency = 1142,
+ ItemInteractionNoConversionOutput = 1143,
+ PlayerChoiceErrorPendingChoice = 1144,
+ SoulbindInvalidConduit = 1145,
+ SoulbindInvalidConduitItem = 1146,
+ SoulbindInvalidTalent = 1147,
+ SoulbindDuplicateConduit = 1148,
+ ActivateSoulbindS = 1149,
+ ActivateSoulbindFailedRestArea = 1150,
+ CantUseProfanity = 1151,
+ NotInPetBattle = 1152,
+ NotInNpe = 1153,
+ NoSpec = 1154,
+ NoDominationshardOverwrite = 1155,
+ UseWeeklyRewardsDisabled = 1156,
+ CrossFactionGroupJoined = 1157,
+ CantTargetUnfriendlyInOverworld = 1158,
+ EquipablespellsSlotsFull = 1159,
+ ItemModAppearanceGroupAlreadyKnown = 1160,
+ CantBulkSellItemWithRefund = 1161,
+ NoSoulboundItemInAccountBank = 1162,
+ NoRefundableItemInAccountBank = 1163,
+ CantDeleteInAccountBank = 1164,
+ NoImmediateContainerInAccountBank = 1165,
+ NoOpenImmediateContainerInAccountBank = 1166,
+ CantTradeAccountItem = 1167,
+ NoAccountInventoryLock = 1168,
+ BankNotAccessible = 1169,
+ TooManyAccountBankTabs = 1170,
+ BankTabNotUnlocked = 1171,
+ AccountMoneyLocked = 1172,
+ BankTabInvalidName = 1173,
+ BankTabInvalidText = 1174,
+ CharacterBankNotConverted = 1175,
+ WowLabsPartyErrorTypePartyIsFull = 1176,
+ WowLabsPartyErrorTypeMaxInviteSent = 1177,
+ WowLabsPartyErrorTypePlayerAlreadyInvited = 1178,
+ WowLabsPartyErrorTypePartyInviteInvalid = 1179,
+ WowLabsLobbyMatchmakerErrorEnterQueueFailed = 1180,
+ WowLabsLobbyMatchmakerErrorLeaveQueueFailed = 1181,
+ WowLabsSetWowLabsAreaIdFailed = 1182,
+ PlunderstormCannotQueue = 1183,
+ TargetIsSelfFoundCannotTrade = 1184,
+ PlayerIsSelfFoundCannotTrade = 1185,
+ MailRecepientIsSelfFoundCannotReceiveMail = 1186,
+ PlayerIsSelfFoundCannotSendMail = 1187,
+ PlayerIsSelfFoundCannotUseAuctionHouse = 1188,
+ MailTargetCannotReceiveMail = 1189,
+ RemixInvalidTransferRequest = 1190,
+ CurrencyTransferInvalidCharacter = 1191,
+ CurrencyTransferInvalidCurrency = 1192,
+ CurrencyTransferInsufficientCurrency = 1193,
+ CurrencyTransferMaxQuantity = 1194,
+ CurrencyTransferNoValidSource = 1195,
+ CurrencyTransferCharacterLoggedIn = 1196,
+ CurrencyTransferServerError = 1197,
+ CurrencyTransferUnmetRequirements = 1198,
+ CurrencyTransferTransactionInProgress = 1199,
+ CurrencyTransferDisabled = 1200,
}
public enum SceneFlags
diff --git a/Source/Framework/Constants/Spells/SpellAuraConst.cs b/Source/Framework/Constants/Spells/SpellAuraConst.cs
index 52bb99daa..6c6d78c42 100644
--- a/Source/Framework/Constants/Spells/SpellAuraConst.cs
+++ b/Source/Framework/Constants/Spells/SpellAuraConst.cs
@@ -651,6 +651,9 @@ namespace Framework.Constants
Unk641 = 641,
Unk642 = 642,
ModRangedAttackSpeedFlat = 643,
+ Unk644 = 644,
+ Unk645 = 645,
+
Total
}
diff --git a/Source/Framework/Constants/Spells/SpellConst.cs b/Source/Framework/Constants/Spells/SpellConst.cs
index 364419ad0..3d54acd81 100644
--- a/Source/Framework/Constants/Spells/SpellConst.cs
+++ b/Source/Framework/Constants/Spells/SpellConst.cs
@@ -2671,6 +2671,10 @@ namespace Framework.Constants
UiAction = 339,
Unk340 = 340,
LearnWarbanScene = 341,
+ Unk342 = 342,
+ Unk343 = 343,
+ Unk344 = 344, // some kind of teleport
+ AssistAction = 345, // MiscValue[0] = AssistActionType, MiscValue[1] = ID, depends on type
TotalSpellEffects
}
diff --git a/Source/Framework/Database/DatabaseUpdater.cs b/Source/Framework/Database/DatabaseUpdater.cs
index ae5e28609..399a669fc 100644
--- a/Source/Framework/Database/DatabaseUpdater.cs
+++ b/Source/Framework/Database/DatabaseUpdater.cs
@@ -37,10 +37,10 @@ namespace Framework.Database
fileName = @"/sql/base/characters_database.sql";
break;
case "WorldDatabase":
- fileName = @"/sql/TDB_full_world_1115.25051_2025_05_31.sql";
+ fileName = @"/sql/TDB_full_world_1117.25071_2025_07_21.sql";
break;
case "HotfixDatabase":
- fileName = @"/sql/TDB_full_hotfixes_1115.25051_2025_05_31.sql";
+ fileName = @"/sql/TDB_full_hotfixes_1117.25071_2025_07_21.sql";
break;
}
diff --git a/Source/Framework/Database/Databases/CharacterDatabase.cs b/Source/Framework/Database/Databases/CharacterDatabase.cs
index 059bacf5c..ac7e10482 100644
--- a/Source/Framework/Database/Databases/CharacterDatabase.cs
+++ b/Source/Framework/Database/Databases/CharacterDatabase.cs
@@ -73,7 +73,7 @@ namespace Framework.Database
PrepareStatement(CharStatements.INS_BATTLEGROUND_RANDOM, "INSERT INTO character_battleground_random (guid) VALUES (?)");
PrepareStatement(CharStatements.SEL_CHARACTER, "SELECT c.guid, account, name, race, class, gender, level, xp, money, inventorySlots, inventoryBagFlags, bagSlotFlags1, bagSlotFlags2, bagSlotFlags3, bagSlotFlags4, bagSlotFlags5, " +
- "bankSlots, bankBagFlags, bankBagSlotFlags1, bankBagSlotFlags2, bankBagSlotFlags3, bankBagSlotFlags4, bankBagSlotFlags5, bankBagSlotFlags6, bankBagSlotFlags7, restState, playerFlags, playerFlagsEx, " +
+ "bankSlots, bankTabs, bankBagFlags, restState, playerFlags, playerFlagsEx, " +
"position_x, position_y, position_z, map, orientation, taximask, createTime, createMode, cinematic, totaltime, leveltime, rest_bonus, logout_time, is_logout_resting, resettalents_cost, " +
"resettalents_time, primarySpecialization, trans_x, trans_y, trans_z, trans_o, transguid, extra_flags, summonedPetNumber, at_login, zone, online, death_expire_time, taxi_path, dungeonDifficulty, " +
"totalKills, todayKills, yesterdayKills, chosenTitle, watchedFaction, drunk, " +
@@ -451,14 +451,14 @@ namespace Framework.Database
// Player saving
PrepareStatement(CharStatements.INS_CHARACTER, "INSERT INTO characters (guid, account, name, race, class, gender, level, xp, money, inventorySlots, inventoryBagFlags, bagSlotFlags1, bagSlotFlags2, bagSlotFlags3, bagSlotFlags4, bagSlotFlags5, " +
- "bankSlots, bankBagFlags, bankBagSlotFlags1, bankBagSlotFlags2, bankBagSlotFlags3, bankBagSlotFlags4, bankBagSlotFlags5, bankBagSlotFlags6, bankBagSlotFlags7, restState, playerFlags, playerFlagsEx, " +
+ "bankSlots, bankTabs, bankBagFlags, restState, playerFlags, playerFlagsEx, " +
"map, instance_id, dungeonDifficulty, raidDifficulty, legacyRaidDifficulty, position_x, position_y, position_z, orientation, trans_x, trans_y, trans_z, trans_o, transguid, " +
"taximask, createTime, createMode, cinematic, totaltime, leveltime, rest_bonus, logout_time, is_logout_resting, resettalents_cost, resettalents_time, primarySpecialization, " +
"extra_flags, summonedPetNumber, at_login, death_expire_time, taxi_path, totalKills, todayKills, yesterdayKills, chosenTitle, watchedFaction, drunk, health, power1, power2, power3, " +
"power4, power5, power6, power7, power8, power9, power10, latency, activeTalentGroup, lootSpecId, exploredZones, equipmentCache, knownTitles, actionBars, lastLoginBuild) VALUES " +
- "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
+ "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
PrepareStatement(CharStatements.UPD_CHARACTER, "UPDATE characters SET name=?,race=?,class=?,gender=?,level=?,xp=?,money=?,inventorySlots=?,inventoryBagFlags=?,bagSlotFlags1=?,bagSlotFlags2=?,bagSlotFlags3=?,bagSlotFlags4=?,bagSlotFlags5=?," +
- "bankSlots=?,bankBagFlags=?,bankBagSlotFlags1=?,bankBagSlotFlags2=?,bankBagSlotFlags3=?,bankBagSlotFlags4=?,bankBagSlotFlags5=?,bankBagSlotFlags6=?,bankBagSlotFlags7=?,restState=?,playerFlags=?,playerFlagsEx=?," +
+ "bankSlots=?,bankTabs=?,bankBagFlags=?,restState=?,playerFlags=?,playerFlagsEx=?," +
"map=?,instance_id=?,dungeonDifficulty=?,raidDifficulty=?,legacyRaidDifficulty=?,position_x=?,position_y=?,position_z=?,orientation=?,trans_x=?,trans_y=?,trans_z=?,trans_o=?,transguid=?,taximask=?,cinematic=?,totaltime=?,leveltime=?,rest_bonus=?," +
"logout_time=?,is_logout_resting=?,resettalents_cost=?,resettalents_time=?,numRespecs=?,primarySpecialization=?,extra_flags=?,summonedPetNumber=?,at_login=?,zone=?,death_expire_time=?,taxi_path=?," +
"totalKills=?,todayKills=?,yesterdayKills=?,chosenTitle=?," +
@@ -654,12 +654,6 @@ namespace Framework.Database
PrepareStatement(CharStatements.DEL_CHAR_TRAIT_CONFIGS, "DELETE FROM character_trait_config WHERE guid = ? AND traitConfigId = ?");
PrepareStatement(CharStatements.DEL_CHAR_TRAIT_CONFIGS_BY_CHAR, "DELETE FROM character_trait_config WHERE guid = ?");
- // Void Storage
- PrepareStatement(CharStatements.SEL_CHAR_VOID_STORAGE, "SELECT itemId, itemEntry, slot, creatorGuid, randomBonusListId, fixedScalingLevel, artifactKnowledgeLevel, context, bonusListIDs FROM character_void_storage WHERE playerGuid = ?");
- PrepareStatement(CharStatements.REP_CHAR_VOID_STORAGE_ITEM, "REPLACE INTO character_void_storage (itemId, playerGuid, itemEntry, slot, creatorGuid, randomBonusListId, fixedScalingLevel, artifactKnowledgeLevel, context, bonusListIDs) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
- PrepareStatement(CharStatements.DEL_CHAR_VOID_STORAGE_ITEM_BY_CHAR_GUID, "DELETE FROM character_void_storage WHERE playerGuid = ?");
- PrepareStatement(CharStatements.DEL_CHAR_VOID_STORAGE_ITEM_BY_SLOT, "DELETE FROM character_void_storage WHERE slot = ? AND playerGuid = ?");
-
// CompactUnitFrame profiles
PrepareStatement(CharStatements.SEL_CHAR_CUF_PROFILES, "SELECT id, name, frameHeight, frameWidth, sortBy, healthText, boolOptions, topPoint, bottomPoint, leftPoint, topOffset, bottomOffset, leftOffset FROM character_cuf_profiles WHERE guid = ?");
PrepareStatement(CharStatements.REP_CHAR_CUF_PROFILES, "REPLACE INTO character_cuf_profiles (guid, id, name, frameHeight, frameWidth, sortBy, healthText, boolOptions, topPoint, bottomPoint, leftPoint, topOffset, bottomOffset, leftOffset) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
@@ -769,11 +763,17 @@ namespace Framework.Database
PrepareStatement(CharStatements.INS_INSTANCE, "INSERT INTO instance (instanceId, data, completedEncountersMask, entranceWorldSafeLocId) VALUES (?, ?, ?, ?)");
PrepareStatement(CharStatements.SEL_PLAYER_DATA_ELEMENTS_CHARACTER, "SELECT playerDataElementCharacterId, floatValue, int64Value FROM character_player_data_element WHERE characterGuid = ?");
+ PrepareStatement(CharStatements.DEL_PLAYER_DATA_ELEMENTS_CHARACTER_BY_GUID, "DELETE FROM character_player_data_element WHERE characterGuid = ?");
PrepareStatement(CharStatements.DEL_PLAYER_DATA_ELEMENTS_CHARACTER, "DELETE FROM character_player_data_element WHERE characterGuid = ? AND playerDataElementCharacterId = ?");
PrepareStatement(CharStatements.INS_PLAYER_DATA_ELEMENTS_CHARACTER, "INSERT INTO character_player_data_element (characterGuid, playerDataElementCharacterId, floatValue, int64Value) VALUES (?, ?, ?, ?)");
PrepareStatement(CharStatements.SEL_PLAYER_DATA_FLAGS_CHARACTER, "SELECT storageIndex, mask FROM character_player_data_flag WHERE characterGuid = ?");
+ PrepareStatement(CharStatements.DEL_PLAYER_DATA_FLAGS_CHARACTER_BY_GUID, "DELETE FROM character_player_data_flag WHERE characterGuid = ?");
PrepareStatement(CharStatements.DEL_PLAYER_DATA_FLAGS_CHARACTER, "DELETE FROM character_player_data_flag WHERE characterGuid = ? AND storageIndex = ?");
PrepareStatement(CharStatements.INS_PLAYER_DATA_FLAGS_CHARACTER, "INSERT INTO character_player_data_flag (characterGuid, storageIndex, mask) VALUES (?, ?, ?)");
+
+ PrepareStatement(CharStatements.SEL_CHARACTER_BANK_TAB_SETTINGS, "SELECT tabId, name, icon, description, depositFlags FROM character_bank_tab_settings WHERE characterGuid = ?");
+ PrepareStatement(CharStatements.DEL_CHARACTER_BANK_TAB_SETTINGS, "DELETE FROM character_bank_tab_settings WHERE characterGuid = ?");
+ PrepareStatement(CharStatements.INS_CHARACTER_BANK_TAB_SETTINGS, "INSERT INTO character_bank_tab_settings (characterGuid, tabId, name, icon, description, depositFlags) VALUES (?, ?, ?, ?, ?, ?)");
}
}
@@ -1301,11 +1301,6 @@ namespace Framework.Database
DEL_CHAR_TRAIT_CONFIGS,
DEL_CHAR_TRAIT_CONFIGS_BY_CHAR,
- SEL_CHAR_VOID_STORAGE,
- REP_CHAR_VOID_STORAGE_ITEM,
- DEL_CHAR_VOID_STORAGE_ITEM_BY_CHAR_GUID,
- DEL_CHAR_VOID_STORAGE_ITEM_BY_SLOT,
-
SEL_CHAR_CUF_PROFILES,
REP_CHAR_CUF_PROFILES,
DEL_CHAR_CUF_PROFILES_BY_ID,
@@ -1403,12 +1398,18 @@ namespace Framework.Database
INS_INSTANCE,
SEL_PLAYER_DATA_ELEMENTS_CHARACTER,
+ DEL_PLAYER_DATA_ELEMENTS_CHARACTER_BY_GUID,
DEL_PLAYER_DATA_ELEMENTS_CHARACTER,
INS_PLAYER_DATA_ELEMENTS_CHARACTER,
SEL_PLAYER_DATA_FLAGS_CHARACTER,
+ DEL_PLAYER_DATA_FLAGS_CHARACTER_BY_GUID,
DEL_PLAYER_DATA_FLAGS_CHARACTER,
INS_PLAYER_DATA_FLAGS_CHARACTER,
+ SEL_CHARACTER_BANK_TAB_SETTINGS,
+ DEL_CHARACTER_BANK_TAB_SETTINGS,
+ INS_CHARACTER_BANK_TAB_SETTINGS,
+
MAX_CHARACTERDATABASE_STATEMENTS
}
}
diff --git a/Source/Framework/Database/Databases/HotfixDatabase.cs b/Source/Framework/Database/Databases/HotfixDatabase.cs
index 0961a0fa7..eb1759369 100644
--- a/Source/Framework/Database/Databases/HotfixDatabase.cs
+++ b/Source/Framework/Database/Databases/HotfixDatabase.cs
@@ -164,8 +164,9 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_AZERITE_UNLOCK_MAPPING, "SELECT ID, ItemLevel, ItemBonusListHead, ItemBonusListShoulders, ItemBonusListChest, " +
"AzeriteUnlockMappingSetID FROM azerite_unlock_mapping WHERE (`VerifiedBuild` > 0) = ?");
- // BankBagSlotPrices.db2
- PrepareStatement(HotfixStatements.SEL_BANK_BAG_SLOT_PRICES, "SELECT ID, Cost FROM bank_bag_slot_prices WHERE (`VerifiedBuild` > 0) = ?");
+ // BankTab.db2
+ PrepareStatement(HotfixStatements.SEL_BANK_TAB, "SELECT ID, Cost, BankType, OrderIndex, PlayerConditionID, PurchasePromptTitle, PurchasePromptBody, " +
+ "PurchasePromptConfirmation, TabCleanupConfirmation, TabNameEditBoxHeader FROM bank_tab WHERE (`VerifiedBuild` > 0) = ?");
// BannedAddons.db2
PrepareStatement(HotfixStatements.SEL_BANNED_ADDONS, "SELECT ID, Name, Version, Flags FROM banned_addons WHERE (`VerifiedBuild` > 0) = ?");
@@ -222,8 +223,8 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_CFG_CATEGORIES_LOCALE, "SELECT ID, Name_lang FROM cfg_categories_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?");
// CfgRegions.db2
- PrepareStatement(HotfixStatements.SEL_CFG_REGIONS, "SELECT ID, Tag, RegionID, Raidorigin, RegionGroupMask, ChallengeOrigin FROM cfg_regions" +
- " WHERE (`VerifiedBuild` > 0) = ?");
+ PrepareStatement(HotfixStatements.SEL_CFG_REGIONS, "SELECT ID, Tag, RegionID, Raidorigin, RegionGroupMask, ChallengeOrigin, TimeEventRegionGroupID" +
+ " FROM cfg_regions WHERE (`VerifiedBuild` > 0) = ?");
// ChallengeModeItemBonusOverride.db2
PrepareStatement(HotfixStatements.SEL_CHALLENGE_MODE_ITEM_BONUS_OVERRIDE, "SELECT ID, ItemBonusTreeGroupID, DstItemBonusTreeID, Value, " +
@@ -259,12 +260,12 @@ namespace Framework.Database
// ChrClasses.db2
PrepareStatement(HotfixStatements.SEL_CHR_CLASSES, "SELECT Name, Filename, NameMale, NameFemale, PetNameToken, Description, RoleInfoString, DisabledString, " +
"HyphenatedNameMale, HyphenatedNameFemale, CreateScreenFileDataID, SelectScreenFileDataID, IconFileDataID, LowResScreenFileDataID, Flags, " +
- "SpellTextureBlobFileDataID, ArmorTypeMask, CharStartKitUnknown901, MaleCharacterCreationVisualFallback, " +
+ "StartingLevel, SpellTextureBlobFileDataID, ArmorTypeMask, CharStartKitUnknown901, MaleCharacterCreationVisualFallback, " +
"MaleCharacterCreationIdleVisualFallback, FemaleCharacterCreationVisualFallback, FemaleCharacterCreationIdleVisualFallback, " +
"CharacterCreationIdleGroundVisualFallback, CharacterCreationGroundVisualFallback, AlteredFormCharacterCreationIdleVisualFallback, " +
- "CharacterCreationAnimLoopWaitTimeMsFallback, CinematicSequenceID, DefaultSpec, ID, PrimaryStatPriority, DisplayPower, " +
- "RangedAttackPowerPerAgility, AttackPowerPerAgility, AttackPowerPerStrength, SpellClassSet, ClassColorR, ClassColorG, ClassColorB, RolesMask" +
- " FROM chr_classes WHERE (`VerifiedBuild` > 0) = ?");
+ "CharacterCreationAnimLoopWaitTimeMsFallback, CinematicSequenceID, DefaultSpec, ID, HasStrengthBonus, PrimaryStatPriority, DisplayPower, " +
+ "RangedAttackPowerPerAgility, AttackPowerPerAgility, AttackPowerPerStrength, SpellClassSet, ClassColorR, ClassColorG, ClassColorB, RolesMask, " +
+ "DamageBonusStat, HasRelicSlot FROM chr_classes WHERE (`VerifiedBuild` > 0) = ?");
PrepareStatement(HotfixStatements.SEL_CHR_CLASSES_LOCALE, "SELECT ID, Name_lang, NameMale_lang, NameFemale_lang, Description_lang, RoleInfoString_lang, " +
"DisabledString_lang, HyphenatedNameMale_lang, HyphenatedNameFemale_lang FROM chr_classes_locale WHERE (`VerifiedBuild` > 0) = ?" +
" AND locale = ?");
@@ -391,7 +392,7 @@ namespace Framework.Database
// CreatureFamily.db2
PrepareStatement(HotfixStatements.SEL_CREATURE_FAMILY, "SELECT ID, Name, MinScale, MinScaleLevel, MaxScale, MaxScaleLevel, PetFoodMask, PetTalentType, " +
- "IconFileID, SkillLine1, SkillLine2 FROM creature_family WHERE (`VerifiedBuild` > 0) = ?");
+ "CategoryEnumID, IconFileID, SkillLine1, SkillLine2 FROM creature_family WHERE (`VerifiedBuild` > 0) = ?");
PrepareStatement(HotfixStatements.SEL_CREATURE_FAMILY_LOCALE, "SELECT ID, Name_lang FROM creature_family_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?");
// CreatureLabel.db2
@@ -482,7 +483,7 @@ namespace Framework.Database
// ExpectedStat.db2
PrepareStatement(HotfixStatements.SEL_EXPECTED_STAT, "SELECT ID, ExpansionID, CreatureHealth, PlayerHealth, CreatureAutoAttackDps, CreatureArmor, " +
- "PlayerMana, PlayerPrimaryStat, PlayerSecondaryStat, ArmorConstant, CreatureSpellDamage, Lvl FROM expected_stat" +
+ "PlayerMana, PlayerPrimaryStat, PlayerSecondaryStat, ArmorConstant, CreatureSpellDamage, ContentSetID, Lvl FROM expected_stat" +
" WHERE (`VerifiedBuild` > 0) = ?");
// ExpectedStatMod.db2
@@ -818,7 +819,7 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_ITEM_SET_LOCALE, "SELECT ID, Name_lang FROM item_set_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?");
// ItemSetSpell.db2
- PrepareStatement(HotfixStatements.SEL_ITEM_SET_SPELL, "SELECT ID, ChrSpecID, SpellID, Threshold, ItemSetID FROM item_set_spell" +
+ PrepareStatement(HotfixStatements.SEL_ITEM_SET_SPELL, "SELECT ID, ChrSpecID, SpellID, TraitSubTreeID, Threshold, ItemSetID FROM item_set_spell" +
" WHERE (`VerifiedBuild` > 0) = ?");
// ItemSparse.db2
@@ -937,7 +938,9 @@ namespace Framework.Database
// MapChallengeMode.db2
PrepareStatement(HotfixStatements.SEL_MAP_CHALLENGE_MODE, "SELECT Name, ID, MapID, Flags, ExpansionLevel, RequiredWorldStateID, CriteriaCount1, " +
- "CriteriaCount2, CriteriaCount3 FROM map_challenge_mode WHERE (`VerifiedBuild` > 0) = ?");
+ "CriteriaCount2, CriteriaCount3, FirstRewardQuestID1, FirstRewardQuestID2, FirstRewardQuestID3, FirstRewardQuestID4, FirstRewardQuestID5, " +
+ "FirstRewardQuestID6, RewardQuestID1, RewardQuestID2, RewardQuestID3, RewardQuestID4, RewardQuestID5, RewardQuestID6 FROM map_challenge_mode" +
+ " WHERE (`VerifiedBuild` > 0) = ?");
PrepareStatement(HotfixStatements.SEL_MAP_CHALLENGE_MODE_LOCALE, "SELECT ID, Name_lang FROM map_challenge_mode_locale WHERE (`VerifiedBuild` > 0) = ?" +
" AND locale = ?");
@@ -1407,8 +1410,9 @@ namespace Framework.Database
" FROM spell_visual_effect_name WHERE (`VerifiedBuild` > 0) = ?");
// SpellVisualKit.db2
- PrepareStatement(HotfixStatements.SEL_SPELL_VISUAL_KIT, "SELECT ID, ClutterLevel, FallbackSpellVisualKitId, DelayMin, DelayMax, Flags1, Flags2" +
- " FROM spell_visual_kit WHERE (`VerifiedBuild` > 0) = ?");
+ PrepareStatement(HotfixStatements.SEL_SPELL_VISUAL_KIT, "SELECT ID, ClutterLevel, FallbackSpellVisualKitId, DelayMin, DelayMax, " +
+ "MinimumSpellVisualDensityFilterType, MinimumSpellVisualDensityFilterParam, ReducedSpellVisualDensityFilterType, " +
+ "ReducedSpellVisualDensityFilterParam, Flags1, Flags2 FROM spell_visual_kit WHERE (`VerifiedBuild` > 0) = ?");
// SpellVisualMissile.db2
PrepareStatement(HotfixStatements.SEL_SPELL_VISUAL_MISSILE, "SELECT CastOffset1, CastOffset2, CastOffset3, ImpactOffset1, ImpactOffset2, ImpactOffset3, ID, " +
@@ -1648,11 +1652,10 @@ namespace Framework.Database
PrepareStatement(HotfixStatements.SEL_VIGNETTE_LOCALE, "SELECT ID, Name_lang FROM vignette_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?");
// WarbandScene.db2
- PrepareStatement(HotfixStatements.SEL_WARBAND_SCENE, "SELECT Name, Description, Source, PositionX, PositionY, PositionZ, LookAtX, LookAtY, LookAtZ, ID, " +
- "MapID, Fov, TimeOfDay, Flags, SoundAmbienceID, Quality, TextureKit, DefaultScenePriority, SourceType FROM warband_scene" +
- " WHERE (`VerifiedBuild` > 0) = ?");
- PrepareStatement(HotfixStatements.SEL_WARBAND_SCENE_LOCALE, "SELECT ID, Name_lang, Description_lang, Source_lang FROM warband_scene_locale" +
- " WHERE (`VerifiedBuild` > 0) = ? AND locale = ?");
+ PrepareStatement(HotfixStatements.SEL_WARBAND_SCENE, "SELECT Name, Description, PositionX, PositionY, PositionZ, LookAtX, LookAtY, LookAtZ, ID, MapID, Fov, " +
+ "TimeOfDay, Flags, SoundAmbienceID, Quality, TextureKit, DefaultScenePriority FROM warband_scene WHERE (`VerifiedBuild` > 0) = ?");
+ PrepareStatement(HotfixStatements.SEL_WARBAND_SCENE_LOCALE, "SELECT ID, Name_lang, Description_lang FROM warband_scene_locale WHERE (`VerifiedBuild` > 0) = ?" +
+ " AND locale = ?");
// WmoAreaTable.db2
PrepareStatement(HotfixStatements.SEL_WMO_AREA_TABLE, "SELECT AreaName, ID, WmoID, NameSetID, WmoGroupID, SoundProviderPref, SoundProviderPrefUnderwater, " +
@@ -1759,7 +1762,7 @@ namespace Framework.Database
SEL_AZERITE_UNLOCK_MAPPING,
- SEL_BANK_BAG_SLOT_PRICES,
+ SEL_BANK_TAB,
SEL_BANNED_ADDONS,
diff --git a/Source/Game/Achievements/CriteriaHandler.cs b/Source/Game/Achievements/CriteriaHandler.cs
index eceb055d9..950c737c4 100644
--- a/Source/Game/Achievements/CriteriaHandler.cs
+++ b/Source/Game/Achievements/CriteriaHandler.cs
@@ -379,6 +379,19 @@ namespace Game.Achievements
case CriteriaType.GuildAttainedLevel:
SetCriteriaProgress(criteria, miscValue1, referencePlayer);
break;
+ case CriteriaType.BankTabPurchased:
+ switch ((BankType)criteria.Entry.Asset)
+ {
+ case BankType.Character:
+ SetCriteriaProgress(criteria, referencePlayer.GetCharacterBankTabCount(), referencePlayer);
+ break;
+ case BankType.Account:
+ SetCriteriaProgress(criteria, referencePlayer.GetAccountBankTabCount(), referencePlayer);
+ break;
+ default:
+ break;
+ }
+ break;
// FIXME: not triggered in code as result, need to implement
case CriteriaType.RunInstance:
case CriteriaType.EarnTeamArenaRating:
@@ -825,6 +838,7 @@ namespace Game.Achievements
case CriteriaType.SellItemsToVendors:
case CriteriaType.GainLevels:
case CriteriaType.ReachRenownLevel:
+ case CriteriaType.BankTabPurchased:
case CriteriaType.LearnTaxiNode:
return progress.Counter >= requiredAmount;
case CriteriaType.EarnAchievement:
@@ -1246,6 +1260,10 @@ namespace Game.Achievements
if (!referencePlayer.IsMaxLevel())
return false;
break;
+ case CriteriaType.BankTabPurchased:
+ if (miscValue1 != 0 /*allow any at login*/ && miscValue1 != criteria.Entry.Asset)
+ return false;
+ break;
case CriteriaType.LearnTaxiNode:
if (miscValue1 != criteria.Entry.Asset)
return false;
@@ -4180,7 +4198,7 @@ namespace Game.Achievements
//CriteriaType.MythicPlusRatingAttained, /*NYI*/
//CriteriaType.MythicPlusDisplaySeasonEnded, /*NYI*/
//CriteriaType.CompleteTrackingQuest, /*NYI*/
- //CriteriaType.WarbandBankTabPurchased, /*NYI*/
+ CriteriaType.BankTabPurchased,
CriteriaType.LearnTaxiNode,
CriteriaType.EarnAchievementPoints,
CriteriaType.BattlePetAchievementPointsEarned,
diff --git a/Source/Game/Chat/Commands/ListCommands.cs b/Source/Game/Chat/Commands/ListCommands.cs
index 01aaf964a..0109f5daa 100644
--- a/Source/Game/Chat/Commands/ListCommands.cs
+++ b/Source/Game/Chat/Commands/ListCommands.cs
@@ -126,8 +126,6 @@ namespace Game.Chat.Commands
itemPos = "[equipped]";
else if (Player.IsInventoryPos((byte)itemBag, itemSlot))
itemPos = "[in inventory]";
- else if (Player.IsReagentBankPos((byte)itemBag, itemSlot))
- itemPos = "[in reagent bank]";
else if (Player.IsBankPos((byte)itemBag, itemSlot))
itemPos = "[in bank]";
else
diff --git a/Source/Game/DataStorage/AreaTriggerDataStorage.cs b/Source/Game/DataStorage/AreaTriggerDataStorage.cs
index 2087fb013..0005b9d80 100644
--- a/Source/Game/DataStorage/AreaTriggerDataStorage.cs
+++ b/Source/Game/DataStorage/AreaTriggerDataStorage.cs
@@ -226,8 +226,8 @@ namespace Game.DataStorage
Log.outInfo(LogFilter.ServerLoading, "Loaded 0 AreaTrigger create properties. DB table `areatrigger_create_properties` is empty.");
}
- // 0 1 2 3 4 5 6 7 8
- SQLResult circularMovementInfos = DB.World.Query("SELECT AreaTriggerCreatePropertiesId, IsCustom, StartDelay, CircleRadius, BlendFromRadius, InitialAngle, ZOffset, CounterClockwise, CanLoop FROM `areatrigger_create_properties_orbit`");
+ // 0 1 2 3 4 5 6 7 8
+ SQLResult circularMovementInfos = DB.World.Query("SELECT AreaTriggerCreatePropertiesId, IsCustom, ExtraTimeForBlending, CircleRadius, BlendFromRadius, InitialAngle, ZOffset, CounterClockwise, CanLoop FROM `areatrigger_create_properties_orbit`");
if (!circularMovementInfos.IsEmpty())
{
do
@@ -243,7 +243,7 @@ namespace Game.DataStorage
AreaTriggerOrbitInfo orbitInfo = new();
- orbitInfo.StartDelay = circularMovementInfos.Read(2);
+ orbitInfo.ExtraTimeForBlending = circularMovementInfos.Read(2);
float ValidateAndSetFloat(float value)
{
diff --git a/Source/Game/DataStorage/CliDB.cs b/Source/Game/DataStorage/CliDB.cs
index 7d07b12af..e431d5192 100644
--- a/Source/Game/DataStorage/CliDB.cs
+++ b/Source/Game/DataStorage/CliDB.cs
@@ -83,7 +83,7 @@ namespace Game.DataStorage
AzeriteTierUnlockStorage = ReadDB2("AzeriteTierUnlock.db2", HotfixStatements.SEL_AZERITE_TIER_UNLOCK);
AzeriteTierUnlockSetStorage = ReadDB2("AzeriteTierUnlockSet.db2", HotfixStatements.SEL_AZERITE_TIER_UNLOCK_SET);
AzeriteUnlockMappingStorage = ReadDB2("AzeriteUnlockMapping.db2", HotfixStatements.SEL_AZERITE_UNLOCK_MAPPING);
- BankBagSlotPricesStorage = ReadDB2("BankBagSlotPrices.db2", HotfixStatements.SEL_BANK_BAG_SLOT_PRICES);
+ BankTabStorage = ReadDB2("BankTab.db2", HotfixStatements.SEL_BANK_TAB);
BannedAddOnsStorage = ReadDB2("BannedAddons.db2", HotfixStatements.SEL_BANNED_ADDONS);
BarberShopStyleStorage = ReadDB2("BarberShopStyle.db2", HotfixStatements.SEL_BARBER_SHOP_STYLE, HotfixStatements.SEL_BARBER_SHOP_STYLE_LOCALE);
BattlePetBreedQualityStorage = ReadDB2("BattlePetBreedQuality.db2", HotfixStatements.SEL_BATTLE_PET_BREED_QUALITY);
@@ -403,14 +403,16 @@ namespace Game.DataStorage
WorldStateExpressionStorage = ReadDB2("WorldStateExpression.db2", HotfixStatements.SEL_WORLD_STATE_EXPRESSION);
// Check loaded DB2 files proper version
- if (!AreaTableStorage.ContainsKey(16108) || // last area added in 11.0.7 (58162)
- !CharTitlesStorage.ContainsKey(876) || // last char title added in 11.0.7 (58162)
+ if (!AreaTableStorage.ContainsKey(16579) || // last area added in 11.2.0 (62213)
+ !CharTitlesStorage.ContainsKey(937) || // last char title added in 11.2.0 (62213)
!FlightCapabilityStorage.ContainsKey(1) || // default flight capability (required)
- !GemPropertiesStorage.ContainsKey(4266) || // last gem property added in 11.0.7 (58162)
- !ItemStorage.ContainsKey(235551) || // last item added in 11.0.7 (58162)
- !ItemExtendedCostStorage.ContainsKey(9918) || // last item extended cost added in 11.0.7 (58162)
- !MapStorage.ContainsKey(2829) || // last map added in 11.0.7 (58162)
- !SpellNameStorage.ContainsKey(1218101)) // last spell added in 11.0.7 (58162)
+ !GemPropertiesStorage.ContainsKey(4287) || // last gem property added in 11.2.0 (62213)
+ !ItemStorage.ContainsKey(252009) || // last item added in 11.2.0 (62213)
+ !ItemSparseStorage.ContainsKey(208392) ||
+ !ItemSparseStorage.ContainsKey(242709) ||
+ !ItemExtendedCostStorage.ContainsKey(10637) || // last item extended cost added in 11.2.0 (62213)
+ !MapStorage.ContainsKey(2951) || // last map added in 11.2.0 (62213)
+ !SpellNameStorage.ContainsKey(1254022)) // last spell added in 11.2.0 (62213)
{
Log.outFatal(LogFilter.ServerLoading, "You have _outdated_ DB2 files. Please extract correct versions from current using client.");
Environment.Exit(1);
@@ -487,7 +489,7 @@ namespace Game.DataStorage
public static DB6Storage AzeriteTierUnlockStorage;
public static DB6Storage AzeriteTierUnlockSetStorage;
public static DB6Storage AzeriteUnlockMappingStorage;
- public static DB6Storage BankBagSlotPricesStorage;
+ public static DB6Storage BankTabStorage;
public static DB6Storage BannedAddOnsStorage;
public static DB6Storage BarberShopStyleStorage;
public static DB6Storage BattlePetBreedQualityStorage;
diff --git a/Source/Game/DataStorage/Structs/A_Records.cs b/Source/Game/DataStorage/Structs/A_Records.cs
index 4704afdc8..158257225 100644
--- a/Source/Game/DataStorage/Structs/A_Records.cs
+++ b/Source/Game/DataStorage/Structs/A_Records.cs
@@ -84,7 +84,7 @@ namespace Game.DataStorage
{
public uint Id;
public ushort Fallback;
- public byte BehaviorTier;
+ public sbyte BehaviorTier;
public short BehaviorID;
public int[] Flags = new int[2];
}
diff --git a/Source/Game/DataStorage/Structs/B_Records.cs b/Source/Game/DataStorage/Structs/B_Records.cs
index 283b3704a..d515c691c 100644
--- a/Source/Game/DataStorage/Structs/B_Records.cs
+++ b/Source/Game/DataStorage/Structs/B_Records.cs
@@ -5,10 +5,18 @@ using Framework.Constants;
namespace Game.DataStorage
{
- public sealed class BankBagSlotPricesRecord
+ public sealed class BankTabRecord
{
public uint Id;
- public uint Cost;
+ public ulong Cost;
+ public byte BankType;
+ public sbyte OrderIndex;
+ public int PlayerConditionID;
+ public int PurchasePromptTitle;
+ public int PurchasePromptBody;
+ public int PurchasePromptConfirmation;
+ public int TabCleanupConfirmation;
+ public int TabNameEditBoxHeader;
}
public sealed class BannedAddonsRecord
@@ -16,7 +24,7 @@ namespace Game.DataStorage
public uint Id;
public string Name;
public string Version;
- public byte Flags;
+ public int Flags;
}
public sealed class BarberShopStyleRecord
@@ -63,7 +71,7 @@ namespace Game.DataStorage
public int CovenantID;
public bool HasFlag(BattlePetSpeciesFlags battlePetSpeciesFlags) { return (Flags & (int)battlePetSpeciesFlags) != 0; }
-}
+ }
public sealed class BattlePetSpeciesStateRecord
{
diff --git a/Source/Game/DataStorage/Structs/C_Records.cs b/Source/Game/DataStorage/Structs/C_Records.cs
index 785d88929..23aa57eea 100644
--- a/Source/Game/DataStorage/Structs/C_Records.cs
+++ b/Source/Game/DataStorage/Structs/C_Records.cs
@@ -29,6 +29,7 @@ namespace Game.DataStorage
public uint Raidorigin; // Date of first raid reset, all other resets are calculated as this date plus interval
public byte RegionGroupMask;
public uint ChallengeOrigin;
+ public int TimeEventRegionGroupID;
}
public sealed class ChallengeModeItemBonusOverrideRecord
@@ -56,7 +57,7 @@ namespace Game.DataStorage
public LocalizedString Name;
public LocalizedString Name1;
public ushort MaskID;
- public sbyte Flags;
+ public int Flags;
}
public sealed class CharacterLoadoutRecord
@@ -115,6 +116,7 @@ namespace Game.DataStorage
public uint IconFileDataID;
public uint LowResScreenFileDataID;
public int Flags;
+ public int StartingLevel;
public uint SpellTextureBlobFileDataID;
public uint ArmorTypeMask;
public int CharStartKitUnknown901;
@@ -129,6 +131,7 @@ namespace Game.DataStorage
public ushort CinematicSequenceID;
public ushort DefaultSpec;
public uint Id;
+ public byte HasStrengthBonus;
public sbyte PrimaryStatPriority;
public PowerType DisplayPower;
public byte RangedAttackPowerPerAgility;
@@ -139,6 +142,8 @@ namespace Game.DataStorage
public byte ClassColorG;
public byte ClassColorB;
public byte RolesMask;
+ public byte DamageBonusStat;
+ public byte HasRelicSlot;
}
public sealed class ChrClassesXPowerTypesRecord
@@ -506,6 +511,7 @@ namespace Game.DataStorage
public sbyte MaxScaleLevel;
public ushort PetFoodMask;
public sbyte PetTalentType;
+ public int CategoryEnumID;
public int IconFileID;
public short[] SkillLine = new short[2];
}
diff --git a/Source/Game/DataStorage/Structs/E_Records.cs b/Source/Game/DataStorage/Structs/E_Records.cs
index 39fca53a7..7ad9707d2 100644
--- a/Source/Game/DataStorage/Structs/E_Records.cs
+++ b/Source/Game/DataStorage/Structs/E_Records.cs
@@ -47,6 +47,7 @@ namespace Game.DataStorage
public float PlayerSecondaryStat;
public float ArmorConstant;
public float CreatureSpellDamage;
+ public int ContentSetID;
public uint Lvl;
}
diff --git a/Source/Game/DataStorage/Structs/I_Records.cs b/Source/Game/DataStorage/Structs/I_Records.cs
index 84e21b32f..bc5988475 100644
--- a/Source/Game/DataStorage/Structs/I_Records.cs
+++ b/Source/Game/DataStorage/Structs/I_Records.cs
@@ -349,6 +349,7 @@ namespace Game.DataStorage
public uint Id;
public ushort ChrSpecID;
public uint SpellID;
+ public ushort TraitSubTreeID;
public byte Threshold;
public uint ItemSetID;
}
diff --git a/Source/Game/DataStorage/Structs/M_Records.cs b/Source/Game/DataStorage/Structs/M_Records.cs
index 82981836d..9af7b9e3b 100644
--- a/Source/Game/DataStorage/Structs/M_Records.cs
+++ b/Source/Game/DataStorage/Structs/M_Records.cs
@@ -87,6 +87,7 @@ namespace Game.DataStorage
case 1643:
case 2222:
case 2444:
+ case 2601:
return true;
default:
return false;
@@ -114,10 +115,12 @@ namespace Game.DataStorage
public LocalizedString Name;
public uint Id;
public ushort MapID;
- public byte Flags;
+ public int Flags;
public uint ExpansionLevel;
public int RequiredWorldStateID; // maybe?
public short[] CriteriaCount = new short[3];
+ public int[] FirstRewardQuestID = new int[6];
+ public int[] RewardQuestID = new int[6];
}
public sealed class MapDifficultyRecord
diff --git a/Source/Game/DataStorage/Structs/S_Records.cs b/Source/Game/DataStorage/Structs/S_Records.cs
index 555de0d40..5e97690af 100644
--- a/Source/Game/DataStorage/Structs/S_Records.cs
+++ b/Source/Game/DataStorage/Structs/S_Records.cs
@@ -258,8 +258,8 @@ namespace Game.DataStorage
public uint Id;
public string Name;
public int Flags;
- public byte UsesPerWeek;
- public byte MaxCharges;
+ public int UsesPerWeek;
+ public int MaxCharges;
public int ChargeRecoveryTime;
public int TypeMask;
@@ -346,7 +346,7 @@ namespace Game.DataStorage
{
public uint Id;
public uint SpellID;
- public sbyte EquippedItemClass;
+ public int EquippedItemClass;
public int EquippedItemInvTypes;
public int EquippedItemSubclass;
}
@@ -658,6 +658,10 @@ namespace Game.DataStorage
public int FallbackSpellVisualKitId;
public ushort DelayMin;
public ushort DelayMax;
+ public int MinimumSpellVisualDensityFilterType;
+ public int MinimumSpellVisualDensityFilterParam;
+ public int ReducedSpellVisualDensityFilterType;
+ public int ReducedSpellVisualDensityFilterParam;
public int[] Flags = new int[2];
}
diff --git a/Source/Game/DataStorage/Structs/U_Records.cs b/Source/Game/DataStorage/Structs/U_Records.cs
index 57405b3b1..ab9a42749 100644
--- a/Source/Game/DataStorage/Structs/U_Records.cs
+++ b/Source/Game/DataStorage/Structs/U_Records.cs
@@ -109,7 +109,7 @@ namespace Game.DataStorage
public float RegenerationPeace;
public float RegenerationCombat;
public byte BarType;
- public ushort Flags;
+ public int Flags;
public float StartInset;
public float EndInset;
public uint[] FileDataID = new uint[6];
diff --git a/Source/Game/DataStorage/Structs/W_Records.cs b/Source/Game/DataStorage/Structs/W_Records.cs
index 8a642b6b2..90dc15a00 100644
--- a/Source/Game/DataStorage/Structs/W_Records.cs
+++ b/Source/Game/DataStorage/Structs/W_Records.cs
@@ -10,7 +10,6 @@ namespace Game.DataStorage
{
public LocalizedString Name;
public LocalizedString Description;
- public LocalizedString Source;
public Vector3 Position;
public Vector3 LookAt;
public uint Id;
@@ -22,7 +21,6 @@ namespace Game.DataStorage
public sbyte Quality;
public int TextureKit;
public int DefaultScenePriority;
- public sbyte SourceType;
public WarbandSceneFlags GetFlags() { return (WarbandSceneFlags)Flags; }
}
diff --git a/Source/Game/Entities/AreaTrigger/AreaTrigger.cs b/Source/Game/Entities/AreaTrigger/AreaTrigger.cs
index c2c2165da..cfd332df6 100644
--- a/Source/Game/Entities/AreaTrigger/AreaTrigger.cs
+++ b/Source/Game/Entities/AreaTrigger/AreaTrigger.cs
@@ -26,7 +26,6 @@ namespace Game.Entities
ObjectTypeId = TypeId.AreaTrigger;
m_updateFlag.Stationary = true;
- m_updateFlag.AreaTrigger = true;
m_entityFragments.Add(EntityFragment.Tag_AreaTrigger, false);
@@ -119,7 +118,7 @@ namespace Game.Entities
SetObjectScale(1.0f);
SetDuration(duration);
- _shape = GetCreateProperties().Shape;
+ SetShape(GetCreateProperties().Shape);
var areaTriggerData = m_values.ModifyValue(m_areaTriggerData);
if (caster != null)
@@ -176,6 +175,35 @@ namespace Game.Entities
if (GetCreateProperties() != null && GetCreateProperties().Flags.HasFlag(AreaTriggerCreatePropertiesFlag.VisualAnimIsDecay))
SetUpdateFieldValue(visualAnim.ModifyValue(visualAnim.IsDecay), true);
+ AreaTriggerFieldFlags fieldFlags()
+ {
+ var flags = GetCreateProperties().Flags;
+ AreaTriggerFieldFlags fieldFlags = AreaTriggerFieldFlags.None;
+ if (flags.HasFlag(AreaTriggerCreatePropertiesFlag.HasAbsoluteOrientation))
+ fieldFlags |= AreaTriggerFieldFlags.AbsoluteOrientation;
+ if (flags.HasFlag(AreaTriggerCreatePropertiesFlag.HasDynamicShape))
+ fieldFlags |= AreaTriggerFieldFlags.DynamicShape;
+ if (flags.HasFlag(AreaTriggerCreatePropertiesFlag.HasAttached))
+ fieldFlags |= AreaTriggerFieldFlags.Attached;
+ if (flags.HasFlag(AreaTriggerCreatePropertiesFlag.HasFaceMovementDir))
+ fieldFlags |= AreaTriggerFieldFlags.FaceMovementDir;
+ if (flags.HasFlag(AreaTriggerCreatePropertiesFlag.HasFollowsTerrain))
+ fieldFlags |= AreaTriggerFieldFlags.FollowsTerrain;
+ if (flags.HasFlag(AreaTriggerCreatePropertiesFlag.AlwaysExterior))
+ fieldFlags |= AreaTriggerFieldFlags.AlwaysExterior;
+ return fieldFlags;
+ }
+ ;
+ ReplaceAllAreaTriggerFlags(fieldFlags());
+
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.MovementStartTime), GameTime.GetGameTimeMS());
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.CreationTime), GameTime.GetGameTimeMS());
+
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.ScaleCurveId), GetCreateProperties().ScaleCurveId);
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.FacingCurveId), GetCreateProperties().FacingCurveId);
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.MorphCurveId), GetCreateProperties().MorphCurveId);
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.MoveCurveId), GetCreateProperties().MoveCurveId);
+
if (caster != null)
PhasingHandler.InheritPhaseShift(this, caster);
else if (IsStaticSpawn() && spawnData != null)
@@ -184,7 +212,7 @@ namespace Game.Entities
PhasingHandler.InitDbPhaseShift(GetPhaseShift(), spawnData.PhaseUseFlags, spawnData.PhaseId, spawnData.PhaseGroup);
}
- if (target != null && GetCreateProperties() != null && GetCreateProperties().Flags.HasFlag(AreaTriggerCreatePropertiesFlag.HasAttached))
+ if (target != null && HasAreaTriggerFlag(AreaTriggerFieldFlags.Attached))
m_movementInfo.transport.guid = target.GetGUID();
if (!IsStaticSpawn())
@@ -195,7 +223,7 @@ namespace Game.Entities
if (GetCreateProperties().OrbitInfo != null)
{
AreaTriggerOrbitInfo orbit = GetCreateProperties().OrbitInfo;
- if (target != null && GetCreateProperties() != null && GetCreateProperties().Flags.HasFlag(AreaTriggerCreatePropertiesFlag.HasAttached))
+ if (target != null && HasAreaTriggerFlag(AreaTriggerFieldFlags.Attached))
orbit.PathTarget = target.GetGUID();
else
orbit.Center = new(pos.posX, pos.posY, pos.posZ);
@@ -206,6 +234,10 @@ namespace Game.Entities
{
InitSplineOffsets(GetCreateProperties().SplinePoints);
}
+ else
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.ShapeType), (byte)AreaTriggerPathType.None);
+
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.Facing), _stationaryPosition.GetOrientation());
// movement on transport of areatriggers on unit is handled by themself
ITransport transport = null;
@@ -280,7 +312,6 @@ namespace Game.Entities
public override void Update(uint diff)
{
base.Update(diff);
- _timeSinceCreated += diff;
if (!IsStaticSpawn())
{
@@ -291,19 +322,18 @@ namespace Game.Entities
}
else if (HasOrbit())
{
- UpdateOrbitPosition(diff);
+ UpdateOrbitPosition();
}
- else if (GetCreateProperties() != null && GetCreateProperties().Flags.HasFlag(AreaTriggerCreatePropertiesFlag.HasAttached))
+ else if (HasAreaTriggerFlag(AreaTriggerFieldFlags.Attached))
{
Unit target = GetTarget();
if (target != null)
{
float orientation = 0.0f;
- AreaTriggerCreateProperties createProperties = GetCreateProperties();
- if (createProperties != null && createProperties.FacingCurveId != 0)
- orientation = Global.DB2Mgr.GetCurveValueAt(createProperties.FacingCurveId, GetProgress());
+ if (m_areaTriggerData.FacingCurveId != 0)
+ orientation = Global.DB2Mgr.GetCurveValueAt(m_areaTriggerData.FacingCurveId, GetProgress());
- if (GetCreateProperties() == null || !GetCreateProperties().Flags.HasFlag(AreaTriggerCreatePropertiesFlag.HasAbsoluteOrientation))
+ if (!HasAreaTriggerFlag(AreaTriggerFieldFlags.AbsoluteOrientation))
orientation += target.GetOrientation();
GetMap().AreaTriggerRelocation(this, target.GetPositionX(), target.GetPositionY(), target.GetPositionZ(), orientation);
@@ -311,16 +341,15 @@ namespace Game.Entities
}
else if (HasSplines())
{
- UpdateSplinePosition(diff);
+ UpdateSplinePosition(_spline);
}
else
{
- AreaTriggerCreateProperties createProperties = GetCreateProperties();
- if (createProperties != null && createProperties.FacingCurveId != 0)
+ if (m_areaTriggerData.FacingCurveId != 0)
{
- float orientation = Global.DB2Mgr.GetCurveValueAt(createProperties.FacingCurveId, GetProgress());
- if (GetCreateProperties() == null || !GetCreateProperties().Flags.HasFlag(AreaTriggerCreatePropertiesFlag.HasAbsoluteOrientation))
- orientation += _stationaryPosition.GetOrientation();
+ float orientation = Global.DB2Mgr.GetCurveValueAt(m_areaTriggerData.FacingCurveId, GetProgress());
+ if (!HasAreaTriggerFlag(AreaTriggerFieldFlags.AbsoluteOrientation))
+ orientation += m_areaTriggerData.Facing;
SetOrientation(orientation);
}
@@ -351,6 +380,14 @@ namespace Game.Entities
AddObjectToRemoveList();
}
+ uint GetTimeSinceCreated()
+ {
+ uint now = GameTime.GetGameTimeMS();
+ if (now >= m_areaTriggerData.CreationTime)
+ return now - m_areaTriggerData.CreationTime;
+ return 0;
+ }
+
void SetOverrideScaleCurve(float overrideScale)
{
SetScaleCurve(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.OverrideScaleCurve), overrideScale);
@@ -435,12 +472,8 @@ namespace Game.Entities
float scale = 1.0f;
if (m_areaTriggerData.OverrideScaleCurve.GetValue().OverrideActive)
scale *= Math.Max(GetScaleCurveValue(m_areaTriggerData.OverrideScaleCurve, m_areaTriggerData.TimeToTargetScale), 0.000001f);
- else
- {
- AreaTriggerCreateProperties createProperties = GetCreateProperties();
- if (createProperties != null && createProperties.ScaleCurveId != 0)
- scale *= Math.Max(Global.DB2Mgr.GetCurveValueAt(createProperties.ScaleCurveId, GetScaleCurveProgress(m_areaTriggerData.OverrideScaleCurve, m_areaTriggerData.TimeToTargetScale)), 0.000001f);
- }
+ else if (m_areaTriggerData.ScaleCurveId != 0)
+ scale *= Math.Max(Global.DB2Mgr.GetCurveValueAt(m_areaTriggerData.ScaleCurveId, GetScaleCurveProgress(m_areaTriggerData.OverrideScaleCurve, m_areaTriggerData.TimeToTargetScale)), 0.000001f);
scale *= Math.Max(GetScaleCurveValue(m_areaTriggerData.ExtraScaleCurve, m_areaTriggerData.TimeToTargetExtraScale), 0.000001f);
@@ -583,29 +616,21 @@ namespace Game.Entities
{
List targetList = new();
- switch (_shape.TriggerType)
+ m_areaTriggerData.ShapeData.Visit(shape =>
{
- case AreaTriggerShapeType.Sphere:
- SearchUnitInSphere(targetList);
- break;
- case AreaTriggerShapeType.Box:
- SearchUnitInBox(targetList);
- break;
- case AreaTriggerShapeType.Polygon:
- SearchUnitInPolygon(targetList);
- break;
- case AreaTriggerShapeType.Cylinder:
- SearchUnitInCylinder(targetList);
- break;
- case AreaTriggerShapeType.Disk:
- SearchUnitInDisk(targetList);
- break;
- case AreaTriggerShapeType.BoundedPlane:
- SearchUnitInBoundedPlane(targetList);
- break;
- default:
- break;
- }
+ if (shape is AreaTriggerSphere)
+ SearchUnitInSphere(shape, targetList);
+ else if (shape is AreaTriggerBox)
+ SearchUnitInBox(shape, targetList);
+ else if (shape is AreaTriggerPolygon)
+ SearchUnitInPolygon(shape, targetList);
+ else if (shape is AreaTriggerCylinder)
+ SearchUnitInCylinder(shape, targetList);
+ else if (shape is AreaTriggerDisk)
+ SearchUnitInDisk(shape, targetList);
+ else if (shape is AreaTriggerBoundedPlane)
+ SearchUnitInBoundedPlane(shape, targetList);
+ });
if (GetTemplate() != null)
{
@@ -681,32 +706,30 @@ namespace Game.Entities
}
}
- void SearchUnitInSphere(List targetList)
+ void SearchUnitInSphere(AreaTriggerSphere sphere, List targetList)
{
float progress = GetProgress();
- AreaTriggerCreateProperties createProperties = GetCreateProperties();
- if (createProperties != null && createProperties.MorphCurveId != 0)
- progress = Global.DB2Mgr.GetCurveValueAt(createProperties.MorphCurveId, progress);
+ if (m_areaTriggerData.MorphCurveId != 0)
+ progress = Global.DB2Mgr.GetCurveValueAt(m_areaTriggerData.MorphCurveId, progress);
float scale = CalcCurrentScale();
- float radius = MathFunctions.Lerp(_shape.SphereDatas.Radius, _shape.SphereDatas.RadiusTarget, progress) * scale;
+ float radius = MathFunctions.Lerp(sphere.Radius, sphere.RadiusTarget, progress) * scale;
SearchUnits(targetList, radius, true);
}
- void SearchUnitInBox(List targetList)
+ void SearchUnitInBox(AreaTriggerBox box, List targetList)
{
float progress = GetProgress();
- AreaTriggerCreateProperties createProperties = GetCreateProperties();
- if (createProperties != null && createProperties.MorphCurveId != 0)
- progress = Global.DB2Mgr.GetCurveValueAt(createProperties.MorphCurveId, progress);
+ if (m_areaTriggerData.MorphCurveId != 0)
+ progress = Global.DB2Mgr.GetCurveValueAt(m_areaTriggerData.MorphCurveId, progress);
unsafe
{
float scale = CalcCurrentScale();
- float extentsX = MathFunctions.Lerp(_shape.BoxDatas.Extents[0], _shape.BoxDatas.ExtentsTarget[0], progress) * scale;
- float extentsY = MathFunctions.Lerp(_shape.BoxDatas.Extents[1], _shape.BoxDatas.ExtentsTarget[1], progress) * scale;
- float extentsZ = MathFunctions.Lerp(_shape.BoxDatas.Extents[2], _shape.BoxDatas.ExtentsTarget[2], progress) * scale;
+ float extentsX = MathFunctions.Lerp(box.Extents.GetValue().X, box.ExtentsTarget.GetValue().X, progress) * scale;
+ float extentsY = MathFunctions.Lerp(box.Extents.GetValue().Y, box.ExtentsTarget.GetValue().Y, progress) * scale;
+ float extentsZ = MathFunctions.Lerp(box.Extents.GetValue().Z, box.ExtentsTarget.GetValue().Z, progress) * scale;
float radius = MathF.Sqrt(extentsX * extentsX + extentsY * extentsY);
SearchUnits(targetList, radius, false);
@@ -716,14 +739,13 @@ namespace Game.Entities
}
}
- void SearchUnitInPolygon(List targetList)
+ void SearchUnitInPolygon(AreaTriggerPolygon polygon, List targetList)
{
float progress = GetProgress();
- AreaTriggerCreateProperties createProperties = GetCreateProperties();
- if (createProperties != null && createProperties.MorphCurveId != 0)
- progress = Global.DB2Mgr.GetCurveValueAt(createProperties.MorphCurveId, progress);
+ if (m_areaTriggerData.MorphCurveId != 0)
+ progress = Global.DB2Mgr.GetCurveValueAt(m_areaTriggerData.MorphCurveId, progress);
- float height = MathFunctions.Lerp(_shape.PolygonDatas.Height, _shape.PolygonDatas.HeightTarget, progress);
+ float height = MathFunctions.Lerp(polygon.Height, polygon.HeightTarget, progress);
float minZ = GetPositionZ() - height;
float maxZ = GetPositionZ() + height;
@@ -732,17 +754,16 @@ namespace Game.Entities
targetList.RemoveAll(unit => unit.GetPositionZ() < minZ || unit.GetPositionZ() > maxZ || !unit.IsInPolygon2D(this, _polygonVertices));
}
- void SearchUnitInCylinder(List targetList)
+ void SearchUnitInCylinder(AreaTriggerCylinder cylinder, List targetList)
{
float progress = GetProgress();
- AreaTriggerCreateProperties createProperties = GetCreateProperties();
- if (createProperties != null && createProperties.MorphCurveId != 0)
- progress = Global.DB2Mgr.GetCurveValueAt(createProperties.MorphCurveId, progress);
+ if (m_areaTriggerData.MorphCurveId != 0)
+ progress = Global.DB2Mgr.GetCurveValueAt(m_areaTriggerData.MorphCurveId, progress);
float scale = CalcCurrentScale();
- float radius = MathFunctions.Lerp(_shape.CylinderDatas.Radius, _shape.CylinderDatas.RadiusTarget, progress) * scale;
- float height = MathFunctions.Lerp(_shape.CylinderDatas.Height, _shape.CylinderDatas.HeightTarget, progress);
- if (!m_areaTriggerData.HeightIgnoresScale)
+ float radius = MathFunctions.Lerp(cylinder.Radius, cylinder.RadiusTarget, progress) * scale;
+ float height = MathFunctions.Lerp(cylinder.Height, cylinder.HeightTarget, progress);
+ if (!HasAreaTriggerFlag(AreaTriggerFieldFlags.HeightIgnoresScale))
height *= scale;
float minZ = GetPositionZ() - height;
@@ -753,18 +774,17 @@ namespace Game.Entities
targetList.RemoveAll(unit => unit.GetPositionZ() < minZ || unit.GetPositionZ() > maxZ);
}
- void SearchUnitInDisk(List targetList)
+ void SearchUnitInDisk(AreaTriggerDisk disk, List targetList)
{
float progress = GetProgress();
- AreaTriggerCreateProperties createProperties = GetCreateProperties();
- if (createProperties != null && createProperties.MorphCurveId != 0)
- progress = Global.DB2Mgr.GetCurveValueAt(createProperties.MorphCurveId, progress);
+ if (m_areaTriggerData.MorphCurveId != 0)
+ progress = Global.DB2Mgr.GetCurveValueAt(m_areaTriggerData.MorphCurveId, progress);
float scale = CalcCurrentScale();
- float innerRadius = MathFunctions.Lerp(_shape.DiskDatas.InnerRadius, _shape.DiskDatas.InnerRadiusTarget, progress) * scale;
- float outerRadius = MathFunctions.Lerp(_shape.DiskDatas.OuterRadius, _shape.DiskDatas.OuterRadiusTarget, progress) * scale;
- float height = MathFunctions.Lerp(_shape.DiskDatas.Height, _shape.DiskDatas.HeightTarget, progress);
- if (!m_areaTriggerData.HeightIgnoresScale)
+ float innerRadius = MathFunctions.Lerp(disk.InnerRadius, disk.InnerRadiusTarget, progress) * scale;
+ float outerRadius = MathFunctions.Lerp(disk.OuterRadius, disk.OuterRadiusTarget, progress) * scale;
+ float height = MathFunctions.Lerp(disk.Height, disk.HeightTarget, progress);
+ if (!HasAreaTriggerFlag(AreaTriggerFieldFlags.HeightIgnoresScale))
height *= scale;
float minZ = GetPositionZ() - height;
@@ -775,18 +795,17 @@ namespace Game.Entities
targetList.RemoveAll(unit => unit.IsInDist2d(this, innerRadius) || unit.GetPositionZ() < minZ || unit.GetPositionZ() > maxZ);
}
- void SearchUnitInBoundedPlane(List targetList)
+ void SearchUnitInBoundedPlane(AreaTriggerBoundedPlane boundedPlane, List targetList)
{
float progress = GetProgress();
- AreaTriggerCreateProperties createProperties = GetCreateProperties();
- if (createProperties != null && createProperties.MorphCurveId != 0)
- progress = Global.DB2Mgr.GetCurveValueAt(createProperties.MorphCurveId, progress);
+ if (m_areaTriggerData.MorphCurveId != 0)
+ progress = Global.DB2Mgr.GetCurveValueAt(m_areaTriggerData.MorphCurveId, progress);
unsafe
{
float scale = CalcCurrentScale();
- float extentsX = MathFunctions.Lerp(_shape.BoundedPlaneDatas.Extents[0], _shape.BoundedPlaneDatas.ExtentsTarget[0], progress) * scale;
- float extentsY = MathFunctions.Lerp(_shape.BoundedPlaneDatas.Extents[1], _shape.BoundedPlaneDatas.ExtentsTarget[1], progress) * scale;
+ float extentsX = MathFunctions.Lerp(boundedPlane.Extents.GetValue().X, boundedPlane.ExtentsTarget.GetValue().X, progress) * scale;
+ float extentsY = MathFunctions.Lerp(boundedPlane.Extents.GetValue().Y, boundedPlane.ExtentsTarget.GetValue().Y, progress) * scale;
float radius = MathF.Sqrt(extentsX * extentsX + extentsY * extentsY);
SearchUnits(targetList, radius, false);
@@ -854,8 +873,10 @@ namespace Game.Entities
}
}
- SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.NumUnitsInside), _insideUnits.Count);
- SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.NumPlayersInside), _insideUnits.Count(guid => guid.IsPlayer()));
+ if (_insideUnits.Any(guid => guid.IsPlayer()))
+ SetAreaTriggerFlag(AreaTriggerFieldFlags.HasPlayers);
+ else
+ RemoveAreaTriggerFlag(AreaTriggerFieldFlags.HasPlayers);
if (IsStaticSpawn())
SetActive(!_insideUnits.Empty());
@@ -902,6 +923,83 @@ namespace Game.Entities
return 0;
}
+ unsafe void SetShape(AreaTriggerShapeInfo shape)
+ {
+ var areaTriggerData = m_values.ModifyValue(m_areaTriggerData);
+
+ switch (shape.TriggerType)
+ {
+ case AreaTriggerShapeType.Sphere:
+ {
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.ShapeType), (byte)0);
+ var sphere = areaTriggerData.ModifyValue(m_areaTriggerData.ShapeData);
+ SetUpdateFieldValue(sphere.ModifyValue(sphere.Radius), shape.SphereDatas.Radius);
+ SetUpdateFieldValue(sphere.ModifyValue(sphere.RadiusTarget), shape.SphereDatas.RadiusTarget);
+ break;
+ }
+ case AreaTriggerShapeType.Box:
+ {
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.ShapeType), (byte)1);
+ var box = areaTriggerData.ModifyValue(m_areaTriggerData.ShapeData);
+ SetUpdateFieldValue(box.ModifyValue(box.Extents), new Vector3(shape.BoxDatas.Extents[0], shape.BoxDatas.Extents[1], shape.BoxDatas.Extents[2]));
+ SetUpdateFieldValue(box.ModifyValue(box.ExtentsTarget), new Vector3(shape.BoxDatas.ExtentsTarget[0], shape.BoxDatas.ExtentsTarget[1], shape.BoxDatas.ExtentsTarget[2]));
+ break;
+ }
+ case AreaTriggerShapeType.Polygon:
+ {
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.ShapeType), (byte)3);
+ var polygon = areaTriggerData.ModifyValue(m_areaTriggerData.ShapeData);
+ var vertices = polygon.ModifyValue(polygon.Vertices);
+ ClearDynamicUpdateFieldValues(vertices);
+ foreach (Vector2 vertex in shape.PolygonVertices)
+ AddDynamicUpdateFieldValue(vertices, vertex);
+ var verticesTarget = polygon.ModifyValue(polygon.VerticesTarget);
+ ClearDynamicUpdateFieldValues(verticesTarget);
+ foreach (Vector2 vertex in shape.PolygonVerticesTarget)
+ AddDynamicUpdateFieldValue(verticesTarget, vertex);
+ SetUpdateFieldValue(polygon.ModifyValue(polygon.Height), shape.PolygonDatas.Height);
+ SetUpdateFieldValue(polygon.ModifyValue(polygon.HeightTarget), shape.PolygonDatas.HeightTarget);
+ break;
+ }
+ case AreaTriggerShapeType.Cylinder:
+ {
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.ShapeType), (byte)4);
+ var cylinder = areaTriggerData.ModifyValue(m_areaTriggerData.ShapeData);
+ SetUpdateFieldValue(cylinder.ModifyValue(cylinder.Radius), shape.CylinderDatas.Radius);
+ SetUpdateFieldValue(cylinder.ModifyValue(cylinder.RadiusTarget), shape.CylinderDatas.RadiusTarget);
+ SetUpdateFieldValue(cylinder.ModifyValue(cylinder.Height), shape.CylinderDatas.Height);
+ SetUpdateFieldValue(cylinder.ModifyValue(cylinder.HeightTarget), shape.CylinderDatas.HeightTarget);
+ SetUpdateFieldValue(cylinder.ModifyValue(cylinder.LocationZOffset), shape.CylinderDatas.LocationZOffset);
+ SetUpdateFieldValue(cylinder.ModifyValue(cylinder.LocationZOffsetTarget), shape.CylinderDatas.LocationZOffsetTarget);
+ break;
+ }
+ case AreaTriggerShapeType.Disk:
+ {
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.ShapeType), (byte)7);
+ var disk = areaTriggerData.ModifyValue(m_areaTriggerData.ShapeData);
+ SetUpdateFieldValue(disk.ModifyValue(disk.InnerRadius), shape.DiskDatas.InnerRadius);
+ SetUpdateFieldValue(disk.ModifyValue(disk.InnerRadiusTarget), shape.DiskDatas.InnerRadiusTarget);
+ SetUpdateFieldValue(disk.ModifyValue(disk.OuterRadius), shape.DiskDatas.OuterRadius);
+ SetUpdateFieldValue(disk.ModifyValue(disk.OuterRadiusTarget), shape.DiskDatas.OuterRadiusTarget);
+ SetUpdateFieldValue(disk.ModifyValue(disk.Height), shape.DiskDatas.Height);
+ SetUpdateFieldValue(disk.ModifyValue(disk.HeightTarget), shape.DiskDatas.HeightTarget);
+ SetUpdateFieldValue(disk.ModifyValue(disk.LocationZOffset), shape.DiskDatas.LocationZOffset);
+ SetUpdateFieldValue(disk.ModifyValue(disk.LocationZOffsetTarget), shape.DiskDatas.LocationZOffsetTarget);
+ break;
+ }
+ case AreaTriggerShapeType.BoundedPlane:
+ {
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.ShapeType), (byte)8);
+ var boundedPlane = areaTriggerData.ModifyValue(m_areaTriggerData.ShapeData);
+ SetUpdateFieldValue(boundedPlane.ModifyValue(boundedPlane.Extents), new Vector2(shape.BoundedPlaneDatas.Extents[0], shape.BoundedPlaneDatas.Extents[1]));
+ SetUpdateFieldValue(boundedPlane.ModifyValue(boundedPlane.ExtentsTarget), new Vector2(shape.BoundedPlaneDatas.ExtentsTarget[0], shape.BoundedPlaneDatas.ExtentsTarget[1]));
+ break;
+ }
+ default:
+ break;
+ }
+ }
+
float GetMaxSearchRadius()
{
return m_areaTriggerData.BoundsRadius2D * CalcCurrentScale();
@@ -909,26 +1007,25 @@ namespace Game.Entities
void UpdatePolygonVertices()
{
- AreaTriggerCreateProperties createProperties = GetCreateProperties();
- AreaTriggerShapeInfo shape = GetShape();
+ AreaTriggerPolygon shape = m_areaTriggerData.ShapeData.Get();
float newOrientation = GetOrientation();
// No need to recalculate, orientation didn't change
- if (MathFunctions.fuzzyEq(_verticesUpdatePreviousOrientation, newOrientation) && shape.PolygonVerticesTarget.Empty())
+ if (MathFunctions.fuzzyEq(_verticesUpdatePreviousOrientation, newOrientation) && shape.VerticesTarget.Empty())
return;
- _polygonVertices.AddRange(shape.PolygonVertices.Select(p => new Position(p.X, p.Y)));
+ _polygonVertices.AddRange(shape.Vertices._values.Select(p => new Position(p.X, p.Y)));
- if (!shape.PolygonVerticesTarget.Empty())
+ if (!shape.Vertices.Empty())
{
float progress = GetProgress();
- if (createProperties.MorphCurveId != 0)
- progress = Global.DB2Mgr.GetCurveValueAt(createProperties.MorphCurveId, progress);
+ if (m_areaTriggerData.MorphCurveId != 0)
+ progress = Global.DB2Mgr.GetCurveValueAt(m_areaTriggerData.MorphCurveId, progress);
for (var i = 0; i < _polygonVertices.Count; ++i)
{
Vector2 vertex = _polygonVertices[i];
- Vector2 vertexTarget = shape.PolygonVerticesTarget[i];
+ Vector2 vertexTarget = shape.VerticesTarget[i];
vertex.X = MathFunctions.Lerp(vertex.X, vertexTarget.X, progress);
vertex.Y = MathFunctions.Lerp(vertex.Y, vertexTarget.Y, progress);
@@ -959,7 +1056,7 @@ namespace Game.Entities
public void UpdateShape()
{
- if (_shape.IsPolygon())
+ if (m_areaTriggerData.ShapeData.Is())
UpdatePolygonVertices();
}
@@ -1090,8 +1187,6 @@ namespace Game.Entities
if (splinePoints.Length < 2)
return;
- _movementTime = 0;
-
_spline = new Spline();
_spline.InitSpline(splinePoints, splinePoints.Length, EvaluationMode.Linear, _stationaryPosition.GetOrientation());
_spline.InitLengths();
@@ -1101,29 +1196,30 @@ namespace Game.Entities
speed = 1.0f;
uint timeToTarget = _spline.Length() / speed * (float)Time.InMilliseconds;
- SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.TimeToTarget), timeToTarget);
- if (IsInWorld)
- {
- if (_reachedDestination)
- {
- AreaTriggerRePath reshapeDest = new();
- reshapeDest.TriggerGUID = GetGUID();
- SendMessageToSet(reshapeDest, true);
- }
+ var areaTriggerData = m_values.ModifyValue(m_areaTriggerData);
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.TimeToTarget), timeToTarget);
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.MovementStartTime), GameTime.GetGameTimeMS());
- AreaTriggerRePath reshape = new();
- reshape.TriggerGUID = GetGUID();
- reshape.AreaTriggerSpline = new();
- reshape.AreaTriggerSpline.ElapsedTimeForMovement = GetElapsedTimeForMovement();
- reshape.AreaTriggerSpline.TimeToTarget = timeToTarget;
- reshape.AreaTriggerSpline.Points = _spline;
- SendMessageToSet(reshape, true);
- }
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.PathType), (int)AreaTriggerPathType.Spline);
+ var pathData = areaTriggerData.ModifyValue(m_areaTriggerData.PathData);
+ SetUpdateFieldValue(pathData.ModifyValue(pathData.Catmullrom), splinePoints.Length >= 4);
+ var points = pathData.ModifyValue(pathData.Points);
+ ClearDynamicUpdateFieldValues(points);
+ foreach (Vector3 point in splinePoints)
+ AddDynamicUpdateFieldValue(points, point);
_reachedDestination = false;
}
+ uint GetElapsedTimeForMovement()
+ {
+ uint now = GameTime.GetGameTimeMS();
+ if (now >= m_areaTriggerData.MovementStartTime)
+ return now - m_areaTriggerData.MovementStartTime;
+ return 0;
+ }
+
void InitOrbit(AreaTriggerOrbitInfo orbit, float? overrideSpeed = null)
{
// Circular movement requires either a center position or an attached unit
@@ -1135,45 +1231,40 @@ namespace Game.Entities
uint timeToTarget = (uint)(orbit.Radius * 2.0f * MathF.PI * (float)Time.InMilliseconds / speed);
- SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.TimeToTarget), timeToTarget);
- SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.OrbitPathTarget), orbit.PathTarget.GetValueOrDefault(ObjectGuid.Empty));
+ var areaTriggerData = m_values.ModifyValue(m_areaTriggerData);
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.TimeToTarget), timeToTarget);
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.MovementStartTime), GameTime.GetGameTimeMS());
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.OrbitPathTarget), orbit.PathTarget.GetValueOrDefault(ObjectGuid.Empty));
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.ZOffset), orbit.ZOffset);
+ if (orbit.CanLoop)
+ SetAreaTriggerFlag(AreaTriggerFieldFlags.CanLoop);
+ else
+ RemoveAreaTriggerFlag(AreaTriggerFieldFlags.CanLoop);
- _orbitInfo = new AreaTriggerOrbitInfo();
-
- _orbitInfo.TimeToTarget = timeToTarget;
- _orbitInfo.ElapsedTimeForMovement = 0;
-
- if (IsInWorld)
- {
- AreaTriggerRePath reshape = new();
- reshape.TriggerGUID = GetGUID();
- reshape.AreaTriggerOrbit = _orbitInfo;
-
- SendMessageToSet(reshape, true);
- }
- }
-
- public bool HasOrbit()
- {
- return _orbitInfo != null;
+ SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.PathType), (int)AreaTriggerPathType.Orbit);
+ var pathData = areaTriggerData.ModifyValue(m_areaTriggerData.PathData);
+ SetUpdateFieldValue(pathData.ModifyValue(pathData.CounterClockwise), orbit.CounterClockwise);
+ SetUpdateFieldValue(pathData.ModifyValue(pathData.Center), orbit.Center.GetValueOrDefault(new Position()));
+ SetUpdateFieldValue(pathData.ModifyValue(pathData.Radius), orbit.Radius);
+ SetUpdateFieldValue(pathData.ModifyValue(pathData.InitialAngle), orbit.InitialAngle);
+ SetUpdateFieldValue(pathData.ModifyValue(pathData.BlendFromRadius), orbit.BlendFromRadius);
+ SetUpdateFieldValue(pathData.ModifyValue(pathData.ExtraTimeForBlending), orbit.ExtraTimeForBlending);
}
Position GetOrbitCenterPosition()
{
- if (!HasOrbit())
+ AreaTriggerOrbit orbit = m_areaTriggerData.PathData.Get();
+ if (orbit == null)
return null;
- if (_orbitInfo.PathTarget.HasValue)
+ if (!m_areaTriggerData.OrbitPathTarget.GetValue().IsEmpty())
{
- WorldObject center = Global.ObjAccessor.GetWorldObject(this, _orbitInfo.PathTarget.Value);
+ WorldObject center = Global.ObjAccessor.GetWorldObject(this, m_areaTriggerData.OrbitPathTarget);
if (center != null)
return center;
}
- if (_orbitInfo.Center.HasValue)
- return new Position(_orbitInfo.Center.Value);
-
- return null;
+ return new Position(orbit.Center);
}
Position CalculateOrbitPosition()
@@ -1182,26 +1273,24 @@ namespace Game.Entities
if (centerPos == null)
return GetPosition();
- AreaTriggerCreateProperties createProperties = GetCreateProperties();
- AreaTriggerOrbitInfo cmi = GetOrbit();
+ AreaTriggerOrbit cmi = m_areaTriggerData.PathData.Get();
// AreaTrigger make exactly "Duration / TimeToTarget" loops during his life time
- float pathProgress = (float)cmi.ElapsedTimeForMovement / cmi.TimeToTarget;
- if (createProperties != null && createProperties.MoveCurveId != 0)
- pathProgress = Global.DB2Mgr.GetCurveValueAt(createProperties.MoveCurveId, pathProgress);
+ float pathProgress = (float)(GetElapsedTimeForMovement() + cmi.ExtraTimeForBlending) / (float)GetTimeToTarget();
+ if (m_areaTriggerData.MoveCurveId != 0)
+ pathProgress = Global.DB2Mgr.GetCurveValueAt(m_areaTriggerData.MoveCurveId, pathProgress);
// We already made one circle and can't loop
- if (!cmi.CanLoop)
+ if (!HasAreaTriggerFlag(AreaTriggerFieldFlags.CanLoop))
pathProgress = Math.Min(1.0f, pathProgress);
float radius = cmi.Radius;
- if (MathFunctions.fuzzyNe(cmi.BlendFromRadius, radius))
+ if (pathProgress <= 1.0f && MathFunctions.fuzzyNe(cmi.BlendFromRadius, radius))
{
float blendCurve = (cmi.BlendFromRadius - radius) / radius;
- // 4.f Defines four quarters
- blendCurve = MathFunctions.RoundToInterval(ref blendCurve, 1.0f, 4.0f) / 4.0f;
- float blendProgress = Math.Min(1.0f, pathProgress / blendCurve);
- radius = MathFunctions.Lerp(cmi.BlendFromRadius, cmi.Radius, blendProgress);
+ MathFunctions.RoundToInterval(ref blendCurve, 1.0f, 4.0f);
+ float blendProgress = Math.Min(1.0f, pathProgress / blendCurve * 0.63661975f);
+ radius = MathFunctions.Lerp(cmi.BlendFromRadius, radius, blendProgress);
}
// Adapt Path progress depending of circle direction
@@ -1211,13 +1300,13 @@ namespace Game.Entities
float angle = cmi.InitialAngle + 2.0f * (float)Math.PI * pathProgress;
float x = centerPos.GetPositionX() + (radius * (float)Math.Cos(angle));
float y = centerPos.GetPositionY() + (radius * (float)Math.Sin(angle));
- float z = centerPos.GetPositionZ() + cmi.ZOffset;
+ float z = centerPos.GetPositionZ() + m_areaTriggerData.ZOffset;
float orientation = 0.0f;
- if (createProperties != null && createProperties.FacingCurveId != 0)
- orientation = Global.DB2Mgr.GetCurveValueAt(createProperties.FacingCurveId, GetProgress());
+ if (m_areaTriggerData.FacingCurveId != 0)
+ orientation = Global.DB2Mgr.GetCurveValueAt(m_areaTriggerData.FacingCurveId, GetProgress());
- if (GetCreateProperties() == null || !GetCreateProperties().Flags.HasFlag(AreaTriggerCreatePropertiesFlag.HasAbsoluteOrientation))
+ if (!HasAreaTriggerFlag(AreaTriggerFieldFlags.AbsoluteOrientation))
{
orientation += angle;
orientation += cmi.CounterClockwise ? MathFunctions.PiOver4 : -MathFunctions.PiOver4;
@@ -1226,13 +1315,8 @@ namespace Game.Entities
return new Position(x, y, z, orientation);
}
- void UpdateOrbitPosition(uint diff)
+ void UpdateOrbitPosition()
{
- if (_orbitInfo.StartDelay > GetElapsedTimeForMovement())
- return;
-
- _orbitInfo.ElapsedTimeForMovement = (int)(GetElapsedTimeForMovement() - _orbitInfo.StartDelay);
-
Position pos = CalculateOrbitPosition();
GetMap().AreaTriggerRelocation(this, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), pos.GetOrientation());
@@ -1240,14 +1324,12 @@ namespace Game.Entities
DebugVisualizePosition();
}
- void UpdateSplinePosition(uint diff)
+ void UpdateSplinePosition(Spline spline)
{
if (_reachedDestination)
return;
- _movementTime += diff;
-
- if (_movementTime >= GetTimeToTarget())
+ if (GetElapsedTimeForMovement() >= GetTimeToTarget())
{
_reachedDestination = true;
_lastSplineIndex = _spline.Last();
@@ -1262,18 +1344,18 @@ namespace Game.Entities
return;
}
- float currentTimePercent = (float)_movementTime / GetTimeToTarget();
+ float currentTimePercent = (float)GetElapsedTimeForMovement() / GetTimeToTarget();
if (currentTimePercent <= 0.0f)
return;
- AreaTriggerCreateProperties createProperties = GetCreateProperties();
- if (createProperties != null && createProperties.MoveCurveId != 0)
+ if (m_areaTriggerData.MoveCurveId != 0)
{
- float progress = Global.DB2Mgr.GetCurveValueAt(createProperties.MoveCurveId, currentTimePercent);
+ float progress = Global.DB2Mgr.GetCurveValueAt(m_areaTriggerData.MoveCurveId, currentTimePercent);
if (progress < 0.0f || progress > 1.0f)
{
- Log.outError(LogFilter.AreaTrigger, $"AreaTrigger (Id: {GetEntry()}, AreaTriggerCreatePropertiesId: (Id: {createProperties.Id.Id}, IsCustom: {createProperties.Id.IsCustom})) has wrong progress ({progress}) caused by curve calculation (MoveCurveId: {createProperties.MoveCurveId})");
+ AreaTriggerCreateProperties createProperties = GetCreateProperties();
+ Log.outError(LogFilter.AreaTrigger, $"AreaTrigger (Id: {GetEntry()}, AreaTriggerCreatePropertiesId: (Id: {createProperties.Id.Id}, IsCustom: {createProperties.Id.IsCustom})) has wrong progress ({progress}) caused by curve calculation (MoveCurveId: {m_areaTriggerData.MoveCurveId})");
}
else
currentTimePercent = progress;
@@ -1287,10 +1369,10 @@ namespace Game.Entities
_spline.Evaluate_Percent(lastPositionIndex, percentFromLastPoint, out currentPosition);
float orientation = _stationaryPosition.GetOrientation();
- if (createProperties != null && createProperties.FacingCurveId != 0)
- orientation += Global.DB2Mgr.GetCurveValueAt(createProperties.FacingCurveId, GetProgress());
+ if (m_areaTriggerData.FacingCurveId != 0)
+ orientation += Global.DB2Mgr.GetCurveValueAt(m_areaTriggerData.FacingCurveId, GetProgress());
- if (GetCreateProperties() != null && !GetCreateProperties().Flags.HasFlag(AreaTriggerCreatePropertiesFlag.HasAbsoluteOrientation) && GetCreateProperties().Flags.HasFlag(AreaTriggerCreatePropertiesFlag.HasFaceMovementDir))
+ if (!HasAreaTriggerFlag(AreaTriggerFieldFlags.AbsoluteOrientation) && HasAreaTriggerFlag(AreaTriggerFieldFlags.FaceMovementDir))
{
_spline.Evaluate_Derivative(lastPositionIndex, percentFromLastPoint, out Vector3 derivative);
if (derivative.X != 0.0f || derivative.Y != 0.0f)
@@ -1317,11 +1399,11 @@ namespace Game.Entities
float z = GetScaleCurveValueAtProgress(m_areaTriggerData.OverrideMoveCurveZ, progress);
float orientation = GetOrientation();
- if (GetCreateProperties().FacingCurveId != 0)
+ if (m_areaTriggerData.FacingCurveId != 0)
{
- orientation = Global.DB2Mgr.GetCurveValueAt(GetCreateProperties().FacingCurveId, GetProgress());
- if (GetCreateProperties() == null || !GetCreateProperties().Flags.HasFlag(AreaTriggerCreatePropertiesFlag.HasAbsoluteOrientation))
- orientation += _stationaryPosition.GetOrientation();
+ orientation = Global.DB2Mgr.GetCurveValueAt(m_areaTriggerData.FacingCurveId, GetProgress());
+ if (HasAreaTriggerFlag(AreaTriggerFieldFlags.AbsoluteOrientation))
+ orientation += m_areaTriggerData.Facing;
}
GetMap().AreaTriggerRelocation(this, x, y, z, orientation);
@@ -1438,9 +1520,15 @@ namespace Game.Entities
public bool IsRemoved() { return _isRemoved; }
public uint GetSpellId() { return m_areaTriggerData.SpellID; }
public AuraEffect GetAuraEffect() { return _aurEff; }
- public uint GetTimeSinceCreated() { return _timeSinceCreated; }
- public void SetHeightIgnoresScale(bool heightIgnoresScale) { SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.HeightIgnoresScale), heightIgnoresScale); }
+ public AreaTriggerFieldFlags GetAreaTriggerFlags() { return (AreaTriggerFieldFlags)m_areaTriggerData.Flags.GetValue(); }
+ public bool HasAreaTriggerFlag(AreaTriggerFieldFlags flag)
+ {
+ return GetAreaTriggerFlags().HasFlag(flag);
+ }
+ public void SetAreaTriggerFlag(AreaTriggerFieldFlags flag) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.Flags), (uint)flag); }
+ public void RemoveAreaTriggerFlag(AreaTriggerFieldFlags flag) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.Flags), (uint)flag); }
+ public void ReplaceAllAreaTriggerFlags(AreaTriggerFieldFlags flag) { SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.Flags), (uint)flag); }
public uint GetTimeToTarget() { return m_areaTriggerData.TimeToTarget; }
public void SetTimeToTarget(uint timeToTarget) { SetUpdateFieldValue(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.TimeToTarget), timeToTarget); }
@@ -1467,15 +1555,11 @@ namespace Game.Entities
public override ObjectGuid GetOwnerGUID() { return GetCasterGuid(); }
public ObjectGuid GetCasterGuid() { return m_areaTriggerData.Caster; }
- public AreaTriggerShapeInfo GetShape() { return _shape; }
- public Vector3 GetRollPitchYaw() { return _rollPitchYaw; }
- public Vector3 GetTargetRollPitchYaw() { return _targetRollPitchYaw; }
-
public bool HasSplines() { return !_spline.Empty(); }
public Spline GetSpline() { return _spline; }
- public uint GetElapsedTimeForMovement() { return GetTimeSinceCreated(); } // @todo: research the right value, in sniffs both timers are nearly identical
- public AreaTriggerOrbitInfo GetOrbit() { return _orbitInfo; }
+ bool HasOrbit() { return m_areaTriggerData.PathData.Is(); }
+ public AreaTriggerOrbit GetOrbit() { return m_areaTriggerData.PathData.Get(); }
public AreaTriggerFieldData m_areaTriggerData;
@@ -1486,21 +1570,16 @@ namespace Game.Entities
AuraEffect _aurEff;
Position _stationaryPosition;
- AreaTriggerShapeInfo _shape;
int _duration;
int _totalDuration;
- uint _timeSinceCreated;
float _verticesUpdatePreviousOrientation;
bool _isRemoved;
- Position _rollPitchYaw;
- Position _targetRollPitchYaw;
List _polygonVertices;
Spline _spline;
bool _reachedDestination;
int _lastSplineIndex;
- uint _movementTime;
AreaTriggerOrbitInfo _orbitInfo;
diff --git a/Source/Game/Entities/AreaTrigger/AreaTriggerTemplate.cs b/Source/Game/Entities/AreaTrigger/AreaTriggerTemplate.cs
index cb1affd65..0c71d7645 100644
--- a/Source/Game/Entities/AreaTrigger/AreaTriggerTemplate.cs
+++ b/Source/Game/Entities/AreaTrigger/AreaTriggerTemplate.cs
@@ -104,18 +104,6 @@ namespace Game.Entities
public AreaTriggerScaleCurvePointsTemplate CurveTemplate;
}
- public struct AreaTriggerMovementScriptInfo
- {
- public uint SpellScriptID;
- public Vector3 Center;
-
- public void Write(WorldPacket data)
- {
- data.WriteUInt32(SpellScriptID);
- data.WriteVector3(Center);
- }
- }
-
public struct AreaTriggerId
{
public uint Id;
@@ -204,35 +192,11 @@ namespace Game.Entities
public class AreaTriggerOrbitInfo
{
- public void Write(WorldPacket data)
- {
- data.WriteBit(PathTarget.HasValue);
- data.WriteBit(Center.HasValue);
- data.WriteBit(CounterClockwise);
- data.WriteBit(CanLoop);
-
- data.WriteUInt32(TimeToTarget);
- data.WriteInt32(ElapsedTimeForMovement);
- data.WriteUInt32(StartDelay);
- data.WriteFloat(Radius);
- data.WriteFloat(BlendFromRadius);
- data.WriteFloat(InitialAngle);
- data.WriteFloat(ZOffset);
-
- if (PathTarget.HasValue)
- data.WritePackedGuid(PathTarget.Value);
-
- if (Center.HasValue)
- data.WriteVector3(Center.Value);
- }
-
public ObjectGuid? PathTarget;
public Vector3? Center;
public bool CounterClockwise;
public bool CanLoop;
- public uint TimeToTarget;
- public int ElapsedTimeForMovement;
- public uint StartDelay;
+ public int ExtraTimeForBlending;
public float Radius;
public float BlendFromRadius;
public float InitialAngle;
diff --git a/Source/Game/Entities/Creature/CreatureData.cs b/Source/Game/Entities/Creature/CreatureData.cs
index cdd58a2d1..eddba938f 100644
--- a/Source/Game/Entities/Creature/CreatureData.cs
+++ b/Source/Game/Entities/Creature/CreatureData.cs
@@ -166,6 +166,7 @@ namespace Game.Entities
stats.Flags[0] = (uint)creatureDifficulty.TypeFlags;
stats.Flags[1] = creatureDifficulty.TypeFlags2;
+ stats.Flags[2] = creatureDifficulty.TypeFlags3;
stats.CreatureType = (sbyte)CreatureType;
stats.CreatureFamily = (int)Family;
@@ -436,6 +437,7 @@ namespace Game.Entities
public int CreatureDifficultyID;
public CreatureTypeFlags TypeFlags;
public uint TypeFlags2;
+ public uint TypeFlags3;
public uint LootID;
public uint PickPocketLootID;
public uint SkinLootID;
diff --git a/Source/Game/Entities/GameObject/GameObjectData.cs b/Source/Game/Entities/GameObject/GameObjectData.cs
index 48818f578..03d558ca9 100644
--- a/Source/Game/Entities/GameObject/GameObjectData.cs
+++ b/Source/Game/Entities/GameObject/GameObjectData.cs
@@ -224,6 +224,12 @@ namespace Game.Entities
[FieldOffset(80)]
public craftingTable CraftingTable;
+ [FieldOffset(80)]
+ public futurePatchGameObject FuturePatchGameObject;
+
+ [FieldOffset(80)]
+ public assistAction AssistAction;
+
[FieldOffset(80)]
public raw Raw;
@@ -539,6 +545,10 @@ namespace Game.Entities
return QuestGiver.gossipID;
case GameObjectTypes.Goober:
return Goober.gossipID;
+ case GameObjectTypes.SpellFocus:
+ return SpellFocus.gossipID;
+ case GameObjectTypes.AssistAction:
+ return AssistAction.gossipID;
default:
return 0;
}
@@ -641,6 +651,8 @@ namespace Game.Entities
return Trap.cooldown;
case GameObjectTypes.Goober:
return Goober.cooldown;
+ case GameObjectTypes.AssistAction:
+ return AssistAction.cooldown;
default:
return 0;
}
@@ -1483,7 +1495,7 @@ namespace Game.Entities
public uint radius; // 4 radius, int, Min value: 0, Max value: 50, Default value: 10
public uint InteractRadiusOverride; // 5 Interact Radius Override (Yards * 100), int, Min value: 0, Max value: 2147483647, Default value: 0
public uint ItemInteractionID; // 6 Item Interaction ID, References: UiItemInteraction, NoValue = 0
- public uint PlayerInteractionType; // 7 Player Interaction Type, enum { None, TradePartner, Item, Gossip, QuestGiver, Merchant, TaxiNode, Trainer, Banker, AlliedRaceDetailsGiver, GuildBanker, Registrar, Vendor, PetitionVendor, GuildTabardVendor, TalentMaster, SpecializationMaster, MailInfo, SpiritHealer, AreaSpiritHealer, Binder, Auctioneer, StableMaster, BattleMaster, Transmogrifier, LFGDungeon, VoidStorageBanker, BlackMarketAuctioneer, AdventureMap, WorldMap, GarrArchitect, GarrTradeskill, GarrMission, ShipmentCrafter, GarrRecruitment, GarrTalent, Trophy, PlayerChoice, ArtifactForge, ObliterumForge, ScrappingMachine, ContributionCollector, AzeriteRespec, IslandQueue, ItemInteraction, ChromieTime, CovenantPreview, AnimaDiversion, LegendaryCrafting, WeeklyRewards, Soulbind, CovenantSanctum, NewPlayerGuide, ItemUpgrade, AdventureJournal, Renown, AzeriteForge, PerksProgramVendor, ProfessionsCraftingOrder, Professions, ProfessionsCustomerOrder, TraitSystem, BarbersChoice, JailersTowerBuffs, MajorFactionRenown, PersonalTabardVendor, ForgeMaster, CharacterBanker, AccountBanker, ProfessionRespec, PlaceholderType71, PlaceholderType72, PlaceholderType73, PlaceholderType74, PlaceholderType75, PlaceholderType76, PlaceholderType77, }; Default: None
+ public uint PlayerInteractionType; // 7 Player Interaction Type, enum { None, TradePartner, Item, Gossip, QuestGiver, Merchant, TaxiNode, Trainer, Banker, AlliedRaceDetailsGiver, GuildBanker, Registrar, Vendor, PetitionVendor, GuildTabardVendor, TalentMaster, SpecializationMaster, MailInfo, SpiritHealer, AreaSpiritHealer, Binder, Auctioneer, StableMaster, BattleMaster, Transmogrifier, LFGDungeon, VoidStorageBanker, BlackMarketAuctioneer, AdventureMap, WorldMap, GarrArchitect, GarrTradeskill, GarrMission, ShipmentCrafter, GarrRecruitment, GarrTalent, Trophy, PlayerChoice, ArtifactForge, ObliterumForge, ScrappingMachine, ContributionCollector, AzeriteRespec, IslandQueue, ItemInteraction, ChromieTime, CovenantPreview, AnimaDiversion, LegendaryCrafting, WeeklyRewards, Soulbind, CovenantSanctum, NewPlayerGuide, ItemUpgrade, AdventureJournal, Renown, AzeriteForge, PerksProgramVendor, ProfessionsCraftingOrder, Professions, ProfessionsCustomerOrder, TraitSystem, BarbersChoice, JailersTowerBuffs, MajorFactionRenown, PersonalTabardVendor, ForgeMaster, CharacterBanker, AccountBanker, ProfessionRespec, PlaceholderType71, PlaceholderType72, PlaceholderType73, PlaceholderType74, PlaceholderType75, PlaceholderType76, GuildRename, PlaceholderType76, }; Default: None
}
public struct keystonereceptacle
@@ -1614,6 +1626,19 @@ namespace Game.Entities
public uint Script; // 0 Script, References: SpellScript, NoValue = 0
public uint autoClose; // 1 autoClose (ms), int, Min value: 0, Max value: 2147483647, Default value: 3000
}
+
+ public struct futurePatchGameObject
+ {
+ }
+
+ public struct assistAction
+ {
+ public uint AssistActionType; // 0 Assist Action Type, enum { None, Lounging Player, Grave Marker, Placed VO, Player Guardian, Player Slayer, Captured Buff, }; Default: None
+ public uint cooldown; // 1 cooldown, int, Min value: 0, Max value: 2147483647, Default value: 3000
+ public uint gossipID; // 2 gossipID, References: Gossip, NoValue = 0
+ public uint spell; // 3 spell, References: Spell, NoValue = 0
+ public uint playerCast; // 4 playerCast, enum { false, true, }; Default: false
+ }
#endregion
}
diff --git a/Source/Game/Entities/Item/Item.cs b/Source/Game/Entities/Item/Item.cs
index 07244487e..c109ebc6c 100644
--- a/Source/Game/Entities/Item/Item.cs
+++ b/Source/Game/Entities/Item/Item.cs
@@ -2551,9 +2551,15 @@ namespace Game.Entities
}
eff.SetBonuses.Add(itemSetSpell);
+
// spell cast only if fit form requirement, in other case will cast at form change
- if (itemSetSpell.ChrSpecID == 0 || (ChrSpecialization)itemSetSpell.ChrSpecID == player.GetPrimarySpecialization())
- player.ApplyEquipSpell(spellInfo, null, true);
+ if (itemSetSpell.ChrSpecID != 0 && (ChrSpecialization)itemSetSpell.ChrSpecID != player.GetPrimarySpecialization())
+ continue;
+
+ if (itemSetSpell.TraitSubTreeID != 0 && itemSetSpell.TraitSubTreeID != player.m_playerData.CurrentCombatTraitConfigSubTreeID)
+ continue;
+
+ player.ApplyEquipSpell(spellInfo, null, true);
}
}
@@ -2592,11 +2598,10 @@ namespace Game.Entities
if (itemSetSpell.Threshold <= eff.EquippedItems.Count)
continue;
- if (!eff.SetBonuses.Contains(itemSetSpell))
+ if (!eff.SetBonuses.Remove(itemSetSpell))
continue;
player.ApplyEquipSpell(Global.SpellMgr.GetSpellInfo(itemSetSpell.SpellID, Difficulty.None), null, false);
- eff.SetBonuses.Remove(itemSetSpell);
}
if (eff.EquippedItems.Empty()) //all items of a set were removed
@@ -2618,7 +2623,8 @@ namespace Game.Entities
{
SpellInfo spellInfo = Global.SpellMgr.GetSpellInfo(itemSetSpell.SpellID, Difficulty.None);
- if (itemSetSpell.ChrSpecID != 0 && (ChrSpecialization)itemSetSpell.ChrSpecID != player.GetPrimarySpecialization())
+ if ((itemSetSpell.ChrSpecID != 0 && itemSetSpell.ChrSpecID != (ushort)player.GetPrimarySpecialization())
+ || (itemSetSpell.TraitSubTreeID != 0 && itemSetSpell.TraitSubTreeID != player.m_playerData.CurrentCombatTraitConfigSubTreeID))
player.ApplyEquipSpell(spellInfo, null, false, false); // item set aura is not for current spec
else
{
diff --git a/Source/Game/Entities/Object/Update/UpdateField.cs b/Source/Game/Entities/Object/Update/UpdateField.cs
index 5cd46b3c3..0dfe5604c 100644
--- a/Source/Game/Entities/Object/Update/UpdateField.cs
+++ b/Source/Game/Entities/Object/Update/UpdateField.cs
@@ -15,6 +15,12 @@ namespace Game.Entities
T GetValue();
}
+ public interface IHasChangesMask
+ {
+ void ClearChangesMask();
+ UpdateMask GetUpdateMask();
+ }
+
public class UpdateFieldString : IUpdateField
{
public string _value;
@@ -347,15 +353,39 @@ namespace Game.Entities
}
}
- public interface IHasChangesMask
+ public class VariantUpdateField(int blockBit, int bit, params Type[] types)
{
- void ClearChangesMask();
- UpdateMask GetUpdateMask();
+ public object _value;
+ Type[] _types = types;
+
+ public int BlockBit = blockBit;
+ public int Bit = bit;
+
+ public bool Is() { return _types.Contains(typeof(T)); }
+
+ public T Get() where T : class, new()
+ {
+ if (Is())
+ return _value as T;
+
+ return null;
+ }
+
+ public void Visit(Action visitor)
+ {
+ visitor(_value);
+ }
+
+ public void ConstructValue() where T : class, new()
+ {
+ _value = new T();
+ }
}
public abstract class HasChangesMask : IHasChangesMask
{
- public int _changeMask;
+ public static int ChangeMaskLength;
+
public UpdateMask _changesMask;
public int _blockBit;
public int Bit;
@@ -364,12 +394,13 @@ namespace Game.Entities
{
_blockBit = blockBit;
Bit = (int)bit;
+ ChangeMaskLength = changeMask;
_changesMask = new UpdateMask(changeMask);
- _changeMask = changeMask;
}
public HasChangesMask(int changeMask)
{
+ ChangeMaskLength = changeMask;
_changesMask = new UpdateMask(changeMask);
}
@@ -433,6 +464,19 @@ namespace Game.Entities
}
}
+ public void ClearChangesMask(VariantUpdateField field)
+ {
+ if (typeof(IHasChangesMask).IsAssignableFrom(field._value.GetType()))
+ ((IHasChangesMask)field._value).ClearChangesMask();
+ }
+
+ public dynamic ModifyValueOld(dynamic value, int bit, int blockBit)
+ {
+ _changesMask.Set(blockBit);
+ _changesMask.Set(bit);
+ return value;
+ }
+
public UpdateField ModifyValue(UpdateField updateField) where U : new()
{
MarkChanged(updateField);
@@ -504,6 +548,18 @@ namespace Game.Entities
return new DynamicUpdateFieldSetter(updateField[index], dynamicIndex);
}
+ public V ModifyValue(VariantUpdateField field) where V : class, new()
+ {
+ if (!field.Is())
+ field.ConstructValue();
+
+ if (field.BlockBit >= 0)
+ _changesMask.Set(field.BlockBit);
+
+ _changesMask.Set(Bit);
+ return field.Get();
+ }
+
public void MarkChanged(UpdateField updateField) where U : new()
{
_changesMask.Set(updateField.BlockBit);
@@ -560,7 +616,7 @@ namespace Game.Entities
public UpdateMask GetStaticUpdateMask()
{
- return new UpdateMask(_changeMask);
+ return new UpdateMask(ChangeMaskLength);
}
}
diff --git a/Source/Game/Entities/Object/Update/UpdateFields.cs b/Source/Game/Entities/Object/Update/UpdateFields.cs
index 4c907635b..153e729e8 100644
--- a/Source/Game/Entities/Object/Update/UpdateFields.cs
+++ b/Source/Game/Entities/Object/Update/UpdateFields.cs
@@ -2,7 +2,6 @@
// Licensed under the GNU GENERAL PUBLIC LICENSE. See LICENSE file in the project root for full license information.
using Framework.Constants;
-using Framework.Dynamic;
using Game.DataStorage;
using Game.Networking;
using Game.Networking.Packets;
@@ -14,14 +13,12 @@ using System.Numerics;
namespace Game.Entities
{
- public class ObjectFieldData : HasChangesMask
+ public class ObjectFieldData() : HasChangesMask((int)EntityFragment.CGObject, TypeId.Object, 4)
{
public UpdateField EntryId = new(0, 1);
public UpdateField DynamicFlags = new(0, 2);
public UpdateField Scale = new(0, 3);
- public ObjectFieldData() : base((int)EntityFragment.CGObject, TypeId.Object, 4) { }
-
public void WriteCreate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, WorldObject owner, Player receiver)
{
data.WriteUInt32(GetViewerDependentEntryId(this, owner, receiver));
@@ -180,15 +177,13 @@ namespace Game.Entities
}
}
- public class ItemEnchantment : HasChangesMask
+ public class ItemEnchantment() : HasChangesMask(5)
{
public UpdateField ID = new(0, 1);
public UpdateField Duration = new(0, 2);
public UpdateField Charges = new(0, 3);
public UpdateField Inactive = new(0, 4);
- public ItemEnchantment() : base(5) { }
-
public void WriteCreate(WorldPacket data, Item owner, Player receiver)
{
data.WriteUInt32(ID);
@@ -237,7 +232,7 @@ namespace Game.Entities
}
}
- public class ItemMod
+ public class ItemMod : IEquatable
{
public byte Type;
public uint Value;
@@ -253,14 +248,18 @@ namespace Game.Entities
data.WriteUInt8(Type);
data.WriteUInt32(Value);
}
+
+ public bool Equals(ItemMod right)
+ {
+ return Type == right.Type
+ && Value == right.Value;
+ }
}
- public class ItemModList : HasChangesMask
+ public class ItemModList() : HasChangesMask(1)
{
public DynamicUpdateField Values = new(-1, 0);
- public ItemModList() : base(1) { }
-
public void WriteCreate(WorldPacket data, Item owner, Player receiver)
{
data.WriteBits(Values.Size(), 6);
@@ -307,7 +306,7 @@ namespace Game.Entities
}
}
- public class ArtifactPower
+ public class ArtifactPower : IEquatable
{
public ushort ArtifactPowerId;
public byte PurchasedRank;
@@ -326,16 +325,21 @@ namespace Game.Entities
data.WriteUInt8(PurchasedRank);
data.WriteUInt8(CurrentRankWithBonus);
}
+
+ public bool Equals(ArtifactPower right)
+ {
+ return ArtifactPowerId == right.ArtifactPowerId
+ && PurchasedRank == right.PurchasedRank
+ && CurrentRankWithBonus == right.CurrentRankWithBonus;
+ }
}
- public class SocketedGem : HasChangesMask
+ public class SocketedGem() : HasChangesMask(20)
{
public UpdateField ItemId = new(0, 1);
public UpdateField Context = new(0, 2);
public UpdateFieldArray BonusListIDs = new(16, 3, 4);
- public SocketedGem() : base(20) { }
-
public void WriteCreate(WorldPacket data, Item owner, Player receiver)
{
data.WriteUInt32(ItemId);
@@ -388,7 +392,7 @@ namespace Game.Entities
}
}
- public class ItemData : HasChangesMask
+ public class ItemData() : HasChangesMask((int)EntityFragment.CGObject, TypeId.Item, 41)
{
public DynamicUpdateField ArtifactPowers = new(0, 1);
public DynamicUpdateField Gems = new(0, 2);
@@ -413,8 +417,6 @@ namespace Game.Entities
public UpdateFieldArray SpellCharges = new(5, 21, 22);
public UpdateFieldArray Enchantment = new(13, 27, 28);
- public ItemData() : base((int)EntityFragment.CGObject, TypeId.Item, 41) { }
-
public void WriteCreate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, Item owner, Player receiver)
{
data.WritePackedGuid(Owner);
@@ -480,7 +482,7 @@ namespace Game.Entities
public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags)
{
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner))
- allowedMaskForTarget.OR(new UpdateMask(41, [0x07F58D80u, 0x00000000u]));
+ allowedMaskForTarget.OR(new UpdateMask(ChangeMaskLength, [0x07F58D80u, 0x00000000u]));
}
public void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags)
@@ -660,13 +662,11 @@ namespace Game.Entities
}
}
- public class ContainerData : HasChangesMask
+ public class ContainerData() : HasChangesMask((int)EntityFragment.CGObject, TypeId.Container, 101)
{
public UpdateField NumSlots = new(0, 1);
public UpdateFieldArray Slots = new(98, 2, 3);
- public ContainerData() : base((int)EntityFragment.CGObject, TypeId.Container, 101) { }
-
public void WriteCreate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, Bag owner, Player receiver)
{
for (int i = 0; i < 98; ++i)
@@ -716,12 +716,10 @@ namespace Game.Entities
}
}
- public class AzeriteEmpoweredItemData : HasChangesMask
+ public class AzeriteEmpoweredItemData() : HasChangesMask((int)EntityFragment.CGObject, TypeId.AzeriteEmpoweredItem, 6)
{
public UpdateFieldArray Selections = new(5, 0, 1);
- public AzeriteEmpoweredItemData() : base((int)EntityFragment.CGObject, TypeId.AzeriteEmpoweredItem, 6) { }
-
public void WriteCreate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, Item owner, Player receiver)
{
for (int i = 0; i < 5; ++i)
@@ -761,7 +759,7 @@ namespace Game.Entities
}
}
- public class UnlockedAzeriteEssence
+ public class UnlockedAzeriteEssence : IEquatable
{
public uint AzeriteEssenceID;
public uint Rank;
@@ -777,16 +775,20 @@ namespace Game.Entities
data.WriteUInt32(AzeriteEssenceID);
data.WriteUInt32(Rank);
}
+
+ public bool Equals(UnlockedAzeriteEssence right)
+ {
+ return AzeriteEssenceID == right.AzeriteEssenceID
+ && Rank == right.Rank;
+ }
}
- public class SelectedAzeriteEssences : HasChangesMask
+ public class SelectedAzeriteEssences() : HasChangesMask(8)
{
public UpdateField Enabled = new(0, 1);
public UpdateField SpecializationID = new(0, 2);
public UpdateFieldArray AzeriteEssenceID = new(4, 3, 4);
- public SelectedAzeriteEssences() : base(8) { }
-
public void WriteCreate(WorldPacket data, AzeriteItem owner, Player receiver)
{
for (int i = 0; i < 4; ++i)
@@ -846,7 +848,7 @@ namespace Game.Entities
}
}
- public class AzeriteItemData : HasChangesMask
+ public class AzeriteItemData() : HasChangesMask((int)EntityFragment.CGObject, TypeId.AzeriteItem, 10)
{
public UpdateField Enabled = new(0, 1);
public DynamicUpdateField UnlockedEssences = new(0, 2);
@@ -858,8 +860,6 @@ namespace Game.Entities
public UpdateField KnowledgeLevel = new(0, 8);
public UpdateField DEBUGknowledgeWeek = new(0, 9);
- public AzeriteItemData() : base((int)EntityFragment.CGObject, TypeId.AzeriteItem, 10) { }
-
public void WriteCreate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, AzeriteItem owner, Player receiver)
{
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner))
@@ -902,7 +902,7 @@ namespace Game.Entities
public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags)
{
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner))
- allowedMaskForTarget.OR(new UpdateMask(10, [0x000003E2u]));
+ allowedMaskForTarget.OR(new UpdateMask(ChangeMaskLength, [0x000003E2u]));
}
public void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags)
@@ -1016,7 +1016,7 @@ namespace Game.Entities
}
}
- public class SpellCastVisualField
+ public class SpellCastVisualField : IEquatable
{
public uint SpellXSpellVisualID;
public uint ScriptVisualID;
@@ -1032,27 +1032,47 @@ namespace Game.Entities
data.WriteUInt32(SpellXSpellVisualID);
data.WriteUInt32(ScriptVisualID);
}
+
+ public bool Equals(SpellCastVisual right)
+ {
+ return SpellXSpellVisualID == right.SpellXSpellVisualID
+ && ScriptVisualID == right.ScriptVisualID;
+ }
}
- public class UnitChannel
+ public class UnitChannel : IEquatable
{
public uint SpellID;
public SpellCastVisualField SpellVisual = new();
+ public uint StartTimeMs;
+ public uint Duration;
public void WriteCreate(WorldPacket data, Unit owner, Player receiver)
{
data.WriteUInt32(SpellID);
SpellVisual.WriteCreate(data, owner, receiver);
+ data.WriteUInt32(StartTimeMs);
+ data.WriteUInt32(Duration);
}
public void WriteUpdate(WorldPacket data, bool ignoreChangesMask, Unit owner, Player receiver)
{
data.WriteUInt32(SpellID);
SpellVisual.WriteUpdate(data, ignoreChangesMask, owner, receiver);
+ data.WriteUInt32(StartTimeMs);
+ data.WriteUInt32(Duration);
+ }
+
+ public bool Equals(UnitChannel right)
+ {
+ return SpellID == right.SpellID
+ && SpellVisual == right.SpellVisual
+ && StartTimeMs == right.StartTimeMs
+ && Duration == right.Duration;
}
}
- public class VisibleItem : HasChangesMask
+ public class VisibleItem() : HasChangesMask(6)
{
public UpdateField ItemID = new(0, 1);
public UpdateField SecondaryItemModifiedAppearanceID = new(0, 2);
@@ -1060,8 +1080,6 @@ namespace Game.Entities
public UpdateField ItemAppearanceModID = new(0, 4);
public UpdateField ItemVisual = new(0, 5);
- public VisibleItem() : base(6) { }
-
public void WriteCreate(WorldPacket data, Unit owner, Player receiver)
{
data.WriteUInt32(ItemID);
@@ -1116,7 +1134,7 @@ namespace Game.Entities
}
}
- public class PassiveSpellHistory
+ public class PassiveSpellHistory : IEquatable
{
public int SpellID;
public int AuraSpellID;
@@ -1132,12 +1150,68 @@ namespace Game.Entities
data.WriteInt32(SpellID);
data.WriteInt32(AuraSpellID);
}
+
+ public bool Equals(PassiveSpellHistory right)
+ {
+ return SpellID == right.SpellID
+ && AuraSpellID == right.AuraSpellID;
+ }
}
- public class UnitData : HasChangesMask
+ public class UnitAssistActionData() : HasChangesMask(4)
{
- static int ChangeMaskLength = 222;
+ public UpdateField Type = new(0, 1);
+ public UpdateFieldString PlayerName = new(0, 2);
+ public UpdateField VirtualRealmAddress = new(0, 3);
+ public void WriteCreate(WorldPacket data, Unit owner, Player receiver)
+ {
+ data.WriteUInt8(Type);
+ data.WriteUInt32(VirtualRealmAddress);
+ data.WriteBits(PlayerName.Size(), 6);
+ data.FlushBits();
+ data.WriteString(PlayerName);
+ }
+
+ public void WriteUpdate(WorldPacket data, bool ignoreChangesMask, Unit owner, Player receiver)
+ {
+ UpdateMask changesMask = _changesMask;
+ if (ignoreChangesMask)
+ changesMask.SetAll();
+
+ data.WriteBits(changesMask.GetBlock(0), 4);
+
+ data.FlushBits();
+ if (changesMask[0])
+ {
+ if (changesMask[1])
+ {
+ data.WriteUInt8(Type);
+ }
+ if (changesMask[3])
+ {
+ data.WriteUInt32(VirtualRealmAddress);
+ }
+ if (changesMask[2])
+ {
+ data.WriteBits(PlayerName.Size(), 6);
+ data.FlushBits();
+ data.WriteString(PlayerName);
+ }
+ }
+ }
+
+ public override void ClearChangesMask()
+ {
+ ClearChangesMask(Type);
+ ClearChangesMask(PlayerName);
+ ClearChangesMask(VirtualRealmAddress);
+ _changesMask.ResetAll();
+ }
+ }
+
+ public class UnitData() : HasChangesMask(223)
+ {
public UpdateField Field_314 = new(0, 1);
public UpdateField> StateWorldEffectIDs = new(0, 2);
public DynamicUpdateField PassiveSpells = new(0, 3);
@@ -1268,21 +1342,20 @@ namespace Game.Entities
public UpdateField Field_31C = new(128, 132);
public UpdateField Field_320 = new(128, 133); // Soft targeting related? When UnitFlags3 & 0x40000000 is set, increases some range check using CombatReach by this amount
public UpdateField NameplateAttachToGUID = new(128, 134); // When set, nameplate of this unit will instead appear on that object
- public UpdateFieldArray Power = new(10, 135, 136);
- public UpdateFieldArray MaxPower = new(10, 135, 146);
- public UpdateFieldArray PowerRegenFlatModifier = new(10, 135, 156);
- public UpdateFieldArray PowerRegenInterruptedFlatModifier = new(10, 135, 166);
- public UpdateFieldArray VirtualItems = new(3, 176, 177);
- public UpdateFieldArray AttackRoundBaseTime = new(2, 180, 181);
- public UpdateFieldArray Stats = new(4, 183, 184);
- public UpdateFieldArray StatPosBuff = new(4, 183, 188);
- public UpdateFieldArray StatNegBuff = new(4, 183, 192);
- public UpdateFieldArray StatSupportBuff = new(4, 183, 196);
- public UpdateFieldArray Resistances = new(7, 200, 201);
- public UpdateFieldArray BonusResistanceMods = new(7, 200, 208);
- public UpdateFieldArray ManaCostModifier = new(7, 200, 215);
-
- public UnitData() : base((int)EntityFragment.CGObject, TypeId.Unit, ChangeMaskLength) { }
+ public OptionalUpdateField AssistActionData = new(128, 135);
+ public UpdateFieldArray Power = new(10, 136, 137);
+ public UpdateFieldArray MaxPower = new(10, 136, 147);
+ public UpdateFieldArray PowerRegenFlatModifier = new(10, 136, 157);
+ public UpdateFieldArray PowerRegenInterruptedFlatModifier = new(10, 136, 167);
+ public UpdateFieldArray VirtualItems = new(3, 177, 178);
+ public UpdateFieldArray AttackRoundBaseTime = new(2, 181, 182);
+ public UpdateFieldArray Stats = new(4, 184, 185);
+ public UpdateFieldArray StatPosBuff = new(4, 184, 189);
+ public UpdateFieldArray StatNegBuff = new(4, 184, 193);
+ public UpdateFieldArray StatSupportBuff = new(4, 184, 197);
+ public UpdateFieldArray Resistances = new(7, 201, 202);
+ public UpdateFieldArray BonusResistanceMods = new(7, 201, 209);
+ public UpdateFieldArray ManaCostModifier = new(7, 201, 216);
public void WriteCreate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, Unit owner, Player receiver)
{
@@ -1487,34 +1560,45 @@ namespace Game.Entities
for (int i = 0; i < ChannelObjects.Size(); ++i)
data.WritePackedGuid(ChannelObjects[i]);
+ data.FlushBits();
data.WriteBit(Field_314);
+ data.WriteBits(AssistActionData.HasValue(), 1);
+ if (AssistActionData.HasValue())
+ {
+ AssistActionData.GetValue().WriteCreate(data, owner, receiver);
+ }
data.FlushBits();
}
- public void WriteUpdate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, Unit owner, Player receiver)
+ public void UnitDataAppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags)
{
- UpdateMask allowedMaskForTarget = new(ChangeMaskLength, [0xFFFEFFFFu, 0x0FFBFFFFu, 0x00F7FFFFu, 0xFFFFF801u, 0x0FFFFFFFu, 0x007F0000u, 0x00000000u]);
- AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
- WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver);
+ if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner))
+ allowedMaskForTarget.OR(new UpdateMask(ChangeMaskLength, [0x00010000u, 0xF0040000u, 0xFF080000u, 0x000007FEu, 0xE0000100u, 0xFF01FFFFu, 0x7FFFFFFFu]));
+ if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.UnitAll))
+ allowedMaskForTarget.OR(new UpdateMask(ChangeMaskLength, [0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xE0000100u, 0x0001FFFFu, 0x00000000u]));
+ if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Empath))
+ allowedMaskForTarget.OR(new UpdateMask(ChangeMaskLength, [0x00000000u, 0xF0000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x0001FE00u]));
}
public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags)
{
- if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner))
- allowedMaskForTarget.OR(new UpdateMask(ChangeMaskLength, [0x00010000u, 0xF0040000u, 0xFF080000u, 0x000007FEu, 0xF0000080u, 0xFF80FFFFu, 0x3FFFFFFFu]));
- if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.UnitAll))
- allowedMaskForTarget.OR(new UpdateMask(ChangeMaskLength, [0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xF0000080u, 0x0000FFFFu, 0x00000000u]));
- if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Empath))
- allowedMaskForTarget.OR(new UpdateMask(ChangeMaskLength, [0x00000000u, 0xF0000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x0000FF00u]));
+ UnitDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
}
public void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags)
{
- UpdateMask allowedMaskForTarget = new(ChangeMaskLength, [0xFFFEFFFFu, 0x0FFBFFFFu, 0x00F7FFFFu, 0xFFFFF801u, 0x0FFFFFFFu, 0x007F0000u, 0x00000000u]);
+ UpdateMask allowedMaskForTarget = new(ChangeMaskLength, [0xFFFEFFFFu, 0x0FFBFFFFu, 0x00F7FFFFu, 0xFFFFF801u, 0x1FFFFFFFu, 0x00FE0000u, 0x00000000u]);
AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
changesMask.AND(allowedMaskForTarget);
}
+ public void WriteUpdate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, Unit owner, Player receiver)
+ {
+ UpdateMask allowedMaskForTarget = new(ChangeMaskLength, [0xFFFEFFFFu, 0x0FFBFFFFu, 0x00F7FFFFu, 0xFFFFF801u, 0x1FFFFFFFu, 0x00FE0000u, 0x00000000u]);
+ AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
+ WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver);
+ }
+
public void WriteUpdate(WorldPacket data, UpdateMask changesMask, bool ignoreNestedChangesMask, Unit owner, Player receiver)
{
data.WriteBits(changesMask.GetBlocksMask(0), 7);
@@ -2110,84 +2194,93 @@ namespace Game.Entities
{
data.WritePackedGuid(NameplateAttachToGUID);
}
+ data.WriteBits(AssistActionData.HasValue(), 1);
+ data.FlushBits();
+ if (changesMask[135])
+ {
+ if (AssistActionData.HasValue())
+ {
+ AssistActionData.GetValue().WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
+ }
+ }
}
- if (changesMask[135])
+ if (changesMask[136])
{
for (int i = 0; i < 10; ++i)
{
- if (changesMask[136 + i])
+ if (changesMask[137 + i])
{
data.WriteInt32(Power[i]);
}
- if (changesMask[146 + i])
+ if (changesMask[147 + i])
{
data.WriteUInt32(MaxPower[i]);
}
- if (changesMask[156 + i])
+ if (changesMask[157 + i])
{
data.WriteFloat(PowerRegenFlatModifier[i]);
}
- if (changesMask[166 + i])
+ if (changesMask[167 + i])
{
data.WriteFloat(PowerRegenInterruptedFlatModifier[i]);
}
}
}
- if (changesMask[176])
+ if (changesMask[177])
{
for (int i = 0; i < 3; ++i)
{
- if (changesMask[177 + i])
+ if (changesMask[178 + i])
{
VirtualItems[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
}
}
}
- if (changesMask[180])
+ if (changesMask[181])
{
for (int i = 0; i < 2; ++i)
{
- if (changesMask[181 + i])
+ if (changesMask[182 + i])
{
data.WriteUInt32(AttackRoundBaseTime[i]);
}
}
}
- if (changesMask[183])
+ if (changesMask[184])
{
for (int i = 0; i < 4; ++i)
{
- if (changesMask[184 + i])
+ if (changesMask[185 + i])
{
data.WriteInt32(Stats[i]);
}
- if (changesMask[188 + i])
+ if (changesMask[189 + i])
{
data.WriteInt32(StatPosBuff[i]);
}
- if (changesMask[192 + i])
+ if (changesMask[193 + i])
{
data.WriteInt32(StatNegBuff[i]);
}
- if (changesMask[196 + i])
+ if (changesMask[197 + i])
{
data.WriteInt32(StatSupportBuff[i]);
}
}
}
- if (changesMask[200])
+ if (changesMask[201])
{
for (int i = 0; i < 7; ++i)
{
- if (changesMask[201 + i])
+ if (changesMask[202 + i])
{
data.WriteInt32(Resistances[i]);
}
- if (changesMask[208 + i])
+ if (changesMask[209 + i])
{
data.WriteInt32(BonusResistanceMods[i]);
}
- if (changesMask[215 + i])
+ if (changesMask[216 + i])
{
data.WriteInt32(ManaCostModifier[i]);
}
@@ -2328,6 +2421,7 @@ namespace Game.Entities
ClearChangesMask(Field_31C);
ClearChangesMask(Field_320);
ClearChangesMask(NameplateAttachToGUID);
+ ClearChangesMask(AssistActionData);
ClearChangesMask(Power);
ClearChangesMask(MaxPower);
ClearChangesMask(PowerRegenFlatModifier);
@@ -2607,7 +2701,7 @@ namespace Game.Entities
}
}
- public class ChrCustomizationChoice : IComparable
+ public class ChrCustomizationChoice : IEquatable
{
public uint ChrCustomizationOptionID;
public uint ChrCustomizationChoiceID;
@@ -2624,24 +2718,21 @@ namespace Game.Entities
data.WriteUInt32(ChrCustomizationChoiceID);
}
- public int CompareTo(ChrCustomizationChoice other)
+ public bool Equals(ChrCustomizationChoice right)
{
- return ChrCustomizationOptionID.CompareTo(other.ChrCustomizationOptionID);
+ return ChrCustomizationOptionID == right.ChrCustomizationOptionID
+ && ChrCustomizationChoiceID == right.ChrCustomizationChoiceID;
}
}
- public class QuestLog : HasChangesMask
+ public class QuestLog() : HasChangesMask(30)
{
- static int changeMaskLength = 30;
-
public UpdateField EndTime = new(0, 1);
public UpdateField QuestID = new(0, 2);
public UpdateField StateFlags = new(0, 3);
public UpdateField ObjectiveFlags = new(0, 4);
public UpdateFieldArray ObjectiveProgress = new(24, 5, 6);
- public QuestLog() : base(changeMaskLength) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WriteInt64(EndTime);
@@ -2707,7 +2798,7 @@ namespace Game.Entities
}
}
- public class ArenaCooldown : HasChangesMask
+ public class ArenaCooldown() : HasChangesMask(8)
{
public UpdateField SpellID = new(0, 1);
public UpdateField Charges = new(0, 2);
@@ -2717,8 +2808,6 @@ namespace Game.Entities
public UpdateField NextChargeTime = new(0, 6);
public UpdateField MaxCharges = new(0, 7);
- public ArenaCooldown() : base(8) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WriteInt32(SpellID);
@@ -2785,13 +2874,11 @@ namespace Game.Entities
}
}
- public class ZonePlayerForcedReaction : HasChangesMask
+ public class ZonePlayerForcedReaction() : HasChangesMask(3)
{
public UpdateField FactionID = new(0, 1);
public UpdateField Reaction = new(0, 2);
- public ZonePlayerForcedReaction() : base(3) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WriteInt32(FactionID);
@@ -2828,13 +2915,11 @@ namespace Game.Entities
}
}
- public class PetCreatureName : HasChangesMask
+ public class PetCreatureName() : HasChangesMask(3)
{
public UpdateField CreatureID = new(0, 1);
public UpdateFieldString Name = new(0, 2);
- public PetCreatureName() : base(3) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WriteUInt32(CreatureID);
@@ -2875,7 +2960,7 @@ namespace Game.Entities
}
}
- public class CTROptions
+ public class CTROptions : IEquatable
{
public uint ConditionalFlags;
public byte FactionGroup;
@@ -2894,14 +2979,77 @@ namespace Game.Entities
data.WriteUInt8(FactionGroup);
data.WriteUInt32(ChromieTimeExpansionMask);
}
+
+ public bool Equals(CTROptions right)
+ {
+ return ConditionalFlags == right.ConditionalFlags
+ && FactionGroup == right.FactionGroup
+ && ChromieTimeExpansionMask == right.ChromieTimeExpansionMask;
+ }
}
- public class DeclinedNames : HasChangesMask
+ public struct LeaverInfo : IEquatable
+ {
+ public ObjectGuid BnetAccountGUID;
+ public float LeaveScore;
+ public uint SeasonID;
+ public uint TotalLeaves;
+ public uint TotalSuccesses;
+ public int ConsecutiveSuccesses;
+ public long LastPenaltyTime;
+ public long LeaverExpirationTime;
+ public int Unknown_1120;
+ public uint LeaverStatus;
+
+ public void WriteCreate(WorldPacket data, Player owner, Player receiver)
+ {
+ data.WritePackedGuid(BnetAccountGUID);
+ data.WriteFloat(LeaveScore);
+ data.WriteUInt32(SeasonID);
+ data.WriteUInt32(TotalLeaves);
+ data.WriteUInt32(TotalSuccesses);
+ data.WriteInt32(ConsecutiveSuccesses);
+ data.WriteInt64(LastPenaltyTime);
+ data.WriteInt64(LeaverExpirationTime);
+ data.WriteInt32(Unknown_1120);
+ data.WriteBits(LeaverStatus, 1);
+ data.FlushBits();
+ }
+
+ public void WriteUpdate(WorldPacket data, bool ignoreChangesMask, Player owner, Player receiver)
+ {
+ data.WritePackedGuid(BnetAccountGUID);
+ data.WriteFloat(LeaveScore);
+ data.WriteUInt32(SeasonID);
+ data.WriteUInt32(TotalLeaves);
+ data.WriteUInt32(TotalSuccesses);
+ data.WriteInt32(ConsecutiveSuccesses);
+ data.WriteInt64(LastPenaltyTime);
+ data.WriteInt64(LeaverExpirationTime);
+ data.WriteInt32(Unknown_1120);
+ data.WriteBits(LeaverStatus, 1);
+ data.FlushBits();
+ }
+
+ public bool Equals(LeaverInfo right)
+ {
+ return BnetAccountGUID == right.BnetAccountGUID
+ && LeaveScore == right.LeaveScore
+ && SeasonID == right.SeasonID
+ && TotalLeaves == right.TotalLeaves
+ && TotalSuccesses == right.TotalSuccesses
+ && ConsecutiveSuccesses == right.ConsecutiveSuccesses
+ && LastPenaltyTime == right.LastPenaltyTime
+ && LeaverExpirationTime == right.LeaverExpirationTime
+ && Unknown_1120 == right.Unknown_1120
+ && LeaverStatus == right.LeaverStatus;
+ }
+ }
+
+ public class DeclinedNames() : HasChangesMask(6)
{
public UpdateFieldArrayString Name = new(5, 0, 1);
- public DeclinedNames() : base(6) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
for (int i = 0; i < 5; ++i)
@@ -2956,7 +3104,7 @@ namespace Game.Entities
}
}
- public class CustomTabardInfo : HasChangesMask
+ public class CustomTabardInfo() : HasChangesMask(6)
{
public UpdateField EmblemStyle = new(0, 1);
public UpdateField EmblemColor = new(0, 2);
@@ -2964,8 +3112,6 @@ namespace Game.Entities
public UpdateField BorderColor = new(0, 4);
public UpdateField BackgroundColor = new(0, 5);
- public CustomTabardInfo() : base(6) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WriteInt32(EmblemStyle);
@@ -3020,7 +3166,7 @@ namespace Game.Entities
}
}
- public class PlayerData : HasChangesMask
+ public class PlayerData() : HasChangesMask((int)EntityFragment.CGObject, TypeId.Player, 324)
{
public UpdateField HasQuestSession = new(0, 1);
public UpdateField HasLevelLink = new(0, 2);
@@ -3050,31 +3196,31 @@ namespace Game.Entities
public UpdateField FakeInebriation = new(0, 26);
public UpdateField VirtualPlayerRealm = new(0, 27);
public UpdateField CurrentSpecID = new(0, 28);
- public UpdateField TaxiMountAnimKitID = new(0, 29);
- public UpdateField CurrentBattlePetBreedQuality = new(0, 30);
- public UpdateField HonorLevel = new(0, 31);
- public UpdateField LogoutTime = new(32, 33);
- public UpdateFieldString Name = new(32, 34);
- public UpdateField Field_1AC = new(32, 35);
- public UpdateField Field_1B0 = new(32, 36);
- public UpdateField CurrentBattlePetSpeciesID = new(32, 37);
- public UpdateField CtrOptions = new(32, 38);
- public UpdateField CovenantID = new(32, 39);
- public UpdateField SoulbindID = new(32, 40);
- public UpdateField DungeonScore = new(32, 41);
- public UpdateField SpectateTarget = new(32, 42);
- public UpdateField Field_200 = new(32, 43);
- public OptionalUpdateField DeclinedNames = new(32, 44);
- public UpdateField PersonalTabard = new(32, 45);
- public UpdateFieldArray PartyType = new(2, 46, 47);
- public UpdateFieldArray QuestLog = new(175, 49, 50);
- public UpdateFieldArray VisibleItems = new(19, 225, 226);
- public UpdateFieldArray AvgItemLevel = new(6, 245, 246);
- public UpdateFieldArray ForcedReactions = new(32, 252, 253);
- public UpdateFieldArray VisibleEquipableSpells = new(16, 285, 286);
- public UpdateFieldArray Field_3120 = new(19, 302, 303);
-
- public PlayerData() : base((int)EntityFragment.CGObject, TypeId.Player, 322) { }
+ public UpdateField CurrentCombatTraitConfigSubTreeID = new(0, 29);
+ public UpdateField TaxiMountAnimKitID = new(0, 30);
+ public UpdateField CurrentBattlePetBreedQuality = new(0, 31);
+ public UpdateField HonorLevel = new(32, 33);
+ public UpdateField LogoutTime = new(32, 34);
+ public UpdateFieldString Name = new(32, 35);
+ public UpdateField Field_1AC = new(32, 36);
+ public UpdateField Field_1B0 = new(32, 37);
+ public UpdateField CurrentBattlePetSpeciesID = new(32, 38);
+ public UpdateField CtrOptions = new(32, 39);
+ public UpdateField CovenantID = new(32, 40);
+ public UpdateField SoulbindID = new(32, 41);
+ public UpdateField DungeonScore = new(32, 42);
+ public UpdateField LeaverInfo = new(32, 43);
+ public UpdateField SpectateTarget = new(32, 44);
+ public UpdateField Field_200 = new(32, 45);
+ public OptionalUpdateField DeclinedNames = new(32, 46);
+ public UpdateField PersonalTabard = new(32, 47);
+ public UpdateFieldArray PartyType = new(2, 48, 49);
+ public UpdateFieldArray QuestLog = new(175, 51, 52);
+ public UpdateFieldArray VisibleItems = new(19, 227, 228);
+ public UpdateFieldArray AvgItemLevel = new(6, 247, 248);
+ public UpdateFieldArray ForcedReactions = new(32, 254, 255);
+ public UpdateFieldArray VisibleEquipableSpells = new(16, 287, 288);
+ public UpdateFieldArray Field_3120 = new(19, 304, 305);
public void WriteCreate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, Player owner, Player receiver)
{
@@ -3115,6 +3261,7 @@ namespace Game.Entities
data.WriteInt32(FakeInebriation);
data.WriteUInt32(VirtualPlayerRealm);
data.WriteUInt32(CurrentSpecID);
+ data.WriteInt32(CurrentCombatTraitConfigSubTreeID);
data.WriteInt32(TaxiMountAnimKitID);
for (int i = 0; i < 6; ++i)
{
@@ -3176,6 +3323,7 @@ namespace Game.Entities
data.WriteBits(DeclinedNames.HasValue(), 1);
DungeonScore.GetValue().Write(data);
data.WriteString(Name);
+ LeaverInfo.GetValue().WriteCreate(data, owner, receiver);
for (int i = 0; i < 16; ++i)
{
VisibleEquipableSpells[i].Write(data);
@@ -3191,26 +3339,31 @@ namespace Game.Entities
data.FlushBits();
}
- public void WriteUpdate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, Player owner, Player receiver)
+ public void PlayerDataAppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags)
{
- UpdateMask allowedMaskForTarget = new(322, [0xFFFFFFDDu, 0x0001FFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFFEu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x00000003u]);
- AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
- WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver);
+ if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.PartyMember))
+ allowedMaskForTarget.OR(new UpdateMask(ChangeMaskLength, [0x00000022u, 0xFFF80000u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x00000007u, 0x00000000u, 0x00000000u, 0x00000000u]));
}
public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags)
{
- if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.PartyMember))
- allowedMaskForTarget.OR(new UpdateMask(322, [0x00000022u, 0xFFFE0000u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x00000001u, 0x00000000u, 0x00000000u, 0x00000000u]));
+ PlayerDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
}
public void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags)
{
- UpdateMask allowedMaskForTarget = new(322, [0xFFFFFFDDu, 0x0001FFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFFEu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x00000003u]);
- AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
+ UpdateMask allowedMaskForTarget = new(324, [0xFFFFFFDDu, 0x0007FFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFF8u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x0000000Fu]);
+ PlayerDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
changesMask.AND(allowedMaskForTarget);
}
+ public void WriteUpdate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, Player owner, Player receiver)
+ {
+ UpdateMask allowedMaskForTarget = new(324, [0xFFFFFFDDu, 0x0007FFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFF8u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x0000000Fu]);
+ PlayerDataAppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
+ WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver);
+ }
+
public void WriteUpdate(WorldPacket data, UpdateMask changesMask, bool ignoreNestedChangesMask, Player owner, Player receiver)
{
data.WriteBits(changesMask.GetBlocksMask(0), 11);
@@ -3420,74 +3573,82 @@ namespace Game.Entities
}
if (changesMask[29])
{
- data.WriteInt32(TaxiMountAnimKitID);
+ data.WriteInt32(CurrentCombatTraitConfigSubTreeID);
}
if (changesMask[30])
{
- data.WriteUInt8(CurrentBattlePetBreedQuality);
+ data.WriteInt32(TaxiMountAnimKitID);
}
if (changesMask[31])
{
- data.WriteUInt32(HonorLevel);
+ data.WriteUInt8(CurrentBattlePetBreedQuality);
}
}
if (changesMask[32])
{
if (changesMask[33])
{
- data.WriteInt64(LogoutTime);
+ data.WriteUInt32(HonorLevel);
}
- if (changesMask[35])
+ if (changesMask[34])
{
- data.WriteInt32(Field_1AC);
+ data.WriteInt64(LogoutTime);
}
if (changesMask[36])
{
- data.WriteInt32(Field_1B0);
+ data.WriteInt32(Field_1AC);
}
if (changesMask[37])
{
- data.WriteInt32(CurrentBattlePetSpeciesID);
+ data.WriteInt32(Field_1B0);
}
if (changesMask[38])
{
- ((CTROptions)CtrOptions).WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
+ data.WriteInt32(CurrentBattlePetSpeciesID);
}
if (changesMask[39])
{
- data.WriteInt32(CovenantID);
+ ((CTROptions)CtrOptions).WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
}
if (changesMask[40])
+ {
+ data.WriteInt32(CovenantID);
+ }
+ if (changesMask[41])
{
data.WriteInt32(SoulbindID);
}
- if (changesMask[42])
+ if (changesMask[44])
{
data.WritePackedGuid(SpectateTarget);
}
- if (changesMask[43])
+ if (changesMask[45])
{
data.WriteInt32(Field_200);
}
- if (changesMask[45])
+ if (changesMask[47])
{
PersonalTabard.GetValue().WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
}
- if (changesMask[34])
+ if (changesMask[35])
{
data.WriteBits(Name.Size(), 6);
}
data.WriteBits(DeclinedNames.HasValue(), 1);
data.FlushBits();
- if (changesMask[41])
+ if (changesMask[42])
{
DungeonScore.GetValue().Write(data);
}
- if (changesMask[34])
+ if (changesMask[35])
{
data.WriteString(Name);
}
- if (changesMask[44])
+ if (changesMask[43])
+ {
+ LeaverInfo.GetValue().WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
+ }
+ if (changesMask[46])
{
if (DeclinedNames.HasValue())
{
@@ -3495,21 +3656,21 @@ namespace Game.Entities
}
}
}
- if (changesMask[46])
+ if (changesMask[48])
{
for (int i = 0; i < 2; ++i)
{
- if (changesMask[47 + i])
+ if (changesMask[49 + i])
{
data.WriteUInt8(PartyType[i]);
}
}
}
- if (changesMask[49])
+ if (changesMask[51])
{
for (int i = 0; i < 175; ++i)
{
- if (changesMask[50 + i])
+ if (changesMask[52 + i])
{
if (noQuestLogChangesMask)
QuestLog[i].WriteCreate(data, owner, receiver);
@@ -3518,51 +3679,51 @@ namespace Game.Entities
}
}
}
- if (changesMask[225])
+ if (changesMask[227])
{
for (int i = 0; i < 19; ++i)
{
- if (changesMask[226 + i])
+ if (changesMask[228 + i])
{
VisibleItems[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
}
}
}
- if (changesMask[245])
+ if (changesMask[247])
{
for (int i = 0; i < 6; ++i)
{
- if (changesMask[246 + i])
+ if (changesMask[248 + i])
{
data.WriteFloat(AvgItemLevel[i]);
}
}
}
- if (changesMask[252])
+ if (changesMask[254])
{
for (int i = 0; i < 32; ++i)
{
- if (changesMask[253 + i])
+ if (changesMask[255 + i])
{
ForcedReactions[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver);
}
}
}
- if (changesMask[302])
+ if (changesMask[304])
{
for (int i = 0; i < 19; ++i)
{
- if (changesMask[303 + i])
+ if (changesMask[305 + i])
{
data.WriteUInt32(Field_3120[i]);
}
}
}
- if (changesMask[285])
+ if (changesMask[287])
{
for (int i = 0; i < 16; ++i)
{
- if (changesMask[286 + i])
+ if (changesMask[288 + i])
{
VisibleEquipableSpells[i].Write(data);
}
@@ -3601,6 +3762,7 @@ namespace Game.Entities
ClearChangesMask(FakeInebriation);
ClearChangesMask(VirtualPlayerRealm);
ClearChangesMask(CurrentSpecID);
+ ClearChangesMask(CurrentCombatTraitConfigSubTreeID);
ClearChangesMask(TaxiMountAnimKitID);
ClearChangesMask(CurrentBattlePetBreedQuality);
ClearChangesMask(HonorLevel);
@@ -3613,6 +3775,7 @@ namespace Game.Entities
ClearChangesMask(CovenantID);
ClearChangesMask(SoulbindID);
ClearChangesMask(DungeonScore);
+ ClearChangesMask(LeaverInfo);
ClearChangesMask(SpectateTarget);
ClearChangesMask(Field_200);
ClearChangesMask(DeclinedNames);
@@ -3630,7 +3793,7 @@ namespace Game.Entities
bool IsQuestLogChangesMaskSkipped() { return false; } // bandwidth savings aren't worth the cpu time
}
- public class SkillInfo : HasChangesMask
+ public class SkillInfo() : HasChangesMask(1793)
{
public UpdateFieldArray SkillLineID = new(256, 0, 1);
public UpdateFieldArray SkillStep = new(256, 0, 257);
@@ -3640,8 +3803,6 @@ namespace Game.Entities
public UpdateFieldArray SkillTempBonus = new(256, 0, 1281);
public UpdateFieldArray SkillPermBonus = new(256, 0, 1537);
- public SkillInfo() : base(1793) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
for (int i = 0; i < 256; ++i)
@@ -3719,12 +3880,10 @@ namespace Game.Entities
}
}
- public class BitVector : HasChangesMask
+ public class BitVector() : HasChangesMask(2)
{
public DynamicUpdateField Values = new(0, 1);
- public BitVector() : base(2) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WriteInt32(Values.Size());
@@ -3773,12 +3932,10 @@ namespace Game.Entities
}
}
- public class BitVectors : HasChangesMask
+ public class BitVectors() : HasChangesMask(14)
{
public UpdateFieldArray Values = new(13, 0, 1);
- public BitVectors() : base(1) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
for (int i = 0; i < 13; ++i)
@@ -3815,7 +3972,7 @@ namespace Game.Entities
}
}
- public class PlayerDataElement
+ public class PlayerDataElement : IEquatable
{
public uint Type;
public float FloatValue;
@@ -3846,15 +4003,20 @@ namespace Game.Entities
data.WriteInt64(Int64Value);
}
}
+
+ public bool Equals(PlayerDataElement right)
+ {
+ return Type == right.Type
+ && FloatValue == right.FloatValue
+ && Int64Value == right.Int64Value;
+ }
}
- public class RestInfo : HasChangesMask
+ public class RestInfo() : HasChangesMask(3)
{
public UpdateField Threshold = new(0, 1);
public UpdateField StateID = new(0, 2);
- public RestInfo() : base(3) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WriteUInt32(Threshold);
@@ -3891,7 +4053,7 @@ namespace Game.Entities
}
}
- public class PVPInfo : HasChangesMask
+ public class PVPInfo() : HasChangesMask(19)
{
public UpdateField Disqualified = new(0, 1);
public UpdateField Bracket = new(0, 2);
@@ -3912,8 +4074,6 @@ namespace Game.Entities
public UpdateField SeasonRoundsPlayed = new(0, 17);
public UpdateField SeasonRoundsWon = new(0, 18);
- public PVPInfo() : base(19) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WriteInt8(Bracket);
@@ -4051,7 +4211,7 @@ namespace Game.Entities
}
}
- public class CharacterRestriction
+ public class CharacterRestriction : IEquatable
{
public int Field_0;
public int Field_4;
@@ -4075,9 +4235,17 @@ namespace Game.Entities
data.WriteBits(Type, 5);
data.FlushBits();
}
+
+ public bool Equals(CharacterRestriction right)
+ {
+ return Field_0 == right.Field_0
+ && Field_4 == right.Field_4
+ && Field_8 == right.Field_8
+ && Type == right.Type;
+ }
}
- public class SpellPctModByLabel
+ public class SpellPctModByLabel : IEquatable
{
public int ModIndex;
public float ModifierValue;
@@ -4096,9 +4264,16 @@ namespace Game.Entities
data.WriteFloat(ModifierValue);
data.WriteInt32(LabelID);
}
+
+ public bool Equals(SpellPctModByLabel right)
+ {
+ return ModIndex == right.ModIndex
+ && ModifierValue == right.ModifierValue
+ && LabelID == right.LabelID;
+ }
}
- public class SpellFlatModByLabel
+ public class SpellFlatModByLabel : IEquatable
{
public int ModIndex;
public int ModifierValue;
@@ -4117,16 +4292,21 @@ namespace Game.Entities
data.WriteInt32(ModifierValue);
data.WriteInt32(LabelID);
}
+
+ public bool Equals(SpellFlatModByLabel right)
+ {
+ return ModIndex == right.ModIndex
+ && ModifierValue == right.ModifierValue
+ && LabelID == right.LabelID;
+ }
}
- public class CompletedProject : HasChangesMask
+ public class CompletedProject() : HasChangesMask(4)
{
public UpdateField ProjectID = new(0, 1);
public UpdateField FirstCompleted = new(0, 2);
public UpdateField CompletionCount = new(0, 3);
- public CompletedProject() : base(4) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WriteUInt32(ProjectID);
@@ -4169,12 +4349,10 @@ namespace Game.Entities
}
}
- public class ResearchHistory : HasChangesMask
+ public class ResearchHistory() : HasChangesMask(2)
{
public DynamicUpdateField CompletedProjects = new(0, 1);
- public ResearchHistory() : base(2) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WriteInt32(CompletedProjects.Size());
@@ -4225,7 +4403,7 @@ namespace Game.Entities
}
}
- public class MawPower
+ public class MawPower : IEquatable
{
public int SpellID;
public int MawPowerID;
@@ -4244,9 +4422,16 @@ namespace Game.Entities
data.WriteInt32(MawPowerID);
data.WriteInt32(Stacks);
}
+
+ public bool Equals(MawPower right)
+ {
+ return SpellID == right.SpellID
+ && MawPowerID == right.MawPowerID
+ && Stacks == right.Stacks;
+ }
}
- public class MultiFloorExplore
+ public class MultiFloorExplore : IEquatable
{
public List WorldMapOverlayIDs = new();
@@ -4268,9 +4453,14 @@ namespace Game.Entities
}
data.FlushBits();
}
+
+ public bool Equals(MultiFloorExplore right)
+ {
+ return WorldMapOverlayIDs == right.WorldMapOverlayIDs;
+ }
}
- public class RecipeProgressionInfo
+ public class RecipeProgressionInfo : IEquatable
{
public ushort RecipeProgressionGroupID;
public ushort Experience;
@@ -4286,15 +4476,19 @@ namespace Game.Entities
data.WriteUInt16(RecipeProgressionGroupID);
data.WriteUInt16(Experience);
}
+
+ public bool Equals(RecipeProgressionInfo right)
+ {
+ return RecipeProgressionGroupID == right.RecipeProgressionGroupID
+ && Experience == right.Experience;
+ }
}
- public class ActivePlayerUnk901 : HasChangesMask
+ public class ActivePlayerUnk901() : HasChangesMask(3)
{
public UpdateField Field_0 = new(0, 1);
public UpdateField Field_10 = new(0, 2);
- public ActivePlayerUnk901() : base(3) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WritePackedGuid(Field_0);
@@ -4331,13 +4525,11 @@ namespace Game.Entities
}
}
- public class QuestSession : HasChangesMask
+ public class QuestSession() : HasChangesMask(3)
{
public UpdateField Owner = new(0, 1);
public UpdateField QuestCompleted = new(0, 2);
- public QuestSession() : base(3) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WritePackedGuid(Owner);
@@ -4375,13 +4567,11 @@ namespace Game.Entities
}
}
- public class ReplayedQuest : HasChangesMask
+ public class ReplayedQuest() : HasChangesMask(3)
{
public UpdateField QuestID = new(0, 1);
public UpdateField ReplayTime = new(0, 2);
- public ReplayedQuest() : base(3) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WriteInt32(QuestID);
@@ -4424,6 +4614,7 @@ namespace Game.Entities
public int TraitNodeEntryID;
public int Rank;
public int GrantedRanks;
+ public int BonusRanks;
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
@@ -4431,6 +4622,7 @@ namespace Game.Entities
data.WriteInt32(TraitNodeEntryID);
data.WriteInt32(Rank);
data.WriteInt32(GrantedRanks);
+ data.WriteInt32(BonusRanks);
}
public void WriteUpdate(WorldPacket data, bool ignoreChangesMask, Player owner, Player receiver)
@@ -4439,6 +4631,7 @@ namespace Game.Entities
data.WriteInt32(TraitNodeEntryID);
data.WriteInt32(Rank);
data.WriteInt32(GrantedRanks);
+ data.WriteInt32(BonusRanks);
}
public bool Equals(TraitEntry right)
@@ -4446,11 +4639,12 @@ namespace Game.Entities
return TraitNodeID == right.TraitNodeID
&& TraitNodeEntryID == right.TraitNodeEntryID
&& Rank == right.Rank
- && GrantedRanks == right.GrantedRanks;
+ && GrantedRanks == right.GrantedRanks
+ && BonusRanks == right.BonusRanks;
}
}
- public class TraitSubTreeCache
+ public class TraitSubTreeCache : IEquatable
{
public List Entries = new();
public int TraitSubTreeID;
@@ -4480,9 +4674,16 @@ namespace Game.Entities
data.WriteBits(Active, 1);
data.FlushBits();
}
+
+ public bool Equals(TraitSubTreeCache right)
+ {
+ return Entries == right.Entries
+ && TraitSubTreeID == right.TraitSubTreeID
+ && Active == right.Active;
+ }
}
- public class TraitConfig : HasChangesMask
+ public class TraitConfig() : HasChangesMask(14)
{
public DynamicUpdateField Entries = new(0, 1);
public DynamicUpdateField SubTrees = new(0, 2);
@@ -4495,8 +4696,6 @@ namespace Game.Entities
public UpdateField LocalIdentifier = new(8, 11);
public UpdateField TraitSystemID = new(12, 13);
- public TraitConfig() : base(14) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WriteInt32(ID);
@@ -4658,7 +4857,7 @@ namespace Game.Entities
}
}
- public class CraftingOrderItem : HasChangesMask
+ public class CraftingOrderItem() : HasChangesMask(7)
{
public UpdateField Field_0 = new(-1, 0);
public UpdateField ItemGUID = new(-1, 1);
@@ -4668,8 +4867,6 @@ namespace Game.Entities
public UpdateField ReagentQuality = new(-1, 5);
public OptionalUpdateField DataSlotIndex = new(-1, 6);
- public CraftingOrderItem() : base(7) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WriteUInt64(Field_0);
@@ -4743,13 +4940,11 @@ namespace Game.Entities
}
}
- public class CraftingOrderCustomer : HasChangesMask
+ public class CraftingOrderCustomer() : HasChangesMask(2)
{
public UpdateField CustomerGUID = new(-1, 0);
public UpdateField CustomerAccountGUID = new(-1, 1);
- public CraftingOrderCustomer() : base(2) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WritePackedGuid(CustomerGUID);
@@ -4783,13 +4978,11 @@ namespace Game.Entities
}
}
- public class CraftingOrderNpcCustomer : HasChangesMask
+ public class CraftingOrderNpcCustomer() : HasChangesMask(2)
{
public UpdateField NpcCraftingOrderCustomerID = new(-1, 0);
public UpdateField Field_8 = new(-1, 1);
- public CraftingOrderNpcCustomer() : base(2) { }
-
public void WriteCreate(WorldPacket data, Player owner, Player receiver)
{
data.WriteInt64(NpcCraftingOrderCustomerID);
@@ -4823,7 +5016,7 @@ namespace Game.Entities
}
}
- public class CraftingOrderData : HasChangesMask
+ public class CraftingOrderData() : HasChangesMask(26)
{
public DynamicUpdateField Reagents = new(0, 1);
public UpdateField Field_0 = new(0, 2);
@@ -4847,8 +5040,6 @@ namespace Game.Entities
public OptionalUpdateField