From 1ca497b79f24cfab8b664ec2343297aec6600449 Mon Sep 17 00:00:00 2001 From: Hondacrx Date: Sat, 24 Aug 2024 00:13:35 -0400 Subject: [PATCH] Core: Update to 10.2.7 Port From (https://github.com/TrinityCore/TrinityCore/commit/468a06baf046b716305ee665e3cfd93c80e99457) --- .../Framework/Constants/AchievementConst.cs | 8 +- .../Constants/Authentication/AuthConst.cs | 93 +- Source/Framework/Constants/ItemConst.cs | 7 +- Source/Framework/Constants/Network/Opcodes.cs | 2448 +++++++++-------- Source/Framework/Constants/PetConst.cs | 3 +- Source/Framework/Constants/PlayerConst.cs | 3 +- Source/Framework/Constants/SharedConst.cs | 2000 +++++++------- .../Database/Databases/HotfixDatabase.cs | 7 +- Source/Game/DataStorage/Structs/A_Records.cs | 2 +- Source/Game/DataStorage/Structs/C_Records.cs | 2 + Source/Game/DataStorage/Structs/I_Records.cs | 1 + .../Entities/Object/Update/UpdateFields.cs | 825 +++--- Source/Game/Entities/Player/Player.cs | 74 + Source/Game/Handlers/CharacterHandler.cs | 6 + Source/Game/Handlers/ChatHandler.cs | 61 +- Source/Game/Handlers/PetHandler.cs | 14 + Source/Game/Handlers/TaxiHandler.cs | 1 + .../Networking/Packets/BattleGroundPackets.cs | 6 + .../Networking/Packets/CharacterPackets.cs | 5 +- Source/Game/Networking/Packets/ChatPackets.cs | 51 +- Source/Game/Networking/Packets/MiscPackets.cs | 8 +- Source/Game/Networking/Packets/PetPackets.cs | 16 +- .../Game/Networking/Packets/QueryPackets.cs | 22 +- .../Game/Networking/Packets/QuestPackets.cs | 2 + .../Game/Networking/Packets/SpellPackets.cs | 17 +- .../Game/Networking/Packets/SystemPackets.cs | 37 +- Source/Game/Spells/Spell.cs | 2 +- 27 files changed, 3020 insertions(+), 2701 deletions(-) diff --git a/Source/Framework/Constants/AchievementConst.cs b/Source/Framework/Constants/AchievementConst.cs index fb93035f6..80b8f3ae5 100644 --- a/Source/Framework/Constants/AchievementConst.cs +++ b/Source/Framework/Constants/AchievementConst.cs @@ -751,7 +751,13 @@ namespace Framework.Constants CompleteTrackingQuest = 250, /*NYI*/ GainLevels = 253, // Gain levels - Count = 257 + + CompleteQuestsCountOnAccount = 257, /*NYI*/ + + WarbandBankTabPurchased = 260, /*NYI*/ + + LearnTaxiNode = 262, + Count = 263 } public enum CriteriaDataType diff --git a/Source/Framework/Constants/Authentication/AuthConst.cs b/Source/Framework/Constants/Authentication/AuthConst.cs index a7db7be62..9f5348655 100644 --- a/Source/Framework/Constants/Authentication/AuthConst.cs +++ b/Source/Framework/Constants/Authentication/AuthConst.cs @@ -73,55 +73,56 @@ namespace Framework.Constants CharCreateClassTrialThrottleWeek = 60, CharCreateClassTrialThrottleAccount = 61, CharCreateFactionBalance = 62, + CharCreateTimerunning = 63, - CharDeleteInProgress = 63, - CharDeleteSuccess = 64, - CharDeleteFailed = 65, - CharDeleteFailedCharacterServicePending = 66, - CharDeleteFailedGuildLeader = 67, - CharDeleteFailedArenaCaptain = 68, - CharDeleteFailedHasHeirloomOrMail = 69, - CharDeleteFailedDeprecated1 = 70, - CharDeleteFailedHasWowToken = 71, - CharDeleteFailedDeprecated2 = 72, - CharDeleteFailedCommunityOwner = 73, + CharDeleteInProgress = 64, + CharDeleteSuccess = 65, + CharDeleteFailed = 66, + CharDeleteFailedCharacterServicePending = 67, + CharDeleteFailedGuildLeader = 68, + CharDeleteFailedArenaCaptain = 69, + CharDeleteFailedHasHeirloomOrMail = 70, + CharDeleteFailedDeprecated1 = 71, + CharDeleteFailedHasWowToken = 72, + CharDeleteFailedDeprecated2 = 73, + CharDeleteFailedCommunityOwner = 74, - CharLoginInProgress = 74, - CharLoginSuccess = 75, - CharLoginNoWorld = 76, - CharLoginDuplicateCharacter = 77, - CharLoginNoInstances = 78, - CharLoginFailed = 79, - CharLoginDisabled = 80, - CharLoginNoCharacter = 81, - CharLoginLockedForTransfer = 82, - CharLoginLockedByBilling = 83, - CharLoginLockedByMobileAh = 84, - CharLoginTemporaryGmLock = 85, - CharLoginLockedByCharacterUpgrade = 86, - CharLoginLockedByRevokedCharacterUpgrade = 87, - CharLoginLockedByRevokedVasTransaction = 88, - CharLoginLockedByRestriction = 89, - CharLoginLockedForRealmPlaytype = 90, + CharLoginInProgress = 75, + CharLoginSuccess = 76, + CharLoginNoWorld = 77, + CharLoginDuplicateCharacter = 78, + CharLoginNoInstances = 79, + CharLoginFailed = 80, + CharLoginDisabled = 81, + CharLoginNoCharacter = 82, + CharLoginLockedForTransfer = 83, + CharLoginLockedByBilling = 84, + CharLoginLockedByMobileAh = 85, + CharLoginTemporaryGmLock = 86, + CharLoginLockedByCharacterUpgrade = 87, + CharLoginLockedByRevokedCharacterUpgrade = 88, + CharLoginLockedByRevokedVasTransaction = 89, + CharLoginLockedByRestriction = 90, + CharLoginLockedForRealmPlaytype = 91, - CharNameSuccess = 91, - CharNameFailure = 92, - CharNameNoName = 93, - CharNameTooShort = 94, - CharNameTooLong = 95, - CharNameInvalidCharacter = 96, - CharNameMixedLanguages = 97, - CharNameProfane = 98, - CharNameReserved = 99, - CharNameInvalidApostrophe = 100, - CharNameMultipleApostrophes = 101, - CharNameThreeConsecutive = 102, - CharNameInvalidSpace = 103, - CharNameConsecutiveSpaces = 104, - CharNameRussianConsecutiveSilentCharacters = 105, - CharNameRussianSilentCharacterAtBeginningOrEnd = 106, - CharNameDeclensionDoesntMatchBaseName = 107, - CharNameSpacesDisallowed = 108, + CharNameSuccess = 92, + CharNameFailure = 93, + CharNameNoName = 94, + CharNameTooShort = 95, + CharNameTooLong = 96, + CharNameInvalidCharacter = 97, + CharNameMixedLanguages = 98, + CharNameProfane = 99, + CharNameReserved = 100, + CharNameInvalidApostrophe = 101, + CharNameMultipleApostrophes = 102, + CharNameThreeConsecutive = 103, + CharNameInvalidSpace = 104, + CharNameConsecutiveSpaces = 105, + CharNameRussianConsecutiveSilentCharacters = 106, + CharNameRussianSilentCharacterAtBeginningOrEnd = 107, + CharNameDeclensionDoesntMatchBaseName = 108, + CharNameSpacesDisallowed = 109, } public enum CharacterUndeleteResult diff --git a/Source/Framework/Constants/ItemConst.cs b/Source/Framework/Constants/ItemConst.cs index 9c09f8fe1..ff0a2bd09 100644 --- a/Source/Framework/Constants/ItemConst.cs +++ b/Source/Framework/Constants/ItemConst.cs @@ -415,7 +415,7 @@ namespace Framework.Constants CraftingReagentSlot12 = 55, CraftingReagentSlot13 = 56, CraftingReagentSlot14 = 57, - + Reforge = 58, Max } @@ -558,6 +558,11 @@ namespace Framework.Constants TemplateCharacter2 = 98, TemplateCharacter3 = 99, TemplateCharacter4 = 100, + DungeonNormalJackpot = 101, + DungeonHeroicJackpot = 102, + DungeonMythicJackpot = 103, + Delves = 104, + Timerunning = 105, Max } diff --git a/Source/Framework/Constants/Network/Opcodes.cs b/Source/Framework/Constants/Network/Opcodes.cs index 5d4f7c4e2..b4fe9024a 100644 --- a/Source/Framework/Constants/Network/Opcodes.cs +++ b/Source/Framework/Constants/Network/Opcodes.cs @@ -8,49 +8,49 @@ namespace Framework.Constants AbandonNpeResponse = 0x33f2, AcceptGuildInvite = 0x35fd, AcceptReturningPlayerPrompt = 0x339d, - AcceptSocialContract = 0x3745, + AcceptSocialContract = 0x3742, AcceptTrade = 0x315a, AcceptWargameInvite = 0x35e0, - AccountNotificationAcknowledged = 0x3734, + AccountNotificationAcknowledged = 0x3731, ActivateSoulbind = 0x33e1, - ActivateTaxi = 0x34b2, + ActivateTaxi = 0x34b3, AddonList = 0x35d8, - AddAccountCosmetic = 0x32b6, - AddBattlenetFriend = 0x365a, - AddFriend = 0x36ce, - AddIgnore = 0x36d2, - AddToy = 0x32b5, - AdventureJournalOpenQuest = 0x3202, + AddAccountCosmetic = 0x32b7, + AddBattlenetFriend = 0x3657, + AddFriend = 0x36cb, + AddIgnore = 0x36cf, + AddToy = 0x32b6, + AdventureJournalOpenQuest = 0x3203, AdventureJournalUpdateSuggestions = 0x33e4, AdventureMapStartQuest = 0x3370, - AlterAppearance = 0x3504, - AreaSpiritHealerQuery = 0x34b7, - AreaSpiritHealerQueue = 0x34b8, - AreaTrigger = 0x31d6, - ArtifactAddPower = 0x31a9, - ArtifactSetAppearance = 0x31ab, - AssignEquipmentSetSpec = 0x320e, - AttackStop = 0x3267, - AttackSwing = 0x3266, - AuctionableTokenSell = 0x36e4, - AuctionableTokenSellAtMarketPrice = 0x36e5, - AuctionBrowseQuery = 0x34d7, - AuctionCancelCommoditiesPurchase = 0x34df, - AuctionConfirmCommoditiesPurchase = 0x34de, - AuctionGetCommodityQuote = 0x34dd, - AuctionHelloRequest = 0x34d2, - AuctionListBiddedItems = 0x34db, - AuctionListBucketsByBucketKeys = 0x34dc, - AuctionListItemsByBucketKey = 0x34d8, - AuctionListItemsByItemId = 0x34d9, - AuctionListOwnedItems = 0x34da, - AuctionPlaceBid = 0x34d6, - AuctionRemoveItem = 0x34d4, - AuctionReplicateItems = 0x34d5, - AuctionRequestFavoriteList = 0x3736, - AuctionSellCommodity = 0x34e0, - AuctionSellItem = 0x34d3, - AuctionSetFavoriteItem = 0x3735, + AlterAppearance = 0x3505, + AreaSpiritHealerQuery = 0x34b8, + AreaSpiritHealerQueue = 0x34b9, + AreaTrigger = 0x31d7, + ArtifactAddPower = 0x31aa, + ArtifactSetAppearance = 0x31ac, + AssignEquipmentSetSpec = 0x320f, + AttackStop = 0x3268, + AttackSwing = 0x3267, + AuctionableTokenSell = 0x36e1, + AuctionableTokenSellAtMarketPrice = 0x36e2, + AuctionBrowseQuery = 0x34d8, + AuctionCancelCommoditiesPurchase = 0x34e0, + AuctionConfirmCommoditiesPurchase = 0x34df, + AuctionGetCommodityQuote = 0x34de, + AuctionHelloRequest = 0x34d3, + AuctionListBiddedItems = 0x34dc, + AuctionListBucketsByBucketKeys = 0x34dd, + AuctionListItemsByBucketKey = 0x34d9, + AuctionListItemsByItemId = 0x34da, + AuctionListOwnedItems = 0x34db, + AuctionPlaceBid = 0x34d7, + AuctionRemoveItem = 0x34d5, + AuctionReplicateItems = 0x34d6, + AuctionRequestFavoriteList = 0x3733, + AuctionSellCommodity = 0x34e1, + AuctionSellItem = 0x34d4, + AuctionSetFavoriteItem = 0x3732, AuthContinuedSession = 0x377a, AuthSession = 0x3779, AutobankItem = 0x3997, @@ -59,102 +59,102 @@ namespace Framework.Constants AutostoreBankReagent = 0x3998, AutoEquipItem = 0x399a, AutoEquipItemSlot = 0x399f, - AutoGuildBankItem = 0x34be, + AutoGuildBankItem = 0x34bf, AutoStoreBagItem = 0x399b, - AutoStoreGuildBankItem = 0x34c7, + AutoStoreGuildBankItem = 0x34c8, AzeriteEmpoweredItemSelectPower = 0x3399, AzeriteEmpoweredItemViewed = 0x337b, AzeriteEssenceActivateEssence = 0x339b, AzeriteEssenceUnlockMilestone = 0x339a, - BankerActivate = 0x34ba, - BattlefieldLeave = 0x3172, - BattlefieldList = 0x317d, - BattlefieldPort = 0x3539, - BattlemasterHello = 0x32d3, - BattlemasterJoin = 0x3531, - BattlemasterJoinArena = 0x3532, - BattlemasterJoinBrawl = 0x3537, - BattlemasterJoinRatedSoloShuffle = 0x3533, - BattlemasterJoinSkirmish = 0x3534, - BattlenetChallengeResponse = 0x36d1, - BattlenetRequest = 0x36f3, - BattlePayAckFailedResponse = 0x36cb, - BattlePayCancelOpenCheckout = 0x3712, - BattlePayConfirmPurchaseResponse = 0x36ca, - BattlePayDistributionAssignToTarget = 0x36c1, - BattlePayDistributionAssignVas = 0x3739, - BattlePayGetProductList = 0x36b9, - BattlePayGetPurchaseList = 0x36ba, - BattlePayOpenCheckout = 0x370b, - BattlePayRequestPriceInfo = 0x3707, - BattlePayStartPurchase = 0x36c9, - BattlePayStartVasPurchase = 0x36f0, + BankerActivate = 0x34bb, + BattlefieldLeave = 0x3173, + BattlefieldList = 0x317e, + BattlefieldPort = 0x353a, + BattlemasterHello = 0x32d4, + BattlemasterJoin = 0x3532, + BattlemasterJoinArena = 0x3533, + BattlemasterJoinBrawl = 0x3538, + BattlemasterJoinRatedSoloShuffle = 0x3534, + BattlemasterJoinSkirmish = 0x3535, + BattlenetChallengeResponse = 0x36ce, + BattlenetRequest = 0x36f0, + BattlePayAckFailedResponse = 0x36c8, + BattlePayCancelOpenCheckout = 0x370f, + BattlePayConfirmPurchaseResponse = 0x36c7, + BattlePayDistributionAssignToTarget = 0x36be, + BattlePayDistributionAssignVas = 0x3736, + BattlePayGetProductList = 0x36b6, + BattlePayGetPurchaseList = 0x36b7, + BattlePayOpenCheckout = 0x3708, + BattlePayRequestPriceInfo = 0x3704, + BattlePayStartPurchase = 0x36c6, + BattlePayStartVasPurchase = 0x36ed, BattlePetClearFanfare = 0x3126, - BattlePetDeletePet = 0x3625, - BattlePetDeletePetCheat = 0x3626, - BattlePetModifyName = 0x3628, - BattlePetRequestJournal = 0x3624, - BattlePetRequestJournalLock = 0x3623, - BattlePetSetBattleSlot = 0x362d, - BattlePetSetFlags = 0x3630, - BattlePetSummon = 0x3629, - BattlePetUpdateDisplayNotify = 0x31e0, - BattlePetUpdateNotify = 0x31df, + BattlePetDeletePet = 0x3622, + BattlePetDeletePetCheat = 0x3623, + BattlePetModifyName = 0x3625, + BattlePetRequestJournal = 0x3621, + BattlePetRequestJournalLock = 0x3620, + BattlePetSetBattleSlot = 0x362a, + BattlePetSetFlags = 0x362d, + BattlePetSummon = 0x3626, + BattlePetUpdateDisplayNotify = 0x31e1, + BattlePetUpdateNotify = 0x31e0, BeginTrade = 0x3157, - BinderActivate = 0x34b9, - BlackMarketBidOnItem = 0x3541, - BlackMarketOpen = 0x353f, - BlackMarketRequestItems = 0x3540, + BinderActivate = 0x34ba, + BlackMarketBidOnItem = 0x3542, + BlackMarketOpen = 0x3540, + BlackMarketRequestItems = 0x3541, BonusRoll = 0x339c, - BugReport = 0x3685, + BugReport = 0x3682, BusyTrade = 0x3158, - BuyBackItem = 0x34ab, - BuyBankSlot = 0x34bb, - BuyItem = 0x34aa, - BuyReagentBank = 0x34bc, - CageBattlePet = 0x31f2, - CalendarAddEvent = 0x367d, - CalendarCommunityInvite = 0x3671, - CalendarComplain = 0x3679, - CalendarCopyEvent = 0x3678, - CalendarEventSignUp = 0x367b, - CalendarGet = 0x366f, - CalendarGetEvent = 0x3670, - CalendarGetNumPending = 0x367a, - CalendarInvite = 0x3672, - CalendarModeratorStatus = 0x3676, - CalendarRemoveEvent = 0x3677, - CalendarRemoveInvite = 0x3673, - CalendarRsvp = 0x3674, - CalendarStatus = 0x3675, - CalendarUpdateEvent = 0x367e, - CancelAura = 0x31ad, - CancelAutoRepeatSpell = 0x34f6, - CancelCast = 0x32bc, - CancelChannelling = 0x327f, - CancelGrowthAura = 0x3287, - CancelMasterLootRoll = 0x321a, - CancelModSpeedNoControlAuras = 0x31ac, - CancelMountAura = 0x329a, - CancelQueuedSpell = 0x317e, - CancelTempEnchantment = 0x3501, + BuyBackItem = 0x34ac, + BuyBankSlot = 0x34bc, + BuyItem = 0x34ab, + BuyReagentBank = 0x34bd, + CageBattlePet = 0x31f3, + CalendarAddEvent = 0x367a, + CalendarCommunityInvite = 0x366e, + CalendarComplain = 0x3676, + CalendarCopyEvent = 0x3675, + CalendarEventSignUp = 0x3678, + CalendarGet = 0x366c, + CalendarGetEvent = 0x366d, + CalendarGetNumPending = 0x3677, + CalendarInvite = 0x366f, + CalendarModeratorStatus = 0x3673, + CalendarRemoveEvent = 0x3674, + CalendarRemoveInvite = 0x3670, + CalendarRsvp = 0x3671, + CalendarStatus = 0x3672, + CalendarUpdateEvent = 0x367b, + CancelAura = 0x31ae, + CancelAutoRepeatSpell = 0x34f7, + CancelCast = 0x32bd, + CancelChannelling = 0x3280, + CancelGrowthAura = 0x3288, + CancelMasterLootRoll = 0x321b, + CancelModSpeedNoControlAuras = 0x31ad, + CancelMountAura = 0x329b, + CancelQueuedSpell = 0x317f, + CancelTempEnchantment = 0x3502, CancelTrade = 0x315c, - CanDuel = 0x3662, - CanRedeemTokenForBalance = 0x3706, - CastSpell = 0x32b9, - ChallengeModeRequestLeaders = 0x308f, + CanDuel = 0x365f, + CanRedeemTokenForBalance = 0x3703, + CastSpell = 0x32ba, + ChallengeModeRequestLeaders = 0x305e, ChangeBagSlotFlag = 0x3354, ChangeBankBagSlotFlag = 0x3355, ChangeMonumentAppearance = 0x3335, - ChangeRealmTicket = 0x36f8, - ChangeSubGroup = 0x364c, - CharacterCheckUpgrade = 0x36c4, - CharacterRenameRequest = 0x36bf, - CharacterUpgradeManualUnrevokeRequest = 0x36c2, - CharacterUpgradeStart = 0x36c3, - CharCustomize = 0x368c, - CharDelete = 0x369c, - CharRaceOrFactionChange = 0x3692, + ChangeRealmTicket = 0x36f5, + ChangeSubGroup = 0x3649, + CharacterCheckUpgrade = 0x36c1, + CharacterRenameRequest = 0x36bc, + CharacterUpgradeManualUnrevokeRequest = 0x36bf, + CharacterUpgradeStart = 0x36c0, + CharCustomize = 0x3689, + CharDelete = 0x3699, + CharRaceOrFactionChange = 0x368f, ChatAddonMessage = 0x3802, ChatAddonMessageTargeted = 0x3803, ChatCanLocalWhisperTargetRequest = 0x380a, @@ -194,88 +194,88 @@ namespace Framework.Constants ChatReportFiltered = 0x37e0, ChatReportIgnored = 0x37df, ChatUnregisterAllAddonPrefixes = 0x37e2, - CheckCharacterNameAvailability = 0x3645, - CheckIsAdventureMapPoiValid = 0x3258, - ChoiceResponse = 0x32c1, + CheckCharacterNameAvailability = 0x3642, + CheckIsAdventureMapPoiValid = 0x3259, + ChoiceResponse = 0x32c2, ChromieTimeSelectExpansion = 0x33e0, ClaimWeeklyReward = 0x33bc, - ClassTalentsDeleteConfig = 0x341a, - ClassTalentsNotifyEmptyConfig = 0x3212, - ClassTalentsNotifyValidationFailed = 0x341c, - ClassTalentsRenameConfig = 0x3419, - ClassTalentsRequestNewConfig = 0x3418, - ClassTalentsSetStarterBuildActive = 0x341d, - ClassTalentsSetUsesSharedActionBars = 0x3211, + ClassTalentsDeleteConfig = 0x341b, + ClassTalentsNotifyEmptyConfig = 0x3213, + ClassTalentsNotifyValidationFailed = 0x341d, + ClassTalentsRenameConfig = 0x341a, + ClassTalentsRequestNewConfig = 0x3419, + ClassTalentsSetStarterBuildActive = 0x341e, + ClassTalentsSetUsesSharedActionBars = 0x3212, ClearNewAppearance = 0x3129, - ClearRaidMarker = 0x31a5, + ClearRaidMarker = 0x31a6, ClearTradeItem = 0x315e, - ClientPortGraveyard = 0x353b, - CloseInteraction = 0x3499, - CloseQuestChoice = 0x32c2, + ClientPortGraveyard = 0x353c, + CloseInteraction = 0x349a, + CloseQuestChoice = 0x32c3, CloseRuneforgeInteraction = 0x33e8, - CloseTraitSystemInteraction = 0x341e, - ClubFinderApplicationResponse = 0x371d, - ClubFinderGetApplicantsList = 0x371b, - ClubFinderPost = 0x3718, - ClubFinderRequestClubsData = 0x371f, - ClubFinderRequestClubsList = 0x3719, - ClubFinderRequestMembershipToClub = 0x371a, - ClubFinderRequestPendingClubsList = 0x371e, - ClubFinderRequestSubscribedClubPostingIds = 0x3720, - ClubFinderRespondToApplicant = 0x371c, - ClubFinderWhisperApplicantRequest = 0x373c, - ClubPresenceSubscribe = 0x36f5, - CollectionItemSetFavorite = 0x3633, + CloseTraitSystemInteraction = 0x341f, + ClubFinderApplicationResponse = 0x371a, + ClubFinderGetApplicantsList = 0x3718, + ClubFinderPost = 0x3715, + ClubFinderRequestClubsData = 0x371c, + ClubFinderRequestClubsList = 0x3716, + ClubFinderRequestMembershipToClub = 0x3717, + ClubFinderRequestPendingClubsList = 0x371b, + ClubFinderRequestSubscribedClubPostingIds = 0x371d, + ClubFinderRespondToApplicant = 0x3719, + ClubFinderWhisperApplicantRequest = 0x3739, + ClubPresenceSubscribe = 0x36f2, + CollectionItemSetFavorite = 0x3630, CommentatorEnable = 0x35f0, CommentatorEnterInstance = 0x35f4, CommentatorExitInstance = 0x35f5, CommentatorGetMapInfo = 0x35f1, CommentatorGetPlayerCooldowns = 0x35f3, CommentatorGetPlayerInfo = 0x35f2, - CommentatorSpectate = 0x373a, + CommentatorSpectate = 0x3737, CommentatorStartWargame = 0x35ef, - CommerceTokenGetCount = 0x36e2, - CommerceTokenGetLog = 0x36ec, - CommerceTokenGetMarketPrice = 0x36e3, - Complaint = 0x366c, - CompleteCinematic = 0x3559, - CompleteMovie = 0x34ec, - ConfirmArtifactRespec = 0x31aa, - ConfirmRespecWipe = 0x3214, + CommerceTokenGetCount = 0x36df, + CommerceTokenGetLog = 0x36e9, + CommerceTokenGetMarketPrice = 0x36e0, + Complaint = 0x3669, + CompleteCinematic = 0x355a, + CompleteMovie = 0x34ed, + ConfirmArtifactRespec = 0x31ab, + ConfirmRespecWipe = 0x3215, ConnectToFailed = 0x35d4, - ConsumableTokenBuy = 0x36e7, - ConsumableTokenBuyAtMarketPrice = 0x36e8, - ConsumableTokenCanVeteranBuy = 0x36e6, - ConsumableTokenRedeem = 0x36ea, - ConsumableTokenRedeemConfirmation = 0x36eb, - ContentTrackingStartTracking = 0x342e, - ContentTrackingStopTracking = 0x342f, - ContributionContribute = 0x356e, - ContributionLastUpdateRequest = 0x356f, - ConversationCinematicReady = 0x355b, - ConversationLineStarted = 0x355a, - ConvertRaid = 0x364e, - CovenantRenownRequestCatchupState = 0x3582, - CraftingOrderCancel = 0x358d, - CraftingOrderClaim = 0x358a, - CraftingOrderCreate = 0x3587, - CraftingOrderFulfill = 0x358c, - CraftingOrderListCrafterOrders = 0x3589, - CraftingOrderListMyOrders = 0x3588, - CraftingOrderReject = 0x358e, - CraftingOrderRelease = 0x358b, - CraftingOrderReportPlayer = 0x358f, - CraftingOrderUpdateIgnoreList = 0x3590, - CreateCharacter = 0x3644, + ConsumableTokenBuy = 0x36e4, + ConsumableTokenBuyAtMarketPrice = 0x36e5, + ConsumableTokenCanVeteranBuy = 0x36e3, + ConsumableTokenRedeem = 0x36e7, + ConsumableTokenRedeemConfirmation = 0x36e8, + ContentTrackingStartTracking = 0x342f, + ContentTrackingStopTracking = 0x3430, + ContributionContribute = 0x356f, + ContributionLastUpdateRequest = 0x3570, + ConversationCinematicReady = 0x355c, + ConversationLineStarted = 0x355b, + ConvertRaid = 0x364b, + CovenantRenownRequestCatchupState = 0x3583, + CraftingOrderCancel = 0x358e, + CraftingOrderClaim = 0x358b, + CraftingOrderCreate = 0x3588, + CraftingOrderFulfill = 0x358d, + CraftingOrderListCrafterOrders = 0x358a, + CraftingOrderListMyOrders = 0x3589, + CraftingOrderReject = 0x358f, + CraftingOrderRelease = 0x358c, + CraftingOrderReportPlayer = 0x3590, + CraftingOrderUpdateIgnoreList = 0x3591, + CreateCharacter = 0x3641, CreateShipment = 0x3320, DbQueryBulk = 0x35e4, - DeclineGuildInvites = 0x352e, - DeclinePetition = 0x3548, - DeleteEquipmentSet = 0x351a, - DelFriend = 0x36cf, - DelIgnore = 0x36d3, + DeclineGuildInvites = 0x352f, + DeclinePetition = 0x3549, + DeleteEquipmentSet = 0x351b, + DelFriend = 0x36cc, + DelIgnore = 0x36d0, DepositReagentBank = 0x335e, - DestroyItem = 0x32af, + DestroyItem = 0x32b0, DfBootPlayerVote = 0x3617, DfConfirmExpandSearch = 0x3609, DfGetJoinStatus = 0x3615, @@ -287,24 +287,24 @@ namespace Framework.Constants DfSetRoles = 0x3616, DfTeleport = 0x3618, DiscardedTimeSyncAcks = 0x3a41, - DismissCritter = 0x3508, - DoCountdown = 0x3717, - DoMasterLootRoll = 0x3219, - DoReadyCheck = 0x3634, - DuelResponse = 0x34f1, - EjectPassenger = 0x324d, - Emote = 0x3555, + DismissCritter = 0x3509, + DoCountdown = 0x3714, + DoMasterLootRoll = 0x321a, + DoReadyCheck = 0x3631, + DuelResponse = 0x34f2, + EjectPassenger = 0x324e, + Emote = 0x3556, EnableNagle = 0x377f, - EnableTaxiNode = 0x34b0, - EngineSurvey = 0x36e1, + EnableTaxiNode = 0x34b1, + EngineSurvey = 0x36de, EnterEncryptedModeAck = 0x377b, EnumCharacters = 0x35e8, - EnumCharactersDeletedByClient = 0x36db, - FarSight = 0x34f7, - GameEventDebugDisable = 0x31b1, - GameEventDebugEnable = 0x31b0, - GameObjReportUse = 0x34fe, - GameObjUse = 0x34fd, + EnumCharactersDeletedByClient = 0x36d8, + FarSight = 0x34f8, + GameEventDebugDisable = 0x31b2, + GameEventDebugEnable = 0x31b1, + GameObjReportUse = 0x34ff, + GameObjUse = 0x34fe, GarrisonAddFollowerHealth = 0x331b, GarrisonAssignFollowerToBuilding = 0x3301, GarrisonCancelConstruction = 0x32ee, @@ -333,87 +333,87 @@ namespace Framework.Constants GarrisonStartMission = 0x3341, GarrisonSwapBuildings = 0x32ef, GenerateRandomCharacterName = 0x35e7, - GetAccountCharacterList = 0x36b4, - GetAccountNotifications = 0x3733, + GetAccountCharacterList = 0x36b1, + GetAccountNotifications = 0x3730, GetGarrisonInfo = 0x32e4, - GetItemPurchaseData = 0x3543, + GetItemPurchaseData = 0x3544, GetLandingPageShipments = 0x331f, - GetMirrorImageData = 0x32b3, + GetMirrorImageData = 0x32b4, GetPvpOptionsEnabled = 0x35ee, - GetRafAccountInfo = 0x3721, - GetRemainingGameTime = 0x36e9, + GetRafAccountInfo = 0x371e, + GetRemainingGameTime = 0x36e6, GetTrophyList = 0x3332, - GetUndeleteCharacterCooldownStatus = 0x36dd, - GetVasAccountCharacterList = 0x36ee, - GetVasTransferTargetRealmList = 0x36ef, - GmTicketAcknowledgeSurvey = 0x3690, - GmTicketGetCaseStatus = 0x368f, - GmTicketGetSystemStatus = 0x368e, - GossipRefreshOptions = 0x3581, - GossipSelectOption = 0x349a, - GuildAddBattlenetFriend = 0x308d, - GuildAddRank = 0x3065, - GuildAssignMemberRank = 0x3060, - GuildAutoDeclineInvitation = 0x3062, - GuildBankActivate = 0x34bd, - GuildBankBuyTab = 0x34cb, - GuildBankDepositMoney = 0x34cd, - GuildBankLogQuery = 0x3083, - GuildBankQueryTab = 0x34ca, - GuildBankRemainingWithdrawMoneyQuery = 0x3084, - GuildBankSetTabText = 0x3087, - GuildBankTextQuery = 0x3088, - GuildBankUpdateTab = 0x34cc, - GuildBankWithdrawMoney = 0x34ce, - GuildChallengeUpdateRequest = 0x307c, - GuildChangeNameRequest = 0x307f, - GuildDeclineInvitation = 0x3061, - GuildDelete = 0x3069, - GuildDeleteRank = 0x3066, - GuildDemoteMember = 0x305f, - GuildEventLogQuery = 0x3086, - GuildGetAchievementMembers = 0x3072, - GuildGetRanks = 0x306e, - GuildGetRoster = 0x3074, + GetUndeleteCharacterCooldownStatus = 0x36da, + GetVasAccountCharacterList = 0x36eb, + GetVasTransferTargetRealmList = 0x36ec, + GmTicketAcknowledgeSurvey = 0x368d, + GmTicketGetCaseStatus = 0x368c, + GmTicketGetSystemStatus = 0x368b, + GossipRefreshOptions = 0x3582, + GossipSelectOption = 0x349b, + GuildAddBattlenetFriend = 0x5036, + GuildAddRank = 0x501b, + GuildAssignMemberRank = 0x5016, + GuildAutoDeclineInvitation = 0x5018, + GuildBankActivate = 0x34be, + GuildBankBuyTab = 0x34cc, + GuildBankDepositMoney = 0x34ce, + GuildBankLogQuery = 0x502f, + GuildBankQueryTab = 0x34cb, + GuildBankRemainingWithdrawMoneyQuery = 0x5030, + GuildBankSetTabText = 0x5033, + GuildBankTextQuery = 0x5034, + GuildBankUpdateTab = 0x34cd, + GuildBankWithdrawMoney = 0x34cf, + GuildChallengeUpdateRequest = 0x502d, + GuildChangeNameRequest = 0x502e, + GuildDeclineInvitation = 0x5017, + GuildDelete = 0x501f, + GuildDeleteRank = 0x501c, + GuildDemoteMember = 0x5015, + GuildEventLogQuery = 0x5032, + GuildGetAchievementMembers = 0x5028, + GuildGetRanks = 0x5024, + GuildGetRoster = 0x502a, GuildInviteByName = 0x3607, - GuildLeave = 0x3063, - GuildNewsUpdateSticky = 0x306f, - GuildOfficerRemoveMember = 0x3064, - GuildPermissionsQuery = 0x3085, - GuildPromoteMember = 0x305e, - GuildQueryMembersForRecipe = 0x306c, - GuildQueryMemberRecipes = 0x306a, - GuildQueryNews = 0x306d, - GuildQueryRecipes = 0x306b, - GuildReplaceGuildMaster = 0x3089, - GuildSetAchievementTracking = 0x3070, - GuildSetFocusedAchievement = 0x3071, - GuildSetGuildMaster = 0x36c6, - GuildSetMemberNote = 0x3073, - GuildSetRankPermissions = 0x3068, - GuildShiftRank = 0x3067, - GuildUpdateInfoText = 0x3076, - GuildUpdateMotdText = 0x3075, - HearthAndResurrect = 0x3516, - HideQuestChoice = 0x32c3, + GuildLeave = 0x5019, + GuildNewsUpdateSticky = 0x5025, + GuildOfficerRemoveMember = 0x501a, + GuildPermissionsQuery = 0x5031, + GuildPromoteMember = 0x5014, + GuildQueryMembersForRecipe = 0x5022, + GuildQueryMemberRecipes = 0x5020, + GuildQueryNews = 0x5023, + GuildQueryRecipes = 0x5021, + GuildReplaceGuildMaster = 0x5035, + GuildSetAchievementTracking = 0x5026, + GuildSetFocusedAchievement = 0x5027, + GuildSetGuildMaster = 0x36c3, + GuildSetMemberNote = 0x5029, + GuildSetRankPermissions = 0x501e, + GuildShiftRank = 0x501d, + GuildUpdateInfoText = 0x502c, + GuildUpdateMotdText = 0x502b, + HearthAndResurrect = 0x3517, + HideQuestChoice = 0x32c4, HotfixRequest = 0x35e5, IgnoreTrade = 0x3159, InitiateRolePoll = 0x35da, InitiateTrade = 0x3156, - Inspect = 0x353d, - InstanceLockResponse = 0x351b, + Inspect = 0x353e, + InstanceLockResponse = 0x351c, IslandQueue = 0x33b8, - ItemPurchaseRefund = 0x3544, + ItemPurchaseRefund = 0x3545, ItemTextQuery = 0x3351, - JoinPetBattleQueue = 0x31dd, - JoinRatedBattleground = 0x3178, - KeepAlive = 0x367f, - KeyboundOverride = 0x322f, + JoinPetBattleQueue = 0x31de, + JoinRatedBattleground = 0x3179, + KeepAlive = 0x367c, + KeyboundOverride = 0x3230, LatencyReport = 0x3785, - LearnPvpTalents = 0x356d, - LearnTalents = 0x356b, - LeaveGroup = 0x3649, - LeavePetBattleQueue = 0x31de, + LearnPvpTalents = 0x356e, + LearnTalents = 0x356c, + LeaveGroup = 0x3646, + LeavePetBattleQueue = 0x31df, LfgListApplyToGroup = 0x360e, LfgListCancelApplication = 0x360f, LfgListDeclineApplicant = 0x3610, @@ -424,51 +424,51 @@ namespace Framework.Constants LfgListLeave = 0x360b, LfgListSearch = 0x360d, LfgListUpdateRequest = 0x3398, - ListInventory = 0x34a7, - LiveRegionAccountRestore = 0x36b7, - LiveRegionCharacterCopy = 0x36b6, - LiveRegionGetAccountCharacterList = 0x36b5, - LiveRegionKeyBindingsCopy = 0x36b8, + ListInventory = 0x34a8, + LiveRegionAccountRestore = 0x36b4, + LiveRegionCharacterCopy = 0x36b3, + LiveRegionGetAccountCharacterList = 0x36b2, + LiveRegionKeyBindingsCopy = 0x36b5, LoadingScreenNotify = 0x35f8, LoadSelectedTrophy = 0x3333, - LobbyMatchmakerAcceptPartyInvite = 0x373e, - LobbyMatchmakerCreateCharacter = 0x374c, - LobbyMatchmakerLeaveParty = 0x3741, - LobbyMatchmakerPartyInvite = 0x373d, - LobbyMatchmakerPartyUninvite = 0x3740, - LobbyMatchmakerRejectPartyInvite = 0x373f, - LobbyMatchmakerSetPartyPlaylistEntry = 0x3742, - LobbyMatchmakerSetPlayerReady = 0x3743, - LogoutCancel = 0x34e7, - LogoutInstant = 0x34e8, - LogoutLobbyMatchmaker = 0x3594, - LogoutRequest = 0x34e5, + LobbyMatchmakerAcceptPartyInvite = 0x373b, + LobbyMatchmakerCreateCharacter = 0x3749, + LobbyMatchmakerLeaveParty = 0x373e, + LobbyMatchmakerPartyInvite = 0x373a, + LobbyMatchmakerPartyUninvite = 0x373d, + LobbyMatchmakerRejectPartyInvite = 0x373c, + LobbyMatchmakerSetPartyPlaylistEntry = 0x373f, + LobbyMatchmakerSetPlayerReady = 0x3740, + LogoutCancel = 0x34e8, + LogoutInstant = 0x34e9, + LogoutLobbyMatchmaker = 0x3595, + LogoutRequest = 0x34e6, LogDisconnect = 0x377d, LogStreamingError = 0x3781, - LootItem = 0x3217, - LootMoney = 0x3216, - LootRelease = 0x321b, - LootRoll = 0x321c, - LootUnit = 0x3215, - LowLevelRaid1 = 0x36a0, - LowLevelRaid2 = 0x3522, - MailCreateTextItem = 0x354f, - MailDelete = 0x3231, - MailGetList = 0x354a, - MailMarkAsRead = 0x354e, - MailReturnToSender = 0x3655, - MailTakeItem = 0x354c, - MailTakeMoney = 0x354b, - MakeContitionalAppearancePermanent = 0x3233, - MasterLootItem = 0x3218, - MergeGuildBankItemWithGuildBankItem = 0x34c8, - MergeGuildBankItemWithItem = 0x34c5, - MergeItemWithGuildBankItem = 0x34c3, - MinimapPing = 0x364b, - MissileTrajectoryCollision = 0x3189, + LootItem = 0x3218, + LootMoney = 0x3217, + LootRelease = 0x321c, + LootRoll = 0x321d, + LootUnit = 0x3216, + LowLevelRaid1 = 0x369d, + LowLevelRaid2 = 0x3523, + MailCreateTextItem = 0x3550, + MailDelete = 0x3232, + MailGetList = 0x354b, + MailMarkAsRead = 0x354f, + MailReturnToSender = 0x3652, + MailTakeItem = 0x354d, + MailTakeMoney = 0x354c, + MakeContitionalAppearancePermanent = 0x3234, + MasterLootItem = 0x3219, + MergeGuildBankItemWithGuildBankItem = 0x34c9, + MergeGuildBankItemWithItem = 0x34c6, + MergeItemWithGuildBankItem = 0x34c4, + MinimapPing = 0x3648, + MissileTrajectoryCollision = 0x318a, MountClearFanfare = 0x3127, - MountSetFavorite = 0x3632, - MountSpecialAnim = 0x329b, + MountSetFavorite = 0x362f, + MountSpecialAnim = 0x329c, MoveAddImpulseAck = 0x3a50, MoveApplyInertiaAck = 0x3a4e, MoveApplyMovementForceAck = 0x3a15, @@ -496,7 +496,7 @@ namespace Framework.Constants MoveForceWalkSpeedChangeAck = 0x3a21, MoveGravityDisableAck = 0x3a35, MoveGravityEnableAck = 0x3a36, - MoveGuildBankItem = 0x34c2, + MoveGuildBankItem = 0x34c3, MoveHeartbeat = 0x3a10, MoveHoverAck = 0x3a13, MoveInertiaDisableAck = 0x3a37, @@ -558,408 +558,410 @@ namespace Framework.Constants MoveTimeSkipped = 0x3a1b, MoveUpdateFallSpeed = 0x3a1a, MoveWaterWalkAck = 0x3a1d, - MythicPlusRequestMapStats = 0x308e, - NeutralPlayerSelectFaction = 0x31d3, - NextCinematicCamera = 0x3558, - ObjectUpdateFailed = 0x317f, - ObjectUpdateRescued = 0x3180, + MythicPlusRequestMapStats = 0x305d, + NeutralPlayerSelectFaction = 0x31d4, + NextCinematicCamera = 0x3559, + ObjectUpdateFailed = 0x3180, + ObjectUpdateRescued = 0x3181, OfferPetition = 0x33df, - OpeningCinematic = 0x3557, + OpeningCinematic = 0x3558, OpenItem = 0x3352, OpenMissionNpc = 0x3315, OpenShipmentNpc = 0x331d, OpenTradeskillNpc = 0x3328, - OptOutOfLoot = 0x3505, - OverrideScreenFlash = 0x352f, + OptOutOfLoot = 0x3506, + OverrideScreenFlash = 0x3530, PartyInvite = 0x3603, PartyInviteResponse = 0x3605, - PartyUninvite = 0x3647, - PerformItemInteraction = 0x323b, + PartyUninvite = 0x3644, + PerformItemInteraction = 0x323c, + PerksProgramItemsRefreshed = 0x3408, PerksProgramRequestPendingRewards = 0x3135, - PerksProgramRequestPurchase = 0x3409, - PerksProgramRequestRefund = 0x340a, - PerksProgramSetFrozenVendorItem = 0x340b, - PerksProgramStatusRequest = 0x3408, - PetitionBuy = 0x34d0, - PetitionRenameGuild = 0x36c7, - PetitionShowList = 0x34cf, - PetitionShowSignatures = 0x34d1, + PerksProgramRequestPurchase = 0x340a, + PerksProgramRequestRefund = 0x340b, + PerksProgramSetFrozenVendorItem = 0x340c, + PerksProgramStatusRequest = 0x3409, + PetitionBuy = 0x34d1, + PetitionRenameGuild = 0x36c4, + PetitionShowList = 0x34d0, + PetitionShowSignatures = 0x34d2, PetAbandon = 0x3493, + PetAbandonByNumber = 0x3494, PetAction = 0x3491, - PetBattleFinalNotify = 0x31e2, - PetBattleInput = 0x3641, - PetBattleQueueProposeMatchResult = 0x3230, - PetBattleQuitNotify = 0x31e1, - PetBattleReplaceFrontPet = 0x3642, - PetBattleRequestPvp = 0x31db, - PetBattleRequestUpdate = 0x31dc, - PetBattleRequestWild = 0x31d9, - PetBattleScriptErrorNotify = 0x31e3, - PetBattleWildLocationFail = 0x31da, - PetCancelAura = 0x3494, - PetCastSpell = 0x32b8, - PetRename = 0x3684, + PetBattleFinalNotify = 0x31e3, + PetBattleInput = 0x363e, + PetBattleQueueProposeMatchResult = 0x3231, + PetBattleQuitNotify = 0x31e2, + PetBattleReplaceFrontPet = 0x363f, + PetBattleRequestPvp = 0x31dc, + PetBattleRequestUpdate = 0x31dd, + PetBattleRequestWild = 0x31da, + PetBattleScriptErrorNotify = 0x31e4, + PetBattleWildLocationFail = 0x31db, + PetCancelAura = 0x3495, + PetCastSpell = 0x32b9, + PetRename = 0x3681, PetSetAction = 0x3490, - PetSpellAutocast = 0x3495, + PetSpellAutocast = 0x3496, PetStopAttack = 0x3492, Ping = 0x377c, PlayerLogin = 0x35ea, - PushQuestToParty = 0x34a5, - PvpLogData = 0x317b, - QueryBattlePetName = 0x328e, - QueryCorpseLocationFromClient = 0x3660, - QueryCorpseTransport = 0x3661, - QueryCountdownTimer = 0x31a8, - QueryCreature = 0x3288, - QueryGameObject = 0x3289, - QueryGarrisonPetName = 0x328f, - QueryGuildInfo = 0x368a, - QueryInspectAchievements = 0x350f, - QueryNextMailTime = 0x354d, - QueryNpcText = 0x328a, - QueryPageText = 0x328c, - QueryPetition = 0x3290, - QueryPetName = 0x328d, + PushQuestToParty = 0x34a6, + PvpLogData = 0x317c, + QueryBattlePetName = 0x328f, + QueryCorpseLocationFromClient = 0x365d, + QueryCorpseTransport = 0x365e, + QueryCountdownTimer = 0x31a9, + QueryCreature = 0x3289, + QueryGameObject = 0x328a, + QueryGarrisonPetName = 0x3290, + QueryGuildInfo = 0x3687, + QueryInspectAchievements = 0x3510, + QueryNextMailTime = 0x354e, + QueryNpcText = 0x328b, + QueryPageText = 0x328d, + QueryPetition = 0x3291, + QueryPetName = 0x328e, QueryPlayerNames = 0x3786, QueryPlayerNamesForCommunity = 0x3784, QueryPlayerNameByCommunityId = 0x3783, - QueryQuestCompletionNpcs = 0x3174, - QueryQuestInfo = 0x328b, - QueryQuestItemUsability = 0x3175, - QueryRealmName = 0x3689, - QueryScenarioPoi = 0x3656, - QueryTime = 0x34e4, + QueryQuestCompletionNpcs = 0x3175, + QueryQuestInfo = 0x328c, + QueryQuestItemUsability = 0x3176, + QueryRealmName = 0x3686, + QueryScenarioPoi = 0x3653, + QueryTime = 0x34e5, QueryTreasurePicker = 0x3377, - QueryVoidStorage = 0x31a1, - QuestConfirmAccept = 0x34a4, - QuestGiverAcceptQuest = 0x349e, - QuestGiverChooseReward = 0x34a0, - QuestGiverCloseQuest = 0x355e, - QuestGiverCompleteQuest = 0x349f, - QuestGiverHello = 0x349c, - QuestGiverQueryQuest = 0x349d, - QuestGiverRequestReward = 0x34a1, - QuestGiverStatusMultipleQuery = 0x34a3, - QuestGiverStatusQuery = 0x34a2, - QuestGiverStatusTrackedQuery = 0x3592, - QuestLogRemoveQuest = 0x3542, - QuestPoiQuery = 0x36ae, - QuestPushResult = 0x34a6, + QueryVoidStorage = 0x31a2, + QuestConfirmAccept = 0x34a5, + QuestGiverAcceptQuest = 0x349f, + QuestGiverChooseReward = 0x34a1, + QuestGiverCloseQuest = 0x355f, + QuestGiverCompleteQuest = 0x34a0, + QuestGiverHello = 0x349d, + QuestGiverQueryQuest = 0x349e, + QuestGiverRequestReward = 0x34a2, + QuestGiverStatusMultipleQuery = 0x34a4, + QuestGiverStatusQuery = 0x34a3, + QuestGiverStatusTrackedQuery = 0x3593, + QuestLogRemoveQuest = 0x3543, + QuestPoiQuery = 0x36ab, + QuestPushResult = 0x34a7, QuestSessionBeginResponse = 0x33d0, QuestSessionRequestStart = 0x33cf, - QuestSessionRequestStop = 0x372c, + QuestSessionRequestStop = 0x3729, QueuedMessagesEnd = 0x3780, - QuickJoinAutoAcceptRequests = 0x3704, - QuickJoinRequestInvite = 0x3703, - QuickJoinRequestInviteWithConfirmation = 0x3731, - QuickJoinRespondToInvite = 0x3702, - QuickJoinSignalToastDisplayed = 0x3701, - RafClaimActivityReward = 0x3513, - RafClaimNextReward = 0x3722, - RafGenerateRecruitmentLink = 0x3724, - RafUpdateRecruitmentInfo = 0x3723, - RandomRoll = 0x3654, - ReadyCheckResponse = 0x3635, + QuickJoinAutoAcceptRequests = 0x3701, + QuickJoinRequestInvite = 0x3700, + QuickJoinRequestInviteWithConfirmation = 0x372e, + QuickJoinRespondToInvite = 0x36ff, + QuickJoinSignalToastDisplayed = 0x36fe, + RafClaimActivityReward = 0x3514, + RafClaimNextReward = 0x371f, + RafGenerateRecruitmentLink = 0x3721, + RafUpdateRecruitmentInfo = 0x3720, + RandomRoll = 0x3651, + ReadyCheckResponse = 0x3632, ReadItem = 0x3353, - ReclaimCorpse = 0x34ea, + ReclaimCorpse = 0x34eb, RemoveNewItem = 0x337a, - RemoveRafRecruit = 0x3725, + RemoveRafRecruit = 0x3722, ReorderCharacters = 0x35e9, - RepairItem = 0x34fb, + RepairItem = 0x34fc, ReplaceTrophy = 0x3334, - RepopRequest = 0x353a, - ReportClientVariables = 0x36fe, - ReportEnabledAddons = 0x36fd, - ReportFrozenWhileLoadingMap = 0x36a6, - ReportKeybindingExecutionCounts = 0x36ff, - ReportPvpPlayerAfk = 0x3503, + RepopRequest = 0x353b, + ReportClientVariables = 0x36fb, + ReportEnabledAddons = 0x36fa, + ReportFrozenWhileLoadingMap = 0x36a3, + ReportKeybindingExecutionCounts = 0x36fc, + ReportPvpPlayerAfk = 0x3504, ReportServerLag = 0x33c8, ReportStuckInCombat = 0x33c9, - RequestAccountData = 0x3694, + RequestAccountData = 0x3691, RequestAreaPoiUpdate = 0x3379, RequestBattlefieldStatus = 0x35dc, - RequestCemeteryList = 0x3176, - RequestCharacterGuildFollowInfo = 0x368b, - RequestConquestFormulaConstants = 0x32d6, + RequestCemeteryList = 0x3177, + RequestCharacterGuildFollowInfo = 0x3688, RequestCovenantCallings = 0x33ba, - RequestCrowdControlSpell = 0x353e, - RequestForcedReactions = 0x320c, + RequestCrowdControlSpell = 0x353f, + RequestForcedReactions = 0x320d, RequestGarrisonTalentWorldQuestUnlocks = 0x33f4, - RequestGuildPartyState = 0x31a7, - RequestGuildRewardsList = 0x31a6, + RequestGuildPartyState = 0x31a8, + RequestGuildRewardsList = 0x31a7, RequestLatestSplashScreen = 0x33ca, - RequestLfgListBlacklist = 0x32c4, - RequestMythicPlusAffixes = 0x3206, - RequestMythicPlusSeasonData = 0x3207, + RequestLfgListBlacklist = 0x32c5, + RequestMythicPlusAffixes = 0x3207, + RequestMythicPlusSeasonData = 0x3208, RequestPartyJoinUpdates = 0x35f7, - RequestPartyMemberStats = 0x3653, - RequestPetInfo = 0x3496, - RequestPlayedTime = 0x3293, - RequestPvpRewards = 0x3194, - RequestRaidInfo = 0x36c8, + RequestPartyMemberStats = 0x3650, + RequestPetInfo = 0x3497, + RequestPlayedTime = 0x3294, + RequestPvpRewards = 0x3195, + RequestRaidInfo = 0x36c5, RequestRatedPvpInfo = 0x35e3, - RequestRealmGuildMasterInfo = 0x309a, - RequestScheduledPvpInfo = 0x3195, - RequestStabledPets = 0x3497, - RequestVehicleExit = 0x3248, - RequestVehicleNextSeat = 0x324a, - RequestVehiclePrevSeat = 0x3249, - RequestVehicleSwitchSeat = 0x324b, + RequestRealmGuildMasterInfo = 0x5037, + RequestScheduledPvpInfo = 0x3196, + RequestStabledPets = 0x3498, + RequestVehicleExit = 0x3249, + RequestVehicleNextSeat = 0x324b, + RequestVehiclePrevSeat = 0x324a, + RequestVehicleSwitchSeat = 0x324c, RequestWeeklyRewards = 0x33bd, RequestWorldQuestUpdate = 0x3378, - ResetChallengeMode = 0x3204, - ResetChallengeModeCheat = 0x3205, - ResetInstances = 0x3668, - ResurrectResponse = 0x3683, + ResetChallengeMode = 0x3205, + ResetChallengeModeCheat = 0x3206, + ResetInstances = 0x3665, + ResurrectResponse = 0x3680, RevertMonumentAppearance = 0x3336, - RideVehicleInteract = 0x324c, - RpeResetCharacter = 0x374f, - SaveAccountDataExport = 0x3749, - SaveCufProfiles = 0x318a, - SaveEquipmentSet = 0x3519, - SaveGuildEmblem = 0x32c8, - SavePersonalEmblem = 0x32c9, - ScenePlaybackCanceled = 0x322c, - ScenePlaybackComplete = 0x322b, - SceneTriggerEvent = 0x322d, - SelfRes = 0x3545, - SellAllJunkItems = 0x34a9, - SellItem = 0x34a8, - SendCharacterClubInvitation = 0x36f7, - SendContactList = 0x36cd, + RideVehicleInteract = 0x324d, + RpeResetCharacter = 0x374c, + SaveAccountDataExport = 0x3746, + SaveCufProfiles = 0x318b, + SaveEquipmentSet = 0x351a, + SaveGuildEmblem = 0x32c9, + SavePersonalEmblem = 0x32ca, + ScenePlaybackCanceled = 0x322d, + ScenePlaybackComplete = 0x322c, + SceneTriggerEvent = 0x322e, + SelfRes = 0x3546, + SellAllJunkItems = 0x34aa, + SellItem = 0x34a9, + SendCharacterClubInvitation = 0x36f4, + SendContactList = 0x36ca, SendMail = 0x35fa, - SendPingUnit = 0x3432, - SendPingWorldPoint = 0x3433, + SendPingUnit = 0x3433, + SendPingWorldPoint = 0x3434, SendTextEmote = 0x348e, - ServerTimeOffsetRequest = 0x369b, - SetAchievementsHidden = 0x3232, - SetActionBarToggles = 0x3546, - SetActionButton = 0x3636, + ServerTimeOffsetRequest = 0x3698, + SetAchievementsHidden = 0x3233, + SetActionBarToggles = 0x3547, + SetActionButton = 0x3633, SetActiveMover = 0x3a3c, SetAdvancedCombatLogging = 0x32d7, - SetAssistantLeader = 0x364f, + SetAssistantLeader = 0x364c, SetBackpackAutosortDisabled = 0x3356, SetBackpackSellJunkDisabled = 0x3357, SetBankAutosortDisabled = 0x3358, - SetContactNotes = 0x36d0, - SetCurrencyFlags = 0x3168, - SetDifficultyId = 0x322e, - SetDungeonDifficulty = 0x3682, - SetEmpowerMinHoldStagePercent = 0x3282, + SetContactNotes = 0x36cd, + SetCurrencyFlags = 0x3169, + SetDifficultyId = 0x322f, + SetDungeonDifficulty = 0x367f, + SetEmpowerMinHoldStagePercent = 0x3283, SetEveryoneIsAssistant = 0x3619, - SetExcludedChatCensorSources = 0x3705, - SetFactionAtWar = 0x34ed, - SetFactionInactive = 0x34ef, - SetFactionNotAtWar = 0x34ee, - SetGameEventDebugViewState = 0x31b8, + SetExcludedChatCensorSources = 0x3702, + SetFactionAtWar = 0x34ee, + SetFactionInactive = 0x34f0, + SetFactionNotAtWar = 0x34ef, + SetGameEventDebugViewState = 0x31b9, SetInsertItemsLeftToRight = 0x335a, - SetLootMethod = 0x3648, - SetLootSpecialization = 0x3553, - SetPartyAssignment = 0x3651, - SetPartyLeader = 0x364a, + SetLootMethod = 0x3645, + SetLootSpecialization = 0x3554, + SetPartyAssignment = 0x364e, + SetPartyLeader = 0x3647, + SetPetFavorite = 0x3168, SetPetSlot = 0x3167, - SetPlayerDeclinedNames = 0x3688, - SetPreferredCemetery = 0x3177, - SetPvp = 0x32cd, - SetRaidDifficulty = 0x36d9, + SetPlayerDeclinedNames = 0x3685, + SetPreferredCemetery = 0x3178, + SetPvp = 0x32ce, + SetRaidDifficulty = 0x36d6, SetRestrictPingsToAssistants = 0x361a, SetRole = 0x35d9, - SetSavedInstanceExtend = 0x3686, - SetSelection = 0x353c, + SetSavedInstanceExtend = 0x3683, + SetSelection = 0x353d, SetSheathed = 0x348f, SetSortBagsRightToLeft = 0x3359, - SetTaxiBenchmarkMode = 0x3502, - SetTitle = 0x3299, + SetTaxiBenchmarkMode = 0x3503, + SetTitle = 0x329a, SetTradeCurrency = 0x3160, SetTradeGold = 0x315f, SetTradeItem = 0x315d, SetUsingPartyGarrison = 0x3317, - SetWarMode = 0x32ce, - SetWatchedFaction = 0x34f0, - ShowTradeSkill = 0x36c0, - SignPetition = 0x3547, - SilencePartyTalker = 0x3652, - SocialContractRequest = 0x3744, - SocketGems = 0x34fa, + SetWarMode = 0x32cf, + SetWatchedFaction = 0x34f1, + ShowTradeSkill = 0x36bd, + SignPetition = 0x3548, + SilencePartyTalker = 0x364f, + SocialContractRequest = 0x3741, + SocketGems = 0x34fb, SortBags = 0x335b, SortBankBags = 0x335c, SortReagentBankBags = 0x335d, - SpawnTrackingUpdate = 0x32ae, - SpectateChange = 0x342a, - SpellClick = 0x349b, - SpellEmpowerRelease = 0x3280, - SpellEmpowerRestart = 0x3281, - SpiritHealerActivate = 0x34b6, - SplitGuildBankItem = 0x34c9, - SplitGuildBankItemToInventory = 0x34c6, + SpawnTrackingUpdate = 0x32af, + SpectateChange = 0x342b, + SpellClick = 0x349c, + SpellEmpowerRelease = 0x3281, + SpellEmpowerRestart = 0x3282, + SpiritHealerActivate = 0x34b7, + SplitGuildBankItem = 0x34ca, + SplitGuildBankItemToInventory = 0x34c7, SplitItem = 0x399e, - SplitItemToGuildBank = 0x34c4, - StandStateChange = 0x3188, - StartChallengeMode = 0x355f, + SplitItemToGuildBank = 0x34c5, + StandStateChange = 0x3189, + StartChallengeMode = 0x3560, StartSpectatorWarGame = 0x35df, StartWarGame = 0x35de, - StoreGuildBankItem = 0x34bf, - SubmitUserFeedback = 0x3693, + StoreGuildBankItem = 0x34c0, + SubmitUserFeedback = 0x3690, SubscriptionInterstitialResponse = 0x33e9, - SummonResponse = 0x366a, - SupportTicketSubmitComplaint = 0x3646, - SurrenderArena = 0x3173, + SummonResponse = 0x3667, + SupportTicketSubmitComplaint = 0x3643, + SurrenderArena = 0x3174, SuspendCommsAck = 0x3778, SuspendTokenResponse = 0x377e, - SwapGuildBankItemWithGuildBankItem = 0x34c1, + SwapGuildBankItemWithGuildBankItem = 0x34c2, SwapInvItem = 0x399d, SwapItem = 0x399c, - SwapItemWithGuildBankItem = 0x34c0, - SwapSubGroups = 0x364d, - SwapVoidItem = 0x31a3, - TabardVendorActivate = 0x32ca, - TalkToGossip = 0x3498, - TaxiNodeStatusQuery = 0x34af, - TaxiQueryAvailableNodes = 0x34b1, - TaxiRequestEarlyLanding = 0x34b3, + SwapItemWithGuildBankItem = 0x34c1, + SwapSubGroups = 0x364a, + SwapVoidItem = 0x31a4, + TabardVendorActivate = 0x32cb, + TalkToGossip = 0x3499, + TaxiNodeStatusQuery = 0x34b0, + TaxiQueryAvailableNodes = 0x34b2, + TaxiRequestEarlyLanding = 0x34b4, TimeAdjustmentResponse = 0x3a40, TimeSyncResponse = 0x3a3d, TimeSyncResponseDropped = 0x3a3f, TimeSyncResponseFailed = 0x3a3e, - ToggleDifficulty = 0x3657, - TogglePvp = 0x32cc, - TotemDestroyed = 0x3507, + ToggleDifficulty = 0x3654, + TogglePvp = 0x32cd, + TotemDestroyed = 0x3508, ToyClearFanfare = 0x3128, TradeSkillSetFavorite = 0x3376, - TrainerBuySpell = 0x34b5, - TrainerList = 0x34b4, - TraitsCommitConfig = 0x3412, - TraitsTalentTestUnlearnSpells = 0x3410, - TransmogrifyItems = 0x3196, - TurnInPetition = 0x3549, - Tutorial = 0x36da, + TrainerBuySpell = 0x34b6, + TrainerList = 0x34b5, + TraitsCommitConfig = 0x3413, + TraitsTalentTestUnlearnSpells = 0x3411, + TransmogrifyItems = 0x3197, + TurnInPetition = 0x354a, + Tutorial = 0x36d7, UiMapQuestLinesRequest = 0x33b9, UnacceptTrade = 0x315b, - UndeleteCharacter = 0x36dc, - UnlearnSkill = 0x34f4, - UnlearnSpecialization = 0x31a4, - UnlockVoidStorage = 0x31a0, - UpdateAadcStatus = 0x3738, - UpdateAccountData = 0x3695, - UpdateAreaTriggerVisual = 0x32bb, - UpdateClientSettings = 0x3664, + UndeleteCharacter = 0x36d9, + UnlearnSkill = 0x34f5, + UnlearnSpecialization = 0x31a5, + UnlockVoidStorage = 0x31a1, + UpdateAadcStatus = 0x3735, + UpdateAccountData = 0x3692, + UpdateAreaTriggerVisual = 0x32bc, + UpdateClientSettings = 0x3661, UpdateCraftingNpcRecipes = 0x3329, UpdateMissileTrajectory = 0x3a43, - UpdateRaidTarget = 0x3650, - UpdateSpellVisual = 0x32ba, - UpdateVasPurchaseStates = 0x36f1, + UpdateRaidTarget = 0x364d, + UpdateSpellVisual = 0x32bb, + UpdateVasPurchaseStates = 0x36ee, UpgradeGarrison = 0x32df, UpgradeRuneforgeLegendary = 0x33e7, - UsedFollow = 0x3185, - UseCritterItem = 0x3252, + UsedFollow = 0x3186, + UseCritterItem = 0x3253, UseEquipmentSet = 0x3995, - UseItem = 0x32b4, - UseToy = 0x32b7, - VasCheckTransferOk = 0x370a, - VasGetQueueMinutes = 0x3709, - VasGetServiceStatus = 0x3708, - ViolenceLevel = 0x3183, - VoiceChannelSttTokenRequest = 0x370e, - VoiceChatJoinChannel = 0x370f, - VoiceChatLogin = 0x370d, - VoidStorageTransfer = 0x31a2, + UseItem = 0x32b5, + UseToy = 0x32b8, + VasCheckTransferOk = 0x3707, + VasGetQueueMinutes = 0x3706, + VasGetServiceStatus = 0x3705, + ViolenceLevel = 0x3184, + VoiceChannelSttTokenRequest = 0x370b, + VoiceChatJoinChannel = 0x370c, + VoiceChatLogin = 0x370a, + VoidStorageTransfer = 0x31a3, Warden3Data = 0x35ec, - Who = 0x3681, - WhoIs = 0x3680, - WorldLootObjectClick = 0x342d, + Who = 0x367e, + WhoIs = 0x367d, + WorldLootObjectClick = 0x342e, WorldPortResponse = 0x35f9, WrapItem = 0x3994, - Max = 0x3FFF, + Max = 0x5040, Unknown = 0xbadd } public enum ServerOpcodes : uint { - AbortNewWorld = 0x2597, - AccountCosmeticAdded = 0x2878, - AccountCriteriaUpdate = 0x285e, - AccountDataTimes = 0x2707, - AccountExportResponse = 0x28b5, - AccountMountRemoved = 0x25ae, - AccountMountUpdate = 0x25ad, - AccountNotificationsResponse = 0x2877, - AccountToyUpdate = 0x25af, - AccountTransmogSetFavoritesUpdate = 0x25b3, - AccountTransmogUpdate = 0x25b2, - AchievementDeleted = 0x26e5, - AchievementEarned = 0x2640, + AbortNewWorld = 0x2599, + AccountCosmeticAdded = 0x2879, + AccountCriteriaUpdate = 0x285f, + AccountDataTimes = 0x2709, + AccountExportResponse = 0x28b6, + AccountMountRemoved = 0x25b0, + AccountMountUpdate = 0x25af, + AccountNotificationsResponse = 0x2878, + AccountToyUpdate = 0x25b1, + AccountTransmogSetFavoritesUpdate = 0x25b5, + AccountTransmogUpdate = 0x25b4, + AchievementDeleted = 0x26e7, + AchievementEarned = 0x2642, ActivateEssenceFailed = 0x3015, ActivateSoulbindFailed = 0x3017, - ActivateTaxiReply = 0x267c, + ActivateTaxiReply = 0x267e, ActiveGlyphs = 0x2c56, - ActiveScheduledWorldStateInfo = 0x2743, - AddonListRequest = 0x263f, - AddBattlenetFriendResponse = 0x263a, - AddItemPassive = 0x25a9, - AddLossOfControl = 0x2670, - AddRunePower = 0x26b6, - AdjustSplineDuration = 0x25cf, - AdvancedCombatLog = 0x2874, - AdventureJournalDataResponse = 0x286e, - AeLootTargets = 0x2615, - AeLootTargetAck = 0x2616, - AiReaction = 0x26b3, - AlliedRaceDetails = 0x27f2, + ActiveScheduledWorldStateInfo = 0x2745, + AddonListRequest = 0x2641, + AddBattlenetFriendResponse = 0x263c, + AddItemPassive = 0x25ab, + AddLossOfControl = 0x2672, + AddRunePower = 0x26b8, + AdjustSplineDuration = 0x25d1, + AdvancedCombatLog = 0x2875, + AdventureJournalDataResponse = 0x286f, + AeLootTargets = 0x2617, + AeLootTargetAck = 0x2618, + AiReaction = 0x26b5, + AlliedRaceDetails = 0x27f3, AllAccountCriteria = 0x2571, AllAchievementData = 0x2570, AllGuildAchievements = 0x29b8, - ApplyMountEquipmentResult = 0x284b, - ArchaeologySurveryCast = 0x2586, + ApplyMountEquipmentResult = 0x284c, + ArchaeologySurveryCast = 0x2587, AreaPoiUpdateResponse = 0x3010, - AreaSpiritHealerTime = 0x273c, + AreaSpiritHealerTime = 0x273e, AreaTriggerDenied = 0x2903, AreaTriggerForceSetPositionAndFacing = 0x2900, - AreaTriggerNoCorpse = 0x2713, + AreaTriggerNoCorpse = 0x2715, AreaTriggerPlaySpellVisual = 0x28fe, AreaTriggerRePath = 0x28fd, AreaTriggerReShape = 0x2902, AreaTriggerUnattach = 0x2901, AreaTriggerUpdateDecalProperties = 0x28ff, - ArenaClearOpponents = 0x2646, - ArenaCrowdControlSpellResult = 0x262f, - ArenaPrepOpponentSpecializations = 0x2645, - ArtifactEndgamePowersRefunded = 0x279e, - ArtifactForgeError = 0x279c, - ArtifactRespecPrompt = 0x279d, - ArtifactXpGain = 0x27e5, + ArenaClearOpponents = 0x2648, + ArenaCrowdControlSpellResult = 0x2631, + ArenaPrepOpponentSpecializations = 0x2647, + ArtifactEndgamePowersRefunded = 0x279f, + ArtifactForgeError = 0x279d, + ArtifactRespecPrompt = 0x279e, + ArtifactXpGain = 0x27e6, AttackerStateUpdate = 0x294e, AttackStart = 0x2939, AttackStop = 0x293a, AttackSwingError = 0x2948, AttackSwingLandedLog = 0x2949, - AuctionableTokenAuctionSold = 0x27ce, - AuctionableTokenSellAtMarketPriceResponse = 0x27cd, - AuctionableTokenSellConfirmRequired = 0x27cc, - AuctionClosedNotification = 0x26f0, - AuctionCommandResult = 0x26ed, - AuctionDisableNewPostings = 0x2895, - AuctionFavoriteList = 0x2865, - AuctionGetCommodityQuoteResult = 0x285c, - AuctionHelloResponse = 0x26eb, - AuctionListBiddedItemsResult = 0x285b, - AuctionListBucketsResult = 0x2858, - AuctionListItemsResult = 0x2859, - AuctionListOwnedItemsResult = 0x285a, - AuctionOutbidNotification = 0x26ef, - AuctionOwnerBidNotification = 0x26f1, - AuctionReplicateResponse = 0x26ec, - AuctionWonNotification = 0x26ee, + AuctionableTokenAuctionSold = 0x27cf, + AuctionableTokenSellAtMarketPriceResponse = 0x27ce, + AuctionableTokenSellConfirmRequired = 0x27cd, + AuctionClosedNotification = 0x26f2, + AuctionCommandResult = 0x26ef, + AuctionDisableNewPostings = 0x2896, + AuctionFavoriteList = 0x2866, + AuctionGetCommodityQuoteResult = 0x285d, + AuctionHelloResponse = 0x26ed, + AuctionListBiddedItemsResult = 0x285c, + AuctionListBucketsResult = 0x2859, + AuctionListItemsResult = 0x285a, + AuctionListOwnedItemsResult = 0x285b, + AuctionOutbidNotification = 0x26f1, + AuctionOwnerBidNotification = 0x26f3, + AuctionReplicateResponse = 0x26ee, + AuctionWonNotification = 0x26f0, AuraPointsDepleted = 0x2c22, AuraUpdate = 0x2c21, AuthChallenge = 0x3048, AuthFailed = 0x256c, AuthResponse = 0x256d, AvailableHotfixes = 0x290f, - BackpackDefaultSizeChanged = 0x289a, + BackpackDefaultSizeChanged = 0x289b, BagCleanupFinished = 0x2da7, - BarberShopResult = 0x26bb, - BatchPresenceSubscription = 0x283c, + BarberShopResult = 0x26bd, + BatchPresenceSubscription = 0x283d, BattlefieldList = 0x2927, BattlefieldPortDenied = 0x292d, BattlefieldStatusActive = 0x2923, @@ -975,111 +977,111 @@ namespace Framework.Constants BattlegroundPlayerLeft = 0x292c, BattlegroundPlayerPositions = 0x2928, BattlegroundPoints = 0x294a, - BattlenetChallengeAbort = 0x2786, - BattlenetChallengeStart = 0x2785, - BattlenetNotification = 0x27fe, - BattlenetResponse = 0x27fd, - BattleNetConnectionStatus = 0x27ff, - BattlePayAckFailed = 0x2780, - BattlePayBattlePetDelivered = 0x2775, - BattlePayCollectionItemDelivered = 0x2776, - BattlePayConfirmPurchase = 0x277f, - BattlePayDeliveryEnded = 0x2773, - BattlePayDeliveryStarted = 0x2772, - BattlePayDistributionAssignVasResponse = 0x287d, - BattlePayDistributionUnrevoked = 0x2770, - BattlePayDistributionUpdate = 0x2771, - BattlePayGetDistributionListResponse = 0x276f, - BattlePayGetProductListResponse = 0x276d, - BattlePayGetPurchaseListResponse = 0x276e, - BattlePayMountDelivered = 0x2774, - BattlePayPurchaseUpdate = 0x277e, - BattlePayStartCheckout = 0x281a, - BattlePayStartDistributionAssignToTargetResponse = 0x277c, - BattlePayStartPurchaseResponse = 0x277b, - BattlePayValidatePurchaseResponse = 0x280e, - BattlePetsHealed = 0x25f1, - BattlePetCageDateError = 0x2677, - BattlePetDeleted = 0x25ee, - BattlePetError = 0x2635, - BattlePetJournal = 0x25ed, - BattlePetJournalLockAcquired = 0x25eb, - BattlePetJournalLockDenied = 0x25ec, - BattlePetRestored = 0x25f0, - BattlePetRevoked = 0x25ef, - BattlePetTrapLevel = 0x25e9, - BattlePetUpdates = 0x25e8, + BattlenetChallengeAbort = 0x2787, + BattlenetChallengeStart = 0x2786, + BattlenetNotification = 0x27ff, + BattlenetResponse = 0x27fe, + BattleNetConnectionStatus = 0x2800, + BattlePayAckFailed = 0x2782, + BattlePayBattlePetDelivered = 0x2777, + BattlePayCollectionItemDelivered = 0x2778, + BattlePayConfirmPurchase = 0x2781, + BattlePayDeliveryEnded = 0x2775, + BattlePayDeliveryStarted = 0x2774, + BattlePayDistributionAssignVasResponse = 0x287e, + BattlePayDistributionUnrevoked = 0x2772, + BattlePayDistributionUpdate = 0x2773, + BattlePayGetDistributionListResponse = 0x2771, + BattlePayGetProductListResponse = 0x276f, + BattlePayGetPurchaseListResponse = 0x2770, + BattlePayMountDelivered = 0x2776, + BattlePayPurchaseUpdate = 0x2780, + BattlePayStartCheckout = 0x281b, + BattlePayStartDistributionAssignToTargetResponse = 0x277e, + BattlePayStartPurchaseResponse = 0x277d, + BattlePayValidatePurchaseResponse = 0x280f, + BattlePetsHealed = 0x25f3, + BattlePetCageDateError = 0x2679, + BattlePetDeleted = 0x25f0, + BattlePetError = 0x2637, + BattlePetJournal = 0x25ef, + BattlePetJournalLockAcquired = 0x25ed, + BattlePetJournalLockDenied = 0x25ee, + BattlePetRestored = 0x25f2, + BattlePetRevoked = 0x25f1, + BattlePetTrapLevel = 0x25eb, + BattlePetUpdates = 0x25ea, BindPointUpdate = 0x257d, - BlackMarketBidOnItemResult = 0x2625, - BlackMarketOutbid = 0x2626, - BlackMarketRequestItemsResult = 0x2624, - BlackMarketWon = 0x2627, - BonusRollEmpty = 0x2642, + BlackMarketBidOnItemResult = 0x2627, + BlackMarketOutbid = 0x2628, + BlackMarketRequestItemsResult = 0x2626, + BlackMarketWon = 0x2629, + BonusRollEmpty = 0x2644, BossKill = 0x294d, BreakTarget = 0x2938, BroadcastAchievement = 0x2bbc, - BroadcastSummonCast = 0x283e, - BroadcastSummonResponse = 0x283f, - BuyFailed = 0x26c4, - BuySucceeded = 0x26c3, + BroadcastSummonCast = 0x283f, + BroadcastSummonResponse = 0x2840, + BuyFailed = 0x26c6, + BuySucceeded = 0x26c5, CacheInfo = 0x291d, CacheVersion = 0x291c, - CalendarClearPendingAction = 0x269c, - CalendarCommandResult = 0x269d, - CalendarCommunityInvite = 0x268c, - CalendarEventRemovedAlert = 0x2694, - CalendarEventUpdatedAlert = 0x2695, - CalendarInviteAdded = 0x268d, - CalendarInviteAlert = 0x2691, - CalendarInviteNotes = 0x2696, - CalendarInviteNotesAlert = 0x2697, - CalendarInviteRemoved = 0x268e, - CalendarInviteRemovedAlert = 0x2693, - CalendarInviteStatus = 0x268f, - CalendarInviteStatusAlert = 0x2692, - CalendarModeratorStatus = 0x2690, - CalendarRaidLockoutAdded = 0x2698, - CalendarRaidLockoutRemoved = 0x2699, - CalendarRaidLockoutUpdated = 0x269a, - CalendarSendCalendar = 0x268a, - CalendarSendEvent = 0x268b, - CalendarSendNumPending = 0x269b, - CameraEffect = 0x2722, - CancelAutoRepeat = 0x26db, + CalendarClearPendingAction = 0x269e, + CalendarCommandResult = 0x269f, + CalendarCommunityInvite = 0x268e, + CalendarEventRemovedAlert = 0x2696, + CalendarEventUpdatedAlert = 0x2697, + CalendarInviteAdded = 0x268f, + CalendarInviteAlert = 0x2693, + CalendarInviteNotes = 0x2698, + CalendarInviteNotesAlert = 0x2699, + CalendarInviteRemoved = 0x2690, + CalendarInviteRemovedAlert = 0x2695, + CalendarInviteStatus = 0x2691, + CalendarInviteStatusAlert = 0x2694, + CalendarModeratorStatus = 0x2692, + CalendarRaidLockoutAdded = 0x269a, + CalendarRaidLockoutRemoved = 0x269b, + CalendarRaidLockoutUpdated = 0x269c, + CalendarSendCalendar = 0x268c, + CalendarSendEvent = 0x268d, + CalendarSendNumPending = 0x269d, + CameraEffect = 0x2724, + CancelAutoRepeat = 0x26dd, CancelCombat = 0x2947, CancelOrphanSpellVisual = 0x2c48, - CancelPingPin = 0x25a2, - CancelPreloadWorld = 0x2595, - CancelScene = 0x2634, + CancelPingPin = 0x25a4, + CancelPreloadWorld = 0x2597, + CancelScene = 0x2636, CancelSpellVisual = 0x2c46, CancelSpellVisualKit = 0x2c4a, CanDuelResult = 0x2943, - CanRedeemTokenForBalanceResponse = 0x280d, + CanRedeemTokenForBalanceResponse = 0x280e, CapturePointRemoved = 0x292a, CastFailed = 0x2c59, - ChainMissileBounce = 0x25c7, - ChallengeModeComplete = 0x2608, - ChallengeModeRequestLeadersResult = 0x260d, - ChallengeModeReset = 0x2607, - ChallengeModeStart = 0x2605, - ChallengeModeUpdateDeathCount = 0x2606, + ChainMissileBounce = 0x25c9, + ChallengeModeComplete = 0x260a, + ChallengeModeRequestLeadersResult = 0x260f, + ChallengeModeReset = 0x2609, + ChallengeModeStart = 0x2607, + ChallengeModeUpdateDeathCount = 0x2608, ChangePlayerDifficultyResult = 0x3004, - ChangeRealmTicketResponse = 0x2800, + ChangeRealmTicketResponse = 0x2801, ChannelList = 0x2bc4, ChannelNotify = 0x2bc1, ChannelNotifyJoined = 0x2bc2, ChannelNotifyLeft = 0x2bc3, - CharacterCheckUpgradeResult = 0x27b9, - CharacterLoginFailed = 0x2702, - CharacterObjectTestResponse = 0x2784, - CharacterRenameResult = 0x275f, - CharacterUpgradeAborted = 0x27b8, - CharacterUpgradeComplete = 0x27b7, - CharacterUpgradeManualUnrevokeResult = 0x27ba, - CharacterUpgradeStarted = 0x27b6, - CharCustomizeFailure = 0x26df, - CharCustomizeSuccess = 0x26e0, - CharFactionChangeResult = 0x27a3, + CharacterCheckUpgradeResult = 0x27ba, + CharacterLoginFailed = 0x2704, + CharacterObjectTestResponse = 0x2785, + CharacterRenameResult = 0x2761, + CharacterUpgradeAborted = 0x27b9, + CharacterUpgradeComplete = 0x27b8, + CharacterUpgradeManualUnrevokeResult = 0x27bb, + CharacterUpgradeStarted = 0x27b7, + CharCustomizeFailure = 0x26e1, + CharCustomizeSuccess = 0x26e2, + CharFactionChangeResult = 0x27a4, Chat = 0x2bad, ChatAutoResponded = 0x2bb8, ChatCanLocalWhisperTargetResponse = 0x2bcb, @@ -1095,99 +1097,98 @@ namespace Framework.Constants ChatServerMessage = 0x2bc5, CheatIgnoreDimishingReturns = 0x2c12, CheckAbandonNpe = 0x3018, - CheckCharacterNameAvailabilityResult = 0x2584, - CheckWargameEntry = 0x258f, - ChromieTimeSelectExpansionSuccess = 0x2868, - ClaimRafRewardResponse = 0x284f, + CheckCharacterNameAvailabilityResult = 0x2585, + CheckWargameEntry = 0x2591, + ChromieTimeSelectExpansionSuccess = 0x2869, + ClaimRafRewardResponse = 0x2850, ClearAllSpellCharges = 0x2c26, - ClearBossEmotes = 0x25ba, - ClearCooldown = 0x26b8, + ClearBossEmotes = 0x25bc, + ClearCooldown = 0x26ba, ClearCooldowns = 0x2c25, ClearResurrect = 0x257f, ClearSpellCharges = 0x2c27, ClearTarget = 0x2944, ClearTreasurePickerCache = 0x2aa1, - CloseArtifactForge = 0x279b, - ClubFinderErrorMessage = 0x2847, - ClubFinderGetClubPostingIdsResponse = 0x284a, - ClubFinderLookupClubPostingsList = 0x2848, - ClubFinderResponseCharacterApplicationList = 0x2845, - ClubFinderResponsePostRecruitmentMessage = 0x2849, - ClubFinderUpdateApplications = 0x2846, - ClubFinderWhisperApplicantResponse = 0x288b, - CoinRemoved = 0x2614, + CloseArtifactForge = 0x279c, + ClubFinderErrorMessage = 0x2848, + ClubFinderGetClubPostingIdsResponse = 0x284b, + ClubFinderLookupClubPostingsList = 0x2849, + ClubFinderResponseCharacterApplicationList = 0x2846, + ClubFinderResponsePostRecruitmentMessage = 0x284a, + ClubFinderUpdateApplications = 0x2847, + ClubFinderWhisperApplicantResponse = 0x288c, + CoinRemoved = 0x2616, CombatEventFailed = 0x293b, - CommentatorMapInfo = 0x2704, - CommentatorPlayerInfo = 0x2705, - CommentatorStateChanged = 0x2703, - CommerceTokenGetCountResponse = 0x27c9, - CommerceTokenGetLogResponse = 0x27d5, - CommerceTokenGetMarketPriceResponse = 0x27cb, - CommerceTokenUpdate = 0x27ca, - ComplaintResult = 0x26aa, - CompleteShipmentResponse = 0x2794, - ConfirmPartyInvite = 0x280c, + CommentatorMapInfo = 0x2706, + CommentatorPlayerInfo = 0x2707, + CommentatorStateChanged = 0x2705, + CommerceTokenGetCountResponse = 0x27ca, + CommerceTokenGetLogResponse = 0x27d6, + CommerceTokenGetMarketPriceResponse = 0x27cc, + CommerceTokenUpdate = 0x27cb, + ComplaintResult = 0x26ac, + CompleteShipmentResponse = 0x2795, + ConfirmPartyInvite = 0x280d, ConnectTo = 0x304d, - ConquestFormulaConstants = 0x2781, - ConsoleWrite = 0x2632, - ConsumableTokenBuyAtMarketPriceResponse = 0x27d1, - ConsumableTokenBuyChoiceRequired = 0x27d0, - ConsumableTokenCanVeteranBuyResponse = 0x27cf, - ConsumableTokenRedeemConfirmRequired = 0x27d3, - ConsumableTokenRedeemResponse = 0x27d4, - ContactList = 0x2782, - ContributionLastUpdateResponse = 0x2813, - ControlUpdate = 0x2644, - ConvertItemsToCurrencyValue = 0x2871, - CooldownCheat = 0x2735, - CooldownEvent = 0x26b7, - CorpseLocation = 0x264c, - CorpseReclaimDelay = 0x2746, - CorpseTransportQuery = 0x270f, + ConsoleWrite = 0x2634, + ConsumableTokenBuyAtMarketPriceResponse = 0x27d2, + ConsumableTokenBuyChoiceRequired = 0x27d1, + ConsumableTokenCanVeteranBuyResponse = 0x27d0, + ConsumableTokenRedeemConfirmRequired = 0x27d4, + ConsumableTokenRedeemResponse = 0x27d5, + ContactList = 0x2783, + ContributionLastUpdateResponse = 0x2814, + ControlUpdate = 0x2646, + ConvertItemsToCurrencyValue = 0x2872, + CooldownCheat = 0x2737, + CooldownEvent = 0x26b9, + CorpseLocation = 0x264e, + CorpseReclaimDelay = 0x2748, + CorpseTransportQuery = 0x2711, CovenantCallingsAvailabilityResponse = 0x2aa3, - CovenantPreviewOpenNpc = 0x27f5, - CovenantRenownSendCatchupState = 0x2872, - CraftingHouseHelloResponse = 0x28a8, - CraftingOrderCancelResult = 0x28a4, - CraftingOrderClaimResult = 0x28a0, - CraftingOrderCraftResult = 0x28a2, - CraftingOrderCreateResult = 0x289e, - CraftingOrderFulfillResult = 0x28a3, - CraftingOrderListOrdersResponse = 0x289f, - CraftingOrderRejectResult = 0x28a6, - CraftingOrderReleaseResult = 0x28a1, - CraftingOrderUpdateState = 0x28a9, - CraftEnchantResult = 0x28a7, - CreateChar = 0x26fe, - CreateShipmentResponse = 0x2793, - CreatorVisualsOverride = 0x28ac, - CriteriaDeleted = 0x26e4, - CriteriaUpdate = 0x26de, - CrossedInebriationThreshold = 0x26bf, - CustomLoadScreen = 0x25ca, + CovenantPreviewOpenNpc = 0x27f6, + CovenantRenownSendCatchupState = 0x2873, + CraftingHouseHelloResponse = 0x28a9, + CraftingOrderCancelResult = 0x28a5, + CraftingOrderClaimResult = 0x28a1, + CraftingOrderCraftResult = 0x28a3, + CraftingOrderCreateResult = 0x289f, + CraftingOrderFulfillResult = 0x28a4, + CraftingOrderListOrdersResponse = 0x28a0, + CraftingOrderRejectResult = 0x28a7, + CraftingOrderReleaseResult = 0x28a2, + CraftingOrderUpdateState = 0x28aa, + CraftEnchantResult = 0x28a8, + CreateChar = 0x2700, + CreateShipmentResponse = 0x2794, + CreatorVisualsOverride = 0x28ad, + CriteriaDeleted = 0x26e6, + CriteriaUpdate = 0x26e0, + CrossedInebriationThreshold = 0x26c1, + CustomLoadScreen = 0x25cc, DailyQuestsReset = 0x2a80, DamageCalcLog = 0x2c65, DbReply = 0x290e, - DeathReleaseLoc = 0x26d1, - DebugMenuManagerFullUpdate = 0x2654, + DeathReleaseLoc = 0x26d3, + DebugMenuManagerFullUpdate = 0x2656, DefenseMessage = 0x2bb6, - DeleteChar = 0x26ff, + DeleteChar = 0x2701, DeleteExpiredMissionsResult = 0x2980, - DestroyArenaUnit = 0x273e, - DestructibleBuildingDamage = 0x26f6, - DifferentInstanceFromParty = 0x2589, - DisenchantCredit = 0x25a6, + DestroyArenaUnit = 0x2740, + DestructibleBuildingDamage = 0x26f8, + DifferentInstanceFromParty = 0x258a, + DisenchantCredit = 0x25a8, DismountResult = 0x257c, DispelFailed = 0x2c2f, - DisplayGameError = 0x259c, + DisplayGameError = 0x259e, DisplayPlayerChoice = 0x2ffc, - DisplayPromotion = 0x2649, + DisplayPromotion = 0x264b, DisplayQuestPopup = 0x2a9e, - DisplaySoulbindUpdateMessage = 0x2876, - DisplayToast = 0x2621, - DisplayWorldText = 0x27e6, + DisplaySoulbindUpdateMessage = 0x2877, + DisplayToast = 0x2623, + DisplayWorldText = 0x27e7, DisplayWorldTextOnTarget = 0x2c64, - DontAutoPushSpellsToActionBar = 0x25df, + DontAutoPushSpellsToActionBar = 0x25e1, DropNewConnection = 0x304c, DuelArranged = 0x293d, DuelComplete = 0x2941, @@ -1196,52 +1197,53 @@ namespace Framework.Constants DuelOutOfBounds = 0x293e, DuelRequested = 0x293c, DuelWinner = 0x2942, - DurabilityDamageDeath = 0x2741, - Emote = 0x27c0, - EnableBarberShop = 0x26ba, - EnchantmentLog = 0x2710, - EncounterEnd = 0x277a, - EncounterStart = 0x2779, - EndLightningStorm = 0x26a7, - EnsureWorldLoaded = 0x2885, + DurabilityDamageDeath = 0x2743, + Emote = 0x27c1, + EnableBarberShop = 0x26bc, + EnchantmentLog = 0x2712, + EncounterEnd = 0x277c, + EncounterStart = 0x277b, + EndLightningStorm = 0x26a9, + EnsureWorldLoaded = 0x2886, EnterEncryptedMode = 0x3049, - EnumCharactersResult = 0x2583, - EnumVasPurchaseStatesResponse = 0x27eb, + EnumCharactersResult = 0x2584, + EnumVasPurchaseStatesResponse = 0x27ec, EnvironmentalDamageLog = 0x2c1e, - EquipmentSetId = 0x26b0, + EquipmentSetId = 0x26b2, ExpectedSpamRecords = 0x2bb1, - ExplorationExperience = 0x275b, - ExternalTransactionIdGenerated = 0x286f, - FactionBonusInfo = 0x2721, + ExplorationExperience = 0x275d, + ExternalTransactionIdGenerated = 0x2870, + FactionBonusInfo = 0x2723, FailedPlayerCondition = 0x2ffa, - FailedQuestTurnIn = 0x2809, - FeatureSystemStatus = 0x25be, - FeatureSystemStatusGlueScreen = 0x25bf, - FeignDeathResisted = 0x2740, - FishEscaped = 0x26ce, - FishNotHooked = 0x26cd, + FailedQuestTurnIn = 0x280a, + FeatureSystemStatus = 0x25c0, + FeatureSystemStatus2 = 0x28c1, + FeatureSystemStatusGlueScreen = 0x25c1, + FeignDeathResisted = 0x2742, + FishEscaped = 0x26d0, + FishNotHooked = 0x26cf, FlightSplineSync = 0x2e2b, FlushCombatLogFile = 0x2c20, - ForcedDeathUpdate = 0x26d2, - ForceAnim = 0x274d, - ForceAnimations = 0x274e, - ForceObjectRelink = 0x2648, - ForceRandomTransmogToast = 0x25b1, - FriendStatus = 0x2783, - GainMawPower = 0x27da, - GameObjectActivateAnimKit = 0x25c2, - GameObjectBase = 0x2820, - GameObjectCloseInteraction = 0x2889, - GameObjectCustomAnim = 0x25c3, - GameObjectDespawn = 0x25c4, - GameObjectInteraction = 0x2888, + ForcedDeathUpdate = 0x26d4, + ForceAnim = 0x274f, + ForceAnimations = 0x2750, + ForceObjectRelink = 0x264a, + ForceRandomTransmogToast = 0x25b3, + FriendStatus = 0x2784, + GainMawPower = 0x27db, + GameObjectActivateAnimKit = 0x25c4, + GameObjectBase = 0x2821, + GameObjectCloseInteraction = 0x288a, + GameObjectCustomAnim = 0x25c5, + GameObjectDespawn = 0x25c6, + GameObjectInteraction = 0x2889, GameObjectPlaySpellVisual = 0x2c4d, GameObjectPlaySpellVisualKit = 0x2c4c, - GameObjectResetState = 0x271b, - GameObjectSetStateLocal = 0x27fc, - GameSpeedSet = 0x2680, - GameTimeSet = 0x2709, - GameTimeUpdate = 0x2708, + GameObjectResetState = 0x271d, + GameObjectSetStateLocal = 0x27fd, + GameSpeedSet = 0x2682, + GameTimeSet = 0x270b, + GameTimeUpdate = 0x270a, GarrisonActivateMissionBonusAbility = 0x2982, GarrisonAddEvent = 0x29a6, GarrisonAddFollowerResult = 0x2974, @@ -1312,143 +1314,143 @@ namespace Framework.Constants GarrisonUpdateMissionCheatResult = 0x29ae, GarrisonUpgradeResult = 0x296b, GarrisonUseRecallPortalResult = 0x297d, - GenerateRandomCharacterNameResult = 0x2585, - GenerateSsoTokenResponse = 0x2814, - GetAccountCharacterListResult = 0x275d, + GenerateRandomCharacterNameResult = 0x2586, + GenerateSsoTokenResponse = 0x2815, + GetAccountCharacterListResult = 0x275f, GetGarrisonInfoResult = 0x295e, - GetLandingPageShipmentsResponse = 0x2796, - GetRealmHiddenResult = 0x28ba, - GetRemainingGameTimeResponse = 0x27d2, - GetSelectedTrophyIdResponse = 0x27be, - GetShipmentsOfTypeResponse = 0x2795, - GetShipmentInfoResponse = 0x2791, - GetTrophyListResponse = 0x27bd, - GetVasAccountCharacterListResult = 0x27e7, - GetVasTransferTargetRealmListResult = 0x27e8, + GetLandingPageShipmentsResponse = 0x2797, + GetRealmHiddenResult = 0x28bb, + GetRemainingGameTimeResponse = 0x27d3, + GetSelectedTrophyIdResponse = 0x27bf, + GetShipmentsOfTypeResponse = 0x2796, + GetShipmentInfoResponse = 0x2792, + GetTrophyListResponse = 0x27be, + GetVasAccountCharacterListResult = 0x27e8, + GetVasTransferTargetRealmListResult = 0x27e9, GmPlayerInfo = 0x3005, GmRequestPlayerInfo = 0x2ffb, - GmTicketCaseStatus = 0x26a2, - GmTicketSystemStatus = 0x26a1, - GodMode = 0x26f9, + GmTicketCaseStatus = 0x26a4, + GmTicketSystemStatus = 0x26a3, + GodMode = 0x26fb, GossipComplete = 0x2a97, GossipMessage = 0x2a98, GossipOptionNpcInteraction = 0x2aa7, - GossipPoi = 0x278e, + GossipPoi = 0x278f, GossipQuestUpdate = 0x2a99, GossipRefreshOptions = 0x2aa6, - GroupActionThrottled = 0x258d, - GroupAutoKick = 0x278b, - GroupDecline = 0x2787, - GroupDestroyed = 0x278a, - GroupNewLeader = 0x262a, - GroupRequestDecline = 0x2788, - GroupUninvite = 0x2789, - GuildAchievementDeleted = 0x29c5, - GuildAchievementEarned = 0x29c4, - GuildAchievementMembers = 0x29c7, - GuildBankLogQueryResults = 0x29df, - GuildBankQueryResults = 0x29de, - GuildBankRemainingWithdrawMoney = 0x29e0, - GuildBankTextQueryResult = 0x29e3, - GuildChallengeCompleted = 0x29d3, - GuildChallengeUpdate = 0x29d2, - GuildChangeNameResult = 0x29dd, + GroupActionThrottled = 0x258e, + GroupAutoKick = 0x278c, + GroupDecline = 0x2788, + GroupDestroyed = 0x278b, + GroupNewLeader = 0x262c, + GroupRequestDecline = 0x2789, + GroupUninvite = 0x278a, + GuildAchievementDeleted = 0x29c6, + GuildAchievementEarned = 0x29c5, + GuildAchievementMembers = 0x29c8, + GuildBankLogQueryResults = 0x29e0, + GuildBankQueryResults = 0x29df, + GuildBankRemainingWithdrawMoney = 0x29e1, + GuildBankTextQueryResult = 0x29e4, + GuildChallengeCompleted = 0x29d4, + GuildChallengeUpdate = 0x29d3, + GuildChangeNameResult = 0x29de, GuildCommandResult = 0x29ba, - GuildCriteriaDeleted = 0x29c6, - GuildCriteriaUpdate = 0x29c3, - GuildEventBankContentsChanged = 0x29f8, - GuildEventBankMoneyChanged = 0x29f7, - GuildEventDisbanded = 0x29ed, - GuildEventLogQueryResults = 0x29e2, - GuildEventMotd = 0x29ee, - GuildEventNewLeader = 0x29ec, - GuildEventPlayerJoined = 0x29ea, - GuildEventPlayerLeft = 0x29eb, - GuildEventPresenceChange = 0x29ef, - GuildEventRanksUpdated = 0x29f1, - GuildEventRankChanged = 0x29f2, - GuildEventStatusChange = 0x29f0, - GuildEventTabAdded = 0x29f3, - GuildEventTabDeleted = 0x29f4, - GuildEventTabModified = 0x29f5, - GuildEventTabTextChanged = 0x29f6, - GuildFlaggedForRename = 0x29dc, - GuildInvite = 0x29ca, - GuildInviteDeclined = 0x29e8, - GuildInviteExpired = 0x29e9, - GuildItemLootedNotify = 0x29d4, - GuildKnownRecipes = 0x29be, - GuildMembersWithRecipe = 0x29bf, - GuildMemberDailyReset = 0x29e4, - GuildMemberRecipes = 0x29bd, - GuildMemberUpdateNote = 0x29c9, - GuildMoved = 0x29da, - GuildMoveStarting = 0x29d9, - GuildNameChanged = 0x29db, - GuildNews = 0x29c1, - GuildNewsDeleted = 0x29c2, - GuildPartyState = 0x29cb, - GuildPermissionsQueryResults = 0x29e1, - GuildRanks = 0x29c8, - GuildReputationReactionChanged = 0x29cc, - GuildReset = 0x29d8, - GuildRewardList = 0x29c0, + GuildCriteriaDeleted = 0x29c7, + GuildCriteriaUpdate = 0x29c4, + GuildEventBankContentsChanged = 0x29f9, + GuildEventBankMoneyChanged = 0x29f8, + GuildEventDisbanded = 0x29ee, + GuildEventLogQueryResults = 0x29e3, + GuildEventMotd = 0x29ef, + GuildEventNewLeader = 0x29ed, + GuildEventPlayerJoined = 0x29eb, + GuildEventPlayerLeft = 0x29ec, + GuildEventPresenceChange = 0x29f0, + GuildEventRanksUpdated = 0x29f2, + GuildEventRankChanged = 0x29f3, + GuildEventStatusChange = 0x29f1, + GuildEventTabAdded = 0x29f4, + GuildEventTabDeleted = 0x29f5, + GuildEventTabModified = 0x29f6, + GuildEventTabTextChanged = 0x29f7, + GuildFlaggedForRename = 0x29dd, + GuildInvite = 0x29cb, + GuildInviteDeclined = 0x29e9, + GuildInviteExpired = 0x29ea, + GuildItemLootedNotify = 0x29d5, + GuildKnownRecipes = 0x29bf, + GuildMembersWithRecipe = 0x29c0, + GuildMemberDailyReset = 0x29e5, + GuildMemberRecipes = 0x29be, + GuildMemberUpdateNote = 0x29ca, + GuildMoved = 0x29db, + GuildMoveStarting = 0x29da, + GuildNameChanged = 0x29dc, + GuildNews = 0x29c2, + GuildNewsDeleted = 0x29c3, + GuildPartyState = 0x29cc, + GuildPermissionsQueryResults = 0x29e2, + GuildRanks = 0x29c9, + GuildReputationReactionChanged = 0x29cd, + GuildReset = 0x29d9, + GuildRewardList = 0x29c1, GuildRoster = 0x29bb, GuildRosterUpdate = 0x29bc, GuildSendRankChange = 0x29b9, - HealthUpdate = 0x26cf, - HighestThreatUpdate = 0x26d7, + HealthUpdate = 0x26d1, + HighestThreatUpdate = 0x26d9, HotfixConnect = 0x2911, HotfixMessage = 0x2910, - InitializeFactions = 0x2720, + InitializeFactions = 0x2722, InitialSetup = 0x2580, - InitWorldStates = 0x2742, - InspectResult = 0x262e, - InstanceEncounterChangePriority = 0x27a9, - InstanceEncounterDisengageUnit = 0x27a8, - InstanceEncounterEnd = 0x27b1, - InstanceEncounterEngageUnit = 0x27a7, - InstanceEncounterGainCombatResurrectionCharge = 0x27b3, - InstanceEncounterInCombatResurrection = 0x27b2, - InstanceEncounterObjectiveComplete = 0x27ac, - InstanceEncounterObjectiveStart = 0x27ab, - InstanceEncounterObjectiveUpdate = 0x27b0, - InstanceEncounterPhaseShiftChanged = 0x27b4, - InstanceEncounterStart = 0x27ad, - InstanceEncounterTimerStart = 0x27aa, - InstanceEncounterUpdateAllowReleaseInProgress = 0x27af, - InstanceEncounterUpdateSuppressRelease = 0x27ae, - InstanceGroupSizeChanged = 0x26f7, - InstanceInfo = 0x2631, - InstanceReset = 0x2685, - InstanceResetFailed = 0x2686, - InstanceSaveCreated = 0x2778, + InitWorldStates = 0x2744, + InspectResult = 0x2630, + InstanceEncounterChangePriority = 0x27aa, + InstanceEncounterDisengageUnit = 0x27a9, + InstanceEncounterEnd = 0x27b2, + InstanceEncounterEngageUnit = 0x27a8, + InstanceEncounterGainCombatResurrectionCharge = 0x27b4, + InstanceEncounterInCombatResurrection = 0x27b3, + InstanceEncounterObjectiveComplete = 0x27ad, + InstanceEncounterObjectiveStart = 0x27ac, + InstanceEncounterObjectiveUpdate = 0x27b1, + InstanceEncounterPhaseShiftChanged = 0x27b5, + InstanceEncounterStart = 0x27ae, + InstanceEncounterTimerStart = 0x27ab, + InstanceEncounterUpdateAllowReleaseInProgress = 0x27b0, + InstanceEncounterUpdateSuppressRelease = 0x27af, + InstanceGroupSizeChanged = 0x26f9, + InstanceInfo = 0x2633, + InstanceReset = 0x2687, + InstanceResetFailed = 0x2688, + InstanceSaveCreated = 0x277a, InterruptPowerRegen = 0x2c5b, InvalidatePageText = 0x2918, InvalidatePlayer = 0x2fff, - InvalidPromotionCode = 0x274f, + InvalidPromotionCode = 0x2751, InventoryChangeFailure = 0x2da5, - InventoryFixupComplete = 0x280b, - InventoryFullOverflow = 0x281c, - IslandAzeriteGain = 0x2758, - IslandComplete = 0x2759, + InventoryFixupComplete = 0x280c, + InventoryFullOverflow = 0x281d, + IslandAzeriteGain = 0x275a, + IslandComplete = 0x275b, IsQuestCompleteResponse = 0x2a84, - ItemChanged = 0x26e8, - ItemCooldown = 0x27bf, - ItemEnchantTimeUpdate = 0x2751, - ItemExpirePurchaseRefund = 0x259b, - ItemInteractionComplete = 0x2867, - ItemPurchaseRefundResult = 0x2599, - ItemPushResult = 0x2620, - ItemTimeUpdate = 0x2750, - KickReason = 0x2688, - LatencyReportPing = 0x2879, + ItemChanged = 0x26ea, + ItemCooldown = 0x27c0, + ItemEnchantTimeUpdate = 0x2753, + ItemExpirePurchaseRefund = 0x259d, + ItemInteractionComplete = 0x2868, + ItemPurchaseRefundResult = 0x259b, + ItemPushResult = 0x2622, + ItemTimeUpdate = 0x2752, + KickReason = 0x268a, + LatencyReportPing = 0x287a, LearnedSpells = 0x2c4f, - LearnPvpTalentFailed = 0x25d3, - LearnTalentFailed = 0x25d2, - LegacyLootRules = 0x2821, - LevelLinkingResult = 0x284d, - LevelUpInfo = 0x26e6, + LearnPvpTalentFailed = 0x25d5, + LearnTalentFailed = 0x25d4, + LegacyLootRules = 0x2822, + LevelLinkingResult = 0x284e, + LevelUpInfo = 0x26e8, LfgBootPlayer = 0x2a35, LfgDisabled = 0x2a33, LfgExpandSearchPrompt = 0x2a3b, @@ -1476,48 +1478,48 @@ namespace Framework.Constants LfgSlotInvalid = 0x2a30, LfgTeleportDenied = 0x2a32, LfgUpdateStatus = 0x2a24, - LiveRegionAccountRestoreResult = 0x276a, - LiveRegionCharacterCopyResult = 0x2769, - LiveRegionGetAccountCharacterListResult = 0x275e, - LiveRegionKeyBindingsCopyResult = 0x276b, - LoadCufProfiles = 0x25bb, - LoadEquipmentSet = 0x270b, - LobbyMatchmakerLobbyAcquiredServer = 0x288c, - LobbyMatchmakerPartyInfo = 0x288d, - LobbyMatchmakerPartyInviteRejected = 0x288e, - LobbyMatchmakerReceiveInvite = 0x288f, - LoginSetTimeSpeed = 0x270a, - LoginVerifyWorld = 0x2596, - LogoutCancelAck = 0x2684, - LogoutComplete = 0x2683, - LogoutResponse = 0x2682, - LogXpGain = 0x26e2, - LootAllPassed = 0x261e, - LootList = 0x273d, - LootMoneyNotify = 0x2619, - LootRelease = 0x2618, - LootReleaseAll = 0x2617, - LootRemoved = 0x2613, - LootResponse = 0x2612, - LootRoll = 0x261b, - LootRollsComplete = 0x261d, - LootRollWon = 0x261f, - LossOfControlAuraUpdate = 0x266f, - MailCommandResult = 0x2638, - MailListResult = 0x2752, - MailQueryNextTimeResult = 0x2753, + LiveRegionAccountRestoreResult = 0x276c, + LiveRegionCharacterCopyResult = 0x276b, + LiveRegionGetAccountCharacterListResult = 0x2760, + LiveRegionKeyBindingsCopyResult = 0x276d, + LoadCufProfiles = 0x25bd, + LoadEquipmentSet = 0x270d, + LobbyMatchmakerLobbyAcquiredServer = 0x288d, + LobbyMatchmakerPartyInfo = 0x288e, + LobbyMatchmakerPartyInviteRejected = 0x288f, + LobbyMatchmakerReceiveInvite = 0x2890, + LoginSetTimeSpeed = 0x270c, + LoginVerifyWorld = 0x2598, + LogoutCancelAck = 0x2686, + LogoutComplete = 0x2685, + LogoutResponse = 0x2684, + LogXpGain = 0x26e4, + LootAllPassed = 0x2620, + LootList = 0x273f, + LootMoneyNotify = 0x261b, + LootRelease = 0x261a, + LootReleaseAll = 0x2619, + LootRemoved = 0x2615, + LootResponse = 0x2614, + LootRoll = 0x261d, + LootRollsComplete = 0x261f, + LootRollWon = 0x2621, + LossOfControlAuraUpdate = 0x2671, + MailCommandResult = 0x263a, + MailListResult = 0x2754, + MailQueryNextTimeResult = 0x2755, MapObjectivesInit = 0x294c, - MapObjEvents = 0x25c5, - MasterLootCandidateList = 0x261c, - MeetingStoneFailed = 0x2890, + MapObjEvents = 0x25c7, + MasterLootCandidateList = 0x261e, + MeetingStoneFailed = 0x2891, MessageBox = 0x2576, - MinimapPing = 0x26cc, + MinimapPing = 0x26ce, MirrorImageComponentedData = 0x2c14, MirrorImageCreatureData = 0x2c13, - MissileCancel = 0x25c6, - ModifyCooldown = 0x2760, + MissileCancel = 0x25c8, + ModifyCooldown = 0x2762, MountResult = 0x257b, - MovementEnforcementAlert = 0x283d, + MovementEnforcementAlert = 0x283e, MoveAddImpulse = 0x2e32, MoveApplyInertia = 0x2e2e, MoveApplyMovementForce = 0x2e15, @@ -1625,82 +1627,82 @@ namespace Framework.Constants MoveUpdateTeleport = 0x2de1, MoveUpdateTurnRate = 0x2ddd, MoveUpdateWalkSpeed = 0x2dd8, - MultiFloorLeaveFloor = 0x27d7, - MultiFloorNewFloor = 0x27d6, - MythicPlusAllMapStats = 0x2609, - MythicPlusCurrentAffixes = 0x260b, - MythicPlusNewWeekRecord = 0x260f, - MythicPlusSeasonData = 0x260a, - NeutralPlayerFactionSelectResult = 0x25da, - NewDataBuild = 0x28b9, - NewTaxiPath = 0x267d, - NewWorld = 0x2593, + MultiFloorLeaveFloor = 0x27d8, + MultiFloorNewFloor = 0x27d7, + MythicPlusAllMapStats = 0x260b, + MythicPlusCurrentAffixes = 0x260d, + MythicPlusNewWeekRecord = 0x2611, + MythicPlusSeasonData = 0x260c, + NeutralPlayerFactionSelectResult = 0x25dc, + NewDataBuild = 0x28ba, + NewTaxiPath = 0x267f, + NewWorld = 0x2595, NotifyDestLocSpellCast = 0x2c45, - NotifyMissileTrajectoryCollision = 0x26a9, - NotifyMoney = 0x2598, - NotifyReceivedMail = 0x2639, - NpcInteractionOpenResult = 0x2887, - OfferPetitionError = 0x26b4, - OnCancelExpectedRideVehicleAura = 0x26e3, + NotifyMissileTrajectoryCollision = 0x26ab, + NotifyMoney = 0x259a, + NotifyReceivedMail = 0x263b, + NpcInteractionOpenResult = 0x2888, + OfferPetitionError = 0x26b6, + OnCancelExpectedRideVehicleAura = 0x26e5, OnMonsterMove = 0x2dd4, - OpenArtifactForge = 0x279a, + OpenArtifactForge = 0x279b, OpenContainer = 0x2da6, OpenLfgDungeonFinder = 0x2a31, - OpenShipmentNpcResult = 0x2792, - OverrideLight = 0x26b9, - PageText = 0x2716, - PartyCommandResult = 0x278c, - PartyInvite = 0x25bc, - PartyKillLog = 0x2756, - PartyMemberFullState = 0x2755, - PartyMemberPartialState = 0x2754, - PartyNotifyLfgLeaderChange = 0x286d, - PartyUpdate = 0x25f2, - PastTimeEvents = 0x25c1, - PauseMirrorTimer = 0x270d, - PendingRaidLock = 0x26f5, - PerksProgramActivityComplete = 0x2883, - PerksProgramActivityUpdate = 0x287f, - PerksProgramDisabled = 0x2884, - PerksProgramResult = 0x2880, - PerksProgramVendorUpdate = 0x287e, - PetitionAlreadySigned = 0x259e, - PetitionRenameGuildResponse = 0x29fa, - PetitionShowList = 0x26bc, - PetitionShowSignatures = 0x26bd, - PetitionSignResults = 0x2748, - PetActionFeedback = 0x2745, - PetActionSound = 0x269f, - PetBattleChatRestricted = 0x2600, - PetBattleDebugQueueDumpResponse = 0x2674, - PetBattleFinalizeLocation = 0x25f9, - PetBattleFinalRound = 0x25fe, - PetBattleFinished = 0x25ff, - PetBattleFirstRound = 0x25fb, - PetBattleInitialUpdate = 0x25fa, - PetBattleMaxGameLengthWarning = 0x2601, - PetBattlePvpChallenge = 0x25f8, - PetBattleQueueProposeMatch = 0x2636, - PetBattleQueueStatus = 0x2637, - PetBattleReplacementsMade = 0x25fd, - PetBattleRequestFailed = 0x25f7, - PetBattleRoundResult = 0x25fc, - PetBattleSlotUpdates = 0x25ea, + OpenShipmentNpcResult = 0x2793, + OverrideLight = 0x26bb, + PageText = 0x2718, + PartyCommandResult = 0x278d, + PartyInvite = 0x25be, + PartyKillLog = 0x2758, + PartyMemberFullState = 0x2757, + PartyMemberPartialState = 0x2756, + PartyNotifyLfgLeaderChange = 0x286e, + PartyUpdate = 0x25f4, + PastTimeEvents = 0x25c3, + PauseMirrorTimer = 0x270f, + PendingRaidLock = 0x26f7, + PerksProgramActivityComplete = 0x2884, + PerksProgramActivityUpdate = 0x2880, + PerksProgramDisabled = 0x2885, + PerksProgramResult = 0x2881, + PerksProgramVendorUpdate = 0x287f, + PetitionAlreadySigned = 0x25a0, + PetitionRenameGuildResponse = 0x29fb, + PetitionShowList = 0x26be, + PetitionShowSignatures = 0x26bf, + PetitionSignResults = 0x274a, + PetActionFeedback = 0x2747, + PetActionSound = 0x26a1, + PetBattleChatRestricted = 0x2602, + PetBattleDebugQueueDumpResponse = 0x2676, + PetBattleFinalizeLocation = 0x25fb, + PetBattleFinalRound = 0x2600, + PetBattleFinished = 0x2601, + PetBattleFirstRound = 0x25fd, + PetBattleInitialUpdate = 0x25fc, + PetBattleMaxGameLengthWarning = 0x2603, + PetBattlePvpChallenge = 0x25fa, + PetBattleQueueProposeMatch = 0x2638, + PetBattleQueueStatus = 0x2639, + PetBattleReplacementsMade = 0x25ff, + PetBattleRequestFailed = 0x25f9, + PetBattleRoundResult = 0x25fe, + PetBattleSlotUpdates = 0x25ec, PetCastFailed = 0x2c5a, PetClearSpells = 0x2c23, - PetDismissSound = 0x26a0, - PetGodMode = 0x267a, - PetGuids = 0x2701, + PetDismissSound = 0x26a2, + PetGodMode = 0x267c, + PetGuids = 0x2703, PetLearnedSpells = 0x2c51, - PetMode = 0x2588, - PetNameInvalid = 0x26c1, - PetNewlyTamed = 0x2587, + PetMode = 0x2589, + PetNameInvalid = 0x26c3, + PetNewlyTamed = 0x2588, PetSpellsMessage = 0x2c24, - PetStableResult = 0x2592, - PetTameFailure = 0x26b1, + PetStableResult = 0x2594, + PetTameFailure = 0x26b3, PetUnlearnedSpells = 0x2c52, PhaseShiftChange = 0x2578, - PlayedTime = 0x26d3, + PlayedTime = 0x26d5, PlayerAckowledgeArrowCallout = 0x3022, PlayerAzeriteItemEquippedStatusChanged = 0x3014, PlayerAzeriteItemGains = 0x3013, @@ -1712,7 +1714,7 @@ namespace Framework.Constants PlayerHideArrowCallout = 0x3021, PlayerIsAdventureMapPoiValid = 0x3009, PlayerOpenSubscriptionInterstitial = 0x300e, - PlayerSaveGuildEmblem = 0x29f9, + PlayerSaveGuildEmblem = 0x29fa, PlayerSavePersonalEmblem = 0x3023, PlayerShowArrowCallout = 0x3020, PlayerShowGenericWidgetDisplay = 0x301e, @@ -1721,25 +1723,25 @@ namespace Framework.Constants PlayerSkinned = 0x3006, PlayerTutorialHighlightSpell = 0x300d, PlayerTutorialUnhighlightSpell = 0x300c, - PlayMusic = 0x2765, - PlayObjectSound = 0x2766, - PlayOneShotAnimKit = 0x272d, + PlayMusic = 0x2767, + PlayObjectSound = 0x2768, + PlayOneShotAnimKit = 0x272f, PlayOrphanSpellVisual = 0x2c49, - PlayScene = 0x2633, - PlaySound = 0x2764, - PlaySpeakerbotSound = 0x2767, + PlayScene = 0x2635, + PlaySound = 0x2766, + PlaySpeakerbotSound = 0x2769, PlaySpellVisual = 0x2c47, PlaySpellVisualKit = 0x2c4b, - PlayTimeWarning = 0x26fb, + PlayTimeWarning = 0x26fd, Pong = 0x304e, - PowerUpdate = 0x26d0, + PowerUpdate = 0x26d2, PreloadChildMap = 0x2579, - PreloadWorld = 0x2594, - PrepopulateNameCache = 0x2840, - PreRessurect = 0x2763, - PrintNotification = 0x25c9, - ProcResist = 0x2757, - ProfessionGossip = 0x27f7, + PreloadWorld = 0x2596, + PrepopulateNameCache = 0x2841, + PreRessurect = 0x2765, + PrintNotification = 0x25cb, + ProcResist = 0x2759, + ProfessionGossip = 0x27f8, PushSpellToActionBar = 0x2c53, PvpCredit = 0x2946, PvpMatchComplete = 0x2951, @@ -1748,13 +1750,13 @@ namespace Framework.Constants PvpMatchStart = 0x294f, PvpMatchStatistics = 0x2932, PvpOptionsEnabled = 0x2935, - PvpTierRecord = 0x287a, + PvpTierRecord = 0x287b, QueryBattlePetNameResponse = 0x291a, QueryCreatureResponse = 0x2914, QueryGameObjectResponse = 0x2915, QueryGarrisonPetNameResponse = 0x299f, - QueryGuildFollowInfoResponse = 0x29e7, - QueryGuildInfoResponse = 0x29e5, + QueryGuildFollowInfoResponse = 0x29e8, + QueryGuildInfoResponse = 0x29e6, QueryItemTextResponse = 0x291e, QueryNpcTextResponse = 0x2916, QueryPageTextResponse = 0x2917, @@ -1763,8 +1765,8 @@ namespace Framework.Constants QueryPlayerNamesResponse = 0x301b, QueryPlayerNameByCommunityIdResponse = 0x3002, QueryQuestInfoResponse = 0x2a96, - QueryRealmGuildMasterInfoResponse = 0x29e6, - QueryTimeResponse = 0x26e1, + QueryRealmGuildMasterInfoResponse = 0x29e7, + QueryTimeResponse = 0x26e3, QuestCompletionNpcResponse = 0x2a81, QuestConfirmAccept = 0x2a8f, QuestForceRemoved = 0x2a9c, @@ -1783,141 +1785,141 @@ namespace Framework.Constants QuestPoiQueryResponse = 0x2a9d, QuestPoiUpdateResponse = 0x2a9f, QuestPushResult = 0x2a90, - QuestSessionInfoResponse = 0x2863, - QuestSessionReadyCheck = 0x2851, - QuestSessionReadyCheckResponse = 0x2852, - QuestSessionResult = 0x2850, + QuestSessionInfoResponse = 0x2864, + QuestSessionReadyCheck = 0x2852, + QuestSessionReadyCheckResponse = 0x2853, + QuestSessionResult = 0x2851, QuestUpdateAddCredit = 0x2a8c, QuestUpdateAddCreditSimple = 0x2a8d, QuestUpdateAddPvpCredit = 0x2a8e, QuestUpdateComplete = 0x2a89, QuestUpdateFailed = 0x2a8a, QuestUpdateFailedTimer = 0x2a8b, - QueueSummaryUpdate = 0x280a, - RafAccountInfo = 0x284e, - RafActivityStateChanged = 0x285f, - RafDebugFriendMonths = 0x28b6, - RaidDifficultySet = 0x27a4, - RaidGroupOnly = 0x27a6, + QueueSummaryUpdate = 0x280b, + RafAccountInfo = 0x284f, + RafActivityStateChanged = 0x2860, + RafDebugFriendMonths = 0x28b7, + RaidDifficultySet = 0x27a5, + RaidGroupOnly = 0x27a7, RaidInstanceMessage = 0x2bb4, - RaidMarkersChanged = 0x259f, - RandomRoll = 0x262d, + RaidMarkersChanged = 0x25a1, + RandomRoll = 0x262f, RatedPvpInfo = 0x2931, - ReadyCheckCompleted = 0x25f6, - ReadyCheckResponse = 0x25f5, - ReadyCheckStarted = 0x25f4, - ReadItemResultFailed = 0x27a0, - ReadItemResultOk = 0x2797, + ReadyCheckCompleted = 0x25f8, + ReadyCheckResponse = 0x25f7, + ReadyCheckStarted = 0x25f6, + ReadItemResultFailed = 0x27a1, + ReadItemResultOk = 0x2798, RealmQueryResponse = 0x2913, - ReattachResurrect = 0x2747, - ReceivePingUnit = 0x25a0, - ReceivePingWorldPoint = 0x25a1, - RecraftItemResult = 0x28a5, - RecruitAFriendFailure = 0x26be, - RefreshComponent = 0x264e, + ReattachResurrect = 0x2749, + ReceivePingUnit = 0x25a2, + ReceivePingWorldPoint = 0x25a3, + RecraftItemResult = 0x28a6, + RecruitAFriendFailure = 0x26c0, + RefreshComponent = 0x2650, RefreshSpellHistory = 0x2c2b, - RemoveItemPassive = 0x25aa, + RemoveItemPassive = 0x25ac, RemoveSpellFromActionBar = 0x2c54, - ReplaceTrophyResponse = 0x27bc, + ReplaceTrophyResponse = 0x27bd, ReportPvpPlayerAfkResult = 0x3001, - RequestCemeteryListResponse = 0x258e, + RequestCemeteryListResponse = 0x258f, RequestPvpRewardsResponse = 0x2936, RequestScheduledPvpInfoResponse = 0x2937, ResetCompressionContext = 0x304f, - ResetFailedNotify = 0x26b5, - ResetLastLoadedConfigCvars = 0x28ab, + ResetFailedNotify = 0x26b7, + ResetLastLoadedConfigCvars = 0x28ac, ResetQuestPoi = 0x2aa0, ResetRangedCombatTimer = 0x2945, ResetWeeklyCurrency = 0x2575, - RespecWipeConfirm = 0x2610, + RespecWipeConfirm = 0x2612, RespondInspectAchievements = 0x2572, - ResponsePerkPendingRewards = 0x2881, - ResponsePerkRecentPurchases = 0x2882, + ResponsePerkPendingRewards = 0x2882, + ResponsePerkRecentPurchases = 0x2883, RestartGlobalCooldown = 0x2c63, - RestrictedAccountWarning = 0x25b8, + RestrictedAccountWarning = 0x25ba, ResumeCast = 0x2c3d, ResumeCastBar = 0x2c40, ResumeComms = 0x304b, - ResumeToken = 0x25a8, + ResumeToken = 0x25aa, ResurrectRequest = 0x257e, ResyncRunes = 0x2c61, - ReturningPlayerPrompt = 0x279f, - ReturnApplicantList = 0x2844, - ReturnRecruitingClubs = 0x2843, - RoleChangedInform = 0x258a, + ReturningPlayerPrompt = 0x27a0, + ReturnApplicantList = 0x2845, + ReturnRecruitingClubs = 0x2844, + RoleChangedInform = 0x258b, RoleChosen = 0x2a39, - RolePollInform = 0x258b, - RuneforgeLegendaryCraftingOpenNpc = 0x27f6, - RuneRegenDebug = 0x25b5, - ScenarioCompleted = 0x27e4, - ScenarioPois = 0x2630, - ScenarioProgressUpdate = 0x2629, - ScenarioShowCriteria = 0x27fa, - ScenarioState = 0x2628, - ScenarioUiUpdate = 0x27f9, - ScenarioVacate = 0x27a1, - SceneObjectEvent = 0x25e0, - SceneObjectPetBattleFinalRound = 0x25e5, - SceneObjectPetBattleFinished = 0x25e6, - SceneObjectPetBattleFirstRound = 0x25e2, - SceneObjectPetBattleInitialUpdate = 0x25e1, - SceneObjectPetBattleReplacementsMade = 0x25e4, - SceneObjectPetBattleRoundResult = 0x25e3, + RolePollInform = 0x258c, + RuneforgeLegendaryCraftingOpenNpc = 0x27f7, + RuneRegenDebug = 0x25b7, + ScenarioCompleted = 0x27e5, + ScenarioPois = 0x2632, + ScenarioProgressUpdate = 0x262b, + ScenarioShowCriteria = 0x27fb, + ScenarioState = 0x262a, + ScenarioUiUpdate = 0x27fa, + ScenarioVacate = 0x27a2, + SceneObjectEvent = 0x25e2, + SceneObjectPetBattleFinalRound = 0x25e7, + SceneObjectPetBattleFinished = 0x25e8, + SceneObjectPetBattleFirstRound = 0x25e4, + SceneObjectPetBattleInitialUpdate = 0x25e3, + SceneObjectPetBattleReplacementsMade = 0x25e6, + SceneObjectPetBattleRoundResult = 0x25e5, ScriptCast = 0x2c58, - SeasonInfo = 0x25c0, - SellResponse = 0x26c2, - SendItemPassives = 0x25ab, + SeasonInfo = 0x25c2, + SellResponse = 0x26c4, + SendItemPassives = 0x25ad, SendKnownSpells = 0x2c29, - SendRaidTargetUpdateAll = 0x262b, - SendRaidTargetUpdateSingle = 0x262c, + SendRaidTargetUpdateAll = 0x262d, + SendRaidTargetUpdateSingle = 0x262e, SendSpellCharges = 0x2c2c, SendSpellHistory = 0x2c2a, SendUnlearnSpells = 0x2c2d, - ServerFirstAchievements = 0x264b, - ServerTime = 0x2681, - ServerTimeOffset = 0x2711, + ServerFirstAchievements = 0x264d, + ServerTime = 0x2683, + ServerTimeOffset = 0x2713, SetupCombatLogFileFlush = 0x2c1f, SetupCurrency = 0x2573, - SetAiAnimKit = 0x272c, - SetAnimTier = 0x2730, - SetChrUpgradeTier = 0x25dd, + SetAiAnimKit = 0x272e, + SetAnimTier = 0x2732, + SetChrUpgradeTier = 0x25df, SetCurrency = 0x2574, SetDfFastLaunchResult = 0x2a2e, - SetDungeonDifficulty = 0x26a3, - SetFactionAtWar = 0x26fd, - SetFactionNotVisible = 0x2727, - SetFactionStanding = 0x2728, - SetFactionVisible = 0x2726, + SetDungeonDifficulty = 0x26a5, + SetFactionAtWar = 0x26ff, + SetFactionNotVisible = 0x2729, + SetFactionStanding = 0x272a, + SetFactionVisible = 0x2728, SetFlatSpellModifier = 0x2c38, - SetForcedReactions = 0x271a, - SetItemPurchaseData = 0x259a, - SetLootMethodFailed = 0x27c8, - SetMaxWeeklyQuantity = 0x259d, - SetMeleeAnimKit = 0x272f, - SetMovementAnimKit = 0x272e, + SetForcedReactions = 0x271c, + SetItemPurchaseData = 0x259c, + SetLootMethodFailed = 0x27c9, + SetMaxWeeklyQuantity = 0x259f, + SetMeleeAnimKit = 0x2731, + SetMovementAnimKit = 0x2730, SetPctSpellModifier = 0x2c39, - SetPetSpecialization = 0x2622, + SetPetSpecialization = 0x2624, SetPlayerDeclinedNamesResult = 0x3003, - SetPlayHoverAnim = 0x25b9, - SetProficiency = 0x2731, - SetQuestReplayCooldownOverride = 0x2857, + SetPlayHoverAnim = 0x25bb, + SetProficiency = 0x2733, + SetQuestReplayCooldownOverride = 0x2858, SetShipmentReadyResponse = 0x2998, SetSpellCharges = 0x2c28, - SetTimeZoneInformation = 0x2676, - SetVehicleRecId = 0x26f4, - ShadowlandsCapacitanceUpdate = 0x2886, + SetTimeZoneInformation = 0x2678, + SetVehicleRecId = 0x26f6, + ShadowlandsCapacitanceUpdate = 0x2887, ShipmentFactionUpdateResult = 0x2999, - ShowNeutralPlayerFactionSelectUi = 0x25d9, + ShowNeutralPlayerFactionSelectUi = 0x25db, ShowQuestCompletionText = 0x2a95, - ShowTaxiNodes = 0x26cb, - ShowTradeSkillResponse = 0x276c, - SocialContractRequestResponse = 0x2891, - SocketGemsFailure = 0x2724, - SocketGemsSuccess = 0x2723, - SpecialMountAnim = 0x269e, - SpectateEnd = 0x28b8, - SpectatePlayer = 0x28b7, - SpecInvoluntarilyChanged = 0x2715, + ShowTaxiNodes = 0x26cd, + ShowTradeSkillResponse = 0x276e, + SocialContractRequestResponse = 0x2892, + SocketGemsFailure = 0x2726, + SocketGemsSuccess = 0x2725, + SpecialMountAnim = 0x26a0, + SpectateEnd = 0x28b9, + SpectatePlayer = 0x28b8, + SpecInvoluntarilyChanged = 0x2717, SpellAbsorbLog = 0x2c1c, SpellCategoryCooldown = 0x2c16, SpellChannelStart = 0x2c33, @@ -1945,94 +1947,94 @@ namespace Framework.Constants SpellPeriodicAuraLog = 0x2c18, SpellPrepare = 0x2c3a, SpellStart = 0x2c3c, - SpellVisualLoadScreen = 0x25cb, - SplashScreenShowLatest = 0x2869, - StandStateUpdate = 0x2719, - StarterBuildActivateFailed = 0x25d1, - StartElapsedTimer = 0x2602, - StartElapsedTimers = 0x2604, - StartLightningStorm = 0x26a6, - StartLootRoll = 0x261a, - StartMirrorTimer = 0x270c, - StartTimer = 0x25a4, - StopElapsedTimer = 0x2603, - StopMirrorTimer = 0x270e, - StopSpeakerbotSound = 0x2768, - StopTimer = 0x25a5, - StreamingMovies = 0x25a3, - SuggestInviteInform = 0x278d, - SummonCancel = 0x26af, - SummonRaidMemberValidateFailed = 0x258c, - SummonRequest = 0x271e, + SpellVisualLoadScreen = 0x25cd, + SplashScreenShowLatest = 0x286a, + StandStateUpdate = 0x271b, + StarterBuildActivateFailed = 0x25d3, + StartElapsedTimer = 0x2604, + StartElapsedTimers = 0x2606, + StartLightningStorm = 0x26a8, + StartLootRoll = 0x261c, + StartMirrorTimer = 0x270e, + StartTimer = 0x25a6, + StopElapsedTimer = 0x2605, + StopMirrorTimer = 0x2710, + StopSpeakerbotSound = 0x276a, + StopTimer = 0x25a7, + StreamingMovies = 0x25a5, + SuggestInviteInform = 0x278e, + SummonCancel = 0x26b1, + SummonRaidMemberValidateFailed = 0x258d, + SummonRequest = 0x2720, SupercededSpells = 0x2c4e, SuspendComms = 0x304a, - SuspendToken = 0x25a7, - SyncWowEntitlements = 0x2861, - TalentsInvoluntarilyReset = 0x2714, - TaxiNodeStatus = 0x267b, - TextEmote = 0x2679, - ThreatClear = 0x26da, - ThreatRemove = 0x26d9, - ThreatUpdate = 0x26d8, + SuspendToken = 0x25a9, + SyncWowEntitlements = 0x2862, + TalentsInvoluntarilyReset = 0x2716, + TaxiNodeStatus = 0x267d, + TextEmote = 0x267b, + ThreatClear = 0x26dc, + ThreatRemove = 0x26db, + ThreatUpdate = 0x26da, TimeAdjustment = 0x2dd3, TimeSyncRequest = 0x2dd2, - TitleEarned = 0x26d5, - TitleLost = 0x26d6, - TotemCreated = 0x26c5, - TotemDurationChanged = 0x26c7, - TotemMoved = 0x26c8, - TotemRemoved = 0x26c6, - TradeStatus = 0x2582, - TradeUpdated = 0x2581, - TrainerBuyFailed = 0x26dd, - TrainerList = 0x26dc, - TraitConfigCommitFailed = 0x25d0, - TransferAborted = 0x2700, - TransferPending = 0x25cc, + TitleEarned = 0x26d7, + TitleLost = 0x26d8, + TotemCreated = 0x26c7, + TotemDurationChanged = 0x26c9, + TotemMoved = 0x26ca, + TotemRemoved = 0x26c8, + TradeStatus = 0x2583, + TradeUpdated = 0x2582, + TrainerBuyFailed = 0x26df, + TrainerList = 0x26de, + TraitConfigCommitFailed = 0x25d2, + TransferAborted = 0x2702, + TransferPending = 0x25ce, TreasurePickerResponse = 0x291f, - TriggerCinematic = 0x27c1, - TriggerMovie = 0x26c9, - TurnInPetitionResult = 0x274a, - TutorialFlags = 0x27b5, + TriggerCinematic = 0x27c2, + TriggerMovie = 0x26cb, + TurnInPetitionResult = 0x274c, + TutorialFlags = 0x27b6, UiMapQuestLinesResponse = 0x2aa2, - UndeleteCharacterResponse = 0x27c3, - UndeleteCooldownStatusResponse = 0x27c4, + UndeleteCharacterResponse = 0x27c4, + UndeleteCooldownStatusResponse = 0x27c5, UnlearnedSpells = 0x2c50, UnloadChildMap = 0x257a, - UpdateAadcStatusResponse = 0x287b, - UpdateAccountData = 0x2706, - UpdateActionButtons = 0x25de, - UpdateBnetSessionKey = 0x281b, + UpdateAadcStatusResponse = 0x287c, + UpdateAccountData = 0x2708, + UpdateActionButtons = 0x25e0, + UpdateBnetSessionKey = 0x281c, UpdateCapturePoint = 0x2929, - UpdateCelestialBody = 0x2817, - UpdateCharacterFlags = 0x27bb, - UpdateChargeCategoryCooldown = 0x2762, - UpdateCooldown = 0x2761, + UpdateCelestialBody = 0x2818, + UpdateCharacterFlags = 0x27bc, + UpdateChargeCategoryCooldown = 0x2764, + UpdateCooldown = 0x2763, UpdateCraftingNpcRecipes = 0x2996, UpdateDailyMissionCounter = 0x297f, - UpdateExpansionLevel = 0x2643, - UpdateGameTimeState = 0x281e, - UpdateInstanceOwnership = 0x26a8, - UpdateLastInstance = 0x2687, - UpdateObject = 0x27c2, - UpdatePrimarySpec = 0x25d6, - UpdateRecentPlayerGuids = 0x25f3, - UpdateTalentData = 0x25d5, - UpdateWorldState = 0x2744, + UpdateExpansionLevel = 0x2645, + UpdateGameTimeState = 0x281f, + UpdateInstanceOwnership = 0x26aa, + UpdateLastInstance = 0x2689, + UpdateObject = 0x27c3, + UpdatePrimarySpec = 0x25d8, + UpdateRecentPlayerGuids = 0x25f5, + UpdateTalentData = 0x25d7, + UpdateWorldState = 0x2746, UserlistAdd = 0x2bb9, UserlistRemove = 0x2bba, UserlistUpdate = 0x2bbb, - UseEquipmentSetResult = 0x274b, - VasCheckTransferOkResponse = 0x2812, - VasGetQueueMinutesResponse = 0x2810, - VasGetServiceStatusResponse = 0x280f, - VasPurchaseComplete = 0x27ea, - VasPurchaseStateUpdate = 0x27e9, - VendorInventory = 0x25b7, + UseEquipmentSetResult = 0x274d, + VasCheckTransferOkResponse = 0x2813, + VasGetQueueMinutesResponse = 0x2811, + VasGetServiceStatusResponse = 0x2810, + VasPurchaseComplete = 0x27eb, + VasPurchaseStateUpdate = 0x27ea, + VendorInventory = 0x25b9, VignetteUpdate = 0x3008, - VoiceChannelInfoResponse = 0x2816, - VoiceChannelSttTokenResponse = 0x2875, - VoiceLoginResponse = 0x2815, + VoiceChannelInfoResponse = 0x2817, + VoiceChannelSttTokenResponse = 0x2876, + VoiceLoginResponse = 0x2816, VoidItemSwapResponse = 0x2da4, VoidStorageContents = 0x2da1, VoidStorageFailed = 0x2da0, @@ -2041,36 +2043,36 @@ namespace Framework.Constants WaitQueueFinish = 0x256f, WaitQueueUpdate = 0x256e, Warden3Data = 0x2577, - Warden3Disabled = 0x2819, - Warden3Enabled = 0x2818, - WarfrontComplete = 0x275a, + Warden3Disabled = 0x281a, + Warden3Enabled = 0x2819, + WarfrontComplete = 0x275c, WargameRequestOpponentResponse = 0x2934, WargameRequestSuccessfullySentToOpponent = 0x2933, - Weather = 0x26a5, - WeeklyRewardsProgressResult = 0x286c, - WeeklyRewardsResult = 0x286a, - WeeklyRewardClaimResult = 0x286b, + Weather = 0x26a7, + WeeklyRewardsProgressResult = 0x286d, + WeeklyRewardsResult = 0x286b, + WeeklyRewardClaimResult = 0x286c, Who = 0x2bae, - WhoIs = 0x26a4, - WillBeKickedForAddedSubscriptionTime = 0x281d, + WhoIs = 0x26a6, + WillBeKickedForAddedSubscriptionTime = 0x281e, WorldQuestUpdateResponse = 0x300f, - WorldServerInfo = 0x25ac, - WowEntitlementNotification = 0x2862, - WowLabsNotifyPlayersMatchEnd = 0x2892, - WowLabsNotifyPlayersMatchStateChanged = 0x2893, - WowLabsPartyError = 0x289b, - WowLabsSetPredictionCircle = 0x2894, - XpAwardedFromCurrency = 0x28aa, - XpGainAborted = 0x25c8, - XpGainEnabled = 0x27a5, + WorldServerInfo = 0x25ae, + WowEntitlementNotification = 0x2863, + WowLabsNotifyPlayersMatchEnd = 0x2893, + WowLabsNotifyPlayersMatchStateChanged = 0x2894, + WowLabsPartyError = 0x289c, + WowLabsSetPredictionCircle = 0x2895, + XpAwardedFromCurrency = 0x28ab, + XpGainAborted = 0x25ca, + XpGainEnabled = 0x27a6, ZoneUnderAttack = 0x2bb5, // Opcodes That Are Not Generated Automatically - AccountHeirloomUpdate = 0x25B0, // No Client Handler + AccountHeirloomUpdate = AccountToyUpdate + 1, // No Client Handler CompressedPacket = 0x3052, MultiplePackets = 0x3051, - Max = 0x3FFF, + Max = 0x5040, Unknown = 0xbadd, None = 0 } diff --git a/Source/Framework/Constants/PetConst.cs b/Source/Framework/Constants/PetConst.cs index 38d10e1d6..e7bd0cdfc 100644 --- a/Source/Framework/Constants/PetConst.cs +++ b/Source/Framework/Constants/PetConst.cs @@ -35,7 +35,8 @@ namespace Framework.Constants public enum PetStableFlags { Active = 0x1, - Inactive = 0x2 + Inactive = 0x2, + Favorite = 0x8 } public enum PetSpellState diff --git a/Source/Framework/Constants/PlayerConst.cs b/Source/Framework/Constants/PlayerConst.cs index a2041cc07..04c934e72 100644 --- a/Source/Framework/Constants/PlayerConst.cs +++ b/Source/Framework/Constants/PlayerConst.cs @@ -148,7 +148,8 @@ namespace Framework.Constants Mobile = 0x40, Guide = 0x1000, Newcomer = 0x2000, - Censored = 0x4000 + Censored = 0x4000, + Timerunning = 0x8000 } public enum DrunkenState diff --git a/Source/Framework/Constants/SharedConst.cs b/Source/Framework/Constants/SharedConst.cs index 9a0569a0c..f2b6b705c 100644 --- a/Source/Framework/Constants/SharedConst.cs +++ b/Source/Framework/Constants/SharedConst.cs @@ -2054,1005 +2054,1007 @@ namespace Framework.Constants GuildPlayerNotFoundS = 135, GuildPlayerNotInGuildS = 136, GuildPlayerNotInGuild = 137, - GuildCantPromoteS = 138, - GuildCantDemoteS = 139, - GuildNotInAGuild = 140, - GuildInternal = 141, - GuildLeaderIsS = 142, - GuildLeaderChangedSs = 143, - GuildDisbanded = 144, - GuildNotAllied = 145, - GuildNewLeaderNotAllied = 146, - GuildLeaderLeave = 147, - GuildRanksLocked = 148, - GuildRankInUse = 149, - GuildRankTooHighS = 150, - GuildRankTooLowS = 151, - GuildNameExistsS = 152, - GuildWithdrawLimit = 153, - GuildNotEnoughMoney = 154, - GuildTooMuchMoney = 155, - GuildBankConjuredItem = 156, - GuildBankEquippedItem = 157, - GuildBankBoundItem = 158, - GuildBankQuestItem = 159, - GuildBankWrappedItem = 160, - GuildBankFull = 161, - GuildBankWrongTab = 162, - NoGuildCharter = 163, - OutOfRange = 164, - PlayerDead = 165, - ClientLockedOut = 166, - ClientOnTransport = 167, - KilledByS = 168, - LootLocked = 169, - LootTooFar = 170, - LootDidntKill = 171, - LootBadFacing = 172, - LootNotstanding = 173, - LootStunned = 174, - LootNoUi = 175, - LootWhileInvulnerable = 176, - NoLoot = 177, - QuestAcceptedS = 178, - QuestCompleteS = 179, - QuestFailedS = 180, - QuestFailedBagFullS = 181, - QuestFailedMaxCountS = 182, - QuestFailedLowLevel = 183, - QuestFailedMissingItems = 184, - QuestFailedWrongRace = 185, - QuestFailedNotEnoughMoney = 186, - QuestFailedExpansion = 187, - QuestOnlyOneTimed = 188, - QuestNeedPrereqs = 189, - QuestNeedPrereqsCustom = 190, - QuestAlreadyOn = 191, - QuestAlreadyDone = 192, - QuestAlreadyDoneDaily = 193, - QuestHasInProgress = 194, - QuestRewardExpI = 195, - QuestRewardMoneyS = 196, - QuestMustChoose = 197, - QuestLogFull = 198, - CombatDamageSsi = 199, - InspectS = 200, - CantUseItem = 201, - CantUseItemInArena = 202, - CantUseItemInRatedBattleground = 203, - MustEquipItem = 204, - PassiveAbility = 205, - Skill2Hnotfound = 206, - NoAttackTarget = 207, - InvalidAttackTarget = 208, - AttackPvpTargetWhileUnflagged = 209, - AttackStunned = 210, - AttackPacified = 211, - AttackMounted = 212, - AttackFleeing = 213, - AttackConfused = 214, - AttackCharmed = 215, - AttackDead = 216, - AttackPreventedByMechanicS = 217, - AttackChannel = 218, - Taxisamenode = 219, - Taxinosuchpath = 220, - Taxiunspecifiedservererror = 221, - Taxinotenoughmoney = 222, - Taxitoofaraway = 223, - Taxinovendornearby = 224, - Taxinotvisited = 225, - Taxiplayerbusy = 226, - Taxiplayeralreadymounted = 227, - Taxiplayershapeshifted = 228, - Taxiplayermoving = 229, - Taxinopaths = 230, - Taxinoteligible = 231, - Taxinotstanding = 232, - Taxiincombat = 233, - NoReplyTarget = 234, - GenericNoTarget = 235, - InitiateTradeS = 236, - TradeRequestS = 237, - TradeBlockedS = 238, - TradeTargetDead = 239, - TradeTooFar = 240, - TradeCancelled = 241, - TradeComplete = 242, - TradeBagFull = 243, - TradeTargetBagFull = 244, - TradeMaxCountExceeded = 245, - TradeTargetMaxCountExceeded = 246, - InventoryTradeTooManyUniqueItem = 247, - AlreadyTrading = 248, - MountInvalidmountee = 249, - MountToofaraway = 250, - MountAlreadymounted = 251, - MountNotmountable = 252, - MountNotyourpet = 253, - MountOther = 254, - MountLooting = 255, - MountRacecantmount = 256, - MountShapeshifted = 257, - MountNoFavorites = 258, - MountNoMounts = 259, - DismountNopet = 260, - DismountNotmounted = 261, - DismountNotyourpet = 262, - SpellFailedTotems = 263, - SpellFailedReagents = 264, - SpellFailedReagentsGeneric = 265, - SpellFailedOptionalReagents = 266, - CantTradeGold = 267, - SpellFailedEquippedItem = 268, - SpellFailedEquippedItemClassS = 269, - SpellFailedShapeshiftFormS = 270, - SpellFailedAnotherInProgress = 271, - Badattackfacing = 272, - Badattackpos = 273, - ChestInUse = 274, - UseCantOpen = 275, - UseLocked = 276, - DoorLocked = 277, - ButtonLocked = 278, - UseLockedWithItemS = 279, - UseLockedWithSpellS = 280, - UseLockedWithSpellKnownSi = 281, - UseTooFar = 282, - UseBadAngle = 283, - UseObjectMoving = 284, - UseSpellFocus = 285, - UseDestroyed = 286, - SetLootFreeforall = 287, - SetLootRoundrobin = 288, - SetLootMaster = 289, - SetLootGroup = 290, - SetLootThresholdS = 291, - NewLootMasterS = 292, - SpecifyMasterLooter = 293, - LootSpecChangedS = 294, - TameFailed = 295, - ChatWhileDead = 296, - ChatPlayerNotFoundS = 297, - Newtaxipath = 298, - NoPet = 299, - Notyourpet = 300, - PetNotRenameable = 301, - QuestObjectiveCompleteS = 302, - QuestUnknownComplete = 303, - QuestAddKillSii = 304, - QuestAddFoundSii = 305, - QuestAddItemSii = 306, - QuestAddPlayerKillSii = 307, - Cannotcreatedirectory = 308, - Cannotcreatefile = 309, - PlayerWrongFaction = 310, - PlayerIsNeutral = 311, - BankslotFailedTooMany = 312, - BankslotInsufficientFunds = 313, - BankslotNotbanker = 314, - FriendDbError = 315, - FriendListFull = 316, - FriendAddedS = 317, - BattletagFriendAddedS = 318, - FriendOnlineSs = 319, - FriendOfflineS = 320, - FriendNotFound = 321, - FriendWrongFaction = 322, - FriendRemovedS = 323, - BattletagFriendRemovedS = 324, - FriendError = 325, - FriendAlreadyS = 326, - FriendSelf = 327, - FriendDeleted = 328, - IgnoreFull = 329, - IgnoreSelf = 330, - IgnoreNotFound = 331, - IgnoreAlreadyS = 332, - IgnoreAddedS = 333, - IgnoreRemovedS = 334, - IgnoreAmbiguous = 335, - IgnoreDeleted = 336, - OnlyOneBolt = 337, - OnlyOneAmmo = 338, - SpellFailedEquippedSpecificItem = 339, - WrongBagTypeSubclass = 340, - CantWrapStackable = 341, - CantWrapEquipped = 342, - CantWrapWrapped = 343, - CantWrapBound = 344, - CantWrapUnique = 345, - CantWrapBags = 346, - OutOfMana = 347, - OutOfRage = 348, - OutOfFocus = 349, - OutOfEnergy = 350, - OutOfChi = 351, - OutOfHealth = 352, - OutOfRunes = 353, - OutOfRunicPower = 354, - OutOfSoulShards = 355, - OutOfLunarPower = 356, - OutOfHolyPower = 357, - OutOfMaelstrom = 358, - OutOfComboPoints = 359, - OutOfInsanity = 360, - OutOfEssence = 361, - OutOfArcaneCharges = 362, - OutOfFury = 363, - OutOfPain = 364, - OutOfPowerDisplay = 365, - LootGone = 366, - MountForceddismount = 367, - AutofollowTooFar = 368, - UnitNotFound = 369, - InvalidFollowTarget = 370, - InvalidFollowPvpCombat = 371, - InvalidFollowTargetPvpCombat = 372, - InvalidInspectTarget = 373, - GuildemblemSuccess = 374, - GuildemblemInvalidTabardColors = 375, - GuildemblemNoguild = 376, - GuildemblemNotguildmaster = 377, - GuildemblemNotenoughmoney = 378, - GuildemblemInvalidvendor = 379, - EmblemerrorNotabardgeoset = 380, - SpellOutOfRange = 381, - CommandNeedsTarget = 382, - NoammoS = 383, - Toobusytofollow = 384, - DuelRequested = 385, - DuelCancelled = 386, - Deathbindalreadybound = 387, - DeathbindSuccessS = 388, - Noemotewhilerunning = 389, - ZoneExplored = 390, - ZoneExploredXp = 391, - InvalidItemTarget = 392, - InvalidQuestTarget = 393, - IgnoringYouS = 394, - FishNotHooked = 395, - FishEscaped = 396, - SpellFailedNotunsheathed = 397, - PetitionOfferedS = 398, - PetitionSigned = 399, - PetitionSignedS = 400, - PetitionDeclinedS = 401, - PetitionAlreadySigned = 402, - PetitionRestrictedAccountTrial = 403, - PetitionAlreadySignedOther = 404, - PetitionInGuild = 405, - PetitionCreator = 406, - PetitionNotEnoughSignatures = 407, - PetitionNotSameServer = 408, - PetitionFull = 409, - PetitionAlreadySignedByS = 410, - GuildNameInvalid = 411, - SpellUnlearnedS = 412, - PetSpellRooted = 413, - PetSpellAffectingCombat = 414, - PetSpellOutOfRange = 415, - PetSpellNotBehind = 416, - PetSpellTargetsDead = 417, - PetSpellDead = 418, - PetSpellNopath = 419, - ItemCantBeDestroyed = 420, - TicketAlreadyExists = 421, - TicketCreateError = 422, - TicketUpdateError = 423, - TicketDbError = 424, - TicketNoText = 425, - TicketTextTooLong = 426, - ObjectIsBusy = 427, - ExhaustionWellrested = 428, - ExhaustionRested = 429, - ExhaustionNormal = 430, - ExhaustionTired = 431, - ExhaustionExhausted = 432, - NoItemsWhileShapeshifted = 433, - CantInteractShapeshifted = 434, - RealmNotFound = 435, - MailQuestItem = 436, - MailBoundItem = 437, - MailConjuredItem = 438, - MailBag = 439, - MailToSelf = 440, - MailTargetNotFound = 441, - MailDatabaseError = 442, - MailDeleteItemError = 443, - MailWrappedCod = 444, - MailCantSendRealm = 445, - MailTempReturnOutage = 446, - MailRecepientCantReceiveMail = 447, - MailSent = 448, - MailTargetIsTrial = 449, - NotHappyEnough = 450, - UseCantImmune = 451, - CantBeDisenchanted = 452, - CantUseDisarmed = 453, - AuctionDatabaseError = 454, - AuctionHigherBid = 455, - AuctionAlreadyBid = 456, - AuctionOutbidS = 457, - AuctionWonS = 458, - AuctionRemovedS = 459, - AuctionBidPlaced = 460, - LogoutFailed = 461, - QuestPushSuccessS = 462, - QuestPushInvalidS = 463, - QuestPushInvalidToRecipientS = 464, - QuestPushAcceptedS = 465, - QuestPushDeclinedS = 466, - QuestPushBusyS = 467, - QuestPushDeadS = 468, - QuestPushDeadToRecipientS = 469, - QuestPushLogFullS = 470, - QuestPushLogFullToRecipientS = 471, - QuestPushOnquestS = 472, - QuestPushOnquestToRecipientS = 473, - QuestPushAlreadyDoneS = 474, - QuestPushAlreadyDoneToRecipientS = 475, - QuestPushNotDailyS = 476, - QuestPushTimerExpiredS = 477, - QuestPushNotInPartyS = 478, - QuestPushDifferentServerDailyS = 479, - QuestPushDifferentServerDailyToRecipientS = 480, - QuestPushNotAllowedS = 481, - QuestPushPrerequisiteS = 482, - QuestPushPrerequisiteToRecipientS = 483, - QuestPushLowLevelS = 484, - QuestPushLowLevelToRecipientS = 485, - QuestPushHighLevelS = 486, - QuestPushHighLevelToRecipientS = 487, - QuestPushClassS = 488, - QuestPushClassToRecipientS = 489, - QuestPushRaceS = 490, - QuestPushRaceToRecipientS = 491, - QuestPushLowFactionS = 492, - QuestPushLowFactionToRecipientS = 493, - QuestPushHighFactionS = 494, - QuestPushHighFactionToRecipientS = 495, - QuestPushExpansionS = 496, - QuestPushExpansionToRecipientS = 497, - QuestPushNotGarrisonOwnerS = 498, - QuestPushNotGarrisonOwnerToRecipientS = 499, - QuestPushWrongCovenantS = 500, - QuestPushWrongCovenantToRecipientS = 501, - QuestPushNewPlayerExperienceS = 502, - QuestPushNewPlayerExperienceToRecipientS = 503, - QuestPushWrongFactionS = 504, - QuestPushWrongFactionToRecipientS = 505, - QuestPushCrossFactionRestrictedS = 506, - RaidGroupLowlevel = 507, - RaidGroupOnly = 508, - RaidGroupFull = 509, - RaidGroupRequirementsUnmatch = 510, - CorpseIsNotInInstance = 511, - PvpKillHonorable = 512, - PvpKillDishonorable = 513, - SpellFailedAlreadyAtFullHealth = 514, - SpellFailedAlreadyAtFullMana = 515, - SpellFailedAlreadyAtFullPowerS = 516, - AutolootMoneyS = 517, - GenericStunned = 518, - GenericThrottle = 519, - ClubFinderSearchingTooFast = 520, - TargetStunned = 521, - MustRepairDurability = 522, - RaidYouJoined = 523, - RaidYouLeft = 524, - InstanceGroupJoinedWithParty = 525, - InstanceGroupJoinedWithRaid = 526, - RaidMemberAddedS = 527, - RaidMemberRemovedS = 528, - InstanceGroupAddedS = 529, - InstanceGroupRemovedS = 530, - ClickOnItemToFeed = 531, - TooManyChatChannels = 532, - LootRollPending = 533, - LootPlayerNotFound = 534, - NotInRaid = 535, - LoggingOut = 536, - TargetLoggingOut = 537, - NotWhileMounted = 538, - NotWhileShapeshifted = 539, - NotInCombat = 540, - NotWhileDisarmed = 541, - PetBroken = 542, - TalentWipeError = 543, - SpecWipeError = 544, - GlyphWipeError = 545, - PetSpecWipeError = 546, - FeignDeathResisted = 547, - MeetingStoneInQueueS = 548, - MeetingStoneLeftQueueS = 549, - MeetingStoneOtherMemberLeft = 550, - MeetingStonePartyKickedFromQueue = 551, - MeetingStoneMemberStillInQueue = 552, - MeetingStoneSuccess = 553, - MeetingStoneInProgress = 554, - MeetingStoneMemberAddedS = 555, - MeetingStoneGroupFull = 556, - MeetingStoneNotLeader = 557, - MeetingStoneInvalidLevel = 558, - MeetingStoneTargetNotInParty = 559, - MeetingStoneTargetInvalidLevel = 560, - MeetingStoneMustBeLeader = 561, - MeetingStoneNoRaidGroup = 562, - MeetingStoneNeedParty = 563, - MeetingStoneNotFound = 564, - MeetingStoneTargetInVehicle = 565, - GuildemblemSame = 566, - EquipTradeItem = 567, - PvpToggleOn = 568, - PvpToggleOff = 569, - GroupJoinBattlegroundDeserters = 570, - GroupJoinBattlegroundDead = 571, - GroupJoinBattlegroundS = 572, - GroupJoinBattlegroundFail = 573, - GroupJoinBattlegroundTooMany = 574, - SoloJoinBattlegroundS = 575, - JoinSingleScenarioS = 576, - BattlegroundTooManyQueues = 577, - BattlegroundCannotQueueForRated = 578, - BattledgroundQueuedForRated = 579, - BattlegroundTeamLeftQueue = 580, - BattlegroundNotInBattleground = 581, - AlreadyInArenaTeamS = 582, - InvalidPromotionCode = 583, - BgPlayerJoinedSs = 584, - BgPlayerLeftS = 585, - RestrictedAccount = 586, - RestrictedAccountTrial = 587, - PlayTimeExceeded = 588, - ApproachingPartialPlayTime = 589, - ApproachingPartialPlayTime2 = 590, - ApproachingNoPlayTime = 591, - ApproachingNoPlayTime2 = 592, - UnhealthyTime = 593, - ChatRestrictedTrial = 594, - ChatThrottled = 595, - MailReachedCap = 596, - InvalidRaidTarget = 597, - RaidLeaderReadyCheckStartS = 598, - ReadyCheckInProgress = 599, - ReadyCheckThrottled = 600, - DungeonDifficultyFailed = 601, - DungeonDifficultyChangedS = 602, - TradeWrongRealm = 603, - TradeNotOnTaplist = 604, - ChatPlayerAmbiguousS = 605, - LootCantLootThatNow = 606, - LootMasterInvFull = 607, - LootMasterUniqueItem = 608, - LootMasterOther = 609, - FilteringYouS = 610, - UsePreventedByMechanicS = 611, - ItemUniqueEquippable = 612, - LfgLeaderIsLfmS = 613, - LfgPending = 614, - CantSpeakLangage = 615, - VendorMissingTurnins = 616, - BattlegroundNotInTeam = 617, - NotInBattleground = 618, - NotEnoughHonorPoints = 619, - NotEnoughArenaPoints = 620, - SocketingRequiresMetaGem = 621, - SocketingMetaGemOnlyInMetaslot = 622, - SocketingRequiresHydraulicGem = 623, - SocketingHydraulicGemOnlyInHydraulicslot = 624, - SocketingRequiresCogwheelGem = 625, - SocketingCogwheelGemOnlyInCogwheelslot = 626, - SocketingItemTooLowLevel = 627, - ItemMaxCountSocketed = 628, - SystemDisabled = 629, - QuestFailedTooManyDailyQuestsI = 630, - ItemMaxCountEquippedSocketed = 631, - ItemUniqueEquippableSocketed = 632, - UserSquelched = 633, - AccountSilenced = 634, - PartyMemberSilenced = 635, - PartyMemberSilencedLfgDelist = 636, - TooMuchGold = 637, - NotBarberSitting = 638, - QuestFailedCais = 639, - InviteRestrictedTrial = 640, - VoiceIgnoreFull = 641, - VoiceIgnoreSelf = 642, - VoiceIgnoreNotFound = 643, - VoiceIgnoreAlreadyS = 644, - VoiceIgnoreAddedS = 645, - VoiceIgnoreRemovedS = 646, - VoiceIgnoreAmbiguous = 647, - VoiceIgnoreDeleted = 648, - UnknownMacroOptionS = 649, - NotDuringArenaMatch = 650, - NotInRatedBattleground = 651, - PlayerSilenced = 652, - PlayerUnsilenced = 653, - ComsatDisconnect = 654, - ComsatReconnectAttempt = 655, - ComsatConnectFail = 656, - MailInvalidAttachmentSlot = 657, - MailTooManyAttachments = 658, - MailInvalidAttachment = 659, - MailAttachmentExpired = 660, - VoiceChatParentalDisableMic = 661, - ProfaneChatName = 662, - PlayerSilencedEcho = 663, - PlayerUnsilencedEcho = 664, - LootCantLootThat = 665, - ArenaExpiredCais = 666, - GroupActionThrottled = 667, - AlreadyPickpocketed = 668, - NameInvalid = 669, - NameNoName = 670, - NameTooShort = 671, - NameTooLong = 672, - NameMixedLanguages = 673, - NameProfane = 674, - NameReserved = 675, - NameThreeConsecutive = 676, - NameInvalidSpace = 677, - NameConsecutiveSpaces = 678, - NameRussianConsecutiveSilentCharacters = 679, - NameRussianSilentCharacterAtBeginningOrEnd = 680, - NameDeclensionDoesntMatchBaseName = 681, - RecruitAFriendNotLinked = 682, - RecruitAFriendNotNow = 683, - RecruitAFriendSummonLevelMax = 684, - RecruitAFriendSummonCooldown = 685, - RecruitAFriendSummonOffline = 686, - RecruitAFriendInsufExpanLvl = 687, - RecruitAFriendMapIncomingTransferNotAllowed = 688, - NotSameAccount = 689, - BadOnUseEnchant = 690, - TradeSelf = 691, - TooManySockets = 692, - ItemMaxLimitCategoryCountExceededIs = 693, - TradeTargetMaxLimitCategoryCountExceededIs = 694, - ItemMaxLimitCategorySocketedExceededIs = 695, - ItemMaxLimitCategoryEquippedExceededIs = 696, - ShapeshiftFormCannotEquip = 697, - ItemInventoryFullSatchel = 698, - ScalingStatItemLevelExceeded = 699, - ScalingStatItemLevelTooLow = 700, - PurchaseLevelTooLow = 701, - GroupSwapFailed = 702, - InviteInCombat = 703, - InvalidGlyphSlot = 704, - GenericNoValidTargets = 705, - CalendarEventAlertS = 706, - PetLearnSpellS = 707, - PetLearnAbilityS = 708, - PetSpellUnlearnedS = 709, - InviteUnknownRealm = 710, - InviteNoPartyServer = 711, - InvitePartyBusy = 712, - InvitePartyBusyPendingRequest = 713, - InvitePartyBusyPendingSuggest = 714, - PartyTargetAmbiguous = 715, - PartyLfgInviteRaidLocked = 716, - PartyLfgBootLimit = 717, - PartyLfgBootCooldownS = 718, - PartyLfgBootNotEligibleS = 719, - PartyLfgBootInpatientTimerS = 720, - PartyLfgBootInProgress = 721, - PartyLfgBootTooFewPlayers = 722, - PartyLfgBootVoteSucceeded = 723, - PartyLfgBootVoteFailed = 724, - PartyLfgBootInCombat = 725, - PartyLfgBootDungeonComplete = 726, - PartyLfgBootLootRolls = 727, - PartyLfgBootVoteRegistered = 728, - PartyPrivateGroupOnly = 729, - PartyLfgTeleportInCombat = 730, - RaidDisallowedByLevel = 731, - RaidDisallowedByCrossRealm = 732, - PartyRoleNotAvailable = 733, - JoinLfgObjectFailed = 734, - LfgRemovedLevelup = 735, - LfgRemovedXpToggle = 736, - LfgRemovedFactionChange = 737, - BattlegroundInfoThrottled = 738, - BattlegroundAlreadyIn = 739, - ArenaTeamChangeFailedQueued = 740, - ArenaTeamPermissions = 741, - NotWhileFalling = 742, - NotWhileMoving = 743, - NotWhileFatigued = 744, - MaxSockets = 745, - MultiCastActionTotemS = 746, - BattlegroundJoinLevelup = 747, - RemoveFromPvpQueueXpGain = 748, - BattlegroundJoinXpGain = 749, - BattlegroundJoinMercenary = 750, - BattlegroundJoinTooManyHealers = 751, - BattlegroundJoinRatedTooManyHealers = 752, - BattlegroundJoinTooManyTanks = 753, - BattlegroundJoinTooManyDamage = 754, - RaidDifficultyFailed = 755, - RaidDifficultyChangedS = 756, - LegacyRaidDifficultyChangedS = 757, - RaidLockoutChangedS = 758, - RaidConvertedToParty = 759, - PartyConvertedToRaid = 760, - PlayerDifficultyChangedS = 761, - GmresponseDbError = 762, - BattlegroundJoinRangeIndex = 763, - ArenaJoinRangeIndex = 764, - RemoveFromPvpQueueFactionChange = 765, - BattlegroundJoinFailed = 766, - BattlegroundJoinNoValidSpecForRole = 767, - BattlegroundJoinRespec = 768, - BattlegroundInvitationDeclined = 769, - BattlegroundInvitationDeclinedBy = 770, - BattlegroundJoinTimedOut = 771, - BattlegroundDupeQueue = 772, - BattlegroundJoinMustCompleteQuest = 773, - InBattlegroundRespec = 774, - MailLimitedDurationItem = 775, - YellRestrictedTrial = 776, - ChatRaidRestrictedTrial = 777, - LfgRoleCheckFailed = 778, - LfgRoleCheckFailedTimeout = 779, - LfgRoleCheckFailedNotViable = 780, - LfgReadyCheckFailed = 781, - LfgReadyCheckFailedTimeout = 782, - LfgGroupFull = 783, - LfgNoLfgObject = 784, - LfgNoSlotsPlayer = 785, - LfgNoSlotsParty = 786, - LfgNoSpec = 787, - LfgMismatchedSlots = 788, - LfgMismatchedSlotsLocalXrealm = 789, - LfgPartyPlayersFromDifferentRealms = 790, - LfgMembersNotPresent = 791, - LfgGetInfoTimeout = 792, - LfgInvalidSlot = 793, - LfgDeserterPlayer = 794, - LfgDeserterParty = 795, - LfgDead = 796, - LfgRandomCooldownPlayer = 797, - LfgRandomCooldownParty = 798, - LfgTooManyMembers = 799, - LfgTooFewMembers = 800, - LfgProposalFailed = 801, - LfgProposalDeclinedSelf = 802, - LfgProposalDeclinedParty = 803, - LfgNoSlotsSelected = 804, - LfgNoRolesSelected = 805, - LfgRoleCheckInitiated = 806, - LfgReadyCheckInitiated = 807, - LfgPlayerDeclinedRoleCheck = 808, - LfgPlayerDeclinedReadyCheck = 809, - LfgJoinedQueue = 810, - LfgJoinedFlexQueue = 811, - LfgJoinedRfQueue = 812, - LfgJoinedScenarioQueue = 813, - LfgJoinedWorldPvpQueue = 814, - LfgJoinedBattlefieldQueue = 815, - LfgJoinedList = 816, - LfgLeftQueue = 817, - LfgLeftList = 818, - LfgRoleCheckAborted = 819, - LfgReadyCheckAborted = 820, - LfgCantUseBattleground = 821, - LfgCantUseDungeons = 822, - LfgReasonTooManyLfg = 823, - LfgFarmLimit = 824, - LfgNoCrossFactionParties = 825, - InvalidTeleportLocation = 826, - TooFarToInteract = 827, - BattlegroundPlayersFromDifferentRealms = 828, - DifficultyChangeCooldownS = 829, - DifficultyChangeCombatCooldownS = 830, - DifficultyChangeWorldstate = 831, - DifficultyChangeEncounter = 832, - DifficultyChangeCombat = 833, - DifficultyChangePlayerBusy = 834, - DifficultyChangePlayerOnVehicle = 835, - DifficultyChangeAlreadyStarted = 836, - DifficultyChangeOtherHeroicS = 837, - DifficultyChangeHeroicInstanceAlreadyRunning = 838, - ArenaTeamPartySize = 839, - SoloShuffleWargameGroupSize = 840, - SoloShuffleWargameGroupComp = 841, - SoloMinItemLevel = 842, - PvpPlayerAbandoned = 843, - BattlegroundJoinGroupQueueWithoutHealer = 844, - QuestForceRemovedS = 845, - AttackNoActions = 846, - InRandomBg = 847, - InNonRandomBg = 848, - BnFriendSelf = 849, - BnFriendAlready = 850, - BnFriendBlocked = 851, - BnFriendListFull = 852, - BnFriendRequestSent = 853, - BnBroadcastThrottle = 854, - BgDeveloperOnly = 855, - CurrencySpellSlotMismatch = 856, - CurrencyNotTradable = 857, - RequiresExpansionS = 858, - QuestFailedSpell = 859, - TalentFailedUnspentTalentPoints = 860, - TalentFailedNotEnoughTalentsInPrimaryTree = 861, - TalentFailedNoPrimaryTreeSelected = 862, - TalentFailedCantRemoveTalent = 863, - TalentFailedUnknown = 864, - TalentFailedInCombat = 865, - TalentFailedInPvpMatch = 866, - TalentFailedInMythicPlus = 867, - WargameRequestFailure = 868, - RankRequiresAuthenticator = 869, - GuildBankVoucherFailed = 870, - WargameRequestSent = 871, - RequiresAchievementI = 872, - RefundResultExceedMaxCurrency = 873, - CantBuyQuantity = 874, - ItemIsBattlePayLocked = 875, - PartyAlreadyInBattlegroundQueue = 876, - PartyConfirmingBattlegroundQueue = 877, - BattlefieldTeamPartySize = 878, - InsuffTrackedCurrencyIs = 879, - NotOnTournamentRealm = 880, - GuildTrialAccountTrial = 881, - GuildTrialAccountVeteran = 882, - GuildUndeletableDueToLevel = 883, - CantDoThatInAGroup = 884, - GuildLeaderReplaced = 885, - TransmogrifyCantEquip = 886, - TransmogrifyInvalidItemType = 887, - TransmogrifyNotSoulbound = 888, - TransmogrifyInvalidSource = 889, - TransmogrifyInvalidDestination = 890, - TransmogrifyMismatch = 891, - TransmogrifyLegendary = 892, - TransmogrifySameItem = 893, - TransmogrifySameAppearance = 894, - TransmogrifyNotEquipped = 895, - VoidDepositFull = 896, - VoidWithdrawFull = 897, - VoidStorageWrapped = 898, - VoidStorageStackable = 899, - VoidStorageUnbound = 900, - VoidStorageRepair = 901, - VoidStorageCharges = 902, - VoidStorageQuest = 903, - VoidStorageConjured = 904, - VoidStorageMail = 905, - VoidStorageBag = 906, - VoidTransferStorageFull = 907, - VoidTransferInvFull = 908, - VoidTransferInternalError = 909, - VoidTransferItemInvalid = 910, - DifficultyDisabledInLfg = 911, - VoidStorageUnique = 912, - VoidStorageLoot = 913, - VoidStorageHoliday = 914, - VoidStorageDuration = 915, - VoidStorageLoadFailed = 916, - VoidStorageInvalidItem = 917, - ParentalControlsChatMuted = 918, - SorStartExperienceIncomplete = 919, - SorInvalidEmail = 920, - SorInvalidComment = 921, - ChallengeModeResetCooldownS = 922, - ChallengeModeResetKeystone = 923, - PetJournalAlreadyInLoadout = 924, - ReportSubmittedSuccessfully = 925, - ReportSubmissionFailed = 926, - SuggestionSubmittedSuccessfully = 927, - BugSubmittedSuccessfully = 928, - ChallengeModeEnabled = 929, - ChallengeModeDisabled = 930, - PetbattleCreateFailed = 931, - PetbattleNotHere = 932, - PetbattleNotHereOnTransport = 933, - PetbattleNotHereUnevenGround = 934, - PetbattleNotHereObstructed = 935, - PetbattleNotWhileInCombat = 936, - PetbattleNotWhileDead = 937, - PetbattleNotWhileFlying = 938, - PetbattleTargetInvalid = 939, - PetbattleTargetOutOfRange = 940, - PetbattleTargetNotCapturable = 941, - PetbattleNotATrainer = 942, - PetbattleDeclined = 943, - PetbattleInBattle = 944, - PetbattleInvalidLoadout = 945, - PetbattleAllPetsDead = 946, - PetbattleNoPetsInSlots = 947, - PetbattleNoAccountLock = 948, - PetbattleWildPetTapped = 949, - PetbattleRestrictedAccount = 950, - PetbattleOpponentNotAvailable = 951, - PetbattleNotWhileInMatchedBattle = 952, - CantHaveMorePetsOfThatType = 953, - CantHaveMorePets = 954, - PvpMapNotFound = 955, - PvpMapNotSet = 956, - PetbattleQueueQueued = 957, - PetbattleQueueAlreadyQueued = 958, - PetbattleQueueJoinFailed = 959, - PetbattleQueueJournalLock = 960, - PetbattleQueueRemoved = 961, - PetbattleQueueProposalDeclined = 962, - PetbattleQueueProposalTimeout = 963, - PetbattleQueueOpponentDeclined = 964, - PetbattleQueueRequeuedInternal = 965, - PetbattleQueueRequeuedRemoved = 966, - PetbattleQueueSlotLocked = 967, - PetbattleQueueSlotEmpty = 968, - PetbattleQueueSlotNoTracker = 969, - PetbattleQueueSlotNoSpecies = 970, - PetbattleQueueSlotCantBattle = 971, - PetbattleQueueSlotRevoked = 972, - PetbattleQueueSlotDead = 973, - PetbattleQueueSlotNoPet = 974, - PetbattleQueueNotWhileNeutral = 975, - PetbattleGameTimeLimitWarning = 976, - PetbattleGameRoundsLimitWarning = 977, - HasRestriction = 978, - ItemUpgradeItemTooLowLevel = 979, - ItemUpgradeNoPath = 980, - ItemUpgradeNoMoreUpgrades = 981, - BonusRollEmpty = 982, - ChallengeModeFull = 983, - ChallengeModeInProgress = 984, - ChallengeModeIncorrectKeystone = 985, - BattletagFriendNotFound = 986, - BattletagFriendNotValid = 987, - BattletagFriendNotAllowed = 988, - BattletagFriendThrottled = 989, - BattletagFriendSuccess = 990, - PetTooHighLevelToUncage = 991, - PetbattleInternal = 992, - CantCagePetYet = 993, - NoLootInChallengeMode = 994, - QuestPetBattleVictoriesPvpIi = 995, - RoleCheckAlreadyInProgress = 996, - RecruitAFriendAccountLimit = 997, - RecruitAFriendFailed = 998, - SetLootPersonal = 999, - SetLootMethodFailedCombat = 1000, - ReagentBankFull = 1001, - ReagentBankLocked = 1002, - GarrisonBuildingExists = 1003, - GarrisonInvalidPlot = 1004, - GarrisonInvalidBuildingid = 1005, - GarrisonInvalidPlotBuilding = 1006, - GarrisonRequiresBlueprint = 1007, - GarrisonNotEnoughCurrency = 1008, - GarrisonNotEnoughGold = 1009, - GarrisonCompleteMissionWrongFollowerType = 1010, - AlreadyUsingLfgList = 1011, - RestrictedAccountLfgListTrial = 1012, - ToyUseLimitReached = 1013, - ToyAlreadyKnown = 1014, - TransmogSetAlreadyKnown = 1015, - NotEnoughCurrency = 1016, - SpecIsDisabled = 1017, - FeatureRestrictedTrial = 1018, - CantBeObliterated = 1019, - CantBeScrapped = 1020, - CantBeRecrafted = 1021, - ArtifactRelicDoesNotMatchArtifact = 1022, - MustEquipArtifact = 1023, - CantDoThatRightNow = 1024, - AffectingCombat = 1025, - EquipmentManagerCombatSwapS = 1026, - EquipmentManagerBagsFull = 1027, - EquipmentManagerMissingItemS = 1028, - MovieRecordingWarningPerf = 1029, - MovieRecordingWarningDiskFull = 1030, - MovieRecordingWarningNoMovie = 1031, - MovieRecordingWarningRequirements = 1032, - MovieRecordingWarningCompressing = 1033, - NoChallengeModeReward = 1034, - ClaimedChallengeModeReward = 1035, - ChallengeModePeriodResetSs = 1036, - CantDoThatChallengeModeActive = 1037, - TalentFailedRestArea = 1038, - CannotAbandonLastPet = 1039, - TestCvarSetSss = 1040, - QuestTurnInFailReason = 1041, - ClaimedChallengeModeRewardOld = 1042, - TalentGrantedByAura = 1043, - ChallengeModeAlreadyComplete = 1044, - GlyphTargetNotAvailable = 1045, - PvpWarmodeToggleOn = 1046, - PvpWarmodeToggleOff = 1047, - SpellFailedLevelRequirement = 1048, - SpellFailedCantFlyHere = 1049, - BattlegroundJoinRequiresLevel = 1050, - BattlegroundJoinDisqualified = 1051, - BattlegroundJoinDisqualifiedNoName = 1052, - VoiceChatGenericUnableToConnect = 1053, - VoiceChatServiceLost = 1054, - VoiceChatChannelNameTooShort = 1055, - VoiceChatChannelNameTooLong = 1056, - VoiceChatChannelAlreadyExists = 1057, - VoiceChatTargetNotFound = 1058, - VoiceChatTooManyRequests = 1059, - VoiceChatPlayerSilenced = 1060, - VoiceChatParentalDisableAll = 1061, - VoiceChatDisabled = 1062, - NoPvpReward = 1063, - ClaimedPvpReward = 1064, - AzeriteEssenceSelectionFailedEssenceNotUnlocked = 1065, - AzeriteEssenceSelectionFailedCantRemoveEssence = 1066, - AzeriteEssenceSelectionFailedConditionFailed = 1067, - AzeriteEssenceSelectionFailedRestArea = 1068, - AzeriteEssenceSelectionFailedSlotLocked = 1069, - AzeriteEssenceSelectionFailedNotAtForge = 1070, - AzeriteEssenceSelectionFailedHeartLevelTooLow = 1071, - AzeriteEssenceSelectionFailedNotEquipped = 1072, - SocketingRequiresPunchcardredGem = 1073, - SocketingPunchcardredGemOnlyInPunchcardredslot = 1074, - SocketingRequiresPunchcardyellowGem = 1075, - SocketingPunchcardyellowGemOnlyInPunchcardyellowslot = 1076, - SocketingRequiresPunchcardblueGem = 1077, - SocketingPunchcardblueGemOnlyInPunchcardblueslot = 1078, - SocketingRequiresDominationShard = 1079, - SocketingDominationShardOnlyInDominationslot = 1080, - SocketingRequiresCypherGem = 1081, - SocketingCypherGemOnlyInCypherslot = 1082, - SocketingRequiresTinkerGem = 1083, - SocketingTinkerGemOnlyInTinkerslot = 1084, - SocketingRequiresPrimordialGem = 1085, - SocketingPrimordialGemOnlyInPrimordialslot = 1086, - LevelLinkingResultLinked = 1087, - LevelLinkingResultUnlinked = 1088, - ClubFinderErrorPostClub = 1089, - ClubFinderErrorApplyClub = 1090, - ClubFinderErrorRespondApplicant = 1091, - ClubFinderErrorCancelApplication = 1092, - ClubFinderErrorTypeAcceptApplication = 1093, - ClubFinderErrorTypeNoInvitePermissions = 1094, - ClubFinderErrorTypeNoPostingPermissions = 1095, - ClubFinderErrorTypeApplicantList = 1096, - ClubFinderErrorTypeApplicantListNoPerm = 1097, - ClubFinderErrorTypeFinderNotAvailable = 1098, - ClubFinderErrorTypeGetPostingIds = 1099, - ClubFinderErrorTypeJoinApplication = 1100, - ClubFinderErrorTypeRealmNotEligible = 1101, - ClubFinderErrorTypeFlaggedRename = 1102, - ClubFinderErrorTypeFlaggedDescriptionChange = 1103, - ItemInteractionNotEnoughGold = 1104, - ItemInteractionNotEnoughCurrency = 1105, - ItemInteractionNoConversionOutput = 1106, - PlayerChoiceErrorPendingChoice = 1107, - SoulbindInvalidConduit = 1108, - SoulbindInvalidConduitItem = 1109, - SoulbindInvalidTalent = 1110, - SoulbindDuplicateConduit = 1111, - ActivateSoulbindS = 1112, - ActivateSoulbindFailedRestArea = 1113, - CantUseProfanity = 1114, - NotInPetBattle = 1115, - NotInNpe = 1116, - NoSpec = 1117, - NoDominationshardOverwrite = 1118, - UseWeeklyRewardsDisabled = 1119, - CrossFactionGroupJoined = 1120, - CantTargetUnfriendlyInOverworld = 1121, - EquipablespellsSlotsFull = 1122, - ItemModAppearanceGroupAlreadyKnown = 1123, - CantBulkSellItemWithRefund = 1124, - WowLabsPartyErrorTypePartyIsFull = 1125, - WowLabsPartyErrorTypeMaxInviteSent = 1126, - WowLabsPartyErrorTypePlayerAlreadyInvited = 1127, - WowLabsPartyErrorTypePartyInviteInvalid = 1128, - WowLabsLobbyMatchmakerErrorEnterQueueFailed = 1129, - WowLabsLobbyMatchmakerErrorLeaveQueueFailed = 1130, - TargetIsSelfFoundCannotTrade = 1131, - PlayerIsSelfFoundCannotTrade = 1132, - MailRecepientIsSelfFoundCannotReceiveMail = 1133, - PlayerIsSelfFoundCannotSendMail = 1134, - PlayerIsSelfFoundCannotUseAuctionHouse = 1135, - MailTargetCannotReceiveMail = 1136, + GuildBankNotAvailable = 138, + GuildCantPromoteS = 139, + GuildCantDemoteS = 140, + GuildNotInAGuild = 141, + GuildInternal = 142, + GuildLeaderIsS = 143, + GuildLeaderChangedSs = 144, + GuildDisbanded = 145, + GuildNotAllied = 146, + GuildNewLeaderNotAllied = 147, + GuildLeaderLeave = 148, + GuildRanksLocked = 149, + GuildRankInUse = 150, + GuildRankTooHighS = 151, + GuildRankTooLowS = 152, + GuildNameExistsS = 153, + GuildWithdrawLimit = 154, + GuildNotEnoughMoney = 155, + GuildTooMuchMoney = 156, + GuildBankConjuredItem = 157, + GuildBankEquippedItem = 158, + GuildBankBoundItem = 159, + GuildBankQuestItem = 160, + GuildBankWrappedItem = 161, + GuildBankFull = 162, + GuildBankWrongTab = 163, + NoGuildCharter = 164, + OutOfRange = 165, + PlayerDead = 166, + ClientLockedOut = 167, + ClientOnTransport = 168, + KilledByS = 169, + LootLocked = 170, + LootTooFar = 171, + LootDidntKill = 172, + LootBadFacing = 173, + LootNotstanding = 174, + LootStunned = 175, + LootNoUi = 176, + LootWhileInvulnerable = 177, + NoLoot = 178, + QuestAcceptedS = 179, + QuestCompleteS = 180, + QuestFailedS = 181, + QuestFailedBagFullS = 182, + QuestFailedMaxCountS = 183, + QuestFailedLowLevel = 184, + QuestFailedMissingItems = 185, + QuestFailedWrongRace = 186, + QuestFailedNotEnoughMoney = 187, + QuestFailedExpansion = 188, + QuestOnlyOneTimed = 189, + QuestNeedPrereqs = 190, + QuestNeedPrereqsCustom = 191, + QuestAlreadyOn = 192, + QuestAlreadyDone = 193, + QuestAlreadyDoneDaily = 194, + QuestHasInProgress = 195, + QuestRewardExpI = 196, + QuestRewardMoneyS = 197, + QuestMustChoose = 198, + QuestLogFull = 199, + CombatDamageSsi = 200, + InspectS = 201, + CantUseItem = 202, + CantUseItemInArena = 203, + CantUseItemInRatedBattleground = 204, + MustEquipItem = 205, + PassiveAbility = 206, + H2SkillNotFound = 207, + NoAttackTarget = 208, + InvalidAttackTarget = 209, + AttackPvpTargetWhileUnflagged = 210, + AttackStunned = 211, + AttackPacified = 212, + AttackMounted = 213, + AttackFleeing = 214, + AttackConfused = 215, + AttackCharmed = 216, + AttackDead = 217, + AttackPreventedByMechanicS = 218, + AttackChannel = 219, + Taxisamenode = 220, + Taxinosuchpath = 221, + Taxiunspecifiedservererror = 222, + Taxinotenoughmoney = 223, + Taxitoofaraway = 224, + Taxinovendornearby = 225, + Taxinotvisited = 226, + Taxiplayerbusy = 227, + Taxiplayeralreadymounted = 228, + Taxiplayershapeshifted = 229, + Taxiplayermoving = 230, + Taxinopaths = 231, + Taxinoteligible = 232, + Taxinotstanding = 233, + Taxiincombat = 234, + NoReplyTarget = 235, + GenericNoTarget = 236, + InitiateTradeS = 237, + TradeRequestS = 238, + TradeBlockedS = 239, + TradeTargetDead = 240, + TradeTooFar = 241, + TradeCancelled = 242, + TradeComplete = 243, + TradeBagFull = 244, + TradeTargetBagFull = 245, + TradeMaxCountExceeded = 246, + TradeTargetMaxCountExceeded = 247, + InventoryTradeTooManyUniqueItem = 248, + AlreadyTrading = 249, + MountInvalidmountee = 250, + MountToofaraway = 251, + MountAlreadymounted = 252, + MountNotmountable = 253, + MountNotyourpet = 254, + MountOther = 255, + MountLooting = 256, + MountRacecantmount = 257, + MountShapeshifted = 258, + MountNoFavorites = 259, + MountNoMounts = 260, + DismountNopet = 261, + DismountNotmounted = 262, + DismountNotyourpet = 263, + SpellFailedTotems = 264, + SpellFailedReagents = 265, + SpellFailedReagentsGeneric = 266, + SpellFailedOptionalReagents = 267, + CantTradeGold = 268, + SpellFailedEquippedItem = 269, + SpellFailedEquippedItemClassS = 270, + SpellFailedShapeshiftFormS = 271, + SpellFailedAnotherInProgress = 272, + Badattackfacing = 273, + Badattackpos = 274, + ChestInUse = 275, + UseCantOpen = 276, + UseLocked = 277, + DoorLocked = 278, + ButtonLocked = 279, + UseLockedWithItemS = 280, + UseLockedWithSpellS = 281, + UseLockedWithSpellKnownSi = 282, + UseTooFar = 283, + UseBadAngle = 284, + UseObjectMoving = 285, + UseSpellFocus = 286, + UseDestroyed = 287, + SetLootFreeforall = 288, + SetLootRoundrobin = 289, + SetLootMaster = 290, + SetLootGroup = 291, + SetLootThresholdS = 292, + NewLootMasterS = 293, + SpecifyMasterLooter = 294, + LootSpecChangedS = 295, + TameFailed = 296, + ChatWhileDead = 297, + ChatPlayerNotFoundS = 298, + Newtaxipath = 299, + NoPet = 300, + Notyourpet = 301, + PetNotRenameable = 302, + QuestObjectiveCompleteS = 303, + QuestUnknownComplete = 304, + QuestAddKillSii = 305, + QuestAddFoundSii = 306, + QuestAddItemSii = 307, + QuestAddPlayerKillSii = 308, + Cannotcreatedirectory = 309, + Cannotcreatefile = 310, + PlayerWrongFaction = 311, + PlayerIsNeutral = 312, + BankslotFailedTooMany = 313, + BankslotInsufficientFunds = 314, + BankslotNotbanker = 315, + FriendDbError = 316, + FriendListFull = 317, + FriendAddedS = 318, + BattletagFriendAddedS = 319, + FriendOnlineSs = 320, + FriendOfflineS = 321, + FriendNotFound = 322, + FriendWrongFaction = 323, + FriendRemovedS = 324, + BattletagFriendRemovedS = 325, + FriendError = 326, + FriendAlreadyS = 327, + FriendSelf = 328, + FriendDeleted = 329, + IgnoreFull = 330, + IgnoreSelf = 331, + IgnoreNotFound = 332, + IgnoreAlreadyS = 333, + IgnoreAddedS = 334, + IgnoreRemovedS = 335, + IgnoreAmbiguous = 336, + IgnoreDeleted = 337, + OnlyOneBolt = 338, + OnlyOneAmmo = 339, + SpellFailedEquippedSpecificItem = 340, + WrongBagTypeSubclass = 341, + CantWrapStackable = 342, + CantWrapEquipped = 343, + CantWrapWrapped = 344, + CantWrapBound = 345, + CantWrapUnique = 346, + CantWrapBags = 347, + OutOfMana = 348, + OutOfRage = 349, + OutOfFocus = 350, + OutOfEnergy = 351, + OutOfChi = 352, + OutOfHealth = 353, + OutOfRunes = 354, + OutOfRunicPower = 355, + OutOfSoulShards = 356, + OutOfLunarPower = 357, + OutOfHolyPower = 358, + OutOfMaelstrom = 359, + OutOfComboPoints = 360, + OutOfInsanity = 361, + OutOfEssence = 362, + OutOfArcaneCharges = 363, + OutOfFury = 364, + OutOfPain = 365, + OutOfPowerDisplay = 366, + LootGone = 367, + MountForceddismount = 368, + AutofollowTooFar = 369, + UnitNotFound = 370, + InvalidFollowTarget = 371, + InvalidFollowPvpCombat = 372, + InvalidFollowTargetPvpCombat = 373, + InvalidInspectTarget = 374, + GuildemblemSuccess = 375, + GuildemblemInvalidTabardColors = 376, + GuildemblemNoguild = 377, + GuildemblemNotguildmaster = 378, + GuildemblemNotenoughmoney = 379, + GuildemblemInvalidvendor = 380, + EmblemerrorNotabardgeoset = 381, + SpellOutOfRange = 382, + CommandNeedsTarget = 383, + NoammoS = 384, + Toobusytofollow = 385, + DuelRequested = 386, + DuelCancelled = 387, + Deathbindalreadybound = 388, + DeathbindSuccessS = 389, + Noemotewhilerunning = 390, + ZoneExplored = 391, + ZoneExploredXp = 392, + InvalidItemTarget = 393, + InvalidQuestTarget = 394, + IgnoringYouS = 395, + FishNotHooked = 396, + FishEscaped = 397, + SpellFailedNotunsheathed = 398, + PetitionOfferedS = 399, + PetitionSigned = 400, + PetitionSignedS = 401, + PetitionDeclinedS = 402, + PetitionAlreadySigned = 403, + PetitionRestrictedAccountTrial = 404, + PetitionAlreadySignedOther = 405, + PetitionInGuild = 406, + PetitionCreator = 407, + PetitionNotEnoughSignatures = 408, + PetitionNotSameServer = 409, + PetitionFull = 410, + PetitionAlreadySignedByS = 411, + GuildNameInvalid = 412, + SpellUnlearnedS = 413, + PetSpellRooted = 414, + PetSpellAffectingCombat = 415, + PetSpellOutOfRange = 416, + PetSpellNotBehind = 417, + PetSpellTargetsDead = 418, + PetSpellDead = 419, + PetSpellNopath = 420, + ItemCantBeDestroyed = 421, + TicketAlreadyExists = 422, + TicketCreateError = 423, + TicketUpdateError = 424, + TicketDbError = 425, + TicketNoText = 426, + TicketTextTooLong = 427, + ObjectIsBusy = 428, + ExhaustionWellrested = 429, + ExhaustionRested = 430, + ExhaustionNormal = 431, + ExhaustionTired = 432, + ExhaustionExhausted = 433, + NoItemsWhileShapeshifted = 434, + CantInteractShapeshifted = 435, + RealmNotFound = 436, + MailQuestItem = 437, + MailBoundItem = 438, + MailConjuredItem = 439, + MailBag = 440, + MailToSelf = 441, + MailTargetNotFound = 442, + MailDatabaseError = 443, + MailDeleteItemError = 444, + MailWrappedCod = 445, + MailCantSendRealm = 446, + MailTempReturnOutage = 447, + MailRecepientCantReceiveMail = 448, + MailSent = 449, + MailTargetIsTrial = 450, + NotHappyEnough = 451, + UseCantImmune = 452, + CantBeDisenchanted = 453, + CantUseDisarmed = 454, + AuctionDatabaseError = 455, + AuctionHigherBid = 456, + AuctionAlreadyBid = 457, + AuctionOutbidS = 458, + AuctionWonS = 459, + AuctionRemovedS = 460, + AuctionBidPlaced = 461, + LogoutFailed = 462, + QuestPushSuccessS = 463, + QuestPushInvalidS = 464, + QuestPushInvalidToRecipientS = 465, + QuestPushAcceptedS = 466, + QuestPushDeclinedS = 467, + QuestPushBusyS = 468, + QuestPushDeadS = 469, + QuestPushDeadToRecipientS = 470, + QuestPushLogFullS = 471, + QuestPushLogFullToRecipientS = 472, + QuestPushOnquestS = 473, + QuestPushOnquestToRecipientS = 474, + QuestPushAlreadyDoneS = 475, + QuestPushAlreadyDoneToRecipientS = 476, + QuestPushNotDailyS = 477, + QuestPushTimerExpiredS = 478, + QuestPushNotInPartyS = 479, + QuestPushDifferentServerDailyS = 480, + QuestPushDifferentServerDailyToRecipientS = 481, + QuestPushNotAllowedS = 482, + QuestPushPrerequisiteS = 483, + QuestPushPrerequisiteToRecipientS = 484, + QuestPushLowLevelS = 485, + QuestPushLowLevelToRecipientS = 486, + QuestPushHighLevelS = 487, + QuestPushHighLevelToRecipientS = 488, + QuestPushClassS = 489, + QuestPushClassToRecipientS = 490, + QuestPushRaceS = 491, + QuestPushRaceToRecipientS = 492, + QuestPushLowFactionS = 493, + QuestPushLowFactionToRecipientS = 494, + QuestPushHighFactionS = 495, + QuestPushHighFactionToRecipientS = 496, + QuestPushExpansionS = 497, + QuestPushExpansionToRecipientS = 498, + QuestPushNotGarrisonOwnerS = 499, + QuestPushNotGarrisonOwnerToRecipientS = 500, + QuestPushWrongCovenantS = 501, + QuestPushWrongCovenantToRecipientS = 502, + QuestPushNewPlayerExperienceS = 503, + QuestPushNewPlayerExperienceToRecipientS = 504, + QuestPushWrongFactionS = 505, + QuestPushWrongFactionToRecipientS = 506, + QuestPushCrossFactionRestrictedS = 507, + RaidGroupLowlevel = 508, + RaidGroupOnly = 509, + RaidGroupFull = 510, + RaidGroupRequirementsUnmatch = 511, + CorpseIsNotInInstance = 512, + PvpKillHonorable = 513, + PvpKillDishonorable = 514, + SpellFailedAlreadyAtFullHealth = 515, + SpellFailedAlreadyAtFullMana = 516, + SpellFailedAlreadyAtFullPowerS = 517, + AutolootMoneyS = 518, + GenericStunned = 519, + GenericThrottle = 520, + ClubFinderSearchingTooFast = 521, + TargetStunned = 522, + MustRepairDurability = 523, + RaidYouJoined = 524, + RaidYouLeft = 525, + InstanceGroupJoinedWithParty = 526, + InstanceGroupJoinedWithRaid = 527, + RaidMemberAddedS = 528, + RaidMemberRemovedS = 529, + InstanceGroupAddedS = 530, + InstanceGroupRemovedS = 531, + ClickOnItemToFeed = 532, + TooManyChatChannels = 533, + LootRollPending = 534, + LootPlayerNotFound = 535, + NotInRaid = 536, + LoggingOut = 537, + TargetLoggingOut = 538, + NotWhileMounted = 539, + NotWhileShapeshifted = 540, + NotInCombat = 541, + NotWhileDisarmed = 542, + PetBroken = 543, + TalentWipeError = 544, + SpecWipeError = 545, + GlyphWipeError = 546, + PetSpecWipeError = 547, + FeignDeathResisted = 548, + MeetingStoneInQueueS = 549, + MeetingStoneLeftQueueS = 550, + MeetingStoneOtherMemberLeft = 551, + MeetingStonePartyKickedFromQueue = 552, + MeetingStoneMemberStillInQueue = 553, + MeetingStoneSuccess = 554, + MeetingStoneInProgress = 555, + MeetingStoneMemberAddedS = 556, + MeetingStoneGroupFull = 557, + MeetingStoneNotLeader = 558, + MeetingStoneInvalidLevel = 559, + MeetingStoneTargetNotInParty = 560, + MeetingStoneTargetInvalidLevel = 561, + MeetingStoneMustBeLeader = 562, + MeetingStoneNoRaidGroup = 563, + MeetingStoneNeedParty = 564, + MeetingStoneNotFound = 565, + MeetingStoneTargetInVehicle = 566, + GuildemblemSame = 567, + EquipTradeItem = 568, + PvpToggleOn = 569, + PvpToggleOff = 570, + GroupJoinBattlegroundDeserters = 571, + GroupJoinBattlegroundDead = 572, + GroupJoinBattlegroundS = 573, + GroupJoinBattlegroundFail = 574, + GroupJoinBattlegroundTooMany = 575, + SoloJoinBattlegroundS = 576, + JoinSingleScenarioS = 577, + BattlegroundTooManyQueues = 578, + BattlegroundCannotQueueForRated = 579, + BattledgroundQueuedForRated = 580, + BattlegroundTeamLeftQueue = 581, + BattlegroundNotInBattleground = 582, + AlreadyInArenaTeamS = 583, + InvalidPromotionCode = 584, + BgPlayerJoinedSs = 585, + BgPlayerLeftS = 586, + RestrictedAccount = 587, + RestrictedAccountTrial = 588, + PlayTimeExceeded = 589, + ApproachingPartialPlayTime = 590, + ApproachingPartialPlayTime2 = 591, + ApproachingNoPlayTime = 592, + ApproachingNoPlayTime2 = 593, + UnhealthyTime = 594, + ChatRestrictedTrial = 595, + ChatThrottled = 596, + MailReachedCap = 597, + InvalidRaidTarget = 598, + RaidLeaderReadyCheckStartS = 599, + ReadyCheckInProgress = 600, + ReadyCheckThrottled = 601, + DungeonDifficultyFailed = 602, + DungeonDifficultyChangedS = 603, + TradeWrongRealm = 604, + TradeNotOnTaplist = 605, + ChatPlayerAmbiguousS = 606, + LootCantLootThatNow = 607, + LootMasterInvFull = 608, + LootMasterUniqueItem = 609, + LootMasterOther = 610, + FilteringYouS = 611, + UsePreventedByMechanicS = 612, + ItemUniqueEquippable = 613, + LfgLeaderIsLfmS = 614, + LfgPending = 615, + CantSpeakLangage = 616, + VendorMissingTurnins = 617, + BattlegroundNotInTeam = 618, + NotInBattleground = 619, + NotEnoughHonorPoints = 620, + NotEnoughArenaPoints = 621, + SocketingRequiresMetaGem = 622, + SocketingMetaGemOnlyInMetaslot = 623, + SocketingRequiresHydraulicGem = 624, + SocketingHydraulicGemOnlyInHydraulicslot = 625, + SocketingRequiresCogwheelGem = 626, + SocketingCogwheelGemOnlyInCogwheelslot = 627, + SocketingItemTooLowLevel = 628, + ItemMaxCountSocketed = 629, + SystemDisabled = 630, + QuestFailedTooManyDailyQuestsI = 631, + ItemMaxCountEquippedSocketed = 632, + ItemUniqueEquippableSocketed = 633, + UserSquelched = 634, + AccountSilenced = 635, + PartyMemberSilenced = 636, + PartyMemberSilencedLfgDelist = 637, + TooMuchGold = 638, + NotBarberSitting = 639, + QuestFailedCais = 640, + InviteRestrictedTrial = 641, + VoiceIgnoreFull = 642, + VoiceIgnoreSelf = 643, + VoiceIgnoreNotFound = 644, + VoiceIgnoreAlreadyS = 645, + VoiceIgnoreAddedS = 646, + VoiceIgnoreRemovedS = 647, + VoiceIgnoreAmbiguous = 648, + VoiceIgnoreDeleted = 649, + UnknownMacroOptionS = 650, + NotDuringArenaMatch = 651, + NotInRatedBattleground = 652, + PlayerSilenced = 653, + PlayerUnsilenced = 654, + ComsatDisconnect = 655, + ComsatReconnectAttempt = 656, + ComsatConnectFail = 657, + MailInvalidAttachmentSlot = 658, + MailTooManyAttachments = 659, + MailInvalidAttachment = 660, + MailAttachmentExpired = 661, + VoiceChatParentalDisableMic = 662, + ProfaneChatName = 663, + PlayerSilencedEcho = 664, + PlayerUnsilencedEcho = 665, + LootCantLootThat = 666, + ArenaExpiredCais = 667, + GroupActionThrottled = 668, + AlreadyPickpocketed = 669, + NameInvalid = 670, + NameNoName = 671, + NameTooShort = 672, + NameTooLong = 673, + NameMixedLanguages = 674, + NameProfane = 675, + NameReserved = 676, + NameThreeConsecutive = 677, + NameInvalidSpace = 678, + NameConsecutiveSpaces = 679, + NameRussianConsecutiveSilentCharacters = 680, + NameRussianSilentCharacterAtBeginningOrEnd = 681, + NameDeclensionDoesntMatchBaseName = 682, + RecruitAFriendNotLinked = 683, + RecruitAFriendNotNow = 684, + RecruitAFriendSummonLevelMax = 685, + RecruitAFriendSummonCooldown = 686, + RecruitAFriendSummonOffline = 687, + RecruitAFriendInsufExpanLvl = 688, + RecruitAFriendMapIncomingTransferNotAllowed = 689, + NotSameAccount = 690, + BadOnUseEnchant = 691, + TradeSelf = 692, + TooManySockets = 693, + ItemMaxLimitCategoryCountExceededIs = 694, + TradeTargetMaxLimitCategoryCountExceededIs = 695, + ItemMaxLimitCategorySocketedExceededIs = 696, + ItemMaxLimitCategoryEquippedExceededIs = 697, + ShapeshiftFormCannotEquip = 698, + ItemInventoryFullSatchel = 699, + ScalingStatItemLevelExceeded = 700, + ScalingStatItemLevelTooLow = 701, + PurchaseLevelTooLow = 702, + GroupSwapFailed = 703, + InviteInCombat = 704, + InvalidGlyphSlot = 705, + GenericNoValidTargets = 706, + CalendarEventAlertS = 707, + PetLearnSpellS = 708, + PetLearnAbilityS = 709, + PetSpellUnlearnedS = 710, + InviteUnknownRealm = 711, + InviteNoPartyServer = 712, + InvitePartyBusy = 713, + InvitePartyBusyPendingRequest = 714, + InvitePartyBusyPendingSuggest = 715, + PartyTargetAmbiguous = 716, + PartyLfgInviteRaidLocked = 717, + PartyLfgBootLimit = 718, + PartyLfgBootCooldownS = 719, + PartyLfgBootNotEligibleS = 720, + PartyLfgBootInpatientTimerS = 721, + PartyLfgBootInProgress = 722, + PartyLfgBootTooFewPlayers = 723, + PartyLfgBootVoteSucceeded = 724, + PartyLfgBootVoteFailed = 725, + PartyLfgBootDisallowedByMap = 726, + PartyLfgBootDungeonComplete = 727, + PartyLfgBootLootRolls = 728, + PartyLfgBootVoteRegistered = 729, + PartyPrivateGroupOnly = 730, + PartyLfgTeleportInCombat = 731, + PartyTimeRunningSeasonIdMustMatch = 732, + RaidDisallowedByLevel = 733, + RaidDisallowedByCrossRealm = 734, + PartyRoleNotAvailable = 735, + JoinLfgObjectFailed = 736, + LfgRemovedLevelup = 737, + LfgRemovedXpToggle = 738, + LfgRemovedFactionChange = 739, + BattlegroundInfoThrottled = 740, + BattlegroundAlreadyIn = 741, + ArenaTeamChangeFailedQueued = 742, + ArenaTeamPermissions = 743, + NotWhileFalling = 744, + NotWhileMoving = 745, + NotWhileFatigued = 746, + MaxSockets = 747, + MultiCastActionTotemS = 748, + BattlegroundJoinLevelup = 749, + RemoveFromPvpQueueXpGain = 750, + BattlegroundJoinXpGain = 751, + BattlegroundJoinMercenary = 752, + BattlegroundJoinTooManyHealers = 753, + BattlegroundJoinRatedTooManyHealers = 754, + BattlegroundJoinTooManyTanks = 755, + BattlegroundJoinTooManyDamage = 756, + RaidDifficultyFailed = 757, + RaidDifficultyChangedS = 758, + LegacyRaidDifficultyChangedS = 759, + RaidLockoutChangedS = 760, + RaidConvertedToParty = 761, + PartyConvertedToRaid = 762, + PlayerDifficultyChangedS = 763, + GmresponseDbError = 764, + BattlegroundJoinRangeIndex = 765, + ArenaJoinRangeIndex = 766, + RemoveFromPvpQueueFactionChange = 767, + BattlegroundJoinFailed = 768, + BattlegroundJoinNoValidSpecForRole = 769, + BattlegroundJoinRespec = 770, + BattlegroundInvitationDeclined = 771, + BattlegroundInvitationDeclinedBy = 772, + BattlegroundJoinTimedOut = 773, + BattlegroundDupeQueue = 774, + BattlegroundJoinMustCompleteQuest = 775, + InBattlegroundRespec = 776, + MailLimitedDurationItem = 777, + YellRestrictedTrial = 778, + ChatRaidRestrictedTrial = 779, + LfgRoleCheckFailed = 780, + LfgRoleCheckFailedTimeout = 781, + LfgRoleCheckFailedNotViable = 782, + LfgReadyCheckFailed = 783, + LfgReadyCheckFailedTimeout = 784, + LfgGroupFull = 785, + LfgNoLfgObject = 786, + LfgNoSlotsPlayer = 787, + LfgNoSlotsParty = 788, + LfgNoSpec = 789, + LfgMismatchedSlots = 790, + LfgMismatchedSlotsLocalXrealm = 791, + LfgPartyPlayersFromDifferentRealms = 792, + LfgMembersNotPresent = 793, + LfgGetInfoTimeout = 794, + LfgInvalidSlot = 795, + LfgDeserterPlayer = 796, + LfgDeserterParty = 797, + LfgDead = 798, + LfgRandomCooldownPlayer = 799, + LfgRandomCooldownParty = 800, + LfgTooManyMembers = 801, + LfgTooFewMembers = 802, + LfgProposalFailed = 803, + LfgProposalDeclinedSelf = 804, + LfgProposalDeclinedParty = 805, + LfgNoSlotsSelected = 806, + LfgNoRolesSelected = 807, + LfgRoleCheckInitiated = 808, + LfgReadyCheckInitiated = 809, + LfgPlayerDeclinedRoleCheck = 810, + LfgPlayerDeclinedReadyCheck = 811, + LfgJoinedQueue = 812, + LfgJoinedFlexQueue = 813, + LfgJoinedRfQueue = 814, + LfgJoinedScenarioQueue = 815, + LfgJoinedWorldPvpQueue = 816, + LfgJoinedBattlefieldQueue = 817, + LfgJoinedList = 818, + LfgLeftQueue = 819, + LfgLeftList = 820, + LfgRoleCheckAborted = 821, + LfgReadyCheckAborted = 822, + LfgCantUseBattleground = 823, + LfgCantUseDungeons = 824, + LfgReasonTooManyLfg = 825, + LfgFarmLimit = 826, + LfgNoCrossFactionParties = 827, + InvalidTeleportLocation = 828, + TooFarToInteract = 829, + BattlegroundPlayersFromDifferentRealms = 830, + DifficultyChangeCooldownS = 831, + DifficultyChangeCombatCooldownS = 832, + DifficultyChangeWorldstate = 833, + DifficultyChangeEncounter = 834, + DifficultyChangeCombat = 835, + DifficultyChangePlayerBusy = 836, + DifficultyChangePlayerOnVehicle = 837, + DifficultyChangeAlreadyStarted = 838, + DifficultyChangeOtherHeroicS = 839, + DifficultyChangeHeroicInstanceAlreadyRunning = 840, + ArenaTeamPartySize = 841, + SoloShuffleWargameGroupSize = 842, + SoloShuffleWargameGroupComp = 843, + SoloMinItemLevel = 844, + PvpPlayerAbandoned = 845, + BattlegroundJoinGroupQueueWithoutHealer = 846, + QuestForceRemovedS = 847, + AttackNoActions = 848, + InRandomBg = 849, + InNonRandomBg = 850, + BnFriendSelf = 851, + BnFriendAlready = 852, + BnFriendBlocked = 853, + BnFriendListFull = 854, + BnFriendRequestSent = 855, + BnBroadcastThrottle = 856, + BgDeveloperOnly = 857, + CurrencySpellSlotMismatch = 858, + CurrencyNotTradable = 859, + RequiresExpansionS = 860, + QuestFailedSpell = 861, + TalentFailedUnspentTalentPoints = 862, + TalentFailedNotEnoughTalentsInPrimaryTree = 863, + TalentFailedNoPrimaryTreeSelected = 864, + TalentFailedCantRemoveTalent = 865, + TalentFailedUnknown = 866, + TalentFailedInCombat = 867, + TalentFailedInPvpMatch = 868, + TalentFailedInMythicPlus = 869, + WargameRequestFailure = 870, + RankRequiresAuthenticator = 871, + GuildBankVoucherFailed = 872, + WargameRequestSent = 873, + RequiresAchievementI = 874, + RefundResultExceedMaxCurrency = 875, + CantBuyQuantity = 876, + ItemIsBattlePayLocked = 877, + PartyAlreadyInBattlegroundQueue = 878, + PartyConfirmingBattlegroundQueue = 879, + BattlefieldTeamPartySize = 880, + InsuffTrackedCurrencyIs = 881, + NotOnTournamentRealm = 882, + GuildTrialAccountTrial = 883, + GuildTrialAccountVeteran = 884, + GuildUndeletableDueToLevel = 885, + CantDoThatInAGroup = 886, + GuildLeaderReplaced = 887, + TransmogrifyCantEquip = 888, + TransmogrifyInvalidItemType = 889, + TransmogrifyNotSoulbound = 890, + TransmogrifyInvalidSource = 891, + TransmogrifyInvalidDestination = 892, + TransmogrifyMismatch = 893, + TransmogrifyLegendary = 894, + TransmogrifySameItem = 895, + TransmogrifySameAppearance = 896, + TransmogrifyNotEquipped = 897, + VoidDepositFull = 898, + VoidWithdrawFull = 899, + VoidStorageWrapped = 900, + VoidStorageStackable = 901, + VoidStorageUnbound = 902, + VoidStorageRepair = 903, + VoidStorageCharges = 904, + VoidStorageQuest = 905, + VoidStorageConjured = 906, + VoidStorageMail = 907, + VoidStorageBag = 908, + VoidTransferStorageFull = 909, + VoidTransferInvFull = 910, + VoidTransferInternalError = 911, + VoidTransferItemInvalid = 912, + DifficultyDisabledInLfg = 913, + VoidStorageUnique = 914, + VoidStorageLoot = 915, + VoidStorageHoliday = 916, + VoidStorageDuration = 917, + VoidStorageLoadFailed = 918, + VoidStorageInvalidItem = 919, + ParentalControlsChatMuted = 920, + SorStartExperienceIncomplete = 921, + SorInvalidEmail = 922, + SorInvalidComment = 923, + ChallengeModeResetCooldownS = 924, + ChallengeModeResetKeystone = 925, + PetJournalAlreadyInLoadout = 926, + ReportSubmittedSuccessfully = 927, + ReportSubmissionFailed = 928, + SuggestionSubmittedSuccessfully = 929, + BugSubmittedSuccessfully = 930, + ChallengeModeEnabled = 931, + ChallengeModeDisabled = 932, + PetbattleCreateFailed = 933, + PetbattleNotHere = 934, + PetbattleNotHereOnTransport = 935, + PetbattleNotHereUnevenGround = 936, + PetbattleNotHereObstructed = 937, + PetbattleNotWhileInCombat = 938, + PetbattleNotWhileDead = 939, + PetbattleNotWhileFlying = 940, + PetbattleTargetInvalid = 941, + PetbattleTargetOutOfRange = 942, + PetbattleTargetNotCapturable = 943, + PetbattleNotATrainer = 944, + PetbattleDeclined = 945, + PetbattleInBattle = 946, + PetbattleInvalidLoadout = 947, + PetbattleAllPetsDead = 948, + PetbattleNoPetsInSlots = 949, + PetbattleNoAccountLock = 950, + PetbattleWildPetTapped = 951, + PetbattleRestrictedAccount = 952, + PetbattleOpponentNotAvailable = 953, + PetbattleNotWhileInMatchedBattle = 954, + CantHaveMorePetsOfThatType = 955, + CantHaveMorePets = 956, + PvpMapNotFound = 957, + PvpMapNotSet = 958, + PetbattleQueueQueued = 959, + PetbattleQueueAlreadyQueued = 960, + PetbattleQueueJoinFailed = 961, + PetbattleQueueJournalLock = 962, + PetbattleQueueRemoved = 963, + PetbattleQueueProposalDeclined = 964, + PetbattleQueueProposalTimeout = 965, + PetbattleQueueOpponentDeclined = 966, + PetbattleQueueRequeuedInternal = 967, + PetbattleQueueRequeuedRemoved = 968, + PetbattleQueueSlotLocked = 969, + PetbattleQueueSlotEmpty = 970, + PetbattleQueueSlotNoTracker = 971, + PetbattleQueueSlotNoSpecies = 972, + PetbattleQueueSlotCantBattle = 973, + PetbattleQueueSlotRevoked = 974, + PetbattleQueueSlotDead = 975, + PetbattleQueueSlotNoPet = 976, + PetbattleQueueNotWhileNeutral = 977, + PetbattleGameTimeLimitWarning = 978, + PetbattleGameRoundsLimitWarning = 979, + HasRestriction = 980, + ItemUpgradeItemTooLowLevel = 981, + ItemUpgradeNoPath = 982, + ItemUpgradeNoMoreUpgrades = 983, + BonusRollEmpty = 984, + ChallengeModeFull = 985, + ChallengeModeInProgress = 986, + ChallengeModeIncorrectKeystone = 987, + BattletagFriendNotFound = 988, + BattletagFriendNotValid = 989, + BattletagFriendNotAllowed = 990, + BattletagFriendThrottled = 991, + BattletagFriendSuccess = 992, + PetTooHighLevelToUncage = 993, + PetbattleInternal = 994, + CantCagePetYet = 995, + NoLootInChallengeMode = 996, + QuestPetBattleVictoriesPvpIi = 997, + RoleCheckAlreadyInProgress = 998, + RecruitAFriendAccountLimit = 999, + RecruitAFriendFailed = 1000, + SetLootPersonal = 1001, + SetLootMethodFailedCombat = 1002, + ReagentBankFull = 1003, + ReagentBankLocked = 1004, + GarrisonBuildingExists = 1005, + GarrisonInvalidPlot = 1006, + GarrisonInvalidBuildingid = 1007, + GarrisonInvalidPlotBuilding = 1008, + GarrisonRequiresBlueprint = 1009, + GarrisonNotEnoughCurrency = 1010, + GarrisonNotEnoughGold = 1011, + GarrisonCompleteMissionWrongFollowerType = 1012, + AlreadyUsingLfgList = 1013, + RestrictedAccountLfgListTrial = 1014, + ToyUseLimitReached = 1015, + ToyAlreadyKnown = 1016, + TransmogSetAlreadyKnown = 1017, + NotEnoughCurrency = 1018, + SpecIsDisabled = 1019, + FeatureRestrictedTrial = 1020, + CantBeObliterated = 1021, + CantBeScrapped = 1022, + CantBeRecrafted = 1023, + ArtifactRelicDoesNotMatchArtifact = 1024, + MustEquipArtifact = 1025, + CantDoThatRightNow = 1026, + AffectingCombat = 1027, + EquipmentManagerCombatSwapS = 1028, + EquipmentManagerBagsFull = 1029, + EquipmentManagerMissingItemS = 1030, + MovieRecordingWarningPerf = 1031, + MovieRecordingWarningDiskFull = 1032, + MovieRecordingWarningNoMovie = 1033, + MovieRecordingWarningRequirements = 1034, + MovieRecordingWarningCompressing = 1035, + NoChallengeModeReward = 1036, + ClaimedChallengeModeReward = 1037, + ChallengeModePeriodResetSs = 1038, + CantDoThatChallengeModeActive = 1039, + TalentFailedRestArea = 1040, + CannotAbandonLastPet = 1041, + TestCvarSetSss = 1042, + QuestTurnInFailReason = 1043, + ClaimedChallengeModeRewardOld = 1044, + TalentGrantedByAura = 1045, + ChallengeModeAlreadyComplete = 1046, + GlyphTargetNotAvailable = 1047, + PvpWarmodeToggleOn = 1048, + PvpWarmodeToggleOff = 1049, + SpellFailedLevelRequirement = 1050, + SpellFailedCantFlyHere = 1051, + BattlegroundJoinRequiresLevel = 1052, + BattlegroundJoinDisqualified = 1053, + BattlegroundJoinDisqualifiedNoName = 1054, + VoiceChatGenericUnableToConnect = 1055, + VoiceChatServiceLost = 1056, + VoiceChatChannelNameTooShort = 1057, + VoiceChatChannelNameTooLong = 1058, + VoiceChatChannelAlreadyExists = 1059, + VoiceChatTargetNotFound = 1060, + VoiceChatTooManyRequests = 1061, + VoiceChatPlayerSilenced = 1062, + VoiceChatParentalDisableAll = 1063, + VoiceChatDisabled = 1064, + NoPvpReward = 1065, + ClaimedPvpReward = 1066, + AzeriteEssenceSelectionFailedEssenceNotUnlocked = 1067, + AzeriteEssenceSelectionFailedCantRemoveEssence = 1068, + AzeriteEssenceSelectionFailedConditionFailed = 1069, + AzeriteEssenceSelectionFailedRestArea = 1070, + AzeriteEssenceSelectionFailedSlotLocked = 1071, + AzeriteEssenceSelectionFailedNotAtForge = 1072, + AzeriteEssenceSelectionFailedHeartLevelTooLow = 1073, + AzeriteEssenceSelectionFailedNotEquipped = 1074, + SocketingRequiresPunchcardredGem = 1075, + SocketingPunchcardredGemOnlyInPunchcardredslot = 1076, + SocketingRequiresPunchcardyellowGem = 1077, + SocketingPunchcardyellowGemOnlyInPunchcardyellowslot = 1078, + SocketingRequiresPunchcardblueGem = 1079, + SocketingPunchcardblueGemOnlyInPunchcardblueslot = 1080, + SocketingRequiresDominationShard = 1081, + SocketingDominationShardOnlyInDominationslot = 1082, + SocketingRequiresCypherGem = 1083, + SocketingCypherGemOnlyInCypherslot = 1084, + SocketingRequiresTinkerGem = 1085, + SocketingTinkerGemOnlyInTinkerslot = 1086, + SocketingRequiresPrimordialGem = 1087, + SocketingPrimordialGemOnlyInPrimordialslot = 1088, + LevelLinkingResultLinked = 1089, + LevelLinkingResultUnlinked = 1090, + ClubFinderErrorPostClub = 1091, + ClubFinderErrorApplyClub = 1092, + ClubFinderErrorRespondApplicant = 1093, + ClubFinderErrorCancelApplication = 1094, + ClubFinderErrorTypeAcceptApplication = 1095, + ClubFinderErrorTypeNoInvitePermissions = 1096, + ClubFinderErrorTypeNoPostingPermissions = 1097, + ClubFinderErrorTypeApplicantList = 1098, + ClubFinderErrorTypeApplicantListNoPerm = 1099, + ClubFinderErrorTypeFinderNotAvailable = 1100, + ClubFinderErrorTypeGetPostingIds = 1101, + ClubFinderErrorTypeJoinApplication = 1102, + ClubFinderErrorTypeRealmNotEligible = 1103, + ClubFinderErrorTypeFlaggedRename = 1104, + ClubFinderErrorTypeFlaggedDescriptionChange = 1105, + ItemInteractionNotEnoughGold = 1106, + ItemInteractionNotEnoughCurrency = 1107, + ItemInteractionNoConversionOutput = 1108, + PlayerChoiceErrorPendingChoice = 1109, + SoulbindInvalidConduit = 1110, + SoulbindInvalidConduitItem = 1111, + SoulbindInvalidTalent = 1112, + SoulbindDuplicateConduit = 1113, + ActivateSoulbindS = 1114, + ActivateSoulbindFailedRestArea = 1115, + CantUseProfanity = 1116, + NotInPetBattle = 1117, + NotInNpe = 1118, + NoSpec = 1119, + NoDominationshardOverwrite = 1120, + UseWeeklyRewardsDisabled = 1121, + CrossFactionGroupJoined = 1122, + CantTargetUnfriendlyInOverworld = 1123, + EquipablespellsSlotsFull = 1124, + ItemModAppearanceGroupAlreadyKnown = 1125, + CantBulkSellItemWithRefund = 1126, + WowLabsPartyErrorTypePartyIsFull = 1127, + WowLabsPartyErrorTypeMaxInviteSent = 1128, + WowLabsPartyErrorTypePlayerAlreadyInvited = 1129, + WowLabsPartyErrorTypePartyInviteInvalid = 1130, + WowLabsLobbyMatchmakerErrorEnterQueueFailed = 1131, + WowLabsLobbyMatchmakerErrorLeaveQueueFailed = 1132, + TargetIsSelfFoundCannotTrade = 1133, + PlayerIsSelfFoundCannotTrade = 1134, + MailRecepientIsSelfFoundCannotReceiveMail = 1135, + PlayerIsSelfFoundCannotSendMail = 1136, + PlayerIsSelfFoundCannotUseAuctionHouse = 1137, + MailTargetCannotReceiveMail = 1138, } public enum SceneFlags diff --git a/Source/Framework/Database/Databases/HotfixDatabase.cs b/Source/Framework/Database/Databases/HotfixDatabase.cs index 5e679d433..4ddd613f0 100644 --- a/Source/Framework/Database/Databases/HotfixDatabase.cs +++ b/Source/Framework/Database/Databases/HotfixDatabase.cs @@ -349,8 +349,9 @@ namespace Framework.Database " FROM conditional_content_tuning WHERE (`VerifiedBuild` > 0) = ?"); // ContentTuning.db2 - PrepareStatement(HotfixStatements.SEL_CONTENT_TUNING, "SELECT ID, Flags, ExpansionID, MinLevel, MaxLevel, MinLevelType, MaxLevelType, TargetLevelDelta, " + - "TargetLevelMaxDelta, TargetLevelMin, TargetLevelMax, MinItemLevel, QuestXpMultiplier FROM content_tuning WHERE (`VerifiedBuild` > 0) = ?"); + PrepareStatement(HotfixStatements.SEL_CONTENT_TUNING, "SELECT ID, Flags, ExpansionID, HealthItemLevelCurveID, DamageItemLevelCurveID, MinLevel, MaxLevel, " + + "MinLevelType, MaxLevelType, TargetLevelDelta, TargetLevelMaxDelta, TargetLevelMin, TargetLevelMax, MinItemLevel, QuestXpMultiplier" + + " FROM content_tuning WHERE (`VerifiedBuild` > 0) = ?"); // ContentTuningXExpected.db2 PrepareStatement(HotfixStatements.SEL_CONTENT_TUNING_X_EXPECTED, "SELECT ID, ExpectedStatModID, MinMythicPlusSeasonID, MaxMythicPlusSeasonID, " + @@ -767,7 +768,7 @@ namespace Framework.Database // ItemModifiedAppearance.db2 PrepareStatement(HotfixStatements.SEL_ITEM_MODIFIED_APPEARANCE, "SELECT ID, ItemID, ItemAppearanceModifierID, ItemAppearanceID, OrderIndex, " + - "TransmogSourceTypeEnum FROM item_modified_appearance WHERE (`VerifiedBuild` > 0) = ?"); + "TransmogSourceTypeEnum Flags, FROM item_modified_appearance WHERE (`VerifiedBuild` > 0) = ?"); // ItemModifiedAppearanceExtra.db2 PrepareStatement(HotfixStatements.SEL_ITEM_MODIFIED_APPEARANCE_EXTRA, "SELECT ID, IconFileDataID, UnequippedIconFileDataID, SheatheType, " + diff --git a/Source/Game/DataStorage/Structs/A_Records.cs b/Source/Game/DataStorage/Structs/A_Records.cs index 9d02fd072..48fc2281e 100644 --- a/Source/Game/DataStorage/Structs/A_Records.cs +++ b/Source/Game/DataStorage/Structs/A_Records.cs @@ -15,7 +15,7 @@ namespace Game.DataStorage public uint Id; public short InstanceID; public AchievementFaction Faction; - public ushort Supercedes; + public int Supercedes; public ushort Category; public byte MinimumCriteria; public byte Points; diff --git a/Source/Game/DataStorage/Structs/C_Records.cs b/Source/Game/DataStorage/Structs/C_Records.cs index ec4276c50..a818adaf4 100644 --- a/Source/Game/DataStorage/Structs/C_Records.cs +++ b/Source/Game/DataStorage/Structs/C_Records.cs @@ -386,6 +386,8 @@ namespace Game.DataStorage public uint Id; public int Flags; public int ExpansionID; + public int HealthItemLevelCurveID; + public int DamageItemLevelCurveID; public int MinLevel; public int MaxLevel; public int MinLevelType; diff --git a/Source/Game/DataStorage/Structs/I_Records.cs b/Source/Game/DataStorage/Structs/I_Records.cs index 54c47061b..df5cb6c55 100644 --- a/Source/Game/DataStorage/Structs/I_Records.cs +++ b/Source/Game/DataStorage/Structs/I_Records.cs @@ -286,6 +286,7 @@ namespace Game.DataStorage public int ItemAppearanceID; public int OrderIndex; public byte TransmogSourceTypeEnum; + public int Flags; } public sealed class ItemModifiedAppearanceExtraRecord diff --git a/Source/Game/Entities/Object/Update/UpdateFields.cs b/Source/Game/Entities/Object/Update/UpdateFields.cs index 5bf00eed9..b74177bd5 100644 --- a/Source/Game/Entities/Object/Update/UpdateFields.cs +++ b/Source/Game/Entities/Object/Update/UpdateFields.cs @@ -466,7 +466,7 @@ namespace Game.Entities public void WriteUpdate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, Item owner, Player receiver) { - UpdateMask allowedMaskForTarget = new(41, new uint[] { 0xF80A727Fu, 0x000001FFu }); + UpdateMask allowedMaskForTarget = new(41, [0xF80A727Fu, 0x000001FFu]); AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); } @@ -474,12 +474,12 @@ namespace Game.Entities public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags) { if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner)) - allowedMaskForTarget.OR(new UpdateMask(41, new uint[] { 0x07F58D80u, 0x00000000u })); + allowedMaskForTarget.OR(new UpdateMask(41, [0x07F58D80u, 0x00000000u])); } public void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags) { - UpdateMask allowedMaskForTarget = new(41, new[] { 0xF80A727Fu, 0x000001FFu }); + UpdateMask allowedMaskForTarget = new(41, [0xF80A727Fu, 0x000001FFu]); AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); changesMask.AND(allowedMaskForTarget); } @@ -888,7 +888,7 @@ namespace Game.Entities public void WriteUpdate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, AzeriteItem owner, Player receiver) { - UpdateMask allowedMaskForTarget = new(10, new[] { 0x0000001Du }); + UpdateMask allowedMaskForTarget = new(10, [0x0000001Du]); AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); } @@ -896,12 +896,12 @@ namespace Game.Entities public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags) { if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner)) - allowedMaskForTarget.OR(new UpdateMask(10, new[] { 0x000003E2u })); + allowedMaskForTarget.OR(new UpdateMask(10, [0x000003E2u])); } public void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags) { - UpdateMask allowedMaskForTarget = new(10, new[] { 0x0000001Du }); + UpdateMask allowedMaskForTarget = new(10, [0x0000001Du]); AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); changesMask.AND(allowedMaskForTarget); } @@ -1031,7 +1031,6 @@ namespace Game.Entities public class UnitChannel { public uint SpellID; - public uint SpellXSpellVisualID; public SpellCastVisualField SpellVisual = new(); public void WriteCreate(WorldPacket data, Unit owner, Player receiver) @@ -1172,87 +1171,87 @@ namespace Game.Entities public UpdateField ScalingLevelMax = new(32, 38); public UpdateField ScalingLevelDelta = new(32, 39); public UpdateField ScalingFactionGroup = new(32, 40); - public UpdateField ScalingHealthItemLevelCurveID = new(32, 41); - public UpdateField ScalingDamageItemLevelCurveID = new(32, 42); - public UpdateField FactionTemplate = new(32, 43); - public UpdateField Flags = new(32, 44); - public UpdateField Flags2 = new(32, 45); - public UpdateField Flags3 = new(32, 46); - public UpdateField AuraState = new(32, 47); - public UpdateField RangedAttackRoundBaseTime = new(32, 48); - public UpdateField BoundingRadius = new(32, 49); - public UpdateField CombatReach = new(32, 50); - public UpdateField DisplayScale = new(32, 51); - public UpdateField CreatureFamily = new(32, 52); - public UpdateField CreatureType = new(32, 53); - public UpdateField NativeDisplayID = new(32, 54); - public UpdateField NativeXDisplayScale = new(32, 55); - public UpdateField MountDisplayID = new(32, 56); - public UpdateField CosmeticMountDisplayID = new(32, 57); - public UpdateField MinDamage = new(32, 58); - public UpdateField MaxDamage = new(32, 59); - public UpdateField MinOffHandDamage = new(32, 60); - public UpdateField MaxOffHandDamage = new(32, 61); - public UpdateField StandState = new(32, 62); - public UpdateField PetTalentPoints = new(32, 63); - public UpdateField VisFlags = new(64, 65); - public UpdateField AnimTier = new(64, 66); - public UpdateField PetNumber = new(64, 67); - public UpdateField PetNameTimestamp = new(64, 68); - public UpdateField PetExperience = new(64, 69); - public UpdateField PetNextLevelExperience = new(64, 70); - public UpdateField ModCastingSpeed = new(64, 71); - public UpdateField ModCastingSpeedNeg = new(64, 72); - public UpdateField ModSpellHaste = new(64, 73); - public UpdateField ModHaste = new(64, 74); - public UpdateField ModRangedHaste = new(64, 75); - public UpdateField ModHasteRegen = new(64, 76); - public UpdateField ModTimeRate = new(64, 77); - public UpdateField CreatedBySpell = new(64, 78); - public UpdateField EmoteState = new(64, 79); - public UpdateField BaseMana = new(64, 80); - public UpdateField BaseHealth = new(64, 81); - public UpdateField SheatheState = new(64, 82); - public UpdateField PvpFlags = new(64, 83); - public UpdateField PetFlags = new(64, 84); - public UpdateField ShapeshiftForm = new(64, 85); - public UpdateField AttackPower = new(64, 86); - public UpdateField AttackPowerModPos = new(64, 87); - public UpdateField AttackPowerModNeg = new(64, 88); - public UpdateField AttackPowerMultiplier = new(64, 89); - public UpdateField AttackPowerModSupport = new(64, 90); - public UpdateField RangedAttackPower = new(64, 91); - public UpdateField RangedAttackPowerModPos = new(64, 92); - public UpdateField RangedAttackPowerModNeg = new(64, 93); - public UpdateField RangedAttackPowerMultiplier = new(64, 94); - public UpdateField RangedAttackPowerModSupport = new(64, 95); - public UpdateField MainHandWeaponAttackPower = new(96, 97); - public UpdateField OffHandWeaponAttackPower = new(96, 98); - public UpdateField RangedWeaponAttackPower = new(96, 99); - public UpdateField SetAttackSpeedAura = new(96, 100); - public UpdateField Lifesteal = new(96, 101); - public UpdateField MinRangedDamage = new(96, 102); - public UpdateField MaxRangedDamage = new(96, 103); - public UpdateField ManaCostMultiplier = new(96, 104); - public UpdateField MaxHealthModifier = new(96, 105); - public UpdateField HoverHeight = new(96, 106); - public UpdateField MinItemLevelCutoff = new(96, 107); - public UpdateField MinItemLevel = new(96, 108); - public UpdateField MaxItemLevel = new(96, 109); - public UpdateField AzeriteItemLevel = new(96, 110); - public UpdateField WildBattlePetLevel = new(96, 111); - public UpdateField BattlePetCompanionExperience = new(96, 112); - public UpdateField BattlePetCompanionNameTimestamp = new(96, 113); - public UpdateField InteractSpellID = new(96, 114); - public UpdateField ScaleDuration = new(96, 115); - public UpdateField LooksLikeMountID = new(96, 116); - public UpdateField LooksLikeCreatureID = new(96, 117); - public UpdateField LookAtControllerID = new(96, 118); - public UpdateField PerksVendorItemID = new(96, 119); - public UpdateField TaxiNodesID = new(96, 120); - public UpdateField GuildGUID = new(96, 121); - public UpdateField FlightCapabilityID = new(96, 122); - public UpdateField GlideEventSpeedDivisor = new(96, 123); // Movement speed gets divided by this value when evaluating what GlideEvents to use + public UpdateField FactionTemplate = new(32, 41); + public UpdateField Flags = new(32, 42); + public UpdateField Flags2 = new(32, 43); + public UpdateField Flags3 = new(32, 44); + public UpdateField AuraState = new(32, 45); + public UpdateField RangedAttackRoundBaseTime = new(32, 46); + public UpdateField BoundingRadius = new(32, 47); + public UpdateField CombatReach = new(32, 48); + public UpdateField DisplayScale = new(32, 49); + public UpdateField CreatureFamily = new(32, 50); + public UpdateField CreatureType = new(32, 51); + public UpdateField NativeDisplayID = new(32, 52); + public UpdateField NativeXDisplayScale = new(32, 53); + public UpdateField MountDisplayID = new(32, 54); + public UpdateField CosmeticMountDisplayID = new(32, 55); + public UpdateField MinDamage = new(32, 56); + public UpdateField MaxDamage = new(32, 57); + public UpdateField MinOffHandDamage = new(32, 58); + public UpdateField MaxOffHandDamage = new(32, 59); + public UpdateField StandState = new(32, 60); + public UpdateField PetTalentPoints = new(32, 61); + public UpdateField VisFlags = new(32, 62); + public UpdateField AnimTier = new(32, 63); + public UpdateField PetNumber = new(32, 65); + public UpdateField PetNameTimestamp = new(64, 66); + public UpdateField PetExperience = new(64, 67); + public UpdateField PetNextLevelExperience = new(64, 68); + public UpdateField ModCastingSpeed = new(64, 69); + public UpdateField ModCastingSpeedNeg = new(64, 70); + public UpdateField ModSpellHaste = new(64, 71); + public UpdateField ModHaste = new(64, 72); + public UpdateField ModRangedHaste = new(64, 73); + public UpdateField ModHasteRegen = new(64, 74); + public UpdateField ModTimeRate = new(64, 75); + public UpdateField CreatedBySpell = new(64, 76); + public UpdateField EmoteState = new(64, 77); + public UpdateField BaseMana = new(64, 78); + public UpdateField BaseHealth = new(64, 79); + public UpdateField SheatheState = new(64, 80); + public UpdateField PvpFlags = new(64, 81); + public UpdateField PetFlags = new(64, 82); + public UpdateField ShapeshiftForm = new(64, 83); + public UpdateField AttackPower = new(64, 84); + public UpdateField AttackPowerModPos = new(64, 85); + public UpdateField AttackPowerModNeg = new(64, 86); + public UpdateField AttackPowerMultiplier = new(64, 87); + public UpdateField AttackPowerModSupport = new(64, 88); + public UpdateField RangedAttackPower = new(64, 89); + public UpdateField RangedAttackPowerModPos = new(64, 90); + public UpdateField RangedAttackPowerModNeg = new(64, 91); + public UpdateField RangedAttackPowerMultiplier = new(64, 92); + public UpdateField RangedAttackPowerModSupport = new(64, 93); + public UpdateField MainHandWeaponAttackPower = new(64, 94); + public UpdateField OffHandWeaponAttackPower = new(64, 95); + public UpdateField RangedWeaponAttackPower = new(96, 97); + public UpdateField SetAttackSpeedAura = new(96, 98); + public UpdateField Lifesteal = new(96, 99); + public UpdateField MinRangedDamage = new(96, 100); + public UpdateField MaxRangedDamage = new(96, 101); + public UpdateField ManaCostMultiplier = new(96, 102); + public UpdateField MaxHealthModifier = new(96, 103); + public UpdateField HoverHeight = new(96, 104); + public UpdateField MinItemLevelCutoff = new(96, 105); + public UpdateField MinItemLevel = new(96, 106); + public UpdateField MaxItemLevel = new(96, 107); + public UpdateField AzeriteItemLevel = new(96, 108); + public UpdateField WildBattlePetLevel = new(96, 109); + public UpdateField BattlePetCompanionExperience = new(96, 110); + public UpdateField BattlePetCompanionNameTimestamp = new(96, 111); + public UpdateField InteractSpellID = new(96, 112); + public UpdateField ScaleDuration = new(96, 113); + public UpdateField LooksLikeMountID = new(96, 114); + public UpdateField LooksLikeCreatureID = new(96, 115); + public UpdateField LookAtControllerID = new(96, 116); + public UpdateField PerksVendorItemID = new(96, 117); + public UpdateField TaxiNodesID = new(96, 118); + public UpdateField GuildGUID = new(96, 119); + public UpdateField FlightCapabilityID = new(96, 120); + public UpdateField GlideEventSpeedDivisor = new(96, 121); // Movement speed gets divided by this value when evaluating what GlideEvents to use + public UpdateField Field_308 = new(96, 122); + public UpdateField Field_30C = new(96, 123); public UpdateField SilencedSchoolMask = new(96, 124); public UpdateField CurrentAreaID = new(96, 125); public UpdateField NameplateAttachToGUID = new(96, 126); // When set, nameplate of this unit will instead appear on that object @@ -1332,8 +1331,6 @@ namespace Game.Entities data.WriteInt32(ScalingLevelMax); data.WriteInt32(ScalingLevelDelta); data.WriteInt32(ScalingFactionGroup); - data.WriteInt32(ScalingHealthItemLevelCurveID); - data.WriteInt32(ScalingDamageItemLevelCurveID); data.WriteUInt32(GetViewerDependentFactionTemplate(this, owner, receiver)); for (int i = 0; i < 3; ++i) VirtualItems[i].WriteCreate(data, owner, receiver); @@ -1457,6 +1454,8 @@ namespace Game.Entities data.WriteInt32(ChannelObjects.Size()); data.WriteInt32(FlightCapabilityID); data.WriteFloat(GlideEventSpeedDivisor); + data.WriteUInt32(Field_308); + data.WriteUInt32(Field_30C); data.WriteUInt32(SilencedSchoolMask); data.WriteUInt32(CurrentAreaID); data.WritePackedGuid(NameplateAttachToGUID); @@ -1473,7 +1472,7 @@ namespace Game.Entities public void WriteUpdate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, Unit owner, Player receiver) { - UpdateMask allowedMaskForTarget = new(ChangeMaskLength, new uint[] { 0xFFFFDFFFu, 0xC3FEFFFFu, 0x003DFFFFu, 0xFFFFFC01u, 0x007FFFFFu, 0x0003F800u, 0x00000000u }); + UpdateMask allowedMaskForTarget = new(ChangeMaskLength, [0xFFFFDFFFu, 0xF0FFBFFFu, 0x000F7FFFu, 0xFFFFFF01u, 0x007FFFFFu, 0x0003F800u, 0x00000000u]); AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); } @@ -1481,16 +1480,16 @@ namespace Game.Entities public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags) { if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner)) - allowedMaskForTarget.OR(new UpdateMask(ChangeMaskLength, new uint[] { 0x00002000u, 0x3C010000u, 0xFFC20000u, 0x000003FEu, 0xFF800004u, 0xFFFC07FFu, 0x01FFFFFFu })); + allowedMaskForTarget.OR(new UpdateMask(ChangeMaskLength, [0x00002000u, 0x0F004000u, 0xFFF08000u, 0x000000FEu, 0xFF800004u, 0xFFFC07FFu, 0x01FFFFFFu])); if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.UnitAll)) - allowedMaskForTarget.OR(new UpdateMask(ChangeMaskLength, new uint[] { 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFF800004u, 0x000007FFu, 0x00000000u })); + allowedMaskForTarget.OR(new UpdateMask(ChangeMaskLength, [0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFF800004u, 0x000007FFu, 0x00000000u])); if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Empath)) - allowedMaskForTarget.OR(new UpdateMask(ChangeMaskLength, new uint[] { 0x00000000u, 0x3C000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x000007F8u })); + allowedMaskForTarget.OR(new UpdateMask(ChangeMaskLength, [0x00000000u, 0x0F000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x000007F8u])); } public void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags) { - UpdateMask allowedMaskForTarget = new(ChangeMaskLength, new[] { 0xFFFFDFFFu, 0xC3FEFFFFu, 0x003DFFFFu, 0xFFFFFC01u, 0x007FFFFFu, 0x0003F800u, 0x00000000u }); + UpdateMask allowedMaskForTarget = new(ChangeMaskLength, [0xFFFFDFFFu, 0xF0FFBFFFu, 0x000F7FFFu, 0xFFFFFF01u, 0x007FFFFFu, 0x0003F800u, 0x00000000u]); AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); changesMask.AND(allowedMaskForTarget); } @@ -1716,333 +1715,333 @@ namespace Game.Entities } if (changesMask[41]) { - data.WriteInt32(ScalingHealthItemLevelCurveID); + data.WriteUInt32(GetViewerDependentFactionTemplate(this, owner, receiver)); } if (changesMask[42]) { - data.WriteInt32(ScalingDamageItemLevelCurveID); + data.WriteUInt32(GetViewerDependentFlags(this, owner, receiver)); } if (changesMask[43]) { - data.WriteUInt32(GetViewerDependentFactionTemplate(this, owner, receiver)); + data.WriteUInt32(Flags2); } if (changesMask[44]) { - data.WriteUInt32(GetViewerDependentFlags(this, owner, receiver)); + data.WriteUInt32(GetViewerDependentFlags3(this, owner, receiver)); } if (changesMask[45]) { - data.WriteUInt32(Flags2); + data.WriteUInt32(GetViewerDependentAuraState(this, owner, receiver)); } if (changesMask[46]) { - data.WriteUInt32(GetViewerDependentFlags3(this, owner, receiver)); + data.WriteUInt32(RangedAttackRoundBaseTime); } if (changesMask[47]) { - data.WriteUInt32(GetViewerDependentAuraState(this, owner, receiver)); + data.WriteFloat(BoundingRadius); } if (changesMask[48]) { - data.WriteUInt32(RangedAttackRoundBaseTime); + data.WriteFloat(CombatReach); } if (changesMask[49]) { - data.WriteFloat(BoundingRadius); + data.WriteFloat(DisplayScale); } if (changesMask[50]) { - data.WriteFloat(CombatReach); + data.WriteInt32(CreatureFamily); } if (changesMask[51]) { - data.WriteFloat(DisplayScale); + data.WriteInt32(CreatureType); } if (changesMask[52]) { - data.WriteInt32(CreatureFamily); + data.WriteUInt32(NativeDisplayID); } if (changesMask[53]) { - data.WriteInt32(CreatureType); + data.WriteFloat(NativeXDisplayScale); } if (changesMask[54]) { - data.WriteUInt32(NativeDisplayID); + data.WriteUInt32(MountDisplayID); } if (changesMask[55]) { - data.WriteFloat(NativeXDisplayScale); + data.WriteUInt32(CosmeticMountDisplayID); } if (changesMask[56]) { - data.WriteUInt32(MountDisplayID); + data.WriteFloat(MinDamage); } if (changesMask[57]) { - data.WriteUInt32(CosmeticMountDisplayID); + data.WriteFloat(MaxDamage); } if (changesMask[58]) { - data.WriteFloat(MinDamage); + data.WriteFloat(MinOffHandDamage); } if (changesMask[59]) { - data.WriteFloat(MaxDamage); + data.WriteFloat(MaxOffHandDamage); } if (changesMask[60]) { - data.WriteFloat(MinOffHandDamage); + data.WriteUInt8(StandState); } if (changesMask[61]) { - data.WriteFloat(MaxOffHandDamage); + data.WriteUInt8(PetTalentPoints); } if (changesMask[62]) { - data.WriteUInt8(StandState); + data.WriteUInt8(VisFlags); } if (changesMask[63]) { - data.WriteUInt8(PetTalentPoints); + data.WriteUInt8(AnimTier); } } if (changesMask[64]) { if (changesMask[65]) { - data.WriteUInt8(VisFlags); + data.WriteUInt32(PetNumber); } if (changesMask[66]) { - data.WriteUInt8(AnimTier); + data.WriteUInt32(PetNameTimestamp); } if (changesMask[67]) { - data.WriteUInt32(PetNumber); + data.WriteUInt32(PetExperience); } if (changesMask[68]) { - data.WriteUInt32(PetNameTimestamp); + data.WriteUInt32(PetNextLevelExperience); } if (changesMask[69]) { - data.WriteUInt32(PetExperience); + data.WriteFloat(ModCastingSpeed); } if (changesMask[70]) { - data.WriteUInt32(PetNextLevelExperience); + data.WriteFloat(ModCastingSpeedNeg); } if (changesMask[71]) { - data.WriteFloat(ModCastingSpeed); + data.WriteFloat(ModSpellHaste); } if (changesMask[72]) { - data.WriteFloat(ModCastingSpeedNeg); + data.WriteFloat(ModHaste); } if (changesMask[73]) { - data.WriteFloat(ModSpellHaste); + data.WriteFloat(ModRangedHaste); } if (changesMask[74]) { - data.WriteFloat(ModHaste); + data.WriteFloat(ModHasteRegen); } if (changesMask[75]) { - data.WriteFloat(ModRangedHaste); + data.WriteFloat(ModTimeRate); } if (changesMask[76]) { - data.WriteFloat(ModHasteRegen); + data.WriteUInt32(CreatedBySpell); } if (changesMask[77]) { - data.WriteFloat(ModTimeRate); + data.WriteInt32(EmoteState); } if (changesMask[78]) { - data.WriteUInt32(CreatedBySpell); + data.WriteUInt32(BaseMana); } if (changesMask[79]) { - data.WriteInt32(EmoteState); + data.WriteUInt32(BaseHealth); } if (changesMask[80]) { - data.WriteUInt32(BaseMana); + data.WriteUInt8(SheatheState); } if (changesMask[81]) { - data.WriteUInt32(BaseHealth); + data.WriteUInt8(GetViewerDependentPvpFlags(this, owner, receiver)); } if (changesMask[82]) { - data.WriteUInt8(SheatheState); + data.WriteUInt8(PetFlags); } if (changesMask[83]) { - data.WriteUInt8(GetViewerDependentPvpFlags(this, owner, receiver)); + data.WriteUInt8(ShapeshiftForm); } if (changesMask[84]) { - data.WriteUInt8(PetFlags); + data.WriteInt32(AttackPower); } if (changesMask[85]) { - data.WriteUInt8(ShapeshiftForm); + data.WriteInt32(AttackPowerModPos); } if (changesMask[86]) { - data.WriteInt32(AttackPower); + data.WriteInt32(AttackPowerModNeg); } if (changesMask[87]) { - data.WriteInt32(AttackPowerModPos); + data.WriteFloat(AttackPowerMultiplier); } if (changesMask[88]) { - data.WriteInt32(AttackPowerModNeg); + data.WriteInt32(AttackPowerModSupport); } if (changesMask[89]) { - data.WriteFloat(AttackPowerMultiplier); + data.WriteInt32(RangedAttackPower); } if (changesMask[90]) { - data.WriteInt32(AttackPowerModSupport); + data.WriteInt32(RangedAttackPowerModPos); } if (changesMask[91]) { - data.WriteInt32(RangedAttackPower); + data.WriteInt32(RangedAttackPowerModNeg); } if (changesMask[92]) { - data.WriteInt32(RangedAttackPowerModPos); + data.WriteFloat(RangedAttackPowerMultiplier); } if (changesMask[93]) { - data.WriteFloat(RangedAttackPowerModNeg); + data.WriteInt32(RangedAttackPowerModSupport); } if (changesMask[94]) { - data.WriteFloat(RangedAttackPowerMultiplier); + data.WriteInt32(MainHandWeaponAttackPower); } if (changesMask[95]) { - data.WriteInt32(RangedAttackPowerModSupport); + data.WriteInt32(OffHandWeaponAttackPower); } } if (changesMask[96]) { if (changesMask[97]) { - data.WriteInt32(MainHandWeaponAttackPower); + data.WriteInt32(RangedWeaponAttackPower); } if (changesMask[98]) { - data.WriteInt32(OffHandWeaponAttackPower); + data.WriteInt32(SetAttackSpeedAura); } if (changesMask[99]) { - data.WriteFloat(RangedWeaponAttackPower); + data.WriteFloat(Lifesteal); } if (changesMask[100]) { - data.WriteFloat(SetAttackSpeedAura); + data.WriteFloat(MinRangedDamage); } if (changesMask[101]) { - data.WriteFloat(Lifesteal); + data.WriteFloat(MaxRangedDamage); } if (changesMask[102]) { - data.WriteFloat(MinRangedDamage); + data.WriteFloat(ManaCostMultiplier); } if (changesMask[103]) { - data.WriteFloat(MaxRangedDamage); + data.WriteFloat(MaxHealthModifier); } if (changesMask[104]) { - data.WriteFloat(ManaCostMultiplier); + data.WriteFloat(HoverHeight); } if (changesMask[105]) { - data.WriteFloat(MaxHealthModifier); + data.WriteUInt32(MinItemLevelCutoff); } if (changesMask[106]) { - data.WriteFloat(HoverHeight); + data.WriteUInt32(MinItemLevel); } if (changesMask[107]) { - data.WriteUInt32(MinItemLevelCutoff); + data.WriteUInt32(MaxItemLevel); } if (changesMask[108]) { - data.WriteUInt32(MinItemLevel); + data.WriteInt32(AzeriteItemLevel); } if (changesMask[109]) { - data.WriteUInt32(MaxItemLevel); + data.WriteUInt32(WildBattlePetLevel); } if (changesMask[110]) { - data.WriteInt32(AzeriteItemLevel); + data.WriteUInt32(BattlePetCompanionExperience); } if (changesMask[111]) { - data.WriteUInt32(WildBattlePetLevel); + data.WriteUInt32(BattlePetCompanionNameTimestamp); } if (changesMask[112]) { - data.WriteUInt32(BattlePetCompanionExperience); + data.WriteInt32(GetViewerDependentInteractSpellId(this, owner, receiver)); } if (changesMask[113]) { - data.WriteUInt32(BattlePetCompanionNameTimestamp); + data.WriteInt32(ScaleDuration); } if (changesMask[114]) { - data.WriteInt32(GetViewerDependentInteractSpellId(this, owner, receiver)); + data.WriteInt32(LooksLikeMountID); } if (changesMask[115]) { - data.WriteInt32(ScaleDuration); + data.WriteInt32(LooksLikeCreatureID); } if (changesMask[116]) { - data.WriteInt32(LooksLikeMountID); + data.WriteInt32(LookAtControllerID); } if (changesMask[117]) { - data.WriteInt32(LooksLikeCreatureID); + data.WriteInt32(PerksVendorItemID); } if (changesMask[118]) { - data.WriteInt32(LookAtControllerID); + data.WriteInt32(TaxiNodesID); } if (changesMask[119]) { - data.WriteInt32(PerksVendorItemID); + data.WritePackedGuid(GuildGUID); } if (changesMask[120]) { - data.WriteInt32(TaxiNodesID); + data.WriteInt32(FlightCapabilityID); } if (changesMask[121]) { - data.WritePackedGuid(GuildGUID); + data.WriteFloat(GlideEventSpeedDivisor); } if (changesMask[122]) { - data.WriteInt32(FlightCapabilityID); + data.WriteUInt32(Field_308); } if (changesMask[123]) { - data.WriteFloat(GlideEventSpeedDivisor); + data.WriteUInt32(Field_30C); } if (changesMask[124]) { @@ -2125,6 +2124,10 @@ namespace Game.Entities { data.WriteInt32(StatNegBuff[i]); } + if (changesMask[191 + i]) + { + data.WriteInt32(StatSupportBuff[i]); + } } } if (changesMask[195]) @@ -2188,8 +2191,6 @@ namespace Game.Entities ClearChangesMask(ScalingLevelMax); ClearChangesMask(ScalingLevelDelta); ClearChangesMask(ScalingFactionGroup); - ClearChangesMask(ScalingHealthItemLevelCurveID); - ClearChangesMask(ScalingDamageItemLevelCurveID); ClearChangesMask(FactionTemplate); ClearChangesMask(Flags); ClearChangesMask(Flags2); @@ -2269,6 +2270,8 @@ namespace Game.Entities ClearChangesMask(GuildGUID); ClearChangesMask(FlightCapabilityID); ClearChangesMask(GlideEventSpeedDivisor); + ClearChangesMask(Field_308); + ClearChangesMask(Field_30C); ClearChangesMask(SilencedSchoolMask); ClearChangesMask(CurrentAreaID); ClearChangesMask(NameplateAttachToGUID); @@ -2612,6 +2615,53 @@ namespace Game.Entities } } + public class PetCreatureName : HasChangesMask + { + 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); + data.WriteBits(Name.GetValue().GetByteCount(), 8); + data.WriteString(Name); + data.FlushBits(); + } + + public void WriteUpdate(WorldPacket data, bool ignoreChangesMask, Player owner, Player receiver) + { + UpdateMask changesMask = _changesMask; + if (ignoreChangesMask) + changesMask.SetAll(); + + data.WriteBits(changesMask.GetBlock(0), 3); + + data.FlushBits(); + if (changesMask[0]) + { + if (changesMask[1]) + { + data.WriteUInt32(CreatureID); + } + if (changesMask[2]) + { + data.WriteBits(Name.GetValue().GetByteCount(), 8); + data.WriteString(Name); + } + } + data.FlushBits(); + } + + public override void ClearChangesMask() + { + ClearChangesMask(CreatureID); + ClearChangesMask(Name); + _changesMask.ResetAll(); + } + } + public class CTROptions { public uint ContentTuningConditionMask; @@ -2767,51 +2817,52 @@ namespace Game.Entities public DynamicUpdateField QaCustomizations = new(0, 4); public DynamicUpdateField QuestSessionQuestLog = new(0, 5); public DynamicUpdateField ArenaCooldowns = new(0, 6); - public DynamicUpdateField VisualItemReplacements = new(0, 7); - public UpdateField DuelArbiter = new(0, 8); - public UpdateField WowAccount = new(0, 9); - public UpdateField BnetAccount = new(0, 10); - public UpdateField GuildClubMemberID = new(0, 11); - public UpdateField LootTargetGUID = new(0, 12); - public UpdateField PlayerFlags = new(0, 13); - public UpdateField PlayerFlagsEx = new(0, 14); - public UpdateField GuildRankID = new(0, 15); - public UpdateField GuildDeleteDate = new(0, 16); - public UpdateField GuildLevel = new(0, 17); - public UpdateField NativeSex = new(0, 18); - public UpdateField Inebriation = new(0, 19); - public UpdateField PvpTitle = new(0, 20); - public UpdateField ArenaFaction = new(0, 21); - public UpdateField DuelTeam = new(0, 22); - public UpdateField GuildTimeStamp = new(0, 23); - public UpdateField PlayerTitle = new(0, 24); - public UpdateField FakeInebriation = new(0, 25); - public UpdateField VirtualPlayerRealm = new(0, 26); - public UpdateField CurrentSpecID = new(0, 27); - public UpdateField TaxiMountAnimKitID = new(0, 28); - public UpdateField CurrentBattlePetBreedQuality = new(0, 29); - public UpdateField HonorLevel = new(0, 30); - public UpdateField LogoutTime = new(0, 31); - public UpdateFieldString Name = new(32, 33); - public UpdateField Field_1AC = new(32, 34); - public UpdateField Field_1B0 = new(32, 35); - public UpdateField CurrentBattlePetSpeciesID = new(32, 36); - public UpdateField CtrOptions = new(32, 37); - public UpdateField CovenantID = new(32, 38); - public UpdateField SoulbindID = new(32, 39); - public UpdateField DungeonScore = new(32, 40); - public UpdateField SpectateTarget = new(32, 41); - public UpdateField Field_200 = new(32, 42); - public OptionalUpdateField DeclinedNames = new(32, 43); - public UpdateField PersonalTabard = new(32, 44); - public UpdateFieldArray PartyType = new(2, 45, 46); - public UpdateFieldArray QuestLog = new(175, 48, 49); - public UpdateFieldArray VisibleItems = new(19, 224, 225); - public UpdateFieldArray AvgItemLevel = new(6, 244, 245); - public UpdateFieldArray VisibleEquipableSpells = new(16, 251, 252); - public UpdateFieldArray Field_3120 = new(19, 268, 269); + public DynamicUpdateField VisualItemReplacements = new(0, 8); + public DynamicUpdateField PetNames = new(0, 7); + public UpdateField DuelArbiter = new(0, 9); + public UpdateField WowAccount = new(0, 10); + public UpdateField BnetAccount = new(0, 11); + public UpdateField GuildClubMemberID = new(0, 12); + public UpdateField LootTargetGUID = new(0, 13); + public UpdateField PlayerFlags = new(0, 14); + public UpdateField PlayerFlagsEx = new(0, 15); + public UpdateField GuildRankID = new(0, 16); + public UpdateField GuildDeleteDate = new(0, 17); + public UpdateField GuildLevel = new(0, 18); + public UpdateField NativeSex = new(0, 19); + public UpdateField Inebriation = new(0, 20); + public UpdateField PvpTitle = new(0, 21); + public UpdateField ArenaFaction = new(0, 22); + public UpdateField DuelTeam = new(0, 23); + public UpdateField GuildTimeStamp = new(0, 24); + public UpdateField PlayerTitle = new(0, 25); + 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 VisibleEquipableSpells = new(16, 252, 253); + public UpdateFieldArray Field_3120 = new(19, 269, 270); - public PlayerData() : base(0, TypeId.Player, 288) { } + public PlayerData() : base(0, TypeId.Player, 289) { } public void WriteCreate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, Player owner, Player receiver) { @@ -2864,6 +2915,7 @@ namespace Game.Entities data.WriteInt32(Field_1AC); data.WriteInt32(Field_1B0); data.WriteInt32(CurrentBattlePetSpeciesID); + data.WriteInt32(PetNames.Size()); ((CTROptions)CtrOptions).WriteCreate(data, owner, receiver); data.WriteInt32(CovenantID); data.WriteInt32(SoulbindID); @@ -2906,12 +2958,16 @@ namespace Game.Entities } data.WriteBit(HasLevelLink); data.WriteBits(DeclinedNames.HasValue(), 1); - DungeonScore._value.Write(data); + DungeonScore.GetValue().Write(data); data.WriteString(Name); for (int i = 0; i < 16; ++i) { VisibleEquipableSpells[i].Write(data); } + for (int i = 0; i < PetNames.Size(); ++i) + { + PetNames[i].WriteCreate(data, owner, receiver); + } if (DeclinedNames.HasValue()) { DeclinedNames.GetValue().WriteCreate(data, owner, receiver); @@ -2921,7 +2977,7 @@ namespace Game.Entities public void WriteUpdate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, Player owner, Player receiver) { - UpdateMask allowedMaskForTarget = new(288, [0xFFFFFFDDu, 0x0000FFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFFFu, 0xFFFFFFFFu]); + UpdateMask allowedMaskForTarget = new(289, [0xFFFFFFDDu, 0x0001FFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFFEu, 0xFFFFFFFFu, 0x00000001u]); AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); } @@ -2929,20 +2985,20 @@ namespace Game.Entities public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags) { if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.PartyMember)) - allowedMaskForTarget.OR(new UpdateMask(288, [0x00000022u, 0xFFFF0000u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x00000000u, 0x00000000u])); + allowedMaskForTarget.OR(new UpdateMask(289, [0x00000022u, 0xFFFE0000u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x00000001u, 0x00000000u, 0x00000000u])); } public void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags) { - UpdateMask allowedMaskForTarget = new(288, [0xFFFFFFDDu, 0x0000FFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFFFu, 0xFFFFFFFFu]); + UpdateMask allowedMaskForTarget = new(289, [0xFFFFFFDDu, 0x0001FFFFu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFFFFFFEu, 0xFFFFFFFFu, 0x00000001u]); AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); changesMask.AND(allowedMaskForTarget); } public void WriteUpdate(WorldPacket data, UpdateMask changesMask, bool ignoreNestedChangesMask, Player owner, Player receiver) { - data.WriteBits(changesMask.GetBlocksMask(0), 9); - for (uint i = 0; i < 9; ++i) + data.WriteBits(changesMask.GetBlocksMask(0), 10); + for (uint i = 0; i < 10; ++i) if (changesMask.GetBlock(i) != 0) data.WriteBits(changesMask.GetBlock(i), 32); @@ -2986,6 +3042,13 @@ namespace Game.Entities WriteCompleteDynamicFieldUpdateMask(ArenaCooldowns.Size(), data); } if (changesMask[7]) + { + if (!ignoreNestedChangesMask) + PetNames.WriteUpdateMask(data); + else + WriteCompleteDynamicFieldUpdateMask(PetNames.Size(), data); + } + if (changesMask[8]) { if (!ignoreNestedChangesMask) VisualItemReplacements.WriteUpdateMask(data); @@ -3039,7 +3102,7 @@ namespace Game.Entities } } } - if (changesMask[7]) + if (changesMask[8]) { for (int i = 0; i < VisualItemReplacements.Size(); ++i) { @@ -3049,156 +3112,166 @@ namespace Game.Entities } } } - if (changesMask[8]) + if (changesMask[7]) { - data.WritePackedGuid(DuelArbiter); + for (int i = 0; i < PetNames.Size(); ++i) + { + if (PetNames.HasChanged(i) || ignoreNestedChangesMask) + { + PetNames[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + } + } } if (changesMask[9]) { - data.WritePackedGuid(WowAccount); + data.WritePackedGuid(DuelArbiter); } if (changesMask[10]) { - data.WritePackedGuid(BnetAccount); + data.WritePackedGuid(WowAccount); } if (changesMask[11]) { - data.WriteUInt64(GuildClubMemberID); + data.WritePackedGuid(BnetAccount); } if (changesMask[12]) { - data.WritePackedGuid(LootTargetGUID); + data.WriteUInt64(GuildClubMemberID); } if (changesMask[13]) { - data.WriteUInt32(PlayerFlags); + data.WritePackedGuid(LootTargetGUID); } if (changesMask[14]) { - data.WriteUInt32(PlayerFlagsEx); + data.WriteUInt32(PlayerFlags); } if (changesMask[15]) { - data.WriteUInt32(GuildRankID); + data.WriteUInt32(PlayerFlagsEx); } if (changesMask[16]) { - data.WriteUInt32(GuildDeleteDate); + data.WriteUInt32(GuildRankID); } if (changesMask[17]) { - data.WriteUInt32(GuildLevel); + data.WriteUInt32(GuildDeleteDate); } if (changesMask[18]) { - data.WriteUInt8(NativeSex); + data.WriteUInt32(GuildLevel); } if (changesMask[19]) { - data.WriteUInt8(Inebriation); + data.WriteUInt8(NativeSex); } if (changesMask[20]) { - data.WriteUInt8(PvpTitle); + data.WriteUInt8(Inebriation); } if (changesMask[21]) { - data.WriteUInt8(ArenaFaction); + data.WriteUInt8(PvpTitle); } if (changesMask[22]) { - data.WriteUInt32(DuelTeam); + data.WriteUInt8(ArenaFaction); } if (changesMask[23]) { - data.WriteInt32(GuildTimeStamp); + data.WriteUInt32(DuelTeam); } if (changesMask[24]) { - data.WriteUInt32(PlayerTitle); + data.WriteInt32(GuildTimeStamp); } if (changesMask[25]) { - data.WriteInt32(FakeInebriation); + data.WriteUInt32(PlayerTitle); } if (changesMask[26]) { - data.WriteUInt32(VirtualPlayerRealm); + data.WriteInt32(FakeInebriation); } if (changesMask[27]) { - data.WriteUInt32(CurrentSpecID); + data.WriteUInt32(VirtualPlayerRealm); } if (changesMask[28]) { - data.WriteInt64(TaxiMountAnimKitID); + data.WriteUInt32(CurrentSpecID); } if (changesMask[29]) { - data.WriteUInt8(CurrentBattlePetBreedQuality); + data.WriteInt32(TaxiMountAnimKitID); } if (changesMask[30]) { - data.WriteUInt32(HonorLevel); + data.WriteUInt8(CurrentBattlePetBreedQuality); } if (changesMask[31]) { - data.WriteInt64(LogoutTime); + data.WriteUInt32(HonorLevel); } } if (changesMask[32]) { - if (changesMask[34]) + if (changesMask[33]) { - data.WriteInt32(Field_1AC); + data.WriteInt64(LogoutTime); } if (changesMask[35]) { - data.WriteInt32(Field_1B0); + data.WriteInt32(Field_1AC); } if (changesMask[36]) { - data.WriteInt32(CurrentBattlePetSpeciesID); + data.WriteInt32(Field_1B0); } if (changesMask[37]) { - ((CTROptions)CtrOptions).WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); + data.WriteInt32(CurrentBattlePetSpeciesID); } if (changesMask[38]) { - data.WriteInt32(CovenantID); + ((CTROptions)CtrOptions).WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } if (changesMask[39]) { - data.WriteInt32(SoulbindID); + data.WriteInt32(CovenantID); } - if (changesMask[41]) + if (changesMask[40]) { - data.WritePackedGuid(SpectateTarget); + data.WriteInt32(SoulbindID); } if (changesMask[42]) + { + data.WritePackedGuid(SpectateTarget); + } + if (changesMask[43]) { data.WriteInt32(Field_200); } - if (changesMask[44]) + if (changesMask[45]) { PersonalTabard.GetValue().WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } - if (changesMask[33]) + if (changesMask[34]) { data.WriteBits(Name.GetValue().GetByteCount(), 6); } data.WriteBits(DeclinedNames.HasValue(), 1); data.FlushBits(); - if (changesMask[40]) + if (changesMask[41]) { DungeonScore.GetValue().Write(data); } - if (changesMask[33]) + if (changesMask[34]) { data.WriteString(Name); } - if (changesMask[43]) + if (changesMask[44]) { if (DeclinedNames.HasValue()) { @@ -3206,21 +3279,21 @@ namespace Game.Entities } } } - if (changesMask[45]) + if (changesMask[46]) { for (int i = 0; i < 2; ++i) { - if (changesMask[46 + i]) + if (changesMask[47 + i]) { data.WriteUInt8(PartyType[i]); } } } - if (changesMask[48]) + if (changesMask[49]) { for (int i = 0; i < 175; ++i) { - if (changesMask[49 + i]) + if (changesMask[50 + i]) { if (noQuestLogChangesMask) QuestLog[i].WriteCreate(data, owner, receiver); @@ -3229,41 +3302,41 @@ namespace Game.Entities } } } - if (changesMask[224]) + if (changesMask[225]) { for (int i = 0; i < 19; ++i) { - if (changesMask[225 + i]) + if (changesMask[226 + i]) { VisibleItems[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } } } - if (changesMask[244]) + if (changesMask[245]) { for (int i = 0; i < 6; ++i) { - if (changesMask[245 + i]) + if (changesMask[246 + i]) { data.WriteFloat(AvgItemLevel[i]); } } } - if (changesMask[268]) + if (changesMask[269]) { for (int i = 0; i < 19; ++i) { - if (changesMask[269 + i]) + if (changesMask[270 + i]) { data.WriteUInt32(Field_3120[i]); } } } - if (changesMask[251]) + if (changesMask[252]) { for (int i = 0; i < 16; ++i) { - if (changesMask[252 + i]) + if (changesMask[253 + i]) { VisibleEquipableSpells[i].Write(data); } @@ -3281,6 +3354,7 @@ namespace Game.Entities ClearChangesMask(QuestSessionQuestLog); ClearChangesMask(ArenaCooldowns); ClearChangesMask(VisualItemReplacements); + ClearChangesMask(PetNames); ClearChangesMask(DuelArbiter); ClearChangesMask(WowAccount); ClearChangesMask(BnetAccount); @@ -3797,22 +3871,22 @@ namespace Game.Entities public class MawPower { - public int Field_0; - public int Field_4; - public int Field_8; + public int SpellID; + public int MawPowerID; + public int Stacks; public void WriteCreate(WorldPacket data, Player owner, Player receiver) { - data.WriteInt32(Field_0); - data.WriteInt32(Field_4); - data.WriteInt32(Field_8); + data.WriteInt32(SpellID); + data.WriteInt32(MawPowerID); + data.WriteInt32(Stacks); } public void WriteUpdate(WorldPacket data, bool ignoreChangesMask, Player owner, Player receiver) { - data.WriteInt32(Field_0); - data.WriteInt32(Field_4); - data.WriteInt32(Field_8); + data.WriteInt32(SpellID); + data.WriteInt32(MawPowerID); + data.WriteInt32(Stacks); } } @@ -4875,7 +4949,7 @@ namespace Game.Entities public static int QuestCompletedBitsSize; public static int QuestCompletedBitsPerBlock; - static int changeMaskLength = 1452; + static int changeMaskLength = 1454; public UpdateField BackpackAutoSortDisabled = new(0, 1); public UpdateField BackpackSellJunkDisabled = new(0, 2); @@ -4883,7 +4957,7 @@ namespace Game.Entities public UpdateField SortBagsRightToLeft = new(0, 4); public UpdateField InsertItemsLeftToRight = new(0, 5); public UpdateField HasPerksProgramPendingReward = new(0, 6); - public UpdateFieldArray> DataFlags = new(8, 36, 37); + public UpdateFieldArray> DataFlags = new(9, 36, 37); public UpdateFieldArray> ResearchSites = new(1, 38, 39); public UpdateFieldArray> ResearchSiteProgress = new(1, 40, 41); public UpdateFieldArray> Research = new(1, 42, 43); @@ -4992,36 +5066,37 @@ namespace Game.Entities public UpdateField Field_1410 = new(104, 121); public OptionalUpdateField QuestSession = new(104, 120); public UpdateField UiChromieTimeExpansionID = new(104, 122); - public UpdateField TransportServerTime = new(104, 123); - public UpdateField WeeklyRewardsPeriodSinceOrigin = new(104, 124); // week count since Cfg_RegionsEntry::ChallengeOrigin - public UpdateField DEBUGSoulbindConduitRank = new(104, 125); - public UpdateField DungeonScore = new(104, 126); - public UpdateField ActiveCombatTraitConfigID = new(104, 127); - public UpdateField ItemUpgradeHighOnehandWeaponItemID = new(104, 128); - public UpdateField ItemUpgradeHighFingerItemID = new(104, 129); - public UpdateField ItemUpgradeHighFingerWatermark = new(104, 130); - public UpdateField ItemUpgradeHighTrinketItemID = new(104, 131); - public UpdateField ItemUpgradeHighTrinketWatermark = new(104, 132); - public UpdateField LootHistoryInstanceID = new(104, 133); - public OptionalUpdateField PetStable = new(104, 134); - public UpdateField RequiredMountCapabilityFlags = new(104, 135); - public UpdateFieldArray InvSlots = new(227, 136, 137); - public UpdateFieldArray RestInfo = new(2, 364, 365); - public UpdateFieldArray ModDamageDonePos = new(7, 367, 368); - public UpdateFieldArray ModDamageDoneNeg = new(7, 367, 375); - public UpdateFieldArray ModDamageDonePercent = new(7, 367, 382); - public UpdateFieldArray ModHealingDonePercent = new(7, 367, 389); - public UpdateFieldArray WeaponDmgMultipliers = new(3, 396, 397); - public UpdateFieldArray WeaponAtkSpeedMultipliers = new(3, 396, 400); - public UpdateFieldArray BuybackPrice = new(12, 403, 404); - public UpdateFieldArray BuybackTimestamp = new(12, 403, 416); - public UpdateFieldArray CombatRatings = new(32, 428, 429); - public UpdateFieldArray NoReagentCostMask = new(4, 461, 462); - public UpdateFieldArray ProfessionSkillLine = new(2, 466, 467); - public UpdateFieldArray BagSlotFlags = new(5, 469, 470); - public UpdateFieldArray BankBagSlotFlags = new(7, 475, 476); - public UpdateFieldArray QuestCompleted = new(950, 483, 484); - public UpdateFieldArray ItemUpgradeHighWatermark = new(17, 1434, 1435); + public UpdateField TimerunningSeasonID = new(104, 123); + public UpdateField TransportServerTime = new(104, 124); + public UpdateField WeeklyRewardsPeriodSinceOrigin = new(104, 125); // week count since Cfg_RegionsEntry::ChallengeOrigin + public UpdateField DEBUGSoulbindConduitRank = new(104, 126); + public UpdateField DungeonScore = new(104, 127); + public UpdateField ActiveCombatTraitConfigID = new(104, 128); + public UpdateField ItemUpgradeHighOnehandWeaponItemID = new(104, 129); + public UpdateField ItemUpgradeHighFingerItemID = new(104, 130); + public UpdateField ItemUpgradeHighFingerWatermark = new(104, 131); + public UpdateField ItemUpgradeHighTrinketItemID = new(104, 132); + public UpdateField ItemUpgradeHighTrinketWatermark = new(104, 133); + public UpdateField LootHistoryInstanceID = new(104, 134); + public OptionalUpdateField PetStable = new(104, 135); + public UpdateField RequiredMountCapabilityFlags = new(136, 137); + public UpdateFieldArray InvSlots = new(227, 138, 139); + public UpdateFieldArray RestInfo = new(2, 366, 367); + public UpdateFieldArray ModDamageDonePos = new(7, 369, 370); + public UpdateFieldArray ModDamageDoneNeg = new(7, 369, 377); + public UpdateFieldArray ModDamageDonePercent = new(7, 369, 384); + public UpdateFieldArray ModHealingDonePercent = new(7, 369, 391); + public UpdateFieldArray WeaponDmgMultipliers = new(3, 398, 399); + public UpdateFieldArray WeaponAtkSpeedMultipliers = new(3, 398, 402); + public UpdateFieldArray BuybackPrice = new(12, 405, 406); + public UpdateFieldArray BuybackTimestamp = new(12, 405, 418); + public UpdateFieldArray CombatRatings = new(32, 430, 431); + public UpdateFieldArray NoReagentCostMask = new(4, 463, 464); + public UpdateFieldArray ProfessionSkillLine = new(2, 468, 469); + public UpdateFieldArray BagSlotFlags = new(5, 471, 472); + public UpdateFieldArray BankBagSlotFlags = new(7, 477, 478); + public UpdateFieldArray QuestCompleted = new(950, 485, 486); + public UpdateFieldArray ItemUpgradeHighWatermark = new(17, 1436, 1437); public ActivePlayerData() : base(0, TypeId.ActivePlayer, changeMaskLength) { @@ -5069,7 +5144,7 @@ namespace Game.Entities data.WriteFloat(VersatilityBonus); data.WriteFloat(PvpPowerDamage); data.WriteFloat(PvpPowerHealing); - for (int i = 0; i < 8; ++i) + for (int i = 0; i < 9; ++i) { data.WriteInt32(DataFlags[i].Size()); for (int j = 0; j < DataFlags[i].Size(); ++j) @@ -5201,6 +5276,7 @@ namespace Game.Entities data.WriteInt32(TaskQuests.Size()); data.WriteInt32(DisabledSpells.Size()); data.WriteInt32(UiChromieTimeExpansionID); + data.WriteInt32(TimerunningSeasonID); data.WriteInt32(TransportServerTime); data.WriteUInt32(WeeklyRewardsPeriodSinceOrigin); data.WriteInt16(DEBUGSoulbindConduitRank); @@ -5409,7 +5485,7 @@ namespace Game.Entities } if (changesMask[36]) { - for (int i = 0; i < 8; ++i) + for (int i = 0; i < 9; ++i) { if (changesMask[37]) { @@ -5422,7 +5498,7 @@ namespace Game.Entities } if (changesMask[36]) { - for (int i = 0; i < 8; ++i) + for (int i = 0; i < 9; ++i) { if (changesMask[37]) { @@ -6314,48 +6390,58 @@ namespace Game.Entities } if (changesMask[123]) { - data.WriteInt32(TransportServerTime); + data.WriteInt32(TimerunningSeasonID); } if (changesMask[124]) { - data.WriteUInt32(WeeklyRewardsPeriodSinceOrigin); + data.WriteInt32(TransportServerTime); } if (changesMask[125]) { - data.WriteInt16(DEBUGSoulbindConduitRank); + data.WriteUInt32(WeeklyRewardsPeriodSinceOrigin); } - if (changesMask[127]) + if (changesMask[126]) { - data.WriteUInt32(ActiveCombatTraitConfigID); + data.WriteInt16(DEBUGSoulbindConduitRank); } if (changesMask[128]) { - data.WriteInt32(ItemUpgradeHighOnehandWeaponItemID); + data.WriteUInt32(ActiveCombatTraitConfigID); } if (changesMask[129]) { - data.WriteInt32(ItemUpgradeHighFingerItemID); + data.WriteInt32(ItemUpgradeHighOnehandWeaponItemID); } if (changesMask[130]) { - data.WriteFloat(ItemUpgradeHighFingerWatermark); + data.WriteInt32(ItemUpgradeHighFingerItemID); } if (changesMask[131]) { - data.WriteInt32(ItemUpgradeHighTrinketItemID); + data.WriteFloat(ItemUpgradeHighFingerWatermark); } if (changesMask[132]) { - data.WriteFloat(ItemUpgradeHighTrinketWatermark); + data.WriteInt32(ItemUpgradeHighTrinketItemID); } if (changesMask[133]) + { + data.WriteFloat(ItemUpgradeHighTrinketWatermark); + } + if (changesMask[134]) { data.WriteUInt64(LootHistoryInstanceID); } - if (changesMask[135]) + } + if (changesMask[136]) + { + if (changesMask[137]) { data.WriteUInt8(RequiredMountCapabilityFlags); } + } + if (changesMask[104]) + { data.WriteBits(QuestSession.HasValue(), 1); data.WriteBits(PetStable.HasValue(), 1); } @@ -6381,11 +6467,11 @@ namespace Game.Entities { Field_1410.GetValue().WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } - if (changesMask[126]) + if (changesMask[127]) { DungeonScore.GetValue().Write(data); } - if (changesMask[134]) + if (changesMask[135]) { if (PetStable.HasValue()) { @@ -6393,141 +6479,141 @@ namespace Game.Entities } } } - if (changesMask[136]) + if (changesMask[138]) { for (int i = 0; i < 227; ++i) { - if (changesMask[137 + i]) + if (changesMask[139 + i]) { data.WritePackedGuid(InvSlots[i]); } } } - if (changesMask[364]) + if (changesMask[366]) { for (int i = 0; i < 2; ++i) { - if (changesMask[365 + i]) + if (changesMask[367 + i]) { RestInfo[i].WriteUpdate(data, ignoreNestedChangesMask, owner, receiver); } } } - if (changesMask[367]) + if (changesMask[369]) { for (int i = 0; i < 7; ++i) { - if (changesMask[368 + i]) + if (changesMask[370 + i]) { data.WriteInt32(ModDamageDonePos[i]); } - if (changesMask[375 + i]) + if (changesMask[377 + i]) { data.WriteInt32(ModDamageDoneNeg[i]); } - if (changesMask[382 + i]) + if (changesMask[384 + i]) { data.WriteFloat(ModDamageDonePercent[i]); } - if (changesMask[389 + i]) + if (changesMask[391 + i]) { data.WriteFloat(ModHealingDonePercent[i]); } } } - if (changesMask[396]) + if (changesMask[398]) { for (int i = 0; i < 3; ++i) { - if (changesMask[397 + i]) + if (changesMask[399 + i]) { data.WriteFloat(WeaponDmgMultipliers[i]); } - if (changesMask[400 + i]) + if (changesMask[402 + i]) { data.WriteFloat(WeaponAtkSpeedMultipliers[i]); } } } - if (changesMask[403]) + if (changesMask[405]) { for (int i = 0; i < 12; ++i) { - if (changesMask[404 + i]) + if (changesMask[406 + i]) { data.WriteUInt32(BuybackPrice[i]); } - if (changesMask[416 + i]) + if (changesMask[418 + i]) { data.WriteInt64(BuybackTimestamp[i]); } } } - if (changesMask[428]) + if (changesMask[430]) { for (int i = 0; i < 32; ++i) { - if (changesMask[429 + i]) + if (changesMask[431 + i]) { data.WriteUInt32(CombatRatings[i]); } } } - if (changesMask[461]) + if (changesMask[463]) { for (int i = 0; i < 4; ++i) { - if (changesMask[462 + i]) + if (changesMask[464 + i]) { data.WriteUInt32(NoReagentCostMask[i]); } } } - if (changesMask[466]) + if (changesMask[468]) { for (int i = 0; i < 2; ++i) { - if (changesMask[467 + i]) + if (changesMask[469 + i]) { data.WriteUInt32(ProfessionSkillLine[i]); } } } - if (changesMask[469]) + if (changesMask[471]) { for (int i = 0; i < 5; ++i) { - if (changesMask[470 + i]) + if (changesMask[472 + i]) { data.WriteUInt32(BagSlotFlags[i]); } } } - if (changesMask[475]) + if (changesMask[477]) { for (int i = 0; i < 7; ++i) { - if (changesMask[476 + i]) + if (changesMask[478 + i]) { data.WriteUInt32(BankBagSlotFlags[i]); } } } - if (changesMask[483]) + if (changesMask[485]) { for (int i = 0; i < 950; ++i) { - if (changesMask[484 + i]) + if (changesMask[486 + i]) { data.WriteUInt64(QuestCompleted[i]); } } } - if (changesMask[1434]) + if (changesMask[1436]) { for (int i = 0; i < 17; ++i) { - if (changesMask[1435 + i]) + if (changesMask[1437 + i]) { data.WriteFloat(ItemUpgradeHighWatermark[i]); } @@ -6653,6 +6739,7 @@ namespace Game.Entities ClearChangesMask(Field_1410); ClearChangesMask(QuestSession); ClearChangesMask(UiChromieTimeExpansionID); + ClearChangesMask(TimerunningSeasonID); ClearChangesMask(TransportServerTime); ClearChangesMask(WeeklyRewardsPeriodSinceOrigin); ClearChangesMask(DEBUGSoulbindConduitRank); @@ -7343,7 +7430,6 @@ namespace Game.Entities public UpdateField PositionalSoundKitID = new(0, 24); public UpdateField VisualAnim = new(0, 25); - public AreaTriggerFieldData() : base(0, TypeId.AreaTrigger, 26) { } public void WriteCreate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, AreaTrigger owner, Player receiver) @@ -7685,6 +7771,7 @@ namespace Game.Entities } data.WriteBit(DontPlayBroadcastTextSounds); data.WriteInt32(Actors.Size()); + data.WriteUInt32(Flags); for (int i = 0; i < Actors.Size(); ++i) { Actors[i].WriteCreate(data, owner, receiver); @@ -7749,6 +7836,10 @@ namespace Game.Entities { data.WriteUInt32(Progress); } + if (changesMask[6]) + { + data.WriteUInt32(Flags); + } } data.FlushBits(); } diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index 2d73a6222..85294077f 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -957,16 +957,46 @@ namespace Game.Entities if (srcPetIndex >= 0) { + PetStableFlags flagToAdd, flagToRemove; + if (SharedConst.IsActivePetSlot(dstPetSlot)) + { + flagToAdd = PetStableFlags.Active; + flagToRemove = PetStableFlags.Inactive; + } + else + { + flagToAdd = PetStableFlags.Inactive; + flagToRemove = PetStableFlags.Active; + } + StableInfo stableInfo = m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.PetStable); StablePetInfo stablePetInfo = stableInfo.ModifyValue(stableInfo.Pets, srcPetIndex); + SetUpdateFieldValue(stablePetInfo.ModifyValue(stablePetInfo.PetSlot), (uint)dstPetSlot); + SetUpdateFieldFlagValue(stablePetInfo.ModifyValue(stablePetInfo.PetFlags), (byte)flagToAdd); + RemoveUpdateFieldFlagValue(stablePetInfo.ModifyValue(stablePetInfo.PetFlags), (byte)flagToRemove); } if (dstPetIndex >= 0) { + PetStableFlags flagToAdd, flagToRemove; + if (SharedConst.IsActivePetSlot(srcPetSlot)) + { + flagToAdd = PetStableFlags.Active; + flagToRemove = PetStableFlags.Inactive; + } + else + { + flagToAdd = PetStableFlags.Inactive; + flagToRemove = PetStableFlags.Active; + } + StableInfo stableInfo = m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.PetStable); StablePetInfo stablePetInfo = stableInfo.ModifyValue(stableInfo.Pets, dstPetIndex); + SetUpdateFieldValue(stablePetInfo.ModifyValue(stablePetInfo.PetSlot), (uint)srcPetSlot); + SetUpdateFieldFlagValue(stablePetInfo.ModifyValue(stablePetInfo.PetFlags), (byte)flagToAdd); + RemoveUpdateFieldFlagValue(stablePetInfo.ModifyValue(stablePetInfo.PetFlags), (byte)flagToRemove); } sess.SendPetStableResult(StableResult.StableSuccess); @@ -4745,6 +4775,48 @@ namespace Game.Entities } } + public void DeletePetFromDB(uint petNumber) + { + if (m_activePlayerData.PetStable.HasValue()) + { + int ufIndex = m_activePlayerData.PetStable.GetValue().Pets.FindIndexIf(p => p.PetNumber == petNumber); + if (ufIndex >= 0) + { + StableInfo stableInfo = m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.PetStable); + RemoveDynamicUpdateFieldValue(stableInfo.ModifyValue(stableInfo.Pets), ufIndex); + } + } + + if (m_petStable == null) + return; + + var petIndex = m_petStable.GetCurrentActivePetIndex(); + if (petIndex.HasValue) + if (m_petStable.ActivePets[petIndex.Value] != null && m_petStable.ActivePets[petIndex.Value].PetNumber == petNumber) + m_petStable.CurrentPetIndex = null; + + bool foundPet = false; + + void FindAndRemovePet(PetStable.PetInfo[] pets) + { + for (var i = 0; i < pets.Length; ++i) + { + var pet = pets[i]; + if (pet != null && pet.PetNumber == petNumber && pet.Type == PetType.Hunter) + { + pets[i] = null; + foundPet = true; + } + } + }; + + FindAndRemovePet(m_petStable.ActivePets); + FindAndRemovePet(m_petStable.StabledPets); + + if (foundPet) + Pet.DeleteFromDB(petNumber); + } + public void SendTameFailure(PetTameResult result) { PetTameFailure petTameFailure = new(); @@ -5368,6 +5440,8 @@ namespace Game.Entities tag |= ChatFlags.AFK; if (IsDeveloper()) tag |= ChatFlags.Dev; + if (m_activePlayerData.TimerunningSeasonID != 0) + tag |= ChatFlags.Timerunning; return tag; } diff --git a/Source/Game/Handlers/CharacterHandler.cs b/Source/Game/Handlers/CharacterHandler.cs index a5f963aa1..5f4d9bf25 100644 --- a/Source/Game/Handlers/CharacterHandler.cs +++ b/Source/Game/Handlers/CharacterHandler.cs @@ -417,6 +417,12 @@ namespace Game return; } + if (charCreate.CreateInfo.TimerunningSeasonID != 0) + { + SendCharCreate(ResponseCodes.CharCreateTimerunning); + return; + } + CharacterCreateInfo createInfo = charCreate.CreateInfo; PreparedStatement stmt = CharacterDatabase.GetPreparedStatement(CharStatements.SEL_CHECK_NAME); stmt.AddValue(0, charCreate.CreateInfo.Name); diff --git a/Source/Game/Handlers/ChatHandler.cs b/Source/Game/Handlers/ChatHandler.cs index e121b7624..3381773ac 100644 --- a/Source/Game/Handlers/ChatHandler.cs +++ b/Source/Game/Handlers/ChatHandler.cs @@ -63,9 +63,9 @@ namespace Game } [WorldPacketHandler(ClientOpcodes.ChatMessageWhisper)] - void HandleChatMessageWhisper(ChatMessageWhisper packet) + void HandleChatMessageWhisper(ChatMessageWhisper chatMessageWhisper) { - HandleChat(ChatMsg.Whisper, packet.Language, packet.Text, packet.Target); + HandleChat(ChatMsg.Whisper, chatMessageWhisper.Language, chatMessageWhisper.Text, chatMessageWhisper.Target, chatMessageWhisper.TargetGUID); } [WorldPacketHandler(ClientOpcodes.ChatMessageChannel)] @@ -80,7 +80,7 @@ namespace Game HandleChat(ChatMsg.Emote, Language.Universal, packet.Text); } - void HandleChat(ChatMsg type, Language lang, string msg, string target = "", ObjectGuid channelGuid = default) + void HandleChat(ChatMsg type, Language lang, string msg, string target = "", ObjectGuid targetGuid = default) { Player sender = GetPlayer(); @@ -204,15 +204,22 @@ namespace Game break; case ChatMsg.Whisper: // @todo implement cross realm whispers (someday) - ExtendedPlayerName extName = ObjectManager.ExtractExtendedPlayerName(target); - - if (!ObjectManager.NormalizePlayerName(ref extName.Name)) + Player receiver = null; + if (!targetGuid.IsEmpty()) + receiver = Global.ObjAccessor.FindConnectedPlayer(targetGuid); + else { - SendChatPlayerNotfoundNotice(target); - break; + ExtendedPlayerName extName = ObjectManager.ExtractExtendedPlayerName(target); + + if (!ObjectManager.NormalizePlayerName(ref extName.Name)) + { + SendChatPlayerNotfoundNotice(target); + break; + } + + receiver = Global.ObjAccessor.FindPlayerByName(extName.Name); } - Player receiver = Global.ObjAccessor.FindPlayerByName(extName.Name); if (receiver == null || (lang != Language.Addon && !receiver.IsAcceptWhispers() && receiver.GetSession().HasPermission(RBACPermissions.CanFilterWhispers) && !receiver.IsInWhisperWhiteList(sender.GetGUID()))) { SendChatPlayerNotfoundNotice(target); @@ -331,7 +338,7 @@ namespace Game return; } } - Channel chn = !channelGuid.IsEmpty() ? ChannelManager.GetChannelForPlayerByGuid(channelGuid, sender) : ChannelManager.GetChannelForPlayerByNamePart(target, sender); + Channel chn = !targetGuid.IsEmpty() ? ChannelManager.GetChannelForPlayerByGuid(targetGuid, sender) : ChannelManager.GetChannelForPlayerByNamePart(target, sender); if (chn != null) { var chatChannel = CliDB.ChatChannelsStorage.LookupByKey(chn.GetChannelId()); @@ -373,10 +380,23 @@ namespace Game [WorldPacketHandler(ClientOpcodes.ChatAddonMessageTargeted)] void HandleChatAddonMessageTargeted(ChatAddonMessageTargeted chatAddonMessageTargeted) { - HandleChatAddon(chatAddonMessageTargeted.Params.Type, chatAddonMessageTargeted.Params.Prefix, chatAddonMessageTargeted.Params.Text, chatAddonMessageTargeted.Params.IsLogged, chatAddonMessageTargeted.Target, chatAddonMessageTargeted.ChannelGUID); + switch (chatAddonMessageTargeted.Params.Type) + { + case ChatMsg.Whisper: + HandleChatAddon(chatAddonMessageTargeted.Params.Type, chatAddonMessageTargeted.Params.Prefix, chatAddonMessageTargeted.Params.Text, + chatAddonMessageTargeted.Params.IsLogged, chatAddonMessageTargeted.PlayerName, chatAddonMessageTargeted.PlayerGUID); + break; + case ChatMsg.Channel: + HandleChatAddon(chatAddonMessageTargeted.Params.Type, chatAddonMessageTargeted.Params.Prefix, chatAddonMessageTargeted.Params.Text, + chatAddonMessageTargeted.Params.IsLogged, chatAddonMessageTargeted.ChannelName, chatAddonMessageTargeted.ChannelGUID); + break; + default: + Log.outError(LogFilter.Misc, $"HandleChatAddonMessageTargetedOpcode: unknown addon message type {chatAddonMessageTargeted.Params.Type}"); + break; + } } - void HandleChatAddon(ChatMsg type, string prefix, string text, bool isLogged, string target = "", ObjectGuid? channelGuid = null) + void HandleChatAddon(ChatMsg type, string prefix, string text, bool isLogged, string target = "", ObjectGuid? targetGuid = null) { Player sender = GetPlayer(); @@ -403,12 +423,19 @@ namespace Game break; case ChatMsg.Whisper: // @todo implement cross realm whispers (someday) - ExtendedPlayerName extName = ObjectManager.ExtractExtendedPlayerName(target); + Player receiver = null; + if (targetGuid.HasValue && !targetGuid.Value.IsEmpty()) + receiver = Global.ObjAccessor.FindConnectedPlayer(targetGuid.Value); + else + { + ExtendedPlayerName extName = ObjectManager.ExtractExtendedPlayerName(target); - if (!ObjectManager.NormalizePlayerName(ref extName.Name)) - break; + if (!ObjectManager.NormalizePlayerName(ref extName.Name)) + break; + + receiver = Global.ObjAccessor.FindPlayerByName(extName.Name); + } - Player receiver = Global.ObjAccessor.FindPlayerByName(extName.Name); if (receiver == null) break; @@ -440,7 +467,7 @@ namespace Game break; } case ChatMsg.Channel: - Channel chn = channelGuid.HasValue ? ChannelManager.GetChannelForPlayerByGuid(channelGuid.Value, sender) : ChannelManager.GetChannelForPlayerByNamePart(target, sender); + Channel chn = targetGuid.HasValue ? ChannelManager.GetChannelForPlayerByGuid(targetGuid.Value, sender) : ChannelManager.GetChannelForPlayerByNamePart(target, sender); if (chn != null) chn.AddonSay(sender.GetGUID(), prefix, text, isLogged); break; diff --git a/Source/Game/Handlers/PetHandler.cs b/Source/Game/Handlers/PetHandler.cs index 07a8b4383..979c0b46e 100644 --- a/Source/Game/Handlers/PetHandler.cs +++ b/Source/Game/Handlers/PetHandler.cs @@ -593,6 +593,20 @@ namespace Game } } + void HandlePetAbandonByNumber(PetAbandonByNumber petAbandonByNumber) + { + Pet pet = _player.GetPet(); + if (pet != null) + { + if (pet.IsHunterPet() && pet.m_unitData.PetNumber == petAbandonByNumber.PetNumber) + _player.RemovePet(pet, PetSaveMode.AsDeleted); + } + else + { + _player.DeletePetFromDB(petAbandonByNumber.PetNumber); + } + } + [WorldPacketHandler(ClientOpcodes.PetSpellAutocast, Processing = PacketProcessing.Inplace)] void HandlePetSpellAutocast(PetSpellAutocast packet) { diff --git a/Source/Game/Handlers/TaxiHandler.cs b/Source/Game/Handlers/TaxiHandler.cs index 4e4582d33..369bff8ce 100644 --- a/Source/Game/Handlers/TaxiHandler.cs +++ b/Source/Game/Handlers/TaxiHandler.cs @@ -129,6 +129,7 @@ namespace Game data.Status = TaxiNodeStatus.Learned; SendPacket(data); + GetPlayer().UpdateCriteria(CriteriaType.LearnTaxiNode, curloc); return true; } else diff --git a/Source/Game/Networking/Packets/BattleGroundPackets.cs b/Source/Game/Networking/Packets/BattleGroundPackets.cs index c1bca2fd3..be8e3f557 100644 --- a/Source/Game/Networking/Packets/BattleGroundPackets.cs +++ b/Source/Game/Networking/Packets/BattleGroundPackets.cs @@ -22,7 +22,10 @@ namespace Game.Networking.Packets _worldPacket.WriteInt32(PreviousArenaSeason); _worldPacket.WriteInt32(ConquestWeeklyProgressCurrencyID); _worldPacket.WriteInt32(PvpSeasonID); + _worldPacket.WriteInt32(Unknown1027_1); _worldPacket.WriteBit(WeeklyRewardChestsEnabled); + _worldPacket.WriteBit(Unknown1027_2); + _worldPacket.WriteBit(Unknown1027_3); _worldPacket.FlushBits(); } @@ -32,7 +35,10 @@ namespace Game.Networking.Packets public int CurrentArenaSeason; public int PvpSeasonID; public int ConquestWeeklyProgressCurrencyID; + public int Unknown1027_1; public bool WeeklyRewardChestsEnabled; + public bool Unknown1027_2; + public bool Unknown1027_3; } public class AreaSpiritHealerQuery : ClientPacket diff --git a/Source/Game/Networking/Packets/CharacterPackets.cs b/Source/Game/Networking/Packets/CharacterPackets.cs index 6088dda0d..518c052dc 100644 --- a/Source/Game/Networking/Packets/CharacterPackets.cs +++ b/Source/Game/Networking/Packets/CharacterPackets.cs @@ -202,6 +202,7 @@ namespace Game.Networking.Packets data.WriteInt32(MailSenderTypes.Count); data.WriteUInt32(OverrideSelectScreenFileDataID); PersonalTabard.Write(data); + data.WriteInt32(TimerunningSeasonID); foreach (ChrCustomizationChoice customization in Customizations) { @@ -255,6 +256,7 @@ namespace Game.Networking.Packets public int Unknown703; public int LastLoginVersion; public uint OverrideSelectScreenFileDataID; + public int TimerunningSeasonID; public uint PetCreatureDisplayId; public uint PetExperienceLevel; public uint PetCreatureFamilyId; @@ -386,7 +388,7 @@ namespace Game.Networking.Packets CreateInfo.ClassId = (Class)_worldPacket.ReadUInt8(); CreateInfo.Sex = (Gender)_worldPacket.ReadUInt8(); var customizationCount = _worldPacket.ReadUInt32(); - + CreateInfo.TimerunningSeasonID = _worldPacket.ReadInt32(); CreateInfo.Name = _worldPacket.ReadString(nameLength); if (CreateInfo.TemplateSet.HasValue) CreateInfo.TemplateSet = _worldPacket.ReadUInt32(); @@ -1137,6 +1139,7 @@ namespace Game.Networking.Packets public Gender Sex = Gender.None; public Array Customizations = new(250); public uint? TemplateSet; + public int TimerunningSeasonID; public bool IsTrialBoost; public bool UseNPE; public bool Unused1026; diff --git a/Source/Game/Networking/Packets/ChatPackets.cs b/Source/Game/Networking/Packets/ChatPackets.cs index 8dc1bff05..9430a92e3 100644 --- a/Source/Game/Networking/Packets/ChatPackets.cs +++ b/Source/Game/Networking/Packets/ChatPackets.cs @@ -45,15 +45,30 @@ namespace Game.Networking.Packets public override void Read() { Language = (Language)_worldPacket.ReadInt32(); - uint targetLen = _worldPacket.ReadBits(9); + TargetGUID = _worldPacket.ReadPackedGuid(); + TargetVirtualRealmAddress = _worldPacket.ReadUInt32(); + + uint targetLen = _worldPacket.ReadBits(6); uint textLen = _worldPacket.ReadBits(11); - Target = _worldPacket.ReadString(targetLen); - Text = _worldPacket.ReadString(textLen); + + if (targetLen > 1) + { + Target = _worldPacket.ReadString(targetLen - 1); + _worldPacket.Skip(1); // null terminator + } + + if (textLen > 1) + { + Text = _worldPacket.ReadString(textLen - 1); + _worldPacket.Skip(1); // null terminator + } } public Language Language = Language.Universal; - public string Text; + public ObjectGuid TargetGUID; + public uint TargetVirtualRealmAddress = 0; public string Target; + public string Text; } public class ChatMessageChannel : ClientPacket @@ -98,15 +113,33 @@ namespace Game.Networking.Packets public override void Read() { - uint targetLen = _worldPacket.ReadBits(9); Params.Read(_worldPacket); ChannelGUID = _worldPacket.ReadPackedGuid(); - Target = _worldPacket.ReadString(targetLen); + PlayerGUID = _worldPacket.ReadPackedGuid(); + PlayerVirtualRealmAddress = _worldPacket.ReadUInt32(); + + uint playerNameLength = _worldPacket.ReadBits(6); + uint channelNameLength = _worldPacket.ReadBits(6); + + if (playerNameLength > 1) + { + PlayerName = _worldPacket.ReadString(playerNameLength - 1); + _worldPacket.Skip(1); // null terminator + } + + if (channelNameLength > 1) + { + ChannelName = _worldPacket.ReadString(channelNameLength - 1); + _worldPacket.Skip(1); // null terminator + } } - public string Target; public ChatAddonMessageParams Params = new(); - public ObjectGuid? ChannelGUID; // not optional in the packet. Optional for api reasons + public string PlayerName; + public ObjectGuid PlayerGUID; + public uint PlayerVirtualRealmAddress = 0; + public string ChannelName; + public ObjectGuid ChannelGUID; } public class ChatMessageDND : ClientPacket @@ -220,6 +253,7 @@ namespace Game.Networking.Packets _worldPacket.WriteUInt32(TargetVirtualAddress); _worldPacket.WriteUInt32(SenderVirtualAddress); _worldPacket.WriteUInt32(AchievementID); + _worldPacket.WriteUInt16((ushort)_ChatFlags); _worldPacket.WriteFloat(DisplayTime); _worldPacket.WriteUInt32(SpellID); _worldPacket.WriteBits(SenderName.GetByteCount(), 11); @@ -227,7 +261,6 @@ namespace Game.Networking.Packets _worldPacket.WriteBits(Prefix.GetByteCount(), 5); _worldPacket.WriteBits(Channel.GetByteCount(), 7); _worldPacket.WriteBits(ChatText.GetByteCount(), 12); - _worldPacket.WriteBits((ushort)_ChatFlags, 15); _worldPacket.WriteBit(HideChatLog); _worldPacket.WriteBit(FakeSenderName); _worldPacket.WriteBit(Unused_801.HasValue); diff --git a/Source/Game/Networking/Packets/MiscPackets.cs b/Source/Game/Networking/Packets/MiscPackets.cs index b0b7351f0..4f86d0ebd 100644 --- a/Source/Game/Networking/Packets/MiscPackets.cs +++ b/Source/Game/Networking/Packets/MiscPackets.cs @@ -1286,13 +1286,19 @@ namespace Game.Networking.Packets public override void Write() { _worldPacket.WriteInt64(TotalTime); - _worldPacket.WriteInt64(TimeLeft); _worldPacket.WriteInt32((int)Type); + _worldPacket.WriteInt64(TimeLeft); + _worldPacket.WriteBit(PlayerGuid.HasValue); + _worldPacket.FlushBits(); + + if (PlayerGuid.HasValue) + _worldPacket.WritePackedGuid(PlayerGuid.Value); } public long TotalTime; public long TimeLeft; public CountdownTimerType Type; + public ObjectGuid? PlayerGuid; } class QueryCountdownTimer : ClientPacket diff --git a/Source/Game/Networking/Packets/PetPackets.cs b/Source/Game/Networking/Packets/PetPackets.cs index 15f45e700..d606583f5 100644 --- a/Source/Game/Networking/Packets/PetPackets.cs +++ b/Source/Game/Networking/Packets/PetPackets.cs @@ -40,6 +40,18 @@ namespace Game.Networking.Packets public ObjectGuid Pet; } + class PetAbandonByNumber : ClientPacket + { + public uint PetNumber; + + public PetAbandonByNumber(WorldPacket packet) : base(packet) { } + + public override void Read() + { + PetNumber = _worldPacket.ReadUInt32(); + } + } + class PetStopAttack : ClientPacket { public PetStopAttack(WorldPacket packet) : base(packet) { } @@ -271,7 +283,7 @@ namespace Game.Networking.Packets TargetGUID = _worldPacket.ReadPackedGuid(); } } - + class PetCancelAura : ClientPacket { public PetCancelAura(WorldPacket packet) : base(packet) { } @@ -354,7 +366,7 @@ namespace Game.Networking.Packets _worldPacket.WriteUInt8((byte)ReactState); } } - + //Structs public class PetSpellCooldown { diff --git a/Source/Game/Networking/Packets/QueryPackets.cs b/Source/Game/Networking/Packets/QueryPackets.cs index 0e8634b4f..a2dc87a9f 100644 --- a/Source/Game/Networking/Packets/QueryPackets.cs +++ b/Source/Game/Networking/Packets/QueryPackets.cs @@ -565,25 +565,6 @@ namespace Game.Networking.Packets } //Structs - public class PlayerGuidLookupHint - { - public void Write(WorldPacket data) - { - data.WriteBit(VirtualRealmAddress.HasValue); - data.WriteBit(NativeRealmAddress.HasValue); - data.FlushBits(); - - if (VirtualRealmAddress.HasValue) - data.WriteUInt32(VirtualRealmAddress.Value); - - if (NativeRealmAddress.HasValue) - data.WriteUInt32(NativeRealmAddress.Value); - } - - public uint? VirtualRealmAddress = new(); // current realm (?) (identifier made from the Index, BattleGroup and Region) - public uint? NativeRealmAddress = new(); // original realm (?) (identifier made from the Index, BattleGroup and Region) - } - public class PlayerGuidLookupData { public bool Initialize(ObjectGuid guid, Player player = null) @@ -603,6 +584,7 @@ namespace Game.Networking.Packets Sex = player.GetNativeGender(); ClassID = player.GetClass(); Level = (byte)player.GetLevel(); + TimerunningSeasonID = player.m_activePlayerData.TimerunningSeasonID; DeclinedNames names = player.GetDeclinedNames(); if (names != null) @@ -651,6 +633,7 @@ namespace Game.Networking.Packets data.WriteUInt8((byte)ClassID); data.WriteUInt8(Level); data.WriteUInt8(Unused915); + data.WriteInt32(TimerunningSeasonID); data.WriteString(Name); } @@ -666,6 +649,7 @@ namespace Game.Networking.Packets public Class ClassID = Class.None; public byte Level; public byte Unused915; + public int TimerunningSeasonID; public DeclinedName DeclinedNames = new(); } diff --git a/Source/Game/Networking/Packets/QuestPackets.cs b/Source/Game/Networking/Packets/QuestPackets.cs index a29b05281..8a0499308 100644 --- a/Source/Game/Networking/Packets/QuestPackets.cs +++ b/Source/Game/Networking/Packets/QuestPackets.cs @@ -492,6 +492,7 @@ namespace Game.Networking.Packets _worldPacket.WriteBits(PortraitTurnInText.GetByteCount(), 10); _worldPacket.WriteBits(PortraitTurnInName.GetByteCount(), 8); _worldPacket.WriteBit(AutoLaunched); + _worldPacket.WriteBit(FromContentPush); _worldPacket.WriteBit(false); // unused in client _worldPacket.WriteBit(StartCheat); _worldPacket.WriteBit(DisplayPopup); @@ -539,6 +540,7 @@ namespace Game.Networking.Packets public bool DisplayPopup; public bool StartCheat; public bool AutoLaunched; + public bool FromContentPush; } public class QuestGiverRequestItems : ServerPacket diff --git a/Source/Game/Networking/Packets/SpellPackets.cs b/Source/Game/Networking/Packets/SpellPackets.cs index 208680ecb..2314649af 100644 --- a/Source/Game/Networking/Packets/SpellPackets.cs +++ b/Source/Game/Networking/Packets/SpellPackets.cs @@ -2,6 +2,7 @@ // Licensed under the GNU GENERAL PUBLIC LICENSE. See LICENSE file in the project root for full license information. using Framework.Constants; +using Game.DataStorage; using Game.Entities; using Game.Spells; using System; @@ -1378,11 +1379,15 @@ namespace Game.Networking.Packets TuningType = ContentTuningType.CreatureToPlayerDamage; PlayerLevelDelta = (short)target.m_activePlayerData.ScalingPlayerLevelDelta; PlayerItemLevel = (ushort)target.GetAverageItemLevel(); - ScalingHealthItemLevelCurveID = (ushort)target.m_unitData.ScalingHealthItemLevelCurveID; + var contentTuning = CliDB.ContentTuningStorage.LookupByKey(creatureDifficulty.ContentTuningID); + if (contentTuning != null) + { + ScalingHealthItemLevelCurveID = (uint)contentTuning.HealthItemLevelCurveID; + TargetContentTuningID = contentTuning.Id; + } TargetLevel = (byte)target.GetLevel(); Expansion = (byte)creatureDifficulty.HealthScalingExpansion; TargetScalingLevelDelta = (sbyte)attacker.m_unitData.ScalingLevelDelta; - TargetContentTuningID = creatureDifficulty.ContentTuningID; return true; } @@ -1394,11 +1399,15 @@ namespace Game.Networking.Packets TuningType = ContentTuningType.PlayerToCreatureDamage; PlayerLevelDelta = (short)attacker.m_activePlayerData.ScalingPlayerLevelDelta; PlayerItemLevel = (ushort)attacker.GetAverageItemLevel(); - ScalingHealthItemLevelCurveID = (ushort)target.m_unitData.ScalingHealthItemLevelCurveID; + var contentTuning = CliDB.ContentTuningStorage.LookupByKey(creatureDifficulty.ContentTuningID); + if (contentTuning != null) + { + ScalingHealthItemLevelCurveID = (uint)contentTuning.HealthItemLevelCurveID; + TargetContentTuningID = contentTuning.Id; + } TargetLevel = (byte)target.GetLevel(); Expansion = (byte)creatureDifficulty.HealthScalingExpansion; TargetScalingLevelDelta = (sbyte)target.m_unitData.ScalingLevelDelta; - TargetContentTuningID = creatureDifficulty.ContentTuningID; return true; } diff --git a/Source/Game/Networking/Packets/SystemPackets.cs b/Source/Game/Networking/Packets/SystemPackets.cs index bcc8d07a4..9ba0f2bcc 100644 --- a/Source/Game/Networking/Packets/SystemPackets.cs +++ b/Source/Game/Networking/Packets/SystemPackets.cs @@ -2,10 +2,9 @@ // 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.Entities; using System; using System.Collections.Generic; -using Game.Entities; namespace Game.Networking.Packets { @@ -41,6 +40,10 @@ namespace Game.Networking.Packets _worldPacket.WriteInt16(PlayerNameQueryTelemetryInterval); _worldPacket.WriteUInt32((uint)PlayerNameQueryInterval.TotalSeconds); + _worldPacket.WriteInt32(AddonChatThrottle.MaxTries); + _worldPacket.WriteInt32(AddonChatThrottle.TriesRestoredPerSecond); + _worldPacket.WriteInt32(AddonChatThrottle.UsedTriesPerMessage); + foreach (GameRuleValuePair gameRuleValue in GameRuleValues) gameRuleValue.Write(_worldPacket); @@ -76,9 +79,10 @@ namespace Game.Networking.Packets _worldPacket.WriteBit(QuestSessionEnabled); _worldPacket.WriteBit(IsMuted); _worldPacket.WriteBit(ClubFinderEnabled); + _worldPacket.WriteBit(CommunityFinderEnabled); _worldPacket.WriteBit(Unknown901CheckoutRelated); - _worldPacket.WriteBit(TextToSpeechFeatureEnabled); + _worldPacket.WriteBit(ChatDisabledByDefault); _worldPacket.WriteBit(ChatDisabledByPlayer); _worldPacket.WriteBit(LFGListCustomRequiresAuthenticator); @@ -87,9 +91,15 @@ namespace Game.Networking.Packets _worldPacket.WriteBit(ContentTrackingEnabled); _worldPacket.WriteBit(IsSellAllJunkEnabled); _worldPacket.WriteBit(IsGroupFinderEnabled); + _worldPacket.WriteBit(IsLFDEnabled); _worldPacket.WriteBit(IsLFREnabled); _worldPacket.WriteBit(IsPremadeGroupEnabled); + _worldPacket.WriteBit(CanShowSetRoleButton); + _worldPacket.WriteBit(false); // unused 10.2.7 + _worldPacket.WriteBit(false); // unused 10.2.7 + + _worldPacket.WriteBits(Unknown1027.GetByteCount(), 7); _worldPacket.FlushBits(); @@ -126,6 +136,8 @@ namespace Game.Networking.Packets _worldPacket.WriteInt32(SessionAlert.Value.DisplayTime); } + _worldPacket.WriteString(Unknown1027); + _worldPacket.WriteBit(Squelch.IsSquelched); _worldPacket.WritePackedGuid(Squelch.BnetAccountGuid); _worldPacket.WritePackedGuid(Squelch.GuildGuid); @@ -175,6 +187,7 @@ namespace Game.Networking.Packets public bool QuestSessionEnabled; public bool IsMuted; public bool ClubFinderEnabled; + public bool CommunityFinderEnabled; public bool Unknown901CheckoutRelated; public bool TextToSpeechFeatureEnabled; public bool ChatDisabledByDefault; @@ -188,11 +201,14 @@ namespace Game.Networking.Packets public bool IsLFDEnabled = true; // classic only public bool IsLFREnabled = true; // classic only public bool IsPremadeGroupEnabled = true; // classic only + public bool CanShowSetRoleButton = true; public SocialQueueConfig QuickJoinConfig; public SquelchInfo Squelch; public RafSystemFeatureInfo RAFSystem; public List GameRuleValues = new(); + public string Unknown1027; // related to movement lua functions used by keybinds + public AddonChatThrottleParams AddonChatThrottle; public struct SessionAlertConfig { @@ -245,6 +261,13 @@ namespace Game.Networking.Packets public uint DaysInCycle; public uint Unknown1007; } + + public struct AddonChatThrottleParams + { + public int MaxTries; + public int TriesRestoredPerSecond; + public int UsedTriesPerMessage; + } } public class FeatureSystemStatusGlueScreen : ServerPacket @@ -277,9 +300,10 @@ namespace Game.Networking.Packets _worldPacket.WriteBit(EuropaTicketSystemStatus.HasValue); _worldPacket.WriteBit(IsNameReservationEnabled); _worldPacket.WriteBit(LaunchETA.HasValue); + _worldPacket.WriteBit(TimerunningEnabled); _worldPacket.WriteBit(AddonsDisabled); - _worldPacket.WriteBit(Unused1000); + _worldPacket.WriteBit(Unused1000); _worldPacket.WriteBit(AccountSaveDataExportEnabled); _worldPacket.WriteBit(AccountLockedByExport); _worldPacket.WriteBit(!RealmHiddenAlert.IsEmpty()); @@ -304,6 +328,8 @@ namespace Game.Networking.Packets _worldPacket.WriteInt32(MaximumExpansionLevel); _worldPacket.WriteInt32(ActiveSeason); _worldPacket.WriteInt32(GameRuleValues.Count); + _worldPacket.WriteInt32(ActiveTimerunningSeasonID); + _worldPacket.WriteInt32(RemainingTimerunningSeasonSeconds); _worldPacket.WriteInt16(MaxPlayerNameQueriesPerPacket); _worldPacket.WriteInt16(PlayerNameQueryTelemetryInterval); _worldPacket.WriteUInt32((uint)PlayerNameQueryInterval.TotalSeconds); @@ -346,6 +372,7 @@ namespace Game.Networking.Packets public bool LiveRegionKeyBindingsCopyEnabled; public bool Unknown901CheckoutRelated; // NYI public bool IsNameReservationEnabled; // classic only + public bool TimerunningEnabled; // NYI public bool AddonsDisabled; public bool Unused1000; public bool AccountSaveDataExportEnabled; @@ -363,6 +390,8 @@ namespace Game.Networking.Packets public uint KioskSessionMinutes; public int ActiveSeason; // Currently active Classic season public List GameRuleValues = new(); + public int ActiveTimerunningSeasonID; + public int RemainingTimerunningSeasonSeconds; public short MaxPlayerNameQueriesPerPacket = 50; public short PlayerNameQueryTelemetryInterval = 600; public TimeSpan PlayerNameQueryInterval = TimeSpan.FromSeconds(10); diff --git a/Source/Game/Spells/Spell.cs b/Source/Game/Spells/Spell.cs index 7883eaf00..ca9a8930f 100644 --- a/Source/Game/Spells/Spell.cs +++ b/Source/Game/Spells/Spell.cs @@ -4729,7 +4729,7 @@ namespace Game.Spells continue; } - unitCaster->ModifyPower(cost.Power, -cost.Amount); + unitCaster.ModifyPower(cost.Power, -cost.Amount); } }