diff --git a/Source/Framework/Constants/ItemConst.cs b/Source/Framework/Constants/ItemConst.cs index d141159c9..424e4de7b 100644 --- a/Source/Framework/Constants/ItemConst.cs +++ b/Source/Framework/Constants/ItemConst.cs @@ -1085,7 +1085,7 @@ namespace Framework.Constants Unk26 = 0x80000000 // ? } - public enum ItemFieldFlags2 + public enum ItemZoneFlags { Equipped = 0x1 } @@ -1372,6 +1372,7 @@ namespace Framework.Constants CantDeleteInAccountBank = 127,// Items Must Be Moved Out Of The Warband Bank To Be Deleted. BankNotAccessible = 128,// This Character Does Not Have Access To This Bank. CantTradeAccountItem = 129,// You Can't Trade An Item From The Warband Bank. + AccountMoneyLocked = 130,// You cannot withdraw or deposit gold from the warband bank currently; please try again later. } public enum BankType diff --git a/Source/Framework/Constants/Network/Opcodes.cs b/Source/Framework/Constants/Network/Opcodes.cs index 05e8ec15d..7b0127e13 100644 --- a/Source/Framework/Constants/Network/Opcodes.cs +++ b/Source/Framework/Constants/Network/Opcodes.cs @@ -5,37 +5,38 @@ namespace Framework.Constants { public enum ClientOpcodes : uint { - AbandonNpeResponse = 0x300292, + AbandonNpeResponse = 0x300295, AcceptGuildInvite = 0x350029, - AcceptReturningPlayerPrompt = 0x300253, - AcceptSocialContract = 0x35016e, + AcceptReturningPlayerPrompt = 0x300256, + AcceptSocialContract = 0x350173, AcceptTrade = 0x300004, AcceptWargameInvite = 0x35000c, - AccountBankDepositMoney = 0x3002d4, - AccountBankWithdrawMoney = 0x3002d5, - AccountNotificationAcknowledged = 0x35015e, - ActivateSoulbind = 0x300281, + AccountBankDepositMoney = 0x3002d7, + AccountBankWithdrawMoney = 0x3002d8, + AccountNotificationAcknowledged = 0x35015f, + AccountStoreBeginPurchaseOrRefund = 0x3500be, + ActivateSoulbind = 0x300284, ActivateTaxi = 0x31003d, AddonList = 0x350004, - AddAccountCosmetic = 0x30016b, + AddAccountCosmetic = 0x30016d, AddBattlenetFriend = 0x350084, - AddFriend = 0x3500f9, - AddIgnore = 0x3500fd, - AddToy = 0x30016a, - AdventureJournalOpenQuest = 0x3000b0, - AdventureJournalUpdateSuggestions = 0x300284, - AdventureMapStartQuest = 0x300226, + AddFriend = 0x3500fa, + AddIgnore = 0x3500fe, + AddToy = 0x30016c, + AdventureJournalOpenQuest = 0x3000b2, + AdventureJournalUpdateSuggestions = 0x300287, + AdventureMapStartQuest = 0x300228, AlterAppearance = 0x31008e, AreaSpiritHealerQuery = 0x310042, AreaSpiritHealerQueue = 0x310043, - AreaTrigger = 0x300083, + AreaTrigger = 0x300085, ArtifactAddPower = 0x300054, ArtifactSetAppearance = 0x300056, - AssignEquipmentSetSpec = 0x3000bb, - AttackStop = 0x300119, - AttackSwing = 0x300118, - AuctionableTokenSell = 0x35010f, - AuctionableTokenSellAtMarketPrice = 0x350110, + AssignEquipmentSetSpec = 0x3000bd, + AttackStop = 0x30011b, + AttackSwing = 0x30011a, + AuctionableTokenSell = 0x350110, + AuctionableTokenSellAtMarketPrice = 0x350111, AuctionBrowseQuery = 0x310062, AuctionCancelCommoditiesPurchase = 0x31006a, AuctionConfirmCommoditiesPurchase = 0x310069, @@ -51,47 +52,47 @@ namespace Framework.Constants AuctionReplicateItems = 0x310060, AuctionSellCommodity = 0x31006b, AuctionSellItem = 0x31005e, - AuctionSetFavoriteItem = 0x35015f, + AuctionSetFavoriteItem = 0x350160, AuthContinuedSession = 0x360002, AuthSession = 0x360001, AutobankItem = 0x320003, AutobankReagent = 0x320005, AutostoreBankItem = 0x320002, AutostoreBankReagent = 0x320004, - AutoDepositAccountBank = 0x3002df, + AutoDepositAccountBank = 0x3002e1, AutoEquipItem = 0x320006, AutoEquipItemSlot = 0x32000b, AutoGuildBankItem = 0x310049, AutoStoreBagItem = 0x320007, AutoStoreGuildBankItem = 0x310052, - AzeriteEmpoweredItemSelectPower = 0x30024f, - AzeriteEmpoweredItemViewed = 0x300231, - AzeriteEssenceActivateEssence = 0x300251, - AzeriteEssenceUnlockMilestone = 0x300250, + AzeriteEmpoweredItemSelectPower = 0x300252, + AzeriteEmpoweredItemViewed = 0x300233, + AzeriteEssenceActivateEssence = 0x300254, + AzeriteEssenceUnlockMilestone = 0x300253, BankerActivate = 0x310045, BattlefieldLeave = 0x30001d, BattlefieldList = 0x300028, BattlefieldPort = 0x3100c4, - BattlemasterHello = 0x300188, + BattlemasterHello = 0x30018a, BattlemasterJoin = 0x3100bb, BattlemasterJoinArena = 0x3100bc, BattlemasterJoinBrawl = 0x3100c2, BattlemasterJoinRatedBgBlitz = 0x3100be, BattlemasterJoinRatedSoloShuffle = 0x3100bd, BattlemasterJoinSkirmish = 0x3100bf, - BattlenetChallengeResponse = 0x3500fc, - BattlenetRequest = 0x35011d, - BattlePayAckFailedResponse = 0x3500f6, - BattlePayCancelOpenCheckout = 0x35013c, - BattlePayConfirmPurchaseResponse = 0x3500f5, - BattlePayDistributionAssignToTarget = 0x3500ec, - BattlePayDistributionAssignVas = 0x350162, - BattlePayGetProductList = 0x3500e4, - BattlePayGetPurchaseList = 0x3500e5, - BattlePayOpenCheckout = 0x350135, - BattlePayRequestPriceInfo = 0x350131, - BattlePayStartPurchase = 0x3500f4, - BattlePayStartVasPurchase = 0x35011b, + BattlenetChallengeResponse = 0x3500fd, + BattlenetRequest = 0x35011e, + BattlePayAckFailedResponse = 0x3500f7, + BattlePayCancelOpenCheckout = 0x35013d, + BattlePayConfirmPurchaseResponse = 0x3500f6, + BattlePayDistributionAssignToTarget = 0x3500ed, + BattlePayDistributionAssignVas = 0x350163, + BattlePayGetProductList = 0x3500e5, + BattlePayGetPurchaseList = 0x3500e6, + BattlePayOpenCheckout = 0x350136, + BattlePayRequestPriceInfo = 0x350132, + BattlePayStartPurchase = 0x3500f5, + BattlePayStartVasPurchase = 0x35011c, BattlePetClearFanfare = 0x2a0002, BattlePetDeletePet = 0x35004f, BattlePetDeletePetCheat = 0x350050, @@ -101,14 +102,14 @@ namespace Framework.Constants BattlePetSetBattleSlot = 0x350057, BattlePetSetFlags = 0x35005a, BattlePetSummon = 0x350053, - BattlePetUpdateDisplayNotify = 0x30008d, - BattlePetUpdateNotify = 0x30008c, + BattlePetUpdateDisplayNotify = 0x30008f, + BattlePetUpdateNotify = 0x30008e, BeginTrade = 0x300001, BinderActivate = 0x310044, BlackMarketBidOnItem = 0x3100cc, BlackMarketOpen = 0x3100ca, BlackMarketRequestItems = 0x3100cb, - BonusRoll = 0x300252, + BonusRoll = 0x300255, BugReport = 0x3500af, BusyTrade = 0x300002, BuyAccountBankTab = 0x310121, @@ -116,7 +117,7 @@ namespace Framework.Constants BuyBankSlot = 0x310046, BuyItem = 0x310035, BuyReagentBank = 0x310047, - CageBattlePet = 0x3000a0, + CageBattlePet = 0x3000a2, CalendarAddEvent = 0x3500a7, CalendarCommunityInvite = 0x35009b, CalendarComplain = 0x3500a3, @@ -134,30 +135,30 @@ namespace Framework.Constants CalendarUpdateEvent = 0x3500a8, CancelAura = 0x300058, CancelAutoRepeatSpell = 0x310080, - CancelCast = 0x300171, - CancelChannelling = 0x300132, - CancelGrowthAura = 0x30013a, - CancelMasterLootRoll = 0x3000c7, + CancelCast = 0x300173, + CancelChannelling = 0x300134, + CancelGrowthAura = 0x30013c, + CancelMasterLootRoll = 0x3000c9, CancelModSpeedNoControlAuras = 0x300057, - CancelMountAura = 0x30014d, + CancelMountAura = 0x30014f, CancelQueuedSpell = 0x300029, CancelTempEnchantment = 0x31008b, CancelTrade = 0x300006, CanDuel = 0x35008c, - CanRedeemTokenForBalance = 0x350130, - CastSpell = 0x30016e, + CanRedeemTokenForBalance = 0x350131, + CastSpell = 0x300170, ChallengeModeRequestLeaders = 0x2d0002, - ChangeBagSlotFlag = 0x30020a, - ChangeBankBagSlotFlag = 0x30020b, - ChangeMonumentAppearance = 0x3001eb, - ChangeRealmTicket = 0x350122, + ChangeBagSlotFlag = 0x30020c, + ChangeBankBagSlotFlag = 0x30020d, + ChangeMonumentAppearance = 0x3001ed, + ChangeRealmTicket = 0x350123, ChangeSubGroup = 0x350076, - CharacterCheckUpgrade = 0x3500ef, - CharacterRenameRequest = 0x3500ea, - CharacterUpgradeManualUnrevokeRequest = 0x3500ed, - CharacterUpgradeStart = 0x3500ee, + CharacterCheckUpgrade = 0x3500f0, + CharacterRenameRequest = 0x3500eb, + CharacterUpgradeManualUnrevokeRequest = 0x3500ee, + CharacterUpgradeStart = 0x3500ef, CharCustomize = 0x3500b6, - CharDelete = 0x3500c7, + CharDelete = 0x3500c8, CharRaceOrFactionChange = 0x3500bc, ChatAddonMessage = 0x2c0026, ChatAddonMessageTargeted = 0x2c0027, @@ -199,36 +200,36 @@ namespace Framework.Constants ChatReportIgnored = 0x2c0003, ChatUnregisterAllAddonPrefixes = 0x2c0006, CheckCharacterNameAvailability = 0x35006f, - CheckIsAdventureMapPoiValid = 0x30010a, - ChoiceResponse = 0x300176, - ChromieTimeSelectExpansion = 0x300280, - ClaimWeeklyReward = 0x30025d, - ClassTalentsDeleteConfig = 0x3002b9, - ClassTalentsNotifyEmptyConfig = 0x3000bf, - ClassTalentsNotifyValidationFailed = 0x3002bb, - ClassTalentsRenameConfig = 0x3002b8, - ClassTalentsRequestNewConfig = 0x3002b7, - ClassTalentsSetStarterBuildActive = 0x3002bc, - ClassTalentsSetUsesSharedActionBars = 0x3000be, + CheckIsAdventureMapPoiValid = 0x30010c, + ChoiceResponse = 0x300178, + ChromieTimeSelectExpansion = 0x300283, + ClaimWeeklyReward = 0x300260, + ClassTalentsDeleteConfig = 0x3002bc, + ClassTalentsNotifyEmptyConfig = 0x3000c1, + ClassTalentsNotifyValidationFailed = 0x3002be, + ClassTalentsRenameConfig = 0x3002bb, + ClassTalentsRequestNewConfig = 0x3002ba, + ClassTalentsSetStarterBuildActive = 0x3002bf, + ClassTalentsSetUsesSharedActionBars = 0x3000c0, ClearNewAppearance = 0x2a0005, ClearRaidMarker = 0x300050, ClearTradeItem = 0x300008, ClientPortGraveyard = 0x3100c6, CloseInteraction = 0x310024, - CloseQuestChoice = 0x300177, - CloseRuneforgeInteraction = 0x300288, - CloseTraitSystemInteraction = 0x3002bd, - ClubFinderApplicationResponse = 0x350147, - ClubFinderGetApplicantsList = 0x350145, - ClubFinderPost = 0x350142, - ClubFinderRequestClubsData = 0x350149, - ClubFinderRequestClubsList = 0x350143, - ClubFinderRequestMembershipToClub = 0x350144, - ClubFinderRequestPendingClubsList = 0x350148, - ClubFinderRequestSubscribedClubPostingIds = 0x35014a, - ClubFinderRespondToApplicant = 0x350146, - ClubFinderWhisperApplicantRequest = 0x350165, - ClubPresenceSubscribe = 0x35011f, + CloseQuestChoice = 0x300179, + CloseRuneforgeInteraction = 0x30028b, + CloseTraitSystemInteraction = 0x3002c0, + ClubFinderApplicationResponse = 0x350148, + ClubFinderGetApplicantsList = 0x350146, + ClubFinderPost = 0x350143, + ClubFinderRequestClubsData = 0x35014a, + ClubFinderRequestClubsList = 0x350144, + ClubFinderRequestMembershipToClub = 0x350145, + ClubFinderRequestPendingClubsList = 0x350149, + ClubFinderRequestSubscribedClubPostingIds = 0x35014b, + ClubFinderRespondToApplicant = 0x350147, + ClubFinderWhisperApplicantRequest = 0x350166, + ClubPresenceSubscribe = 0x350120, CollectionItemSetFavorite = 0x35005d, CommentatorEnable = 0x35001c, CommentatorEnterInstance = 0x350020, @@ -236,29 +237,29 @@ namespace Framework.Constants CommentatorGetMapInfo = 0x35001d, CommentatorGetPlayerCooldowns = 0x35001f, CommentatorGetPlayerInfo = 0x35001e, - CommentatorSpectate = 0x350163, + CommentatorSpectate = 0x350164, CommentatorStartWargame = 0x35001b, - CommerceTokenGetCount = 0x35010d, - CommerceTokenGetLog = 0x350117, - CommerceTokenGetMarketPrice = 0x35010e, + CommerceTokenGetCount = 0x35010e, + CommerceTokenGetLog = 0x350118, + CommerceTokenGetMarketPrice = 0x35010f, Complaint = 0x350096, CompleteCinematic = 0x3100e4, CompleteMovie = 0x310076, ConfirmArtifactRespec = 0x300055, - ConfirmRespecWipe = 0x3000c1, + ConfirmRespecWipe = 0x3000c3, ConnectToFailed = 0x350000, - ConsumableTokenBuy = 0x350112, - ConsumableTokenBuyAtMarketPrice = 0x350113, - ConsumableTokenCanVeteranBuy = 0x350111, - ConsumableTokenRedeem = 0x350115, - ConsumableTokenRedeemConfirmation = 0x350116, - ContentTrackingStartTracking = 0x3002cd, - ContentTrackingStopTracking = 0x3002ce, + ConsumableTokenBuy = 0x350113, + ConsumableTokenBuyAtMarketPrice = 0x350114, + ConsumableTokenCanVeteranBuy = 0x350112, + ConsumableTokenRedeem = 0x350116, + ConsumableTokenRedeemConfirmation = 0x350117, + ContentTrackingStartTracking = 0x3002d0, + ContentTrackingStopTracking = 0x3002d1, ContributionContribute = 0x3100f9, ContributionLastUpdateRequest = 0x3100fa, ConversationCinematicReady = 0x3100e6, ConversationLineStarted = 0x3100e5, - ConvertItemToBindToAccount = 0x3002de, + ConvertItemToBindToAccount = 0x3002e0, ConvertRaid = 0x350078, CovenantRenownRequestCatchupState = 0x31010d, CraftingOrderCancel = 0x310119, @@ -273,16 +274,16 @@ namespace Framework.Constants CraftingOrderReportPlayer = 0x31011b, CraftingOrderUpdateIgnoreList = 0x31011c, CreateCharacter = 0x35006e, - CreateShipment = 0x3001d4, + CreateShipment = 0x3001d6, DbQueryBulk = 0x350010, DeclineGuildInvites = 0x3100b8, DeclinePetition = 0x3100d3, DeleteEquipmentSet = 0x3100a4, DelveTeleportOut = 0x310128, - DelFriend = 0x3500fa, - DelIgnore = 0x3500fe, - DepositReagentBank = 0x300214, - DestroyItem = 0x300164, + DelFriend = 0x3500fb, + DelIgnore = 0x3500ff, + DepositReagentBank = 0x300216, + DestroyItem = 0x300166, DfBootPlayerVote = 0x350044, DfConfirmExpandSearch = 0x350036, DfGetJoinStatus = 0x350042, @@ -295,65 +296,65 @@ namespace Framework.Constants DfTeleport = 0x350045, DiscardedTimeSyncAcks = 0x33005e, DismissCritter = 0x310092, - DoCountdown = 0x350141, - DoMasterLootRoll = 0x3000c6, + DoCountdown = 0x350142, + DoMasterLootRoll = 0x3000c8, DoReadyCheck = 0x35005e, DuelResponse = 0x31007b, - EjectPassenger = 0x3000ff, + EjectPassenger = 0x300101, Emote = 0x3100e0, EnableNagle = 0x360007, EnableTaxiNode = 0x31003b, - EngineSurvey = 0x35010c, + EngineSurvey = 0x35010d, EnterEncryptedModeAck = 0x360003, EnumCharacters = 0x350014, - EnumCharactersDeletedByClient = 0x350106, + EnumCharactersDeletedByClient = 0x350107, FarSight = 0x310081, GameEventDebugDisable = 0x30005c, GameEventDebugEnable = 0x30005b, GameObjReportUse = 0x310088, GameObjUse = 0x310087, - GarrisonAddFollowerHealth = 0x3001cf, - GarrisonAssignFollowerToBuilding = 0x3001b5, - GarrisonCancelConstruction = 0x3001a2, - GarrisonCheckUpgradeable = 0x300206, - GarrisonCompleteMission = 0x3001f8, - GarrisonFullyHealAllFollowers = 0x3001d0, - GarrisonGenerateRecruits = 0x3001b8, - GarrisonGetClassSpecCategoryInfo = 0x3001c7, - GarrisonGetMapData = 0x3001ce, - GarrisonGetMissionReward = 0x30022a, - GarrisonLearnTalent = 0x3001c3, - GarrisonMissionBonusRoll = 0x3001fa, - GarrisonPurchaseBuilding = 0x30019e, - GarrisonRecruitFollower = 0x3001ba, - GarrisonRemoveFollower = 0x3001ef, - GarrisonRemoveFollowerFromBuilding = 0x3001b6, - GarrisonRenameFollower = 0x3001b7, - GarrisonRequestBlueprintAndSpecializationData = 0x30019d, - GarrisonRequestShipmentInfo = 0x3001d2, - GarrisonResearchTalent = 0x3001bb, - GarrisonSetBuildingActive = 0x30019f, - GarrisonSetFollowerFavorite = 0x3001b3, - GarrisonSetFollowerInactive = 0x3001ab, - GarrisonSetRecruitmentPreferences = 0x3001b9, - GarrisonSocketTalent = 0x300295, - GarrisonStartMission = 0x3001f7, - GarrisonSwapBuildings = 0x3001a3, + GarrisonAddFollowerHealth = 0x3001d1, + GarrisonAssignFollowerToBuilding = 0x3001b7, + GarrisonCancelConstruction = 0x3001a4, + GarrisonCheckUpgradeable = 0x300208, + GarrisonCompleteMission = 0x3001fa, + GarrisonFullyHealAllFollowers = 0x3001d2, + GarrisonGenerateRecruits = 0x3001ba, + GarrisonGetClassSpecCategoryInfo = 0x3001c9, + GarrisonGetMapData = 0x3001d0, + GarrisonGetMissionReward = 0x30022c, + GarrisonLearnTalent = 0x3001c5, + GarrisonMissionBonusRoll = 0x3001fc, + GarrisonPurchaseBuilding = 0x3001a0, + GarrisonRecruitFollower = 0x3001bc, + GarrisonRemoveFollower = 0x3001f1, + GarrisonRemoveFollowerFromBuilding = 0x3001b8, + GarrisonRenameFollower = 0x3001b9, + GarrisonRequestBlueprintAndSpecializationData = 0x30019f, + GarrisonRequestShipmentInfo = 0x3001d4, + GarrisonResearchTalent = 0x3001bd, + GarrisonSetBuildingActive = 0x3001a1, + GarrisonSetFollowerFavorite = 0x3001b5, + GarrisonSetFollowerInactive = 0x3001ad, + GarrisonSetRecruitmentPreferences = 0x3001bb, + GarrisonSocketTalent = 0x300298, + GarrisonStartMission = 0x3001f9, + GarrisonSwapBuildings = 0x3001a5, GenerateRandomCharacterName = 0x350013, - GetAccountCharacterList = 0x3500df, - GetAccountNotifications = 0x35015d, - GetGarrisonInfo = 0x300198, + GetAccountCharacterList = 0x3500e0, + GetAccountNotifications = 0x35015e, + GetGarrisonInfo = 0x30019a, GetItemPurchaseData = 0x3100ce, - GetLandingPageShipments = 0x3001d3, - GetMirrorImageData = 0x300168, + GetLandingPageShipments = 0x3001d5, + GetMirrorImageData = 0x30016a, GetPvpOptionsEnabled = 0x35001a, - GetRafAccountInfo = 0x35014b, - GetRegionwideCharacterRestrictionAndMailData = 0x350188, - GetRemainingGameTime = 0x350114, - GetTrophyList = 0x3001e8, - GetUndeleteCharacterCooldownStatus = 0x350108, - GetVasAccountCharacterList = 0x350119, - GetVasTransferTargetRealmList = 0x35011a, + GetRafAccountInfo = 0x35014c, + GetRegionwideCharacterRestrictionAndMailData = 0x35018d, + GetRemainingGameTime = 0x350115, + GetTrophyList = 0x3001ea, + GetUndeleteCharacterCooldownStatus = 0x350109, + GetVasAccountCharacterList = 0x35011a, + GetVasTransferTargetRealmList = 0x35011b, GmTicketAcknowledgeSurvey = 0x3500ba, GmTicketGetCaseStatus = 0x3500b9, GmTicketGetSystemStatus = 0x3500b8, @@ -395,79 +396,82 @@ namespace Framework.Constants GuildReplaceGuildMaster = 0x2e001f, GuildSetAchievementTracking = 0x2e0010, GuildSetFocusedAchievement = 0x2e0011, - GuildSetGuildMaster = 0x3500f1, + GuildSetGuildMaster = 0x3500f2, GuildSetMemberNote = 0x2e0013, GuildSetRankPermissions = 0x2e0008, GuildShiftRank = 0x2e0007, GuildUpdateInfoText = 0x2e0016, GuildUpdateMotdText = 0x2e0015, HearthAndResurrect = 0x3100a0, - HideQuestChoice = 0x300178, + HideQuestChoice = 0x30017a, HotfixRequest = 0x350011, IgnoreTrade = 0x300003, InitiateRolePoll = 0x350006, InitiateTrade = 0x300000, Inspect = 0x3100c8, InstanceLockResponse = 0x3100a5, - IslandQueue = 0x300259, + IslandQueue = 0x30025c, ItemPurchaseRefund = 0x3100cf, - ItemTextQuery = 0x300207, - JoinPetBattleQueue = 0x30008a, + ItemTextQuery = 0x300209, + JoinPetBattleQueue = 0x30008c, JoinRatedBattleground = 0x300023, KeepAlive = 0x3500a9, - KeyboundOverride = 0x3000dc, + KeyboundOverride = 0x3000de, LatencyReport = 0x36000d, LearnPvpTalents = 0x3100f8, LearnTalents = 0x3100f6, LeaveGroup = 0x350073, - LeavePetBattleQueue = 0x30008b, + LeavePetBattleQueue = 0x30008d, LfgListApplyToGroup = 0x35003b, LfgListCancelApplication = 0x35003c, LfgListDeclineApplicant = 0x35003d, LfgListGetStatus = 0x350039, LfgListInviteApplicant = 0x35003e, LfgListInviteResponse = 0x35003f, - LfgListJoin = 0x30024d, + LfgListJoin = 0x300250, LfgListLeave = 0x350038, LfgListSearch = 0x35003a, - LfgListUpdateRequest = 0x30024e, + LfgListUpdateRequest = 0x300251, ListInventory = 0x310032, - LiveRegionAccountRestore = 0x3500e2, - LiveRegionCharacterCopy = 0x3500e1, - LiveRegionGetAccountCharacterList = 0x3500e0, - LiveRegionKeyBindingsCopy = 0x3500e3, + LiveRegionAccountRestore = 0x3500e3, + LiveRegionCharacterCopy = 0x3500e2, + LiveRegionGetAccountCharacterList = 0x3500e1, + LiveRegionKeyBindingsCopy = 0x3500e4, LoadingScreenNotify = 0x350024, - LoadSelectedTrophy = 0x3001e9, - LobbyMatchmakerAcceptPartyInvite = 0x350167, - LobbyMatchmakerCreateCharacter = 0x350175, - LobbyMatchmakerLeaveParty = 0x35016a, - LobbyMatchmakerPartyInvite = 0x350166, - LobbyMatchmakerPartyUninvite = 0x350169, - LobbyMatchmakerRejectPartyInvite = 0x350168, - LobbyMatchmakerSetPartyPlaylistEntry = 0x35016b, - LobbyMatchmakerSetPlayerReady = 0x35016c, + LoadSelectedTrophy = 0x3001eb, + LobbyMatchmakerAbandonQueue = 0x350171, + LobbyMatchmakerAcceptPartyInvite = 0x350168, + LobbyMatchmakerCreateCharacter = 0x35017a, + LobbyMatchmakerEnterQueue = 0x35016f, + LobbyMatchmakerLeaveParty = 0x35016b, + LobbyMatchmakerPartyInvite = 0x350167, + LobbyMatchmakerPartyUninvite = 0x35016a, + LobbyMatchmakerQueuePropsalResponse = 0x350170, + LobbyMatchmakerRejectPartyInvite = 0x350169, + LobbyMatchmakerSetPartyPlaylistEntry = 0x35016c, + LobbyMatchmakerSetPlayerReady = 0x35016d, LogoutCancel = 0x310071, LogoutInstant = 0x310072, LogoutLobbyMatchmaker = 0x310120, LogoutRequest = 0x310070, LogDisconnect = 0x360005, LogStreamingError = 0x360009, - LootItem = 0x3000c4, - LootMoney = 0x3000c3, - LootRelease = 0x3000c8, - LootRoll = 0x3000c9, - LootUnit = 0x3000c2, - LowLevelRaid1 = 0x3500cb, + LootItem = 0x3000c6, + LootMoney = 0x3000c5, + LootRelease = 0x3000ca, + LootRoll = 0x3000cb, + LootUnit = 0x3000c4, + LowLevelRaid1 = 0x3500cc, LowLevelRaid2 = 0x3100ac, MailCreateTextItem = 0x3100da, - MailDelete = 0x3000de, + MailDelete = 0x3000e0, MailGetList = 0x3100d5, MailMarkAsRead = 0x3100d9, MailReturnToSender = 0x35007f, MailTakeItem = 0x3100d7, MailTakeMoney = 0x3100d6, - MakeContitionalAppearancePermanent = 0x3000e0, - MasterLootItem = 0x3000c5, + MakeContitionalAppearancePermanent = 0x3000e2, + MasterLootItem = 0x3000c7, MergeGuildBankItemWithGuildBankItem = 0x310053, MergeGuildBankItemWithItem = 0x310050, MergeItemWithGuildBankItem = 0x31004e, @@ -475,7 +479,7 @@ namespace Framework.Constants MissileTrajectoryCollision = 0x300034, MountClearFanfare = 0x2a0003, MountSetFavorite = 0x35005c, - MountSpecialAnim = 0x30014e, + MountSpecialAnim = 0x300150, MoveAddImpulseAck = 0x33006d, MoveApplyInertiaAck = 0x33006b, MoveApplyMovementForceAck = 0x330031, @@ -566,47 +570,47 @@ namespace Framework.Constants MoveUpdateFallSpeed = 0x330036, MoveWaterWalkAck = 0x330039, MythicPlusRequestMapStats = 0x2d0001, - NeutralPlayerSelectFaction = 0x300080, + NeutralPlayerSelectFaction = 0x300082, NextCinematicCamera = 0x3100e3, ObjectUpdateFailed = 0x30002a, ObjectUpdateRescued = 0x30002b, - OfferPetition = 0x30027f, + OfferPetition = 0x300282, OpeningCinematic = 0x3100e2, - OpenItem = 0x300208, - OpenMissionNpc = 0x3001c9, - OpenShipmentNpc = 0x3001d1, - OpenTradeskillNpc = 0x3001dc, + OpenItem = 0x30020a, + OpenMissionNpc = 0x3001cb, + OpenShipmentNpc = 0x3001d3, + OpenTradeskillNpc = 0x3001de, OptOutOfLoot = 0x31008f, OverrideScreenFlash = 0x3100b9, PartyInvite = 0x350030, PartyInviteResponse = 0x350032, PartyUninvite = 0x350071, - PerformItemInteraction = 0x3000e8, - PerksProgramItemsRefreshed = 0x3002a7, + PerformItemInteraction = 0x3000ea, + PerksProgramItemsRefreshed = 0x3002aa, PerksProgramRequestPendingRewards = 0x2a0011, - PerksProgramRequestPurchase = 0x3002a9, - PerksProgramRequestRefund = 0x3002aa, - PerksProgramSetFrozenVendorItem = 0x3002ab, - PerksProgramStatusRequest = 0x3002a8, + PerksProgramRequestPurchase = 0x3002ac, + PerksProgramRequestRefund = 0x3002ad, + PerksProgramSetFrozenVendorItem = 0x3002ae, + PerksProgramStatusRequest = 0x3002ab, PetitionBuy = 0x31005b, - PetitionRenameGuild = 0x3500f2, + PetitionRenameGuild = 0x3500f3, PetitionShowList = 0x31005a, PetitionShowSignatures = 0x31005c, PetAbandon = 0x31001d, PetAbandonByNumber = 0x31001e, PetAction = 0x31001b, - PetBattleFinalNotify = 0x30008f, + PetBattleFinalNotify = 0x300091, PetBattleInput = 0x35006b, - PetBattleQueueProposeMatchResult = 0x3000dd, - PetBattleQuitNotify = 0x30008e, + PetBattleQueueProposeMatchResult = 0x3000df, + PetBattleQuitNotify = 0x300090, PetBattleReplaceFrontPet = 0x35006c, - PetBattleRequestPvp = 0x300088, - PetBattleRequestUpdate = 0x300089, - PetBattleRequestWild = 0x300086, - PetBattleScriptErrorNotify = 0x300090, - PetBattleWildLocationFail = 0x300087, + PetBattleRequestPvp = 0x30008a, + PetBattleRequestUpdate = 0x30008b, + PetBattleRequestWild = 0x300088, + PetBattleScriptErrorNotify = 0x300092, + PetBattleWildLocationFail = 0x300089, PetCancelAura = 0x31001f, - PetCastSpell = 0x30016d, + PetCastSpell = 0x30016f, PetRename = 0x3500ae, PetSetAction = 0x31001a, PetSpellAutocast = 0x310020, @@ -615,31 +619,33 @@ namespace Framework.Constants PlayerLogin = 0x350016, PushQuestToParty = 0x310030, PvpLogData = 0x300026, - QueryBattlePetName = 0x300141, + QueryBattlePetName = 0x300143, QueryCorpseLocationFromClient = 0x35008a, QueryCorpseTransport = 0x35008b, QueryCountdownTimer = 0x300053, - QueryCreature = 0x30013b, - QueryGameObject = 0x30013c, - QueryGarrisonPetName = 0x300142, + QueryCreature = 0x30013d, + QueryGameObject = 0x30013e, + QueryGarrisonPetName = 0x300144, QueryGuildInfo = 0x3500b4, QueryInspectAchievements = 0x310099, QueryNextMailTime = 0x3100d8, - QueryNpcText = 0x30013d, - QueryPageText = 0x30013f, - QueryPetition = 0x300143, - QueryPetName = 0x300140, + QueryNpcText = 0x30013f, + QueryPageText = 0x300141, + QueryPetition = 0x300145, + QueryPetName = 0x300142, QueryPlayerNames = 0x36000e, QueryPlayerNamesForCommunity = 0x36000c, QueryPlayerNameByCommunityId = 0x36000b, QueryQuestCompletionNpcs = 0x30001f, - QueryQuestInfo = 0x30013e, + QueryQuestInfo = 0x300140, QueryQuestItemUsability = 0x300020, QueryRealmName = 0x3500b3, QueryScenarioPoi = 0x350080, + QuerySelectedWowLabsArea = 0x3002e5, QueryTime = 0x31006f, - QueryTreasurePicker = 0x30022d, + QueryTreasurePicker = 0x30022f, QueryVoidStorage = 0x30004c, + QueryWowLabsAreaInfo = 0x3002e6, QuestConfirmAccept = 0x31002f, QuestGiverAcceptQuest = 0x310029, QuestGiverChooseReward = 0x31002b, @@ -651,117 +657,119 @@ namespace Framework.Constants QuestGiverStatusMultipleQuery = 0x31002e, QuestGiverStatusQuery = 0x31002d, QuestLogRemoveQuest = 0x3100cd, - QuestPoiQuery = 0x3500d9, + QuestPoiQuery = 0x3500da, QuestPushResult = 0x310031, - QuestSessionBeginResponse = 0x300271, - QuestSessionRequestStart = 0x300270, - QuestSessionRequestStop = 0x350156, + QuestSessionBeginResponse = 0x300274, + QuestSessionRequestStart = 0x300273, + QuestSessionRequestStop = 0x350157, QueuedMessagesEnd = 0x360008, - QuickJoinAutoAcceptRequests = 0x35012e, - QuickJoinRequestInvite = 0x35012d, - QuickJoinRequestInviteWithConfirmation = 0x35015b, - QuickJoinRespondToInvite = 0x35012c, - QuickJoinSignalToastDisplayed = 0x35012b, + QuickJoinAutoAcceptRequests = 0x35012f, + QuickJoinRequestInvite = 0x35012e, + QuickJoinRequestInviteWithConfirmation = 0x35015c, + QuickJoinRespondToInvite = 0x35012d, + QuickJoinSignalToastDisplayed = 0x35012c, RafClaimActivityReward = 0x31009d, - RafClaimNextReward = 0x35014c, - RafGenerateRecruitmentLink = 0x35014e, - RafUpdateRecruitmentInfo = 0x35014d, + RafClaimNextReward = 0x35014d, + RafGenerateRecruitmentLink = 0x35014f, + RafUpdateRecruitmentInfo = 0x35014e, RandomRoll = 0x35007e, ReadyCheckResponse = 0x35005f, - ReadItem = 0x300209, + ReadItem = 0x30020b, ReclaimCorpse = 0x310074, - RemoveNewItem = 0x300230, - RemoveRafRecruit = 0x35014f, + RemoveNewItem = 0x300232, + RemoveRafRecruit = 0x350150, ReorderCharacters = 0x350015, RepairItem = 0x310085, - ReplaceTrophy = 0x3001ea, + ReplaceTrophy = 0x3001ec, RepopRequest = 0x3100c5, - ReportClientVariables = 0x350128, - ReportEnabledAddons = 0x350127, - ReportKeybindingExecutionCounts = 0x350129, + ReportClientVariables = 0x350129, + ReportEnabledAddons = 0x350128, + ReportKeybindingExecutionCounts = 0x35012a, ReportPvpPlayerAfk = 0x31008d, - ReportServerLag = 0x300269, - ReportStuckInCombat = 0x30026a, - RequestAccountData = 0x3500bf, - RequestAreaPoiUpdate = 0x30022f, + ReportServerLag = 0x30026c, + ReportStuckInCombat = 0x30026d, + RequestAccountData = 0x3500c0, + RequestAreaPoiUpdate = 0x300231, RequestBattlefieldStatus = 0x350008, RequestCemeteryList = 0x300021, RequestCharacterGuildFollowInfo = 0x3500b5, - RequestCovenantCallings = 0x30025b, + RequestCovenantCallings = 0x30025e, RequestCrowdControlSpell = 0x3100c9, RequestCurrencyDataForAccountCharacters = 0x2a0018, - RequestGarrisonTalentWorldQuestUnlocks = 0x300294, + RequestGarrisonTalentWorldQuestUnlocks = 0x300297, RequestGuildPartyState = 0x300052, RequestGuildRewardsList = 0x300051, - RequestLatestSplashScreen = 0x30026b, - RequestLfgListBlacklist = 0x300179, - RequestMythicPlusAffixes = 0x3000b4, - RequestMythicPlusSeasonData = 0x3000b5, - RequestPartyEligibilityForDelveTiers = 0x3002e2, + RequestLatestSplashScreen = 0x30026e, + RequestLfgListBlacklist = 0x30017b, + RequestMythicPlusAffixes = 0x3000b6, + RequestMythicPlusSeasonData = 0x3000b7, + RequestPartyEligibilityForDelveTiers = 0x3002e4, RequestPartyJoinUpdates = 0x350023, RequestPartyMemberStats = 0x35007d, RequestPetInfo = 0x310021, - RequestPlayedTime = 0x300146, + RequestPlayedTime = 0x300148, RequestPvpRewards = 0x30003f, - RequestRaidInfo = 0x3500f3, + RequestRaidInfo = 0x3500f4, RequestRatedPvpInfo = 0x35000f, - RequestRealmGuildMasterInfo = 0x35018b, + RequestRealmGuildMasterInfo = 0x350190, RequestScheduledPvpInfo = 0x300040, RequestStabledPets = 0x310022, - RequestVehicleExit = 0x3000fa, - RequestVehicleNextSeat = 0x3000fc, - RequestVehiclePrevSeat = 0x3000fb, - RequestVehicleSwitchSeat = 0x3000fd, - RequestWeeklyRewards = 0x30025e, - RequestWorldQuestUpdate = 0x30022e, - ResetChallengeMode = 0x3000b2, - ResetChallengeModeCheat = 0x3000b3, + RequestStoreFrontInfoUpdate = 0x2a001d, + RequestVehicleExit = 0x3000fc, + RequestVehicleNextSeat = 0x3000fe, + RequestVehiclePrevSeat = 0x3000fd, + RequestVehicleSwitchSeat = 0x3000ff, + RequestWeeklyRewards = 0x300261, + RequestWorldQuestUpdate = 0x300230, + ResetChallengeMode = 0x3000b4, + ResetChallengeModeCheat = 0x3000b5, ResetInstances = 0x350092, ResurrectResponse = 0x3500ad, - RevertMonumentAppearance = 0x3001ec, - RideVehicleInteract = 0x3000fe, - RpeResetCharacter = 0x350178, - SaveAccountDataExport = 0x350172, + RevertMonumentAppearance = 0x3001ee, + RideVehicleInteract = 0x300100, + RpeResetCharacter = 0x35017d, + SaveAccountDataExport = 0x350177, SaveCufProfiles = 0x300035, SaveEquipmentSet = 0x3100a3, - SaveGuildEmblem = 0x30017d, - SavePersonalEmblem = 0x30017e, - ScenePlaybackCanceled = 0x3000d9, - ScenePlaybackComplete = 0x3000d8, - SceneTriggerEvent = 0x3000da, - SeamlessTransferComplete = 0x3002d0, + SaveGuildEmblem = 0x30017f, + SavePersonalEmblem = 0x300180, + ScenePlaybackCanceled = 0x3000db, + ScenePlaybackComplete = 0x3000da, + SceneTriggerEvent = 0x3000dc, + SeamlessTransferComplete = 0x3002d3, + SelectWowLabsArea = 0x3002e7, SelfRes = 0x3100d0, SellAllJunkItems = 0x310034, SellItem = 0x310033, - SendCharacterClubInvitation = 0x350121, - SendContactList = 0x3500f8, + SendCharacterClubInvitation = 0x350122, + SendContactList = 0x3500f9, SendMail = 0x350026, - SendPingUnit = 0x3002d2, - SendPingWorldPoint = 0x3002d3, + SendPingUnit = 0x3002d5, + SendPingWorldPoint = 0x3002d6, SendTextEmote = 0x310018, - ServerTimeOffsetRequest = 0x3500c6, - SetupWarbandGroups = 0x350186, - SetAchievementsHidden = 0x3000df, + ServerTimeOffsetRequest = 0x3500c7, + SetupWarbandGroups = 0x35018b, + SetAchievementsHidden = 0x3000e1, SetActionBarToggles = 0x3100d1, SetActionButton = 0x350060, SetActiveMover = 0x330059, - SetAdvancedCombatLogging = 0x30018b, + SetAdvancedCombatLogging = 0x30018d, SetAssistantLeader = 0x350079, - SetBackpackAutosortDisabled = 0x30020c, - SetBackpackSellJunkDisabled = 0x30020d, - SetBankAutosortDisabled = 0x30020e, - SetContactNotes = 0x3500fb, + SetBackpackAutosortDisabled = 0x30020e, + SetBackpackSellJunkDisabled = 0x30020f, + SetBankAutosortDisabled = 0x300210, + SetContactNotes = 0x3500fc, SetCurrencyFlags = 0x300013, - SetDifficultyId = 0x3000db, + SetDifficultyId = 0x3000dd, SetDungeonDifficulty = 0x3500ac, - SetEmpowerMinHoldStagePercent = 0x300135, + SetEmpowerMinHoldStagePercent = 0x300137, SetEveryoneIsAssistant = 0x350046, - SetExcludedChatCensorSources = 0x35012f, + SetExcludedChatCensorSources = 0x350130, SetFactionAtWar = 0x310077, SetFactionInactive = 0x310079, SetFactionNotAtWar = 0x310078, SetGameEventDebugViewState = 0x300063, - SetInsertItemsLeftToRight = 0x300210, + SetInsertItemsLeftToRight = 0x300212, SetLootMethod = 0x350072, SetLootSpecialization = 0x3100de, SetPartyAssignment = 0x35007b, @@ -770,36 +778,36 @@ namespace Framework.Constants SetPetSlot = 0x300011, SetPlayerDeclinedNames = 0x3500b2, SetPreferredCemetery = 0x300022, - SetPvp = 0x300182, - SetRaidDifficulty = 0x350104, + SetPvp = 0x300184, + SetRaidDifficulty = 0x350105, SetRestrictPingsToAssistants = 0x350047, SetRole = 0x350005, SetSavedInstanceExtend = 0x3500b0, SetSelection = 0x3100c7, SetSheathed = 0x310019, - SetSortBagsRightToLeft = 0x30020f, + SetSortBagsRightToLeft = 0x300211, SetTaxiBenchmarkMode = 0x31008c, - SetTitle = 0x30014c, + SetTitle = 0x30014e, SetTradeCurrency = 0x30000a, SetTradeGold = 0x300009, SetTradeItem = 0x300007, - SetUsingPartyGarrison = 0x3001cb, - SetWarMode = 0x300183, + SetUsingPartyGarrison = 0x3001cd, + SetWarMode = 0x300185, SetWatchedFaction = 0x31007a, - ShowTradeSkill = 0x3500eb, + ShowTradeSkill = 0x3500ec, SignPetition = 0x3100d2, SilencePartyTalker = 0x35007c, - SocialContractRequest = 0x35016d, + SocialContractRequest = 0x350172, SocketGems = 0x310084, - SortAccountBankBags = 0x3002d6, - SortBags = 0x300211, - SortBankBags = 0x300212, - SortReagentBankBags = 0x300213, - SpawnTrackingUpdate = 0x300161, - SpectateChange = 0x3002c9, + SortAccountBankBags = 0x3002d9, + SortBags = 0x300213, + SortBankBags = 0x300214, + SortReagentBankBags = 0x300215, + SpawnTrackingUpdate = 0x300163, + SpectateChange = 0x3002cc, SpellClick = 0x310026, - SpellEmpowerRelease = 0x300133, - SpellEmpowerRestart = 0x300134, + SpellEmpowerRelease = 0x300135, + SpellEmpowerRestart = 0x300136, SpiritHealerActivate = 0x310041, SplitGuildBankItem = 0x310054, SplitGuildBankItemToInventory = 0x310051, @@ -810,8 +818,8 @@ namespace Framework.Constants StartSpectatorWarGame = 0x35000b, StartWarGame = 0x35000a, StoreGuildBankItem = 0x31004a, - SubmitUserFeedback = 0x3500be, - SubscriptionInterstitialResponse = 0x300289, + SubmitUserFeedback = 0x3500bf, + SubscriptionInterstitialResponse = 0x30028c, SummonResponse = 0x350094, SupportTicketSubmitComplaint = 0x350070, SurrenderArena = 0x30001e, @@ -823,7 +831,7 @@ namespace Framework.Constants SwapItemWithGuildBankItem = 0x31004b, SwapSubGroups = 0x350077, SwapVoidItem = 0x30004e, - TabardVendorActivate = 0x30017f, + TabardVendorActivate = 0x300181, TalkToGossip = 0x310023, TaxiNodeStatusQuery = 0x31003a, TaxiQueryAvailableNodes = 0x31003c, @@ -833,53 +841,53 @@ namespace Framework.Constants TimeSyncResponseDropped = 0x33005c, TimeSyncResponseFailed = 0x33005b, ToggleDifficulty = 0x350081, - TogglePvp = 0x300181, + TogglePvp = 0x300183, TotemDestroyed = 0x310091, ToyClearFanfare = 0x2a0004, - TradeSkillSetFavorite = 0x30022c, + TradeSkillSetFavorite = 0x30022e, TrainerBuySpell = 0x310040, TrainerList = 0x31003f, - TraitsCommitConfig = 0x3002b1, - TraitsTalentTestUnlearnSpells = 0x3002af, - TransferCurrencyFromAccountCharacter = 0x3002e0, + TraitsCommitConfig = 0x3002b4, + TraitsTalentTestUnlearnSpells = 0x3002b2, + TransferCurrencyFromAccountCharacter = 0x3002e2, TransmogrifyItems = 0x300041, TurnInPetition = 0x3100d4, - Tutorial = 0x350105, - UiMapQuestLinesRequest = 0x30025a, + Tutorial = 0x350106, + UiMapQuestLinesRequest = 0x30025d, UnacceptTrade = 0x300005, - UndeleteCharacter = 0x350107, + UndeleteCharacter = 0x350108, UnlearnSkill = 0x31007e, UnlearnSpecialization = 0x30004f, UnlockVoidStorage = 0x30004b, - UpdateAadcStatus = 0x350161, + UpdateAadcStatus = 0x350162, UpdateAccountBankTabSettings = 0x310127, - UpdateAccountData = 0x3500c0, - UpdateAreaTriggerVisual = 0x300170, + UpdateAccountData = 0x3500c1, + UpdateAreaTriggerVisual = 0x300172, UpdateClientSettings = 0x35008e, - UpdateCraftingNpcRecipes = 0x3001dd, + UpdateCraftingNpcRecipes = 0x3001df, UpdateMissileTrajectory = 0x330060, UpdateRaidTarget = 0x35007a, - UpdateSpellVisual = 0x30016f, - UpdateVasPurchaseStates = 0x35011c, - UpgradeGarrison = 0x300193, - UpgradeRuneforgeLegendary = 0x300287, + UpdateSpellVisual = 0x300171, + UpdateVasPurchaseStates = 0x35011d, + UpgradeGarrison = 0x300195, + UpgradeRuneforgeLegendary = 0x30028a, UsedFollow = 0x300030, - UseCritterItem = 0x300104, + UseCritterItem = 0x300106, UseEquipmentSet = 0x320001, - UseItem = 0x300169, - UseToy = 0x30016c, - VasCheckTransferOk = 0x350134, - VasGetQueueMinutes = 0x350133, - VasGetServiceStatus = 0x350132, + UseItem = 0x30016b, + UseToy = 0x30016e, + VasCheckTransferOk = 0x350135, + VasGetQueueMinutes = 0x350134, + VasGetServiceStatus = 0x350133, ViolenceLevel = 0x30002e, - VoiceChannelSttTokenRequest = 0x350138, - VoiceChatJoinChannel = 0x350139, - VoiceChatLogin = 0x350137, + VoiceChannelSttTokenRequest = 0x350139, + VoiceChatJoinChannel = 0x35013a, + VoiceChatLogin = 0x350138, VoidStorageTransfer = 0x30004d, Warden3Data = 0x350018, Who = 0x3500ab, WhoIs = 0x3500aa, - WorldLootObjectClick = 0x3002cc, + WorldLootObjectClick = 0x3002cf, WorldPortResponse = 0x350025, WrapItem = 0x320000, @@ -888,92 +896,96 @@ namespace Framework.Constants public enum ServerOpcodes : uint { - AbortNewWorld = 0x37002f, - AccountCharacterCurrencyLists = 0x370334, - AccountConversionStateUpdate = 0x370339, - AccountCosmeticAdded = 0x3702f7, - AccountCriteriaUpdate = 0x3702de, - AccountDataTimes = 0x3701a0, - AccountExportResponse = 0x370325, - AccountMountRemoved = 0x370046, - AccountMountUpdate = 0x370045, - AccountNotificationsResponse = 0x3702f6, - AccountToyUpdate = 0x370047, - AccountTransmogSetFavoritesUpdate = 0x37004b, - AccountTransmogUpdate = 0x37004a, - AchievementDeleted = 0x37017e, - AchievementEarned = 0x3700d8, + AbortNewWorld = 0x370030, + AccountCharacterCurrencyLists = 0x370340, + AccountConversionStateUpdate = 0x370345, + AccountCosmeticAdded = 0x3702f9, + AccountCriteriaUpdate = 0x3702e0, + AccountDataTimes = 0x3701a1, + AccountExportResponse = 0x370331, + AccountMountRemoved = 0x370047, + AccountMountUpdate = 0x370046, + AccountNotificationsResponse = 0x3702f8, + AccountStoreCurrencyUpdate = 0x37031a, + AccountStoreFrontUpdate = 0x37031b, + AccountStoreItemStateChanged = 0x37031c, + AccountStoreResult = 0x37031d, + AccountToyUpdate = 0x370048, + AccountTransmogSetFavoritesUpdate = 0x37004c, + AccountTransmogUpdate = 0x37004b, + AchievementDeleted = 0x37017f, + AchievementEarned = 0x3700d9, ActivateEssenceFailed = 0x4a001f, ActivateSoulbindFailed = 0x4a0021, - ActivateTaxiReply = 0x370115, + ActivateTaxiReply = 0x370116, ActiveGlyphs = 0x4d0045, - ActiveScheduledWorldStateInfo = 0x3701db, - AddonListRequest = 0x3700d7, - AddBattlenetFriendResponse = 0x3700d2, - AddItemPassive = 0x370041, - AddLossOfControl = 0x370108, - AddRunePower = 0x37014f, - AdjustSplineDuration = 0x370067, - AdvancedCombatLog = 0x3702f3, - AdventureJournalDataResponse = 0x3702ee, - AeLootTargets = 0x3700ad, - AeLootTargetAck = 0x3700ae, - AiReaction = 0x37014c, - AlliedRaceDetails = 0x370288, + ActiveScheduledWorldStateInfo = 0x3701dc, + AddonListRequest = 0x3700d8, + AddBattlenetFriendResponse = 0x3700d3, + AddItemPassive = 0x370042, + AddLossOfControl = 0x370109, + AddRunePower = 0x370150, + AdjustSplineDuration = 0x370068, + AdvancedCombatLog = 0x3702f5, + AdventureJournalDataResponse = 0x3702f0, + AeLootTargets = 0x3700ae, + AeLootTargetAck = 0x3700af, + AiReaction = 0x37014d, + AlliedRaceDetails = 0x37028a, AllAccountCriteria = 0x370005, AllAchievementData = 0x370004, AllGuildAchievements = 0x430000, - ApplyMountEquipmentResult = 0x3702cb, + ApplyMountEquipmentResult = 0x3702cd, ArchaeologySurveryCast = 0x37001d, AreaPoiUpdateResponse = 0x4a0018, - AreaSpiritHealerTime = 0x3701d4, + AreaSpiritHealerTime = 0x3701d5, AreaTriggerDenied = 0x380009, AreaTriggerForceSetPositionAndFacing = 0x380006, - AreaTriggerNoCorpse = 0x3701ac, + AreaTriggerNoCorpse = 0x3701ad, AreaTriggerPlaySpellVisual = 0x380004, AreaTriggerRePath = 0x380003, AreaTriggerReShape = 0x380008, AreaTriggerUnattach = 0x380007, AreaTriggerUpdateDecalProperties = 0x380005, - ArenaClearOpponents = 0x3700de, - ArenaCrowdControlSpellResult = 0x3700c7, - ArenaPrepOpponentSpecializations = 0x3700dd, - ArtifactEndgamePowersRefunded = 0x370235, - ArtifactForgeError = 0x370233, - ArtifactRespecPrompt = 0x370234, - ArtifactXpGain = 0x37027b, + ArenaClearOpponents = 0x3700df, + ArenaCrowdControlSpellResult = 0x3700c8, + ArenaPrepOpponentSpecializations = 0x3700de, + ArtifactEndgamePowersRefunded = 0x370237, + ArtifactForgeError = 0x370235, + ArtifactRespecPrompt = 0x370236, + ArtifactXpGain = 0x37027d, AttackerStateUpdate = 0x3d002c, AttackStart = 0x3d0017, AttackStop = 0x3d0018, AttackSwingError = 0x3d0026, AttackSwingLandedLog = 0x3d0027, - AuctionableTokenAuctionSold = 0x370264, - AuctionableTokenSellAtMarketPriceResponse = 0x370263, - AuctionableTokenSellConfirmRequired = 0x370262, - AuctionClosedNotification = 0x370189, - AuctionCommandResult = 0x370186, - AuctionDisableNewPostings = 0x370312, - AuctionFavoriteList = 0x3702e5, - AuctionGetCommodityQuoteResult = 0x3702dd, - AuctionHelloResponse = 0x370184, - AuctionListBiddedItemsResult = 0x3702dc, - AuctionListBucketsResult = 0x3702d8, - AuctionListItemsResult = 0x3702d9, - AuctionListOwnedItemsResult = 0x3702db, - AuctionOutbidNotification = 0x370188, - AuctionOwnerBidNotification = 0x37018a, - AuctionReplicateResponse = 0x370185, - AuctionWonNotification = 0x370187, + AuctionableTokenAuctionSold = 0x370266, + AuctionableTokenSellAtMarketPriceResponse = 0x370265, + AuctionableTokenSellConfirmRequired = 0x370264, + AuctionClosedNotification = 0x37018a, + AuctionCommandResult = 0x370187, + AuctionDisableNewPostings = 0x37031e, + AuctionFavoriteList = 0x3702e7, + AuctionGetCommodityQuoteResult = 0x3702df, + AuctionHelloResponse = 0x370185, + AuctionListBiddedItemsResult = 0x3702de, + AuctionListBucketsResult = 0x3702da, + AuctionListItemsResult = 0x3702db, + AuctionListOwnedItemsResult = 0x3702dd, + AuctionOutbidNotification = 0x370189, + AuctionOwnerBidNotification = 0x37018b, + AuctionReplicateResponse = 0x370186, + AuctionWonNotification = 0x370188, AuraPointsDepleted = 0x4d0012, AuraUpdate = 0x4d0011, AuthChallenge = 0x3e0000, AuthFailed = 0x370000, AuthResponse = 0x370001, AvailableHotfixes = 0x3b0001, - BackpackDefaultSizeChanged = 0x370313, + BackpackDefaultSizeChanged = 0x37031f, BagCleanupFinished = 0x4e0007, - BarberShopResult = 0x370154, - BatchPresenceSubscription = 0x3702bc, + BarberShopResult = 0x370155, + BatchPresenceSubscription = 0x3702be, BattlefieldList = 0x3d0005, BattlefieldPortDenied = 0x3d000b, BattlefieldStatusActive = 0x3d0001, @@ -989,224 +1001,225 @@ namespace Framework.Constants BattlegroundPlayerLeft = 0x3d000a, BattlegroundPlayerPositions = 0x3d0006, BattlegroundPoints = 0x3d0028, - BattlenetChallengeAbort = 0x37021d, - BattlenetChallengeStart = 0x37021c, - BattlenetNotification = 0x370294, - BattlenetResponse = 0x370293, - BattleNetConnectionStatus = 0x370295, - BattlePayAckFailed = 0x370218, - BattlePayBattlePetDelivered = 0x37020d, - BattlePayCollectionItemDelivered = 0x37020e, - BattlePayConfirmPurchase = 0x370217, - BattlePayDeliveryEnded = 0x37020b, - BattlePayDeliveryStarted = 0x37020a, - BattlePayDistributionAssignVasResponse = 0x3702fc, - BattlePayDistributionUnrevoked = 0x370208, - BattlePayDistributionUpdate = 0x370209, - BattlePayGetDistributionListResponse = 0x370207, - BattlePayGetProductListResponse = 0x370205, - BattlePayGetPurchaseListResponse = 0x370206, - BattlePayMountDelivered = 0x37020c, - BattlePayPurchaseUpdate = 0x370216, - BattlePayStartCheckout = 0x3702b0, - BattlePayStartDistributionAssignToTargetResponse = 0x370214, - BattlePayStartPurchaseResponse = 0x370213, - BattlePayValidatePurchaseResponse = 0x3702a4, - BattlePetsHealed = 0x370089, - BattlePetCageDateError = 0x370110, - BattlePetDeleted = 0x370086, - BattlePetError = 0x3700cd, - BattlePetJournal = 0x370085, - BattlePetJournalLockAcquired = 0x370083, - BattlePetJournalLockDenied = 0x370084, - BattlePetRestored = 0x370088, - BattlePetRevoked = 0x370087, - BattlePetTrapLevel = 0x370081, - BattlePetUpdates = 0x370080, + BattlenetChallengeAbort = 0x37021f, + BattlenetChallengeStart = 0x37021e, + BattlenetNotification = 0x370296, + BattlenetResponse = 0x370295, + BattleNetConnectionStatus = 0x370297, + BattlePayAckFailed = 0x37021a, + BattlePayBattlePetDelivered = 0x37020f, + BattlePayCollectionItemDelivered = 0x370210, + BattlePayConfirmPurchase = 0x370219, + BattlePayDeliveryEnded = 0x37020d, + BattlePayDeliveryStarted = 0x37020c, + BattlePayDistributionAssignVasResponse = 0x3702fe, + BattlePayDistributionUnrevoked = 0x37020a, + BattlePayDistributionUpdate = 0x37020b, + BattlePayGetDistributionListResponse = 0x370209, + BattlePayGetProductListResponse = 0x370207, + BattlePayGetPurchaseListResponse = 0x370208, + BattlePayMountDelivered = 0x37020e, + BattlePayPurchaseUpdate = 0x370218, + BattlePayStartCheckout = 0x3702b2, + BattlePayStartDistributionAssignToTargetResponse = 0x370216, + BattlePayStartPurchaseResponse = 0x370215, + BattlePayValidatePurchaseResponse = 0x3702a6, + BattlePetsHealed = 0x37008a, + BattlePetCageDateError = 0x370111, + BattlePetDeleted = 0x370087, + BattlePetError = 0x3700ce, + BattlePetJournal = 0x370086, + BattlePetJournalLockAcquired = 0x370084, + BattlePetJournalLockDenied = 0x370085, + BattlePetRestored = 0x370089, + BattlePetRevoked = 0x370088, + BattlePetTrapLevel = 0x370082, + BattlePetUpdates = 0x370081, BindPointUpdate = 0x370011, - BlackMarketBidOnItemResult = 0x3700bd, - BlackMarketOutbid = 0x3700be, - BlackMarketRequestItemsResult = 0x3700bc, - BlackMarketWon = 0x3700bf, - BonusRollEmpty = 0x3700da, + BlackMarketBidOnItemResult = 0x3700be, + BlackMarketOutbid = 0x3700bf, + BlackMarketRequestItemsResult = 0x3700bd, + BlackMarketWon = 0x3700c0, + BonusRollEmpty = 0x3700db, BossKill = 0x3d002b, BreakTarget = 0x3d0016, BroadcastAchievement = 0x3c0010, - BroadcastSummonCast = 0x3702be, - BroadcastSummonResponse = 0x3702bf, - BuyFailed = 0x37015d, - BuySucceeded = 0x37015c, + BroadcastSummonCast = 0x3702c0, + BroadcastSummonResponse = 0x3702c1, + BuyFailed = 0x37015e, + BuySucceeded = 0x37015d, CacheInfo = 0x3b000f, CacheVersion = 0x3b000e, - CalendarClearPendingAction = 0x370135, - CalendarCommandResult = 0x370136, - CalendarCommunityInvite = 0x370125, - CalendarEventRemovedAlert = 0x37012d, - CalendarEventUpdatedAlert = 0x37012e, - CalendarInviteAdded = 0x370126, - CalendarInviteAlert = 0x37012a, - CalendarInviteNotes = 0x37012f, - CalendarInviteNotesAlert = 0x370130, - CalendarInviteRemoved = 0x370127, - CalendarInviteRemovedAlert = 0x37012c, - CalendarInviteStatus = 0x370128, - CalendarInviteStatusAlert = 0x37012b, - CalendarModeratorStatus = 0x370129, - CalendarRaidLockoutAdded = 0x370131, - CalendarRaidLockoutRemoved = 0x370132, - CalendarRaidLockoutUpdated = 0x370133, - CalendarSendCalendar = 0x370123, - CalendarSendEvent = 0x370124, - CalendarSendNumPending = 0x370134, - CameraEffect = 0x3701ba, - CancelAutoRepeat = 0x370174, + CalendarClearPendingAction = 0x370136, + CalendarCommandResult = 0x370137, + CalendarCommunityInvite = 0x370126, + CalendarEventRemovedAlert = 0x37012e, + CalendarEventUpdatedAlert = 0x37012f, + CalendarInviteAdded = 0x370127, + CalendarInviteAlert = 0x37012b, + CalendarInviteNotes = 0x370130, + CalendarInviteNotesAlert = 0x370131, + CalendarInviteRemoved = 0x370128, + CalendarInviteRemovedAlert = 0x37012d, + CalendarInviteStatus = 0x370129, + CalendarInviteStatusAlert = 0x37012c, + CalendarModeratorStatus = 0x37012a, + CalendarRaidLockoutAdded = 0x370132, + CalendarRaidLockoutRemoved = 0x370133, + CalendarRaidLockoutUpdated = 0x370134, + CalendarSendCalendar = 0x370124, + CalendarSendEvent = 0x370125, + CalendarSendNumPending = 0x370135, + CameraEffect = 0x3701bb, + CancelAutoRepeat = 0x370175, CancelCombat = 0x3d0025, CancelOrphanSpellVisual = 0x4d0037, - CancelPingPin = 0x37003a, - CancelPreloadWorld = 0x37002d, - CancelScene = 0x3700cc, + CancelPingPin = 0x37003b, + CancelPreloadWorld = 0x37002e, + CancelScene = 0x3700cd, CancelSpellVisual = 0x4d0035, CancelSpellVisualKit = 0x4d0039, CanDuelResult = 0x3d0021, - CanRedeemTokenForBalanceResponse = 0x3702a3, + CanRedeemTokenForBalanceResponse = 0x3702a5, CapturePointRemoved = 0x3d0008, CastFailed = 0x4d0048, - CasRefreshRemoteData = 0x37010e, - ChainMissileBounce = 0x37005f, - ChallengeModeComplete = 0x3700a0, - ChallengeModeRequestLeadersResult = 0x3700a5, - ChallengeModeReset = 0x37009f, - ChallengeModeStart = 0x37009d, - ChallengeModeUpdateDeathCount = 0x37009e, + CasRefreshRemoteData = 0x37010f, + ChainMissileBounce = 0x370060, + ChallengeModeComplete = 0x3700a1, + ChallengeModeRequestLeadersResult = 0x3700a6, + ChallengeModeReset = 0x3700a0, + ChallengeModeStart = 0x37009e, + ChallengeModeUpdateDeathCount = 0x37009f, ChangePlayerDifficultyResult = 0x4a000c, - ChangeRealmTicketResponse = 0x370296, - ChannelList = 0x3c0018, + ChangeRealmTicketResponse = 0x370298, + ChannelList = 0x3c0019, ChannelNotify = 0x3c0015, - ChannelNotifyJoined = 0x3c0016, - ChannelNotifyLeft = 0x3c0017, - CharacterCheckUpgradeResult = 0x370250, - CharacterLoginFailed = 0x37019b, - CharacterObjectTestResponse = 0x37021b, - CharacterRenameResult = 0x3701f7, - CharacterUpgradeAborted = 0x37024f, - CharacterUpgradeComplete = 0x37024e, - CharacterUpgradeManualUnrevokeResult = 0x370251, - CharacterUpgradeStarted = 0x37024d, - CharCustomizeFailure = 0x370178, - CharCustomizeSuccess = 0x370179, - CharFactionChangeResult = 0x37023a, + ChannelNotifyJoined = 0x3c0017, + ChannelNotifyLeft = 0x3c0018, + ChannelNotifyNpeJoinedBatch = 0x3c0016, + CharacterCheckUpgradeResult = 0x370252, + CharacterLoginFailed = 0x37019c, + CharacterObjectTestResponse = 0x37021d, + CharacterRenameResult = 0x3701f8, + CharacterUpgradeAborted = 0x370251, + CharacterUpgradeComplete = 0x370250, + CharacterUpgradeManualUnrevokeResult = 0x370253, + CharacterUpgradeStarted = 0x37024f, + CharCustomizeFailure = 0x370179, + CharCustomizeSuccess = 0x37017a, + CharFactionChangeResult = 0x37023c, Chat = 0x3c0001, ChatAutoResponded = 0x3c000c, - ChatCanLocalWhisperTargetResponse = 0x3c001f, + ChatCanLocalWhisperTargetResponse = 0x3c0020, ChatDown = 0x3c0012, ChatIgnoredAccountMuted = 0x3c0000, ChatIsDown = 0x3c0013, - ChatNotInGuild = 0x3c0020, + ChatNotInGuild = 0x3c0021, ChatNotInParty = 0x3c0006, ChatPlayerAmbiguous = 0x3c0004, ChatPlayerNotfound = 0x3c000b, ChatReconnect = 0x3c0014, - ChatRegionalServiceStatus = 0x3c001a, + ChatRegionalServiceStatus = 0x3c001b, ChatRestricted = 0x3c0007, - ChatServerMessage = 0x3c0019, + ChatServerMessage = 0x3c001a, CheatIgnoreDimishingReturns = 0x4d0002, CheckAbandonNpe = 0x4a0022, CheckCharacterNameAvailabilityResult = 0x37001b, CheckWargameEntry = 0x370027, - ChromieTimeSelectExpansionSuccess = 0x3702e8, - ClaimRafRewardResponse = 0x3702cf, + ChromieTimeSelectExpansionSuccess = 0x3702ea, + ClaimRafRewardResponse = 0x3702d1, ClearAllSpellCharges = 0x4d0016, - ClearBossEmotes = 0x370052, - ClearCooldown = 0x370151, + ClearBossEmotes = 0x370053, + ClearCooldown = 0x370152, ClearCooldowns = 0x4d0015, ClearResurrect = 0x370013, ClearSpellCharges = 0x4d0017, ClearTarget = 0x3d0022, ClearTreasurePickerCache = 0x4b0022, - CloseArtifactForge = 0x370232, - ClubFinderErrorMessage = 0x3702c7, - ClubFinderGetClubPostingIdsResponse = 0x3702ca, - ClubFinderLookupClubPostingsList = 0x3702c8, - ClubFinderResponseCharacterApplicationList = 0x3702c5, - ClubFinderResponsePostRecruitmentMessage = 0x3702c9, - ClubFinderUpdateApplications = 0x3702c6, - ClubFinderWhisperApplicantResponse = 0x370308, - CoinRemoved = 0x3700ac, + CloseArtifactForge = 0x370234, + ClubFinderErrorMessage = 0x3702c9, + ClubFinderGetClubPostingIdsResponse = 0x3702cc, + ClubFinderLookupClubPostingsList = 0x3702ca, + ClubFinderResponseCharacterApplicationList = 0x3702c7, + ClubFinderResponsePostRecruitmentMessage = 0x3702cb, + ClubFinderUpdateApplications = 0x3702c8, + ClubFinderWhisperApplicantResponse = 0x37030a, + CoinRemoved = 0x3700ad, CombatEventFailed = 0x3d0019, - CommentatorMapInfo = 0x37019d, - CommentatorPlayerInfo = 0x37019e, - CommentatorStateChanged = 0x37019c, - CommerceTokenGetCountResponse = 0x37025f, - CommerceTokenGetLogResponse = 0x37026b, - CommerceTokenGetMarketPriceResponse = 0x370261, - CommerceTokenUpdate = 0x370260, - ComplaintResult = 0x370143, - CompleteShipmentResponse = 0x37022b, - ConfirmPartyInvite = 0x3702a2, + CommentatorMapInfo = 0x37019e, + CommentatorPlayerInfo = 0x37019f, + CommentatorStateChanged = 0x37019d, + CommerceTokenGetCountResponse = 0x370261, + CommerceTokenGetLogResponse = 0x37026d, + CommerceTokenGetMarketPriceResponse = 0x370263, + CommerceTokenUpdate = 0x370262, + ComplaintResult = 0x370144, + CompleteShipmentResponse = 0x37022d, + ConfirmPartyInvite = 0x3702a4, ConnectTo = 0x3e0005, - ConsoleWrite = 0x3700ca, - ConsumableTokenBuyAtMarketPriceResponse = 0x370267, - ConsumableTokenBuyChoiceRequired = 0x370266, - ConsumableTokenCanVeteranBuyResponse = 0x370265, - ConsumableTokenRedeemConfirmRequired = 0x370269, - ConsumableTokenRedeemResponse = 0x37026a, - ContactList = 0x370219, - ContributionLastUpdateResponse = 0x3702a9, - ControlUpdate = 0x3700dc, - ConvertItemsToCurrencyValue = 0x3702f1, - CooldownCheat = 0x3701cd, - CooldownEvent = 0x370150, - CorpseLocation = 0x3700e4, - CorpseReclaimDelay = 0x3701de, - CorpseTransportQuery = 0x3701a8, + ConsoleWrite = 0x3700cb, + ConsumableTokenBuyAtMarketPriceResponse = 0x370269, + ConsumableTokenBuyChoiceRequired = 0x370268, + ConsumableTokenCanVeteranBuyResponse = 0x370267, + ConsumableTokenRedeemConfirmRequired = 0x37026b, + ConsumableTokenRedeemResponse = 0x37026c, + ContactList = 0x37021b, + ContributionLastUpdateResponse = 0x3702ab, + ControlUpdate = 0x3700dd, + ConvertItemsToCurrencyValue = 0x3702f3, + CooldownCheat = 0x3701ce, + CooldownEvent = 0x370151, + CorpseLocation = 0x3700e5, + CorpseReclaimDelay = 0x3701df, + CorpseTransportQuery = 0x3701a9, CovenantCallingsAvailabilityResponse = 0x4b0024, - CovenantPreviewOpenNpc = 0x37028b, - CovenantRenownSendCatchupState = 0x3702f2, - CraftingHouseHelloResponse = 0x37031f, - CraftingOrderCancelResult = 0x37031b, - CraftingOrderClaimResult = 0x370317, - CraftingOrderCraftResult = 0x370319, - CraftingOrderCreateResult = 0x370315, - CraftingOrderFulfillResult = 0x37031a, - CraftingOrderListOrdersResponse = 0x370316, - CraftingOrderNpcRewardInfo = 0x370321, - CraftingOrderRejectResult = 0x37031d, - CraftingOrderReleaseResult = 0x370318, - CraftingOrderUpdateState = 0x370320, - CraftEnchantResult = 0x37031e, - CreateChar = 0x370197, - CreateShipmentResponse = 0x37022a, - CreatorVisualsOverride = 0x370324, - CriteriaDeleted = 0x37017d, - CriteriaUpdate = 0x370177, - CrossedInebriationThreshold = 0x370158, - CurrencyTransferLog = 0x370336, - CurrencyTransferResult = 0x370335, - CustomLoadScreen = 0x370062, + CovenantPreviewOpenNpc = 0x37028d, + CovenantRenownSendCatchupState = 0x3702f4, + CraftingHouseHelloResponse = 0x37032b, + CraftingOrderCancelResult = 0x370327, + CraftingOrderClaimResult = 0x370323, + CraftingOrderCraftResult = 0x370325, + CraftingOrderCreateResult = 0x370321, + CraftingOrderFulfillResult = 0x370326, + CraftingOrderListOrdersResponse = 0x370322, + CraftingOrderNpcRewardInfo = 0x37032d, + CraftingOrderRejectResult = 0x370329, + CraftingOrderReleaseResult = 0x370324, + CraftingOrderUpdateState = 0x37032c, + CraftEnchantResult = 0x37032a, + CreateChar = 0x370198, + CreateShipmentResponse = 0x37022c, + CreatorVisualsOverride = 0x370330, + CriteriaDeleted = 0x37017e, + CriteriaUpdate = 0x370178, + CrossedInebriationThreshold = 0x370159, + CurrencyTransferLog = 0x370342, + CurrencyTransferResult = 0x370341, + CustomLoadScreen = 0x370063, DailyQuestsReset = 0x4b0000, DamageCalcLog = 0x4d0054, DbReply = 0x3b0000, - DeathReleaseLoc = 0x37016a, - DebugMenuManagerFullUpdate = 0x3700ec, + DeathReleaseLoc = 0x37016b, + DebugMenuManagerFullUpdate = 0x3700ed, DefenseMessage = 0x3c000a, - DeleteChar = 0x370198, + DeleteChar = 0x370199, DeleteExpiredMissionsResult = 0x410022, - DelvesAccountDataElementChanged = 0x37033b, - DestroyArenaUnit = 0x3701d6, - DestructibleBuildingDamage = 0x37018f, + DelvesAccountDataElementChanged = 0x370347, + DestroyArenaUnit = 0x3701d7, + DestructibleBuildingDamage = 0x370190, DifferentInstanceFromParty = 0x370020, - DisenchantCredit = 0x37003e, + DisenchantCredit = 0x37003f, DismountResult = 0x370010, DispelFailed = 0x4d001e, - DisplayGameError = 0x370034, + DisplayGameError = 0x370035, DisplayPlayerChoice = 0x4a0004, - DisplayPromotion = 0x3700e1, + DisplayPromotion = 0x3700e2, DisplayQuestPopup = 0x4b001e, - DisplaySoulbindUpdateMessage = 0x3702f5, - DisplayToast = 0x3700b9, - DisplayWorldText = 0x37027c, + DisplaySoulbindUpdateMessage = 0x3702f7, + DisplayToast = 0x3700ba, + DisplayWorldText = 0x37027e, DisplayWorldTextOnTarget = 0x4d0053, - DontAutoPushSpellsToActionBar = 0x370077, + DontAutoPushSpellsToActionBar = 0x370078, DropNewConnection = 0x3e0004, DuelArranged = 0x3d001b, DuelComplete = 0x3d001f, @@ -1215,53 +1228,53 @@ namespace Framework.Constants DuelOutOfBounds = 0x3d001c, DuelRequested = 0x3d001a, DuelWinner = 0x3d0020, - DurabilityDamageDeath = 0x3701d9, - Emote = 0x370257, - EnableBarberShop = 0x370153, - EnchantmentLog = 0x3701a9, - EncounterEnd = 0x370212, - EncounterStart = 0x370211, - EndLightningStorm = 0x370140, + DurabilityDamageDeath = 0x3701da, + Emote = 0x370259, + EnableBarberShop = 0x370154, + EnchantmentLog = 0x3701aa, + EncounterEnd = 0x370214, + EncounterStart = 0x370213, + EndLightningStorm = 0x370141, EnterEncryptedMode = 0x3e0001, EnumCharactersResult = 0x370018, - EnumVasPurchaseStatesResponse = 0x370281, + EnumVasPurchaseStatesResponse = 0x370283, EnvironmentalDamageLog = 0x4d000e, - EquipmentSetId = 0x370149, + EquipmentSetId = 0x37014a, ExpectedSpamRecords = 0x3c0005, - ExplorationExperience = 0x3701f3, - ExternalTransactionIdGenerated = 0x3702ef, - FactionBonusInfo = 0x3701b9, + ExplorationExperience = 0x3701f4, + ExternalTransactionIdGenerated = 0x3702f1, + FactionBonusInfo = 0x3701ba, FailedPlayerCondition = 0x4a0002, - FailedQuestTurnIn = 0x37029f, - FeatureSystemStatus = 0x370056, - FeatureSystemStatus2 = 0x370333, - FeatureSystemStatusGlueScreen = 0x370057, - FeignDeathResisted = 0x3701d8, - FishEscaped = 0x370167, - FishNotHooked = 0x370166, + FailedQuestTurnIn = 0x3702a1, + FeatureSystemStatus = 0x370057, + FeatureSystemStatus2 = 0x37033f, + FeatureSystemStatusGlueScreen = 0x370058, + FeignDeathResisted = 0x3701d9, + FishEscaped = 0x370168, + FishNotHooked = 0x370167, FlightSplineSync = 0x48005b, FlushCombatLogFile = 0x4d0010, - ForcedDeathUpdate = 0x37016b, - ForceAnim = 0x3701e5, - ForceAnimations = 0x3701e6, - ForceObjectRelink = 0x3700e0, - ForceRandomTransmogToast = 0x370049, + ForcedDeathUpdate = 0x37016c, + ForceAnim = 0x3701e6, + ForceAnimations = 0x3701e7, + ForceObjectRelink = 0x3700e1, + ForceRandomTransmogToast = 0x37004a, ForceSpawnTrackingUpdate = 0x4b0021, - FriendStatus = 0x37021a, - GainMawPower = 0x370270, - GameObjectActivateAnimKit = 0x37005a, - GameObjectBase = 0x3702b6, - GameObjectCloseInteraction = 0x370307, - GameObjectCustomAnim = 0x37005b, - GameObjectDespawn = 0x37005c, - GameObjectInteraction = 0x370306, + FriendStatus = 0x37021c, + GainMawPower = 0x370272, + GameObjectActivateAnimKit = 0x37005b, + GameObjectBase = 0x3702b8, + GameObjectCloseInteraction = 0x370309, + GameObjectCustomAnim = 0x37005c, + GameObjectDespawn = 0x37005d, + GameObjectInteraction = 0x370308, GameObjectPlaySpellVisual = 0x4d003c, GameObjectPlaySpellVisualKit = 0x4d003b, - GameObjectResetState = 0x3701b3, - GameObjectSetStateLocal = 0x370292, - GameSpeedSet = 0x370119, - GameTimeSet = 0x3701a2, - GameTimeUpdate = 0x3701a1, + GameObjectResetState = 0x3701b4, + GameObjectSetStateLocal = 0x370294, + GameSpeedSet = 0x37011a, + GameTimeSet = 0x3701a3, + GameTimeUpdate = 0x3701a2, GarrisonActivateMissionBonusAbility = 0x410024, GarrisonAddEvent = 0x410048, GarrisonAddFollowerResult = 0x410016, @@ -1333,36 +1346,36 @@ namespace Framework.Constants GarrisonUpgradeResult = 0x41000d, GarrisonUseRecallPortalResult = 0x41001f, GenerateRandomCharacterNameResult = 0x37001c, - GenerateSsoTokenResponse = 0x3702aa, - GetAccountCharacterListResult = 0x3701f5, + GenerateSsoTokenResponse = 0x3702ac, + GetAccountCharacterListResult = 0x3701f6, GetGarrisonInfoResult = 0x410000, - GetLandingPageShipmentsResponse = 0x37022d, - GetRealmHiddenResult = 0x37032a, - GetRemainingGameTimeResponse = 0x370268, - GetSelectedTrophyIdResponse = 0x370255, - GetShipmentsOfTypeResponse = 0x37022c, - GetShipmentInfoResponse = 0x370228, - GetTrophyListResponse = 0x370254, - GetVasAccountCharacterListResult = 0x37027d, - GetVasTransferTargetRealmListResult = 0x37027e, + GetLandingPageShipmentsResponse = 0x37022f, + GetRealmHiddenResult = 0x370336, + GetRemainingGameTimeResponse = 0x37026a, + GetSelectedTrophyIdResponse = 0x370257, + GetShipmentsOfTypeResponse = 0x37022e, + GetShipmentInfoResponse = 0x37022a, + GetTrophyListResponse = 0x370256, + GetVasAccountCharacterListResult = 0x37027f, + GetVasTransferTargetRealmListResult = 0x370280, GmPlayerInfo = 0x4a000d, GmRequestPlayerInfo = 0x4a0003, - GmTicketCaseStatus = 0x37013b, - GmTicketSystemStatus = 0x37013a, - GodMode = 0x370192, + GmTicketCaseStatus = 0x37013c, + GmTicketSystemStatus = 0x37013b, + GodMode = 0x370193, GossipComplete = 0x4b0017, GossipMessage = 0x4b0018, GossipOptionNpcInteraction = 0x4b0028, - GossipPoi = 0x370225, + GossipPoi = 0x370227, GossipQuestUpdate = 0x4b0019, GossipRefreshOptions = 0x4b0027, GroupActionThrottled = 0x370024, - GroupAutoKick = 0x370222, - GroupDecline = 0x37021e, - GroupDestroyed = 0x370221, - GroupNewLeader = 0x3700c2, - GroupRequestDecline = 0x37021f, - GroupUninvite = 0x370220, + GroupAutoKick = 0x370224, + GroupDecline = 0x370220, + GroupDestroyed = 0x370223, + GroupNewLeader = 0x3700c3, + GroupRequestDecline = 0x370221, + GroupUninvite = 0x370222, GuildAchievementDeleted = 0x43000d, GuildAchievementEarned = 0x43000c, GuildAchievementMembers = 0x43000f, @@ -1416,64 +1429,65 @@ namespace Framework.Constants GuildRewardList = 0x430008, GuildRoster = 0x430003, GuildSendRankChange = 0x430001, - HardcoreDeathAlert = 0x370332, - HealthUpdate = 0x370168, - HighestThreatUpdate = 0x370170, + HardcoreDeathAlert = 0x37033e, + HealthUpdate = 0x370169, + HighestThreatUpdate = 0x370171, HotfixConnect = 0x3b0003, HotfixMessage = 0x3b0002, - InitializeFactions = 0x3701b8, + InitializeFactions = 0x3701b9, InitialSetup = 0x370014, - InitWorldStates = 0x3701da, - InspectResult = 0x3700c6, - InstanceEncounterChangePriority = 0x370240, - InstanceEncounterDisengageUnit = 0x37023f, - InstanceEncounterEnd = 0x370248, - InstanceEncounterEngageUnit = 0x37023e, - InstanceEncounterGainCombatResurrectionCharge = 0x37024a, - InstanceEncounterInCombatResurrection = 0x370249, - InstanceEncounterObjectiveComplete = 0x370243, - InstanceEncounterObjectiveStart = 0x370242, - InstanceEncounterObjectiveUpdate = 0x370247, - InstanceEncounterPhaseShiftChanged = 0x37024b, - InstanceEncounterStart = 0x370244, - InstanceEncounterTimerStart = 0x370241, - InstanceEncounterUpdateAllowReleaseInProgress = 0x370246, - InstanceEncounterUpdateSuppressRelease = 0x370245, - InstanceGroupSizeChanged = 0x370190, - InstanceInfo = 0x3700c9, - InstanceReset = 0x37011e, - InstanceResetFailed = 0x37011f, - InstanceSaveCreated = 0x370210, + InitWorldStates = 0x3701db, + InspectResult = 0x3700c7, + InstanceEncounterChangePriority = 0x370242, + InstanceEncounterDisengageUnit = 0x370241, + InstanceEncounterEnd = 0x37024a, + InstanceEncounterEngageUnit = 0x370240, + InstanceEncounterGainCombatResurrectionCharge = 0x37024c, + InstanceEncounterInCombatResurrection = 0x37024b, + InstanceEncounterObjectiveComplete = 0x370245, + InstanceEncounterObjectiveStart = 0x370244, + InstanceEncounterObjectiveUpdate = 0x370249, + InstanceEncounterPhaseShiftChanged = 0x37024d, + InstanceEncounterStart = 0x370246, + InstanceEncounterTimerStart = 0x370243, + InstanceEncounterUpdateAllowReleaseInProgress = 0x370248, + InstanceEncounterUpdateSuppressRelease = 0x370247, + InstanceGroupSizeChanged = 0x370191, + InstanceInfo = 0x3700ca, + InstanceReset = 0x37011f, + InstanceResetFailed = 0x370120, + InstanceSaveCreated = 0x370212, InterruptPowerRegen = 0x4d004a, InvalidatePageText = 0x3b000a, InvalidatePlayer = 0x4a0007, - InvalidPromotionCode = 0x3701e7, + InvalidPromotionCode = 0x3701e8, InventoryChangeFailure = 0x4e0005, - InventoryFixupComplete = 0x3702a1, - InventoryFullOverflow = 0x3702b2, - IslandAzeriteGain = 0x3701f0, - IslandComplete = 0x3701f1, + InventoryFixupComplete = 0x3702a3, + InventoryFullOverflow = 0x3702b4, + IslandAzeriteGain = 0x3701f1, + IslandComplete = 0x3701f2, IsQuestCompleteResponse = 0x4b0004, - ItemChanged = 0x370181, - ItemCooldown = 0x370256, - ItemEnchantTimeUpdate = 0x3701e9, - ItemExpirePurchaseRefund = 0x370033, - ItemInteractionComplete = 0x3702e7, - ItemPurchaseRefundResult = 0x370031, - ItemPushResult = 0x3700b8, - ItemTimeUpdate = 0x3701e8, - KickReason = 0x370121, - LatencyReportPing = 0x3702f8, + ItemChanged = 0x370182, + ItemCooldown = 0x370258, + ItemEnchantTimeUpdate = 0x3701ea, + ItemExpirePurchaseRefund = 0x370034, + ItemInteractionComplete = 0x3702e9, + ItemPurchaseRefundResult = 0x370032, + ItemPushResult = 0x3700b9, + ItemTimeUpdate = 0x3701e9, + KickReason = 0x370122, + LatencyReportPing = 0x3702fa, LearnedSpells = 0x4d003e, - LearnPvpTalentFailed = 0x37006b, - LearnTalentFailed = 0x37006a, - LegacyLootRules = 0x3702b7, - LevelLinkingResult = 0x3702cd, - LevelUpInfo = 0x37017f, + LearnPvpTalentFailed = 0x37006c, + LearnTalentFailed = 0x37006b, + LegacyLootRules = 0x3702b9, + LevelLinkingResult = 0x3702cf, + LevelUpInfo = 0x370180, LfgBootPlayer = 0x450019, LfgDisabled = 0x450017, LfgExpandSearchPrompt = 0x45001f, LfgInstanceShutdownCountdown = 0x450009, + LfgJoinLobbyMatchmakerQueue = 0x450020, LfgJoinResult = 0x450000, LfgListApplicantListUpdate = 0x45000f, LfgListApplicationStatusUpdate = 0x45000c, @@ -1497,48 +1511,50 @@ namespace Framework.Constants LfgSlotInvalid = 0x450014, LfgTeleportDenied = 0x450016, LfgUpdateStatus = 0x450008, - LiveRegionAccountRestoreResult = 0x370202, - LiveRegionCharacterCopyResult = 0x370201, - LiveRegionGetAccountCharacterListResult = 0x3701f6, - LiveRegionKeyBindingsCopyResult = 0x370203, - LoadCufProfiles = 0x370053, - LoadEquipmentSet = 0x3701a4, - LobbyMatchmakerLobbyAcquiredServer = 0x370309, - LobbyMatchmakerPartyInfo = 0x37030a, - LobbyMatchmakerPartyInviteRejected = 0x37030b, - LobbyMatchmakerReceiveInvite = 0x37030c, - LoginSetTimeSpeed = 0x3701a3, - LoginVerifyWorld = 0x37002e, - LogoutCancelAck = 0x37011d, - LogoutComplete = 0x37011c, - LogoutResponse = 0x37011b, - LogXpGain = 0x37017b, - LootAllPassed = 0x3700b6, - LootList = 0x3701d5, - LootMoneyNotify = 0x3700b1, - LootRelease = 0x3700b0, - LootReleaseAll = 0x3700af, - LootRemoved = 0x3700ab, - LootResponse = 0x3700aa, - LootRoll = 0x3700b3, - LootRollsComplete = 0x3700b5, - LootRollWon = 0x3700b7, - LossOfControlAuraUpdate = 0x370107, - MailCommandResult = 0x3700d0, - MailListResult = 0x3701ea, - MailQueryNextTimeResult = 0x3701eb, + LiveRegionAccountRestoreResult = 0x370204, + LiveRegionCharacterCopyResult = 0x370203, + LiveRegionGetAccountCharacterListResult = 0x3701f7, + LiveRegionKeyBindingsCopyResult = 0x370205, + LoadCufProfiles = 0x370054, + LoadEquipmentSet = 0x3701a5, + LobbyMatchmakerLobbyAcquiredServer = 0x37030b, + LobbyMatchmakerPartyInfo = 0x37030c, + LobbyMatchmakerPartyInviteRejected = 0x37030d, + LobbyMatchmakerQueueProposed = 0x37030f, + LobbyMatchmakerQueueResult = 0x370310, + LobbyMatchmakerReceiveInvite = 0x37030e, + LoginSetTimeSpeed = 0x3701a4, + LoginVerifyWorld = 0x37002f, + LogoutCancelAck = 0x37011e, + LogoutComplete = 0x37011d, + LogoutResponse = 0x37011c, + LogXpGain = 0x37017c, + LootAllPassed = 0x3700b7, + LootList = 0x3701d6, + LootMoneyNotify = 0x3700b2, + LootRelease = 0x3700b1, + LootReleaseAll = 0x3700b0, + LootRemoved = 0x3700ac, + LootResponse = 0x3700ab, + LootRoll = 0x3700b4, + LootRollsComplete = 0x3700b6, + LootRollWon = 0x3700b8, + LossOfControlAuraUpdate = 0x370108, + MailCommandResult = 0x3700d1, + MailListResult = 0x3701eb, + MailQueryNextTimeResult = 0x3701ec, MapObjectivesInit = 0x3d002a, - MapObjEvents = 0x37005d, - MasterLootCandidateList = 0x3700b4, - MeetingStoneFailed = 0x37030d, + MapObjEvents = 0x37005e, + MasterLootCandidateList = 0x3700b5, + MeetingStoneFailed = 0x370311, MessageBox = 0x37000a, - MinimapPing = 0x370165, + MinimapPing = 0x370166, MirrorImageComponentedData = 0x4d0004, MirrorImageCreatureData = 0x4d0003, - MissileCancel = 0x37005e, - ModifyCooldown = 0x3701f8, + MissileCancel = 0x37005f, + ModifyCooldown = 0x3701f9, MountResult = 0x37000f, - MovementEnforcementAlert = 0x3702bd, + MovementEnforcementAlert = 0x3702bf, MoveAddImpulse = 0x480062, MoveApplyInertia = 0x48005e, MoveApplyMovementForce = 0x480045, @@ -1650,83 +1666,83 @@ namespace Framework.Constants MoveUpdateTeleport = 0x48000f, MoveUpdateTurnRate = 0x48000b, MoveUpdateWalkSpeed = 0x480006, - MultiFloorLeaveFloor = 0x37026d, - MultiFloorNewFloor = 0x37026c, - MythicPlusAllMapStats = 0x3700a1, - MythicPlusCurrentAffixes = 0x3700a3, - MythicPlusNewWeekRecord = 0x3700a7, - MythicPlusSeasonData = 0x3700a2, - NeutralPlayerFactionSelectResult = 0x370072, - NewDataBuild = 0x370329, - NewTaxiPath = 0x370116, + MultiFloorLeaveFloor = 0x37026f, + MultiFloorNewFloor = 0x37026e, + MythicPlusAllMapStats = 0x3700a2, + MythicPlusCurrentAffixes = 0x3700a4, + MythicPlusNewWeekRecord = 0x3700a8, + MythicPlusSeasonData = 0x3700a3, + NeutralPlayerFactionSelectResult = 0x370073, + NewDataBuild = 0x370335, + NewTaxiPath = 0x370117, NewWorld = 0x37002b, NotifyDestLocSpellCast = 0x4d0034, - NotifyMissileTrajectoryCollision = 0x370142, - NotifyMoney = 0x370030, - NotifyReceivedMail = 0x3700d1, - NpcInteractionOpenResult = 0x370305, - OfferPetitionError = 0x37014d, - OnCancelExpectedRideVehicleAura = 0x37017c, + NotifyMissileTrajectoryCollision = 0x370143, + NotifyMoney = 0x370031, + NotifyReceivedMail = 0x3700d2, + NpcInteractionOpenResult = 0x370307, + OfferPetitionError = 0x37014e, + OnCancelExpectedRideVehicleAura = 0x37017d, OnMonsterMove = 0x480002, - OpenArtifactForge = 0x370231, + OpenArtifactForge = 0x370233, OpenContainer = 0x4e0006, OpenLfgDungeonFinder = 0x450015, - OpenShipmentNpcResult = 0x370229, - OverrideLight = 0x370152, - PageText = 0x3701af, - PartyCommandResult = 0x370223, - PartyEligibilityForDelveTiersResponse = 0x37033e, - PartyInvite = 0x370054, - PartyKillLog = 0x3701ee, - PartyMemberFullState = 0x3701ed, - PartyMemberPartialState = 0x3701ec, - PartyNotifyLfgLeaderChange = 0x3702ed, - PartyUpdate = 0x37008a, - PastTimeEvents = 0x370059, - PauseMirrorTimer = 0x3701a6, - PendingRaidLock = 0x37018e, - PerksProgramActivityComplete = 0x370302, - PerksProgramActivityUpdate = 0x3702fe, - PerksProgramDisabled = 0x370303, - PerksProgramResult = 0x3702ff, - PerksProgramVendorUpdate = 0x3702fd, - PetitionAlreadySigned = 0x370036, + OpenShipmentNpcResult = 0x37022b, + OverrideLight = 0x370153, + PageText = 0x3701b0, + PartyCommandResult = 0x370225, + PartyEligibilityForDelveTiersResponse = 0x37034a, + PartyInvite = 0x370055, + PartyKillLog = 0x3701ef, + PartyMemberFullState = 0x3701ee, + PartyMemberPartialState = 0x3701ed, + PartyNotifyLfgLeaderChange = 0x3702ef, + PartyUpdate = 0x37008b, + PastTimeEvents = 0x37005a, + PauseMirrorTimer = 0x3701a7, + PendingRaidLock = 0x37018f, + PerksProgramActivityComplete = 0x370304, + PerksProgramActivityUpdate = 0x370300, + PerksProgramDisabled = 0x370305, + PerksProgramResult = 0x370301, + PerksProgramVendorUpdate = 0x3702ff, + PetitionAlreadySigned = 0x370037, PetitionRenameGuildResponse = 0x430042, - PetitionShowList = 0x370155, - PetitionShowSignatures = 0x370156, - PetitionSignResults = 0x3701e0, - PetActionFeedback = 0x3701dd, - PetActionSound = 0x370138, - PetBattleChatRestricted = 0x370098, - PetBattleDebugQueueDumpResponse = 0x37010c, - PetBattleFinalizeLocation = 0x370091, - PetBattleFinalRound = 0x370096, - PetBattleFinished = 0x370097, - PetBattleFirstRound = 0x370093, - PetBattleInitialUpdate = 0x370092, - PetBattleMaxGameLengthWarning = 0x370099, - PetBattlePvpChallenge = 0x370090, - PetBattleQueueProposeMatch = 0x3700ce, - PetBattleQueueStatus = 0x3700cf, - PetBattleReplacementsMade = 0x370095, - PetBattleRequestFailed = 0x37008f, - PetBattleRoundResult = 0x370094, - PetBattleSlotUpdates = 0x370082, + PetitionShowList = 0x370156, + PetitionShowSignatures = 0x370157, + PetitionSignResults = 0x3701e1, + PetActionFeedback = 0x3701de, + PetActionSound = 0x370139, + PetBattleChatRestricted = 0x370099, + PetBattleDebugQueueDumpResponse = 0x37010d, + PetBattleFinalizeLocation = 0x370092, + PetBattleFinalRound = 0x370097, + PetBattleFinished = 0x370098, + PetBattleFirstRound = 0x370094, + PetBattleInitialUpdate = 0x370093, + PetBattleMaxGameLengthWarning = 0x37009a, + PetBattlePvpChallenge = 0x370091, + PetBattleQueueProposeMatch = 0x3700cf, + PetBattleQueueStatus = 0x3700d0, + PetBattleReplacementsMade = 0x370096, + PetBattleRequestFailed = 0x370090, + PetBattleRoundResult = 0x370095, + PetBattleSlotUpdates = 0x370083, PetCastFailed = 0x4d0049, PetClearSpells = 0x4d0013, - PetDismissSound = 0x370139, - PetGodMode = 0x370113, - PetGuids = 0x37019a, + PetDismissSound = 0x37013a, + PetGodMode = 0x370114, + PetGuids = 0x37019b, PetLearnedSpells = 0x4d0040, PetMode = 0x37001f, - PetNameInvalid = 0x37015a, + PetNameInvalid = 0x37015b, PetNewlyTamed = 0x37001e, PetSpellsMessage = 0x4d0014, PetStableResult = 0x37002a, - PetTameFailure = 0x37014a, + PetTameFailure = 0x37014b, PetUnlearnedSpells = 0x4d0041, PhaseShiftChange = 0x37000c, - PlayedTime = 0x37016c, + PlayedTime = 0x37016d, PlayerAckowledgeArrowCallout = 0x4a002c, PlayerAzeriteItemEquippedStatusChanged = 0x4a001e, PlayerAzeriteItemGains = 0x4a001d, @@ -1735,6 +1751,7 @@ namespace Framework.Constants PlayerChoiceClear = 0x4a0006, PlayerChoiceDisplayError = 0x4a0005, PlayerConditionResult = 0x4a0012, + PlayerEndOfMatchDetails = 0x4a002e, PlayerHideArrowCallout = 0x4a002b, PlayerIsAdventureMapPoiValid = 0x4a0011, PlayerOpenSubscriptionInterstitial = 0x4a0016, @@ -1747,25 +1764,25 @@ namespace Framework.Constants PlayerSkinned = 0x4a000e, PlayerTutorialHighlightSpell = 0x4a0015, PlayerTutorialUnhighlightSpell = 0x4a0014, - PlayMusic = 0x3701fd, - PlayObjectSound = 0x3701fe, - PlayOneShotAnimKit = 0x3701c5, + PlayMusic = 0x3701fe, + PlayObjectSound = 0x370200, + PlayOneShotAnimKit = 0x3701c6, PlayOrphanSpellVisual = 0x4d0038, - PlayScene = 0x3700cb, - PlaySound = 0x3701fc, - PlaySpeakerbotSound = 0x3701ff, + PlayScene = 0x3700cc, + PlaySound = 0x3701fd, + PlaySpeakerbotSound = 0x370201, PlaySpellVisual = 0x4d0036, PlaySpellVisualKit = 0x4d003a, - PlayTimeWarning = 0x370194, + PlayTimeWarning = 0x370195, Pong = 0x3e0006, - PowerUpdate = 0x370169, + PowerUpdate = 0x37016a, PreloadChildMap = 0x37000d, PreloadWorld = 0x37002c, - PrepopulateNameCache = 0x3702c0, - PreRessurect = 0x3701fb, - PrintNotification = 0x370061, - ProcResist = 0x3701ef, - ProfessionGossip = 0x37028d, + PrepopulateNameCache = 0x3702c2, + PreRessurect = 0x3701fc, + PrintNotification = 0x370062, + ProcResist = 0x3701f0, + ProfessionGossip = 0x37028f, PushSpellToActionBar = 0x4d0042, PvpCredit = 0x3d0024, PvpMatchComplete = 0x3d002f, @@ -1774,7 +1791,7 @@ namespace Framework.Constants PvpMatchStart = 0x3d002d, PvpMatchStatistics = 0x3d0010, PvpOptionsEnabled = 0x3d0013, - PvpTierRecord = 0x3702f9, + PvpTierRecord = 0x3702fb, QueryBattlePetNameResponse = 0x3b000c, QueryCreatureResponse = 0x3b0006, QueryGameObjectResponse = 0x3b0007, @@ -1790,7 +1807,7 @@ namespace Framework.Constants QueryPlayerNameByCommunityIdResponse = 0x4a000a, QueryQuestInfoResponse = 0x4b0016, QueryRealmGuildMasterInfoResponse = 0x43002e, - QueryTimeResponse = 0x37017a, + QueryTimeResponse = 0x37017b, QuestCompletionNpcResponse = 0x4b0001, QuestConfirmAccept = 0x4b000f, QuestForceRemoved = 0x4b001c, @@ -1809,143 +1826,143 @@ namespace Framework.Constants QuestPoiQueryResponse = 0x4b001d, QuestPoiUpdateResponse = 0x4b001f, QuestPushResult = 0x4b0010, - QuestSessionInfoResponse = 0x3702e3, - QuestSessionReadyCheck = 0x3702d1, - QuestSessionReadyCheckResponse = 0x3702d2, - QuestSessionResult = 0x3702d0, + QuestSessionInfoResponse = 0x3702e5, + QuestSessionReadyCheck = 0x3702d3, + QuestSessionReadyCheckResponse = 0x3702d4, + QuestSessionResult = 0x3702d2, QuestUpdateAddCredit = 0x4b000c, QuestUpdateAddCreditSimple = 0x4b000d, QuestUpdateAddPvpCredit = 0x4b000e, QuestUpdateComplete = 0x4b0009, QuestUpdateFailed = 0x4b000a, QuestUpdateFailedTimer = 0x4b000b, - QueueSummaryUpdate = 0x3702a0, - RafAccountInfo = 0x3702ce, - RafActivityStateChanged = 0x3702df, - RafDebugFriendMonths = 0x370326, - RaidDifficultySet = 0x37023b, - RaidGroupOnly = 0x37023d, + QueueSummaryUpdate = 0x3702a2, + RafAccountInfo = 0x3702d0, + RafActivityStateChanged = 0x3702e1, + RafDebugFriendMonths = 0x370332, + RaidDifficultySet = 0x37023d, + RaidGroupOnly = 0x37023f, RaidInstanceMessage = 0x3c0008, - RaidMarkersChanged = 0x370037, - RandomRoll = 0x3700c5, + RaidMarkersChanged = 0x370038, + RandomRoll = 0x3700c6, RatedPvpInfo = 0x3d000f, - ReadyCheckCompleted = 0x37008e, - ReadyCheckResponse = 0x37008d, - ReadyCheckStarted = 0x37008c, - ReadItemResultFailed = 0x370237, - ReadItemResultOk = 0x37022e, + ReadyCheckCompleted = 0x37008f, + ReadyCheckResponse = 0x37008e, + ReadyCheckStarted = 0x37008d, + ReadItemResultFailed = 0x370239, + ReadItemResultOk = 0x370230, RealmQueryResponse = 0x3b0005, - ReattachResurrect = 0x3701df, - ReceivePingUnit = 0x370038, - ReceivePingWorldPoint = 0x370039, - RecraftItemResult = 0x37031c, - RecruitAFriendFailure = 0x370157, - RefreshComponent = 0x3700e6, + ReattachResurrect = 0x3701e0, + ReceivePingUnit = 0x370039, + ReceivePingWorldPoint = 0x37003a, + RecraftItemResult = 0x370328, + RecruitAFriendFailure = 0x370158, + RefreshComponent = 0x3700e7, RegionwideCharacterMailData = 0x37001a, RegionwideCharacterRestrictionsData = 0x370019, - RemoveItemPassive = 0x370042, + RemoveItemPassive = 0x370043, RemoveSpellFromActionBar = 0x4d0043, - ReplaceTrophyResponse = 0x370253, + ReplaceTrophyResponse = 0x370255, ReportPvpPlayerAfkResult = 0x4a0009, RequestCemeteryListResponse = 0x370025, RequestPvpRewardsResponse = 0x3d0014, RequestScheduledPvpInfoResponse = 0x3d0015, ResetCompressionContext = 0x3e0007, - ResetFailedNotify = 0x37014e, - ResetLastLoadedConfigCvars = 0x370323, + ResetFailedNotify = 0x37014f, + ResetLastLoadedConfigCvars = 0x37032f, ResetQuestPoi = 0x4b0020, ResetRangedCombatTimer = 0x3d0023, ResetWeeklyCurrency = 0x370009, - RespecWipeConfirm = 0x3700a8, + RespecWipeConfirm = 0x3700a9, RespondInspectAchievements = 0x370006, - ResponsePerkPendingRewards = 0x370300, - ResponsePerkRecentPurchases = 0x370301, + ResponsePerkPendingRewards = 0x370302, + ResponsePerkRecentPurchases = 0x370303, RestartGlobalCooldown = 0x4d0052, - RestrictedAccountWarning = 0x370050, + RestrictedAccountWarning = 0x370051, ResumeCast = 0x4d002c, ResumeCastBar = 0x4d002f, ResumeComms = 0x3e0003, - ResumeToken = 0x370040, + ResumeToken = 0x370041, ResurrectRequest = 0x370012, ResyncRunes = 0x4d0050, - ReturningPlayerPrompt = 0x370236, - ReturnApplicantList = 0x3702c4, - ReturnRecruitingClubs = 0x3702c3, + ReturningPlayerPrompt = 0x370238, + ReturnApplicantList = 0x3702c6, + ReturnRecruitingClubs = 0x3702c5, RoleChangedInform = 0x370021, RoleChosen = 0x45001d, RolePollInform = 0x370022, - RuneforgeLegendaryCraftingOpenNpc = 0x37028c, - RuneRegenDebug = 0x37004d, - ScenarioCompleted = 0x37027a, - ScenarioPois = 0x3700c8, - ScenarioProgressUpdate = 0x3700c1, - ScenarioShowCriteria = 0x370290, - ScenarioState = 0x3700c0, - ScenarioUiUpdate = 0x37028f, - ScenarioVacate = 0x370238, - SceneObjectEvent = 0x370078, - SceneObjectPetBattleFinalRound = 0x37007d, - SceneObjectPetBattleFinished = 0x37007e, - SceneObjectPetBattleFirstRound = 0x37007a, - SceneObjectPetBattleInitialUpdate = 0x370079, - SceneObjectPetBattleReplacementsMade = 0x37007c, - SceneObjectPetBattleRoundResult = 0x37007b, + RuneforgeLegendaryCraftingOpenNpc = 0x37028e, + RuneRegenDebug = 0x37004e, + ScenarioCompleted = 0x37027c, + ScenarioPois = 0x3700c9, + ScenarioProgressUpdate = 0x3700c2, + ScenarioShowCriteria = 0x370292, + ScenarioState = 0x3700c1, + ScenarioUiUpdate = 0x370291, + ScenarioVacate = 0x37023a, + SceneObjectEvent = 0x370079, + SceneObjectPetBattleFinalRound = 0x37007e, + SceneObjectPetBattleFinished = 0x37007f, + SceneObjectPetBattleFirstRound = 0x37007b, + SceneObjectPetBattleInitialUpdate = 0x37007a, + SceneObjectPetBattleReplacementsMade = 0x37007d, + SceneObjectPetBattleRoundResult = 0x37007c, ScriptCast = 0x4d0047, - SeasonInfo = 0x370058, - SellResponse = 0x37015b, - SendItemPassives = 0x370043, + SeasonInfo = 0x370059, + SellResponse = 0x37015c, + SendItemPassives = 0x370044, SendKnownSpells = 0x4d0019, - SendRaidTargetUpdateAll = 0x3700c3, - SendRaidTargetUpdateSingle = 0x3700c4, + SendRaidTargetUpdateAll = 0x3700c4, + SendRaidTargetUpdateSingle = 0x3700c5, SendSpellCharges = 0x4d001b, SendSpellHistory = 0x4d001a, SendUnlearnSpells = 0x4d001c, - ServerFirstAchievements = 0x3700e3, - ServerTime = 0x37011a, - ServerTimeOffset = 0x3701aa, + ServerFirstAchievements = 0x3700e4, + ServerTime = 0x37011b, + ServerTimeOffset = 0x3701ab, SetupCombatLogFileFlush = 0x4d000f, SetupCurrency = 0x370007, - SetAiAnimKit = 0x3701c4, - SetAnimTier = 0x3701c8, - SetChrUpgradeTier = 0x370075, + SetAiAnimKit = 0x3701c5, + SetAnimTier = 0x3701c9, + SetChrUpgradeTier = 0x370076, SetCurrency = 0x370008, SetDfFastLaunchResult = 0x450012, - SetDungeonDifficulty = 0x37013c, - SetFactionAtWar = 0x370196, - SetFactionNotVisible = 0x3701bf, - SetFactionStanding = 0x3701c0, - SetFactionVisible = 0x3701be, + SetDungeonDifficulty = 0x37013d, + SetFactionAtWar = 0x370197, + SetFactionNotVisible = 0x3701c0, + SetFactionStanding = 0x3701c1, + SetFactionVisible = 0x3701bf, SetFlatSpellModifier = 0x4d0027, - SetItemPurchaseData = 0x370032, - SetLootMethodFailed = 0x37025e, - SetMaxWeeklyQuantity = 0x370035, - SetMeleeAnimKit = 0x3701c7, - SetMovementAnimKit = 0x3701c6, + SetItemPurchaseData = 0x370033, + SetLootMethodFailed = 0x370260, + SetMaxWeeklyQuantity = 0x370036, + SetMeleeAnimKit = 0x3701c8, + SetMovementAnimKit = 0x3701c7, SetPctSpellModifier = 0x4d0028, - SetPetSpecialization = 0x3700ba, + SetPetSpecialization = 0x3700bb, SetPlayerDeclinedNamesResult = 0x4a000b, - SetPlayHoverAnim = 0x370051, - SetProficiency = 0x3701c9, - SetQuestReplayCooldownOverride = 0x3702d7, + SetPlayHoverAnim = 0x370052, + SetProficiency = 0x3701ca, + SetQuestReplayCooldownOverride = 0x3702d9, SetShipmentReadyResponse = 0x41003a, SetSpellCharges = 0x4d0018, - SetTimeZoneInformation = 0x37010f, - SetVehicleRecId = 0x37018d, - ShadowlandsCapacitanceUpdate = 0x370304, + SetTimeZoneInformation = 0x370110, + SetVehicleRecId = 0x37018e, + ShadowlandsCapacitanceUpdate = 0x370306, ShipmentFactionUpdateResult = 0x41003b, - ShowDelvesCompanionConfigurationUi = 0x37033c, - ShowDelvesDisplayUi = 0x37033a, - ShowNeutralPlayerFactionSelectUi = 0x370071, + ShowDelvesCompanionConfigurationUi = 0x370348, + ShowDelvesDisplayUi = 0x370346, + ShowNeutralPlayerFactionSelectUi = 0x370072, ShowQuestCompletionText = 0x4b0015, - ShowTaxiNodes = 0x370164, - ShowTradeSkillResponse = 0x370204, - SocialContractRequestResponse = 0x37030e, - SocketGemsFailure = 0x3701bc, - SocketGemsSuccess = 0x3701bb, - SpecialMountAnim = 0x370137, - SpectateEnd = 0x370328, - SpectatePlayer = 0x370327, - SpecInvoluntarilyChanged = 0x3701ae, + ShowTaxiNodes = 0x370165, + ShowTradeSkillResponse = 0x370206, + SocialContractRequestResponse = 0x370312, + SocketGemsFailure = 0x3701bd, + SocketGemsSuccess = 0x3701bc, + SpecialMountAnim = 0x370138, + SpectateEnd = 0x370334, + SpectatePlayer = 0x370333, + SpecInvoluntarilyChanged = 0x3701af, SpellAbsorbLog = 0x4d000c, SpellCategoryCooldown = 0x4d0006, SpellChannelStart = 0x4d0022, @@ -1973,95 +1990,96 @@ namespace Framework.Constants SpellPeriodicAuraLog = 0x4d0008, SpellPrepare = 0x4d0029, SpellStart = 0x4d002b, - SpellVisualLoadScreen = 0x370063, - SplashScreenShowLatest = 0x3702e9, - StandStateUpdate = 0x3701b2, - StarterBuildActivateFailed = 0x370069, - StartElapsedTimer = 0x37009a, - StartElapsedTimers = 0x37009c, - StartLightningStorm = 0x37013f, - StartLootRoll = 0x3700b2, - StartMirrorTimer = 0x3701a5, - StartTimer = 0x37003c, - StopElapsedTimer = 0x37009b, - StopMirrorTimer = 0x3701a7, - StopSpeakerbotSound = 0x370200, - StopTimer = 0x37003d, - StreamingMovies = 0x37003b, - SuggestInviteInform = 0x370224, - SummonCancel = 0x370148, + SpellVisualLoadScreen = 0x370064, + SplashScreenShowLatest = 0x3702eb, + StandStateUpdate = 0x3701b3, + StarterBuildActivateFailed = 0x37006a, + StartElapsedTimer = 0x37009b, + StartElapsedTimers = 0x37009d, + StartLightningStorm = 0x370140, + StartLootRoll = 0x3700b3, + StartMirrorTimer = 0x3701a6, + StartTimer = 0x37003d, + StopElapsedTimer = 0x37009c, + StopMirrorTimer = 0x3701a8, + StopSpeakerbotSound = 0x370202, + StopTimer = 0x37003e, + StreamingMovies = 0x37003c, + SuggestInviteInform = 0x370226, + SummonCancel = 0x370149, SummonRaidMemberValidateFailed = 0x370023, - SummonRequest = 0x3701b6, + SummonRequest = 0x3701b7, SupercededSpells = 0x4d003d, SuspendComms = 0x3e0002, - SuspendToken = 0x37003f, - SyncWowEntitlements = 0x3702e1, - TalentsInvoluntarilyReset = 0x3701ad, - TaxiNodeStatus = 0x370114, - TextEmote = 0x370112, - ThreatClear = 0x370173, - ThreatRemove = 0x370172, - ThreatUpdate = 0x370171, - TimerunningSeasonEnded = 0x37033d, + SuspendToken = 0x370040, + SyncWowEntitlements = 0x3702e3, + TalentsInvoluntarilyReset = 0x3701ae, + TaxiNodeStatus = 0x370115, + TextEmote = 0x370113, + ThreatClear = 0x370174, + ThreatRemove = 0x370173, + ThreatUpdate = 0x370172, + TimerunningSeasonEnded = 0x370349, TimeAdjustment = 0x480001, TimeSyncRequest = 0x480000, - TitleEarned = 0x37016e, - TitleLost = 0x37016f, - TotemCreated = 0x37015e, - TotemDurationChanged = 0x370160, - TotemMoved = 0x370161, - TotemRemoved = 0x37015f, + TitleEarned = 0x37016f, + TitleLost = 0x370170, + TotemCreated = 0x37015f, + TotemDurationChanged = 0x370161, + TotemMoved = 0x370162, + TotemRemoved = 0x370160, TradeStatus = 0x370017, TradeUpdated = 0x370016, - TrainerBuyFailed = 0x370176, - TrainerList = 0x370175, - TraitConfigCommitFailed = 0x370068, - TransferAborted = 0x370199, - TransferPending = 0x370064, + TrainerBuyFailed = 0x370177, + TrainerList = 0x370176, + TraitConfigCommitFailed = 0x370069, + TransferAborted = 0x37019a, + TransferPending = 0x370065, TreasurePickerResponse = 0x3b0011, - TriggerCinematic = 0x370258, - TriggerMovie = 0x370162, - TurnInPetitionResult = 0x3701e2, - TutorialFlags = 0x37024c, + TriggerCinematic = 0x37025a, + TriggerMovie = 0x370163, + TurnInPetitionResult = 0x3701e3, + TutorialFlags = 0x37024e, + UiAction = 0x3701ff, UiMapQuestLinesResponse = 0x4b0023, - UndeleteCharacterResponse = 0x370259, - UndeleteCooldownStatusResponse = 0x37025a, + UndeleteCharacterResponse = 0x37025b, + UndeleteCooldownStatusResponse = 0x37025c, UnlearnedSpells = 0x4d003f, UnloadChildMap = 0x37000e, - UpdateAadcStatusResponse = 0x3702fa, - UpdateAccountData = 0x37019f, - UpdateActionButtons = 0x370076, - UpdateBnetSessionKey = 0x3702b1, + UpdateAadcStatusResponse = 0x3702fc, + UpdateAccountData = 0x3701a0, + UpdateActionButtons = 0x370077, + UpdateBnetSessionKey = 0x3702b3, UpdateCapturePoint = 0x3d0007, - UpdateCelestialBody = 0x3702ad, - UpdateCharacterFlags = 0x370252, - UpdateChargeCategoryCooldown = 0x3701fa, - UpdateCooldown = 0x3701f9, + UpdateCelestialBody = 0x3702af, + UpdateCharacterFlags = 0x370254, + UpdateChargeCategoryCooldown = 0x3701fb, + UpdateCooldown = 0x3701fa, UpdateCraftingNpcRecipes = 0x410038, UpdateDailyMissionCounter = 0x410021, - UpdateExpansionLevel = 0x3700db, - UpdateGameTimeState = 0x3702b4, - UpdateInstanceOwnership = 0x370141, - UpdateLastInstance = 0x370120, + UpdateExpansionLevel = 0x3700dc, + UpdateGameTimeState = 0x3702b6, + UpdateInstanceOwnership = 0x370142, + UpdateLastInstance = 0x370121, UpdateObject = 0x470000, - UpdatePrimarySpec = 0x37006e, - UpdateRecentPlayerGuids = 0x37008b, - UpdateTalentData = 0x37006d, - UpdateWorldState = 0x3701dc, + UpdatePrimarySpec = 0x37006f, + UpdateRecentPlayerGuids = 0x37008c, + UpdateTalentData = 0x37006e, + UpdateWorldState = 0x3701dd, UserlistAdd = 0x3c000d, UserlistRemove = 0x3c000e, UserlistUpdate = 0x3c000f, - UseEquipmentSetResult = 0x3701e3, - VasCheckTransferOkResponse = 0x3702a8, - VasGetQueueMinutesResponse = 0x3702a6, - VasGetServiceStatusResponse = 0x3702a5, - VasPurchaseComplete = 0x370280, - VasPurchaseStateUpdate = 0x37027f, - VendorInventory = 0x37004f, + UseEquipmentSetResult = 0x3701e4, + VasCheckTransferOkResponse = 0x3702aa, + VasGetQueueMinutesResponse = 0x3702a8, + VasGetServiceStatusResponse = 0x3702a7, + VasPurchaseComplete = 0x370282, + VasPurchaseStateUpdate = 0x370281, + VendorInventory = 0x370050, VignetteUpdate = 0x4a0010, - VoiceChannelInfoResponse = 0x3702ac, - VoiceChannelSttTokenResponse = 0x3702f4, - VoiceLoginResponse = 0x3702ab, + VoiceChannelInfoResponse = 0x3702ae, + VoiceChannelSttTokenResponse = 0x3702f6, + VoiceLoginResponse = 0x3702ad, VoidItemSwapResponse = 0x4e0004, VoidStorageContents = 0x4e0001, VoidStorageFailed = 0x4e0000, @@ -2070,28 +2088,31 @@ namespace Framework.Constants WaitQueueFinish = 0x370003, WaitQueueUpdate = 0x370002, Warden3Data = 0x37000b, - Warden3Disabled = 0x3702af, - Warden3Enabled = 0x3702ae, - WarfrontComplete = 0x3701f2, + Warden3Disabled = 0x3702b1, + Warden3Enabled = 0x3702b0, + WarfrontComplete = 0x3701f3, WargameRequestOpponentResponse = 0x3d0012, WargameRequestSuccessfullySentToOpponent = 0x3d0011, - Weather = 0x37013e, - WeeklyRewardsProgressResult = 0x3702ec, - WeeklyRewardsResult = 0x3702ea, - WeeklyRewardClaimResult = 0x3702eb, + Weather = 0x37013f, + WeeklyRewardsProgressResult = 0x3702ee, + WeeklyRewardsResult = 0x3702ec, + WeeklyRewardClaimResult = 0x3702ed, Who = 0x3c0002, - WhoIs = 0x37013d, - WillBeKickedForAddedSubscriptionTime = 0x3702b3, + WhoIs = 0x37013e, + WillBeKickedForAddedSubscriptionTime = 0x3702b5, WorldQuestUpdateResponse = 0x4a0017, - WorldServerInfo = 0x370044, - WowEntitlementNotification = 0x3702e2, - WowLabsNotifyPlayersMatchEnd = 0x37030f, - WowLabsNotifyPlayersMatchStateChanged = 0x370310, - WowLabsPartyError = 0x370314, - WowLabsSetPredictionCircle = 0x370311, - XpAwardedFromCurrency = 0x370322, - XpGainAborted = 0x370060, - XpGainEnabled = 0x37023c, + WorldServerInfo = 0x370045, + WowEntitlementNotification = 0x3702e4, + WowLabsAreaInfo = 0x370317, + WowLabsNotifyPlayersMatchEnd = 0x370313, + WowLabsNotifyPlayersMatchStateChanged = 0x370314, + WowLabsPartyError = 0x370320, + WowLabsSetAreaIdResult = 0x370315, + WowLabsSetPredictionCircle = 0x370319, + WowLabsSetSelectedAreaId = 0x370316, + XpAwardedFromCurrency = 0x37032e, + XpGainAborted = 0x370061, + XpGainEnabled = 0x37023e, ZoneUnderAttack = 0x3c0009, // Opcodes That Are Not Generated Automatically diff --git a/Source/Framework/Constants/PlayerConst.cs b/Source/Framework/Constants/PlayerConst.cs index 3ead30234..f57a64569 100644 --- a/Source/Framework/Constants/PlayerConst.cs +++ b/Source/Framework/Constants/PlayerConst.cs @@ -926,7 +926,13 @@ namespace Framework.Constants public enum PlayerDataFlag { ExploredZonesIndex = 1, - CharacterIndex = 2, - AccountIndex = 3 + CharacterDataIndex = 2, + AccountDataIndex = 3, + CharacterTaxiNodesIndex = 4, + AccountTaxiNodesIndex = 5, + AccountCombinedQuestsIndex = 6, + AccountCombinedQuestRewardsIndex = 7, + CharacterContentpushIndex = 8, + CharacterQuestCompletedIndex = 9, } } diff --git a/Source/Framework/Constants/SharedConst.cs b/Source/Framework/Constants/SharedConst.cs index fb671cda5..d4f9dc8b7 100644 --- a/Source/Framework/Constants/SharedConst.cs +++ b/Source/Framework/Constants/SharedConst.cs @@ -2749,353 +2749,363 @@ namespace Framework.Constants LfgJoinedWorldPvpQueue = 821, LfgJoinedBattlefieldQueue = 822, LfgJoinedList = 823, - LfgLeftQueue = 824, - LfgLeftList = 825, - LfgRoleCheckAborted = 826, - LfgReadyCheckAborted = 827, - LfgCantUseBattleground = 828, - LfgCantUseDungeons = 829, - LfgReasonTooManyLfg = 830, - LfgFarmLimit = 831, - LfgNoCrossFactionParties = 832, - InvalidTeleportLocation = 833, - TooFarToInteract = 834, - BattlegroundPlayersFromDifferentRealms = 835, - DifficultyChangeCooldownS = 836, - DifficultyChangeCombatCooldownS = 837, - DifficultyChangeWorldstate = 838, - DifficultyChangeEncounter = 839, - DifficultyChangeCombat = 840, - DifficultyChangePlayerBusy = 841, - DifficultyChangePlayerOnVehicle = 842, - DifficultyChangeAlreadyStarted = 843, - DifficultyChangeOtherHeroicS = 844, - DifficultyChangeHeroicInstanceAlreadyRunning = 845, - ArenaTeamPartySize = 846, - SoloShuffleWargameGroupSize = 847, - SoloShuffleWargameGroupComp = 848, - SoloRbgWargameGroupSize = 849, - SoloRbgWargameGroupComp = 850, - SoloMinItemLevel = 851, - PvpPlayerAbandoned = 852, - BattlegroundJoinGroupQueueWithoutHealer = 853, - QuestForceRemovedS = 854, - AttackNoActions = 855, - InRandomBg = 856, - InNonRandomBg = 857, - BnFriendSelf = 858, - BnFriendAlready = 859, - BnFriendBlocked = 860, - BnFriendListFull = 861, - BnFriendRequestSent = 862, - BnBroadcastThrottle = 863, - BgDeveloperOnly = 864, - CurrencySpellSlotMismatch = 865, - CurrencyNotTradable = 866, - RequiresExpansionS = 867, - QuestFailedSpell = 868, - TalentFailedUnspentTalentPoints = 869, - TalentFailedNotEnoughTalentsInPrimaryTree = 870, - TalentFailedNoPrimaryTreeSelected = 871, - TalentFailedCantRemoveTalent = 872, - TalentFailedUnknown = 873, - TalentFailedInCombat = 874, - TalentFailedInPvpMatch = 875, - TalentFailedInMythicPlus = 876, - WargameRequestFailure = 877, - RankRequiresAuthenticator = 878, - GuildBankVoucherFailed = 879, - WargameRequestSent = 880, - RequiresAchievementI = 881, - RefundResultExceedMaxCurrency = 882, - CantBuyQuantity = 883, - ItemIsBattlePayLocked = 884, - PartyAlreadyInBattlegroundQueue = 885, - PartyConfirmingBattlegroundQueue = 886, - BattlefieldTeamPartySize = 887, - InsuffTrackedCurrencyIs = 888, - NotOnTournamentRealm = 889, - GuildTrialAccountTrial = 890, - GuildTrialAccountVeteran = 891, - GuildUndeletableDueToLevel = 892, - CantDoThatInAGroup = 893, - GuildLeaderReplaced = 894, - TransmogrifyCantEquip = 895, - TransmogrifyInvalidItemType = 896, - TransmogrifyNotSoulbound = 897, - TransmogrifyInvalidSource = 898, - TransmogrifyInvalidDestination = 899, - TransmogrifyMismatch = 900, - TransmogrifyLegendary = 901, - TransmogrifySameItem = 902, - TransmogrifySameAppearance = 903, - TransmogrifyNotEquipped = 904, - VoidDepositFull = 905, - VoidWithdrawFull = 906, - VoidStorageWrapped = 907, - VoidStorageStackable = 908, - VoidStorageUnbound = 909, - VoidStorageRepair = 910, - VoidStorageCharges = 911, - VoidStorageQuest = 912, - VoidStorageConjured = 913, - VoidStorageMail = 914, - VoidStorageBag = 915, - VoidTransferStorageFull = 916, - VoidTransferInvFull = 917, - VoidTransferInternalError = 918, - VoidTransferItemInvalid = 919, - DifficultyDisabledInLfg = 920, - VoidStorageUnique = 921, - VoidStorageLoot = 922, - VoidStorageHoliday = 923, - VoidStorageDuration = 924, - VoidStorageLoadFailed = 925, - VoidStorageInvalidItem = 926, - VoidStorageAccountItem = 927, - ParentalControlsChatMuted = 928, - SorStartExperienceIncomplete = 929, - SorInvalidEmail = 930, - SorInvalidComment = 931, - ChallengeModeResetCooldownS = 932, - ChallengeModeResetKeystone = 933, - PetJournalAlreadyInLoadout = 934, - ReportSubmittedSuccessfully = 935, - ReportSubmissionFailed = 936, - SuggestionSubmittedSuccessfully = 937, - BugSubmittedSuccessfully = 938, - ChallengeModeEnabled = 939, - ChallengeModeDisabled = 940, - PetbattleCreateFailed = 941, - PetbattleNotHere = 942, - PetbattleNotHereOnTransport = 943, - PetbattleNotHereUnevenGround = 944, - PetbattleNotHereObstructed = 945, - PetbattleNotWhileInCombat = 946, - PetbattleNotWhileDead = 947, - PetbattleNotWhileFlying = 948, - PetbattleTargetInvalid = 949, - PetbattleTargetOutOfRange = 950, - PetbattleTargetNotCapturable = 951, - PetbattleNotATrainer = 952, - PetbattleDeclined = 953, - PetbattleInBattle = 954, - PetbattleInvalidLoadout = 955, - PetbattleAllPetsDead = 956, - PetbattleNoPetsInSlots = 957, - PetbattleNoAccountLock = 958, - PetbattleWildPetTapped = 959, - PetbattleRestrictedAccount = 960, - PetbattleOpponentNotAvailable = 961, - PetbattleNotWhileInMatchedBattle = 962, - CantHaveMorePetsOfThatType = 963, - CantHaveMorePets = 964, - PvpMapNotFound = 965, - PvpMapNotSet = 966, - PetbattleQueueQueued = 967, - PetbattleQueueAlreadyQueued = 968, - PetbattleQueueJoinFailed = 969, - PetbattleQueueJournalLock = 970, - PetbattleQueueRemoved = 971, - PetbattleQueueProposalDeclined = 972, - PetbattleQueueProposalTimeout = 973, - PetbattleQueueOpponentDeclined = 974, - PetbattleQueueRequeuedInternal = 975, - PetbattleQueueRequeuedRemoved = 976, - PetbattleQueueSlotLocked = 977, - PetbattleQueueSlotEmpty = 978, - PetbattleQueueSlotNoTracker = 979, - PetbattleQueueSlotNoSpecies = 980, - PetbattleQueueSlotCantBattle = 981, - PetbattleQueueSlotRevoked = 982, - PetbattleQueueSlotDead = 983, - PetbattleQueueSlotNoPet = 984, - PetbattleQueueNotWhileNeutral = 985, - PetbattleGameTimeLimitWarning = 986, - PetbattleGameRoundsLimitWarning = 987, - HasRestriction = 988, - ItemUpgradeItemTooLowLevel = 989, - ItemUpgradeNoPath = 990, - ItemUpgradeNoMoreUpgrades = 991, - BonusRollEmpty = 992, - ChallengeModeFull = 993, - ChallengeModeInProgress = 994, - ChallengeModeIncorrectKeystone = 995, - BattletagFriendNotFound = 996, - BattletagFriendNotValid = 997, - BattletagFriendNotAllowed = 998, - BattletagFriendThrottled = 999, - BattletagFriendSuccess = 1000, - PetTooHighLevelToUncage = 1001, - PetbattleInternal = 1002, - CantCagePetYet = 1003, - NoLootInChallengeMode = 1004, - QuestPetBattleVictoriesPvpIi = 1005, - RoleCheckAlreadyInProgress = 1006, - RecruitAFriendAccountLimit = 1007, - RecruitAFriendFailed = 1008, - SetLootPersonal = 1009, - SetLootMethodFailedCombat = 1010, - ReagentBankFull = 1011, - ReagentBankLocked = 1012, - GarrisonBuildingExists = 1013, - GarrisonInvalidPlot = 1014, - GarrisonInvalidBuildingid = 1015, - GarrisonInvalidPlotBuilding = 1016, - GarrisonRequiresBlueprint = 1017, - GarrisonNotEnoughCurrency = 1018, - GarrisonNotEnoughGold = 1019, - GarrisonCompleteMissionWrongFollowerType = 1020, - AlreadyUsingLfgList = 1021, - RestrictedAccountLfgListTrial = 1022, - ToyUseLimitReached = 1023, - ToyAlreadyKnown = 1024, - TransmogSetAlreadyKnown = 1025, - NotEnoughCurrency = 1026, - SpecIsDisabled = 1027, - FeatureRestrictedTrial = 1028, - CantBeObliterated = 1029, - CantBeScrapped = 1030, - CantBeRecrafted = 1031, - ArtifactRelicDoesNotMatchArtifact = 1032, - MustEquipArtifact = 1033, - CantDoThatRightNow = 1034, - AffectingCombat = 1035, - EquipmentManagerCombatSwapS = 1036, - EquipmentManagerBagsFull = 1037, - EquipmentManagerMissingItemS = 1038, - MovieRecordingWarningPerf = 1039, - MovieRecordingWarningDiskFull = 1040, - MovieRecordingWarningNoMovie = 1041, - MovieRecordingWarningRequirements = 1042, - MovieRecordingWarningCompressing = 1043, - NoChallengeModeReward = 1044, - ClaimedChallengeModeReward = 1045, - ChallengeModePeriodResetSs = 1046, - CantDoThatChallengeModeActive = 1047, - TalentFailedRestArea = 1048, - CannotAbandonLastPet = 1049, - TestCvarSetSss = 1050, - QuestTurnInFailReason = 1051, - ClaimedChallengeModeRewardOld = 1052, - TalentGrantedByAura = 1053, - ChallengeModeAlreadyComplete = 1054, - GlyphTargetNotAvailable = 1055, - PvpWarmodeToggleOn = 1056, - PvpWarmodeToggleOff = 1057, - SpellFailedLevelRequirement = 1058, - SpellFailedCantFlyHere = 1059, - BattlegroundJoinRequiresLevel = 1060, - BattlegroundJoinDisqualified = 1061, - BattlegroundJoinDisqualifiedNoName = 1062, - VoiceChatGenericUnableToConnect = 1063, - VoiceChatServiceLost = 1064, - VoiceChatChannelNameTooShort = 1065, - VoiceChatChannelNameTooLong = 1066, - VoiceChatChannelAlreadyExists = 1067, - VoiceChatTargetNotFound = 1068, - VoiceChatTooManyRequests = 1069, - VoiceChatPlayerSilenced = 1070, - VoiceChatParentalDisableAll = 1071, - VoiceChatDisabled = 1072, - NoPvpReward = 1073, - ClaimedPvpReward = 1074, - AzeriteEssenceSelectionFailedEssenceNotUnlocked = 1075, - AzeriteEssenceSelectionFailedCantRemoveEssence = 1076, - AzeriteEssenceSelectionFailedConditionFailed = 1077, - AzeriteEssenceSelectionFailedRestArea = 1078, - AzeriteEssenceSelectionFailedSlotLocked = 1079, - AzeriteEssenceSelectionFailedNotAtForge = 1080, - AzeriteEssenceSelectionFailedHeartLevelTooLow = 1081, - AzeriteEssenceSelectionFailedNotEquipped = 1082, - SocketingRequiresPunchcardredGem = 1083, - SocketingPunchcardredGemOnlyInPunchcardredslot = 1084, - SocketingRequiresPunchcardyellowGem = 1085, - SocketingPunchcardyellowGemOnlyInPunchcardyellowslot = 1086, - SocketingRequiresPunchcardblueGem = 1087, - SocketingPunchcardblueGemOnlyInPunchcardblueslot = 1088, - SocketingRequiresDominationShard = 1089, - SocketingDominationShardOnlyInDominationslot = 1090, - SocketingRequiresCypherGem = 1091, - SocketingCypherGemOnlyInCypherslot = 1092, - SocketingRequiresTinkerGem = 1093, - SocketingTinkerGemOnlyInTinkerslot = 1094, - SocketingRequiresPrimordialGem = 1095, - SocketingPrimordialGemOnlyInPrimordialslot = 1096, - SocketingRequiresFragranceGem = 1097, - SocketingFragranceGemOnlyInFragranceslot = 1098, - LevelLinkingResultLinked = 1099, - LevelLinkingResultUnlinked = 1100, - ClubFinderErrorPostClub = 1101, - ClubFinderErrorApplyClub = 1102, - ClubFinderErrorRespondApplicant = 1103, - ClubFinderErrorCancelApplication = 1104, - ClubFinderErrorTypeAcceptApplication = 1105, - ClubFinderErrorTypeNoInvitePermissions = 1106, - ClubFinderErrorTypeNoPostingPermissions = 1107, - ClubFinderErrorTypeApplicantList = 1108, - ClubFinderErrorTypeApplicantListNoPerm = 1109, - ClubFinderErrorTypeFinderNotAvailable = 1110, - ClubFinderErrorTypeGetPostingIds = 1111, - ClubFinderErrorTypeJoinApplication = 1112, - ClubFinderErrorTypeRealmNotEligible = 1113, - ClubFinderErrorTypeFlaggedRename = 1114, - ClubFinderErrorTypeFlaggedDescriptionChange = 1115, - ItemInteractionNotEnoughGold = 1116, - ItemInteractionNotEnoughCurrency = 1117, - ItemInteractionNoConversionOutput = 1118, - PlayerChoiceErrorPendingChoice = 1119, - SoulbindInvalidConduit = 1120, - SoulbindInvalidConduitItem = 1121, - SoulbindInvalidTalent = 1122, - SoulbindDuplicateConduit = 1123, - ActivateSoulbindS = 1124, - ActivateSoulbindFailedRestArea = 1125, - CantUseProfanity = 1126, - NotInPetBattle = 1127, - NotInNpe = 1128, - NoSpec = 1129, - NoDominationshardOverwrite = 1130, - UseWeeklyRewardsDisabled = 1131, - CrossFactionGroupJoined = 1132, - CantTargetUnfriendlyInOverworld = 1133, - EquipablespellsSlotsFull = 1134, - ItemModAppearanceGroupAlreadyKnown = 1135, - CantBulkSellItemWithRefund = 1136, - NoSoulboundItemInAccountBank = 1137, - NoRefundableItemInAccountBank = 1138, - CantDeleteInAccountBank = 1139, - NoImmediateContainerInAccountBank = 1140, - NoOpenImmediateContainerInAccountBank = 1141, - CantTradeAccountItem = 1142, - NoAccountInventoryLock = 1143, - BankNotAccessible = 1144, - TooManyAccountBankTabs = 1145, - AccountBankTabNotUnlocked = 1146, - BankTabInvalidName = 1147, - BankTabInvalidText = 1148, - WowLabsPartyErrorTypePartyIsFull = 1149, - WowLabsPartyErrorTypeMaxInviteSent = 1150, - WowLabsPartyErrorTypePlayerAlreadyInvited = 1151, - WowLabsPartyErrorTypePartyInviteInvalid = 1152, - WowLabsLobbyMatchmakerErrorEnterQueueFailed = 1153, - WowLabsLobbyMatchmakerErrorLeaveQueueFailed = 1154, - TargetIsSelfFoundCannotTrade = 1155, - PlayerIsSelfFoundCannotTrade = 1156, - MailRecepientIsSelfFoundCannotReceiveMail = 1157, - PlayerIsSelfFoundCannotSendMail = 1158, - PlayerIsSelfFoundCannotUseAuctionHouse = 1159, - MailTargetCannotReceiveMail = 1160, - RemixInvalidTransferRequest = 1161, - CurrencyTransferInvalidCharacter = 1162, - CurrencyTransferInvalidCurrency = 1163, - CurrencyTransferInsufficientCurrency = 1164, - CurrencyTransferMaxQuantity = 1165, - CurrencyTransferNoValidSource = 1166, - CurrencyTransferCharacterLoggedIn = 1167, - CurrencyTransferServerError = 1168, - CurrencyTransferUnmetRequirements = 1169, - CurrencyTransferTransactionInProgress = 1170, + QueuedPlunderstorm = 824, + LfgLeftQueue = 825, + LfgLeftList = 826, + LfgRoleCheckAborted = 827, + LfgReadyCheckAborted = 828, + LfgCantUseBattleground = 829, + LfgCantUseDungeons = 830, + LfgReasonTooManyLfg = 831, + LfgFarmLimit = 832, + LfgNoCrossFactionParties = 833, + InvalidTeleportLocation = 834, + TooFarToInteract = 835, + BattlegroundPlayersFromDifferentRealms = 836, + DifficultyChangeCooldownS = 837, + DifficultyChangeCombatCooldownS = 838, + DifficultyChangeWorldstate = 839, + DifficultyChangeEncounter = 840, + DifficultyChangeCombat = 841, + DifficultyChangePlayerBusy = 842, + DifficultyChangePlayerOnVehicle = 843, + DifficultyChangeAlreadyStarted = 844, + DifficultyChangeOtherHeroicS = 845, + DifficultyChangeHeroicInstanceAlreadyRunning = 846, + ArenaTeamPartySize = 847, + SoloShuffleWargameGroupSize = 848, + SoloShuffleWargameGroupComp = 849, + SoloRbgWargameGroupSize = 850, + SoloRbgWargameGroupComp = 851, + SoloMinItemLevel = 852, + PvpPlayerAbandoned = 853, + BattlegroundJoinGroupQueueWithoutHealer = 854, + QuestForceRemovedS = 855, + AttackNoActions = 856, + InRandomBg = 857, + InNonRandomBg = 858, + BnFriendSelf = 859, + BnFriendAlready = 860, + BnFriendBlocked = 861, + BnFriendListFull = 862, + BnFriendRequestSent = 863, + BnBroadcastThrottle = 864, + BgDeveloperOnly = 865, + CurrencySpellSlotMismatch = 866, + CurrencyNotTradable = 867, + RequiresExpansionS = 868, + QuestFailedSpell = 869, + TalentFailedUnspentTalentPoints = 870, + TalentFailedNotEnoughTalentsInPrimaryTree = 871, + TalentFailedNoPrimaryTreeSelected = 872, + TalentFailedCantRemoveTalent = 873, + TalentFailedUnknown = 874, + TalentFailedInCombat = 875, + TalentFailedInPvpMatch = 876, + TalentFailedInMythicPlus = 877, + WargameRequestFailure = 878, + RankRequiresAuthenticator = 879, + GuildBankVoucherFailed = 880, + WargameRequestSent = 881, + RequiresAchievementI = 882, + RefundResultExceedMaxCurrency = 883, + CantBuyQuantity = 884, + ItemIsBattlePayLocked = 885, + PartyAlreadyInBattlegroundQueue = 886, + PartyConfirmingBattlegroundQueue = 887, + BattlefieldTeamPartySize = 888, + InsuffTrackedCurrencyIs = 889, + NotOnTournamentRealm = 890, + GuildTrialAccountTrial = 891, + GuildTrialAccountVeteran = 892, + GuildUndeletableDueToLevel = 893, + CantDoThatInAGroup = 894, + GuildLeaderReplaced = 895, + TransmogrifyCantEquip = 896, + TransmogrifyInvalidItemType = 897, + TransmogrifyNotSoulbound = 898, + TransmogrifyInvalidSource = 899, + TransmogrifyInvalidDestination = 900, + TransmogrifyMismatch = 901, + TransmogrifyLegendary = 902, + TransmogrifySameItem = 903, + TransmogrifySameAppearance = 904, + TransmogrifyNotEquipped = 905, + VoidDepositFull = 906, + VoidWithdrawFull = 907, + VoidStorageWrapped = 908, + VoidStorageStackable = 909, + VoidStorageUnbound = 910, + VoidStorageRepair = 911, + VoidStorageCharges = 912, + VoidStorageQuest = 913, + VoidStorageConjured = 914, + VoidStorageMail = 915, + VoidStorageBag = 916, + VoidTransferStorageFull = 917, + VoidTransferInvFull = 918, + VoidTransferInternalError = 919, + VoidTransferItemInvalid = 920, + DifficultyDisabledInLfg = 921, + VoidStorageUnique = 922, + VoidStorageLoot = 923, + VoidStorageHoliday = 924, + VoidStorageDuration = 925, + VoidStorageLoadFailed = 926, + VoidStorageInvalidItem = 927, + VoidStorageAccountItem = 928, + ParentalControlsChatMuted = 929, + SorStartExperienceIncomplete = 930, + SorInvalidEmail = 931, + SorInvalidComment = 932, + ChallengeModeResetCooldownS = 933, + ChallengeModeResetKeystone = 934, + PetJournalAlreadyInLoadout = 935, + ReportSubmittedSuccessfully = 936, + ReportSubmissionFailed = 937, + SuggestionSubmittedSuccessfully = 938, + BugSubmittedSuccessfully = 939, + ChallengeModeEnabled = 940, + ChallengeModeDisabled = 941, + PetbattleCreateFailed = 942, + PetbattleNotHere = 943, + PetbattleNotHereOnTransport = 944, + PetbattleNotHereUnevenGround = 945, + PetbattleNotHereObstructed = 946, + PetbattleNotWhileInCombat = 947, + PetbattleNotWhileDead = 948, + PetbattleNotWhileFlying = 949, + PetbattleTargetInvalid = 950, + PetbattleTargetOutOfRange = 951, + PetbattleTargetNotCapturable = 952, + PetbattleNotATrainer = 953, + PetbattleDeclined = 954, + PetbattleInBattle = 955, + PetbattleInvalidLoadout = 956, + PetbattleAllPetsDead = 957, + PetbattleNoPetsInSlots = 958, + PetbattleNoAccountLock = 959, + PetbattleWildPetTapped = 960, + PetbattleRestrictedAccount = 961, + PetbattleOpponentNotAvailable = 962, + PetbattleNotWhileInMatchedBattle = 963, + CantHaveMorePetsOfThatType = 964, + CantHaveMorePets = 965, + PvpMapNotFound = 966, + PvpMapNotSet = 967, + PetbattleQueueQueued = 968, + PetbattleQueueAlreadyQueued = 969, + PetbattleQueueJoinFailed = 970, + PetbattleQueueJournalLock = 971, + PetbattleQueueRemoved = 972, + PetbattleQueueProposalDeclined = 973, + PetbattleQueueProposalTimeout = 974, + PetbattleQueueOpponentDeclined = 975, + PetbattleQueueRequeuedInternal = 976, + PetbattleQueueRequeuedRemoved = 977, + PetbattleQueueSlotLocked = 978, + PetbattleQueueSlotEmpty = 979, + PetbattleQueueSlotNoTracker = 980, + PetbattleQueueSlotNoSpecies = 981, + PetbattleQueueSlotCantBattle = 982, + PetbattleQueueSlotRevoked = 983, + PetbattleQueueSlotDead = 984, + PetbattleQueueSlotNoPet = 985, + PetbattleQueueNotWhileNeutral = 986, + PetbattleGameTimeLimitWarning = 987, + PetbattleGameRoundsLimitWarning = 988, + HasRestriction = 989, + ItemUpgradeItemTooLowLevel = 990, + ItemUpgradeNoPath = 991, + ItemUpgradeNoMoreUpgrades = 992, + BonusRollEmpty = 993, + ChallengeModeFull = 994, + ChallengeModeInProgress = 995, + ChallengeModeIncorrectKeystone = 996, + BattletagFriendNotFound = 997, + BattletagFriendNotValid = 998, + BattletagFriendNotAllowed = 999, + BattletagFriendThrottled = 1000, + BattletagFriendSuccess = 1001, + PetTooHighLevelToUncage = 1002, + PetbattleInternal = 1003, + CantCagePetYet = 1004, + NoLootInChallengeMode = 1005, + QuestPetBattleVictoriesPvpIi = 1006, + RoleCheckAlreadyInProgress = 1007, + RecruitAFriendAccountLimit = 1008, + RecruitAFriendFailed = 1009, + SetLootPersonal = 1010, + SetLootMethodFailedCombat = 1011, + ReagentBankFull = 1012, + ReagentBankLocked = 1013, + GarrisonBuildingExists = 1014, + GarrisonInvalidPlot = 1015, + GarrisonInvalidBuildingid = 1016, + GarrisonInvalidPlotBuilding = 1017, + GarrisonRequiresBlueprint = 1018, + GarrisonNotEnoughCurrency = 1019, + GarrisonNotEnoughGold = 1020, + GarrisonCompleteMissionWrongFollowerType = 1021, + AlreadyUsingLfgList = 1022, + RestrictedAccountLfgListTrial = 1023, + ToyUseLimitReached = 1024, + ToyAlreadyKnown = 1025, + TransmogSetAlreadyKnown = 1026, + NotEnoughCurrency = 1027, + SpecIsDisabled = 1028, + FeatureRestrictedTrial = 1029, + CantBeObliterated = 1030, + CantBeScrapped = 1031, + CantBeRecrafted = 1032, + ArtifactRelicDoesNotMatchArtifact = 1033, + MustEquipArtifact = 1034, + CantDoThatRightNow = 1035, + AffectingCombat = 1036, + EquipmentManagerCombatSwapS = 1037, + EquipmentManagerBagsFull = 1038, + EquipmentManagerMissingItemS = 1039, + MovieRecordingWarningPerf = 1040, + MovieRecordingWarningDiskFull = 1041, + MovieRecordingWarningNoMovie = 1042, + MovieRecordingWarningRequirements = 1043, + MovieRecordingWarningCompressing = 1044, + NoChallengeModeReward = 1045, + ClaimedChallengeModeReward = 1046, + ChallengeModePeriodResetSs = 1047, + CantDoThatChallengeModeActive = 1048, + TalentFailedRestArea = 1049, + CannotAbandonLastPet = 1050, + TestCvarSetSss = 1051, + QuestTurnInFailReason = 1052, + ClaimedChallengeModeRewardOld = 1053, + TalentGrantedByAura = 1054, + ChallengeModeAlreadyComplete = 1055, + GlyphTargetNotAvailable = 1056, + PvpWarmodeToggleOn = 1057, + PvpWarmodeToggleOff = 1058, + SpellFailedLevelRequirement = 1059, + SpellFailedCantFlyHere = 1060, + BattlegroundJoinRequiresLevel = 1061, + BattlegroundJoinDisqualified = 1062, + BattlegroundJoinDisqualifiedNoName = 1063, + VoiceChatGenericUnableToConnect = 1064, + VoiceChatServiceLost = 1065, + VoiceChatChannelNameTooShort = 1066, + VoiceChatChannelNameTooLong = 1067, + VoiceChatChannelAlreadyExists = 1068, + VoiceChatTargetNotFound = 1069, + VoiceChatTooManyRequests = 1070, + VoiceChatPlayerSilenced = 1071, + VoiceChatParentalDisableAll = 1072, + VoiceChatDisabled = 1073, + NoPvpReward = 1074, + ClaimedPvpReward = 1075, + AzeriteEssenceSelectionFailedEssenceNotUnlocked = 1076, + AzeriteEssenceSelectionFailedCantRemoveEssence = 1077, + AzeriteEssenceSelectionFailedConditionFailed = 1078, + AzeriteEssenceSelectionFailedRestArea = 1079, + AzeriteEssenceSelectionFailedSlotLocked = 1080, + AzeriteEssenceSelectionFailedNotAtForge = 1081, + AzeriteEssenceSelectionFailedHeartLevelTooLow = 1082, + AzeriteEssenceSelectionFailedNotEquipped = 1083, + SocketingRequiresPunchcardredGem = 1084, + SocketingPunchcardredGemOnlyInPunchcardredslot = 1085, + SocketingRequiresPunchcardyellowGem = 1086, + SocketingPunchcardyellowGemOnlyInPunchcardyellowslot = 1087, + SocketingRequiresPunchcardblueGem = 1088, + SocketingPunchcardblueGemOnlyInPunchcardblueslot = 1089, + SocketingRequiresDominationShard = 1090, + SocketingDominationShardOnlyInDominationslot = 1091, + SocketingRequiresCypherGem = 1092, + SocketingCypherGemOnlyInCypherslot = 1093, + SocketingRequiresTinkerGem = 1094, + SocketingTinkerGemOnlyInTinkerslot = 1095, + SocketingRequiresPrimordialGem = 1096, + SocketingPrimordialGemOnlyInPrimordialslot = 1097, + SocketingRequiresFragranceGem = 1098, + SocketingFragranceGemOnlyInFragranceslot = 1099, + SocketingRequiresSingingThunderGem = 1100, + SocketingSingingthunderGemOnlyInSingingthunderslot = 1101, + SocketingRequiresSingingSeaGem = 1102, + SocketingSingingseaGemOnlyInSingingseaslot = 1103, + SocketingRequiresSingingWindGem = 1104, + SocketingSingingwindGemOnlyInSingingwindslot = 1105, + LevelLinkingResultLinked = 1106, + LevelLinkingResultUnlinked = 1107, + ClubFinderErrorPostClub = 1108, + ClubFinderErrorApplyClub = 1109, + ClubFinderErrorRespondApplicant = 1110, + ClubFinderErrorCancelApplication = 1111, + ClubFinderErrorTypeAcceptApplication = 1112, + ClubFinderErrorTypeNoInvitePermissions = 1113, + ClubFinderErrorTypeNoPostingPermissions = 1114, + ClubFinderErrorTypeApplicantList = 1115, + ClubFinderErrorTypeApplicantListNoPerm = 1116, + ClubFinderErrorTypeFinderNotAvailable = 1117, + ClubFinderErrorTypeGetPostingIds = 1118, + ClubFinderErrorTypeJoinApplication = 1119, + ClubFinderErrorTypeRealmNotEligible = 1120, + ClubFinderErrorTypeFlaggedRename = 1121, + ClubFinderErrorTypeFlaggedDescriptionChange = 1122, + ItemInteractionNotEnoughGold = 1123, + ItemInteractionNotEnoughCurrency = 1124, + ItemInteractionNoConversionOutput = 1125, + PlayerChoiceErrorPendingChoice = 1126, + SoulbindInvalidConduit = 1127, + SoulbindInvalidConduitItem = 1128, + SoulbindInvalidTalent = 1129, + SoulbindDuplicateConduit = 1130, + ActivateSoulbindS = 1131, + ActivateSoulbindFailedRestArea = 1132, + CantUseProfanity = 1133, + NotInPetBattle = 1134, + NotInNpe = 1135, + NoSpec = 1136, + NoDominationshardOverwrite = 1137, + UseWeeklyRewardsDisabled = 1138, + CrossFactionGroupJoined = 1139, + CantTargetUnfriendlyInOverworld = 1140, + EquipablespellsSlotsFull = 1141, + ItemModAppearanceGroupAlreadyKnown = 1142, + CantBulkSellItemWithRefund = 1143, + NoSoulboundItemInAccountBank = 1144, + NoRefundableItemInAccountBank = 1145, + CantDeleteInAccountBank = 1146, + NoImmediateContainerInAccountBank = 1147, + NoOpenImmediateContainerInAccountBank = 1148, + CantTradeAccountItem = 1149, + NoAccountInventoryLock = 1150, + BankNotAccessible = 1151, + TooManyAccountBankTabs = 1152, + AccountBankTabNotUnlocked = 1153, + AccountMoneyLocked = 1154, + BankTabInvalidName = 1155, + BankTabInvalidText = 1156, + WowLabsPartyErrorTypePartyIsFull = 1157, + WowLabsPartyErrorTypeMaxInviteSent = 1158, + WowLabsPartyErrorTypePlayerAlreadyInvited = 1159, + WowLabsPartyErrorTypePartyInviteInvalid = 1160, + WowLabsLobbyMatchmakerErrorEnterQueueFailed = 1161, + WowLabsLobbyMatchmakerErrorLeaveQueueFailed = 1162, + WowLabsSetWowLabsAreaIdFailed = 1163, + PlunderstormCannotQueue = 1164, + TargetIsSelfFoundCannotTrade = 1165, + PlayerIsSelfFoundCannotTrade = 1166, + MailRecepientIsSelfFoundCannotReceiveMail = 1167, + PlayerIsSelfFoundCannotSendMail = 1168, + PlayerIsSelfFoundCannotUseAuctionHouse = 1169, + MailTargetCannotReceiveMail = 1170, + RemixInvalidTransferRequest = 1171, + CurrencyTransferInvalidCharacter = 1172, + CurrencyTransferInvalidCurrency = 1173, + CurrencyTransferInsufficientCurrency = 1174, + CurrencyTransferMaxQuantity = 1175, + CurrencyTransferNoValidSource = 1176, + CurrencyTransferCharacterLoggedIn = 1177, + CurrencyTransferServerError = 1178, + CurrencyTransferUnmetRequirements = 1179, + CurrencyTransferTransactionInProgress = 1180, } public enum SceneFlags diff --git a/Source/Framework/Constants/Spells/SpellConst.cs b/Source/Framework/Constants/Spells/SpellConst.cs index cee885ba8..dad3eb699 100644 --- a/Source/Framework/Constants/Spells/SpellConst.cs +++ b/Source/Framework/Constants/Spells/SpellConst.cs @@ -2618,6 +2618,13 @@ namespace Framework.Constants Unk331 = 331, Unk332 = 332, Unk333 = 333, + Unk334 = 334, + Unk335 = 335, + Unk336 = 336, + Unk337 = 337, + Unk338 = 338, + Unk339 = 339, + Unk340 = 340, TotalSpellEffects } diff --git a/Source/Framework/Cryptography/SessionKeyGeneration.cs b/Source/Framework/Cryptography/SessionKeyGeneration.cs index 4c0a98c13..26dfe86ed 100644 --- a/Source/Framework/Cryptography/SessionKeyGeneration.cs +++ b/Source/Framework/Cryptography/SessionKeyGeneration.cs @@ -5,16 +5,16 @@ using System.Security.Cryptography; namespace Framework.Cryptography { - public class SessionKeyGenerator256 + public class SessionKeyGenerator512 { - public SessionKeyGenerator256(byte[] buff, int size = 0) + public SessionKeyGenerator512(byte[] buff, int size = 0) { if (size == 0) size = buff.Length; int halfSize = size / 2; - sh = SHA256.Create(); + sh = SHA512.Create(); sh.TransformFinalBlock(buff, 0, halfSize); o1 = sh.Hash; @@ -48,7 +48,7 @@ namespace Framework.Cryptography taken = 0; } - SHA256 sh; + SHA512 sh; uint taken; byte[] o0 = new byte[32]; byte[] o1 = new byte[32]; diff --git a/Source/Framework/Cryptography/ShaHmac.cs b/Source/Framework/Cryptography/ShaHmac.cs index 7e74050aa..baf02ad65 100644 --- a/Source/Framework/Cryptography/ShaHmac.cs +++ b/Source/Framework/Cryptography/ShaHmac.cs @@ -52,6 +52,51 @@ namespace Framework.Cryptography public byte[] Digest { get; private set; } } + public class Sha512 + { + public Sha512() + { + sha = SHA512.Create(); + sha.Initialize(); + } + + public void Process(byte[] data, int length) + { + sha.TransformBlock(data, 0, length, data, 0); + } + + public void Process(uint data) + { + var bytes = BitConverter.GetBytes(data); + + sha.TransformBlock(bytes, 0, 4, bytes, 0); + } + + public void Process(string data) + { + var bytes = Encoding.UTF8.GetBytes(data); + + sha.TransformBlock(bytes, 0, bytes.Length, bytes, 0); + } + + public void Finish(byte[] data) + { + sha.TransformFinalBlock(data, 0, data.Length); + + Digest = sha.Hash; + } + + public void Finish(byte[] data, int offset, int length) + { + sha.TransformFinalBlock(data, offset, length); + + Digest = sha.Hash; + } + + SHA512 sha; + public byte[] Digest { get; private set; } + } + public class HmacHash : HMACSHA1 { public HmacHash(byte[] key) : base(key) @@ -132,4 +177,40 @@ namespace Framework.Cryptography public byte[] Digest { get; private set; } } + + public class HmacSha512 : HMACSHA512 + { + public HmacSha512(byte[] key) : base(key) + { + Initialize(); + } + + public void Process(byte[] data, int length) + { + TransformBlock(data, 0, length, data, 0); + } + + public void Process(uint data) + { + var bytes = BitConverter.GetBytes(data); + + TransformBlock(bytes, 0, bytes.Length, bytes, 0); + } + + public void Process(string data) + { + var bytes = Encoding.ASCII.GetBytes(data); + + TransformBlock(bytes, 0, bytes.Length, bytes, 0); + } + + public void Finish(byte[] data, int length) + { + TransformFinalBlock(data, 0, length); + + Digest = Hash; + } + + public byte[] Digest { get; private set; } + } } diff --git a/Source/Framework/Database/Databases/HotfixDatabase.cs b/Source/Framework/Database/Databases/HotfixDatabase.cs index f928c8802..bccd2ac74 100644 --- a/Source/Framework/Database/Databases/HotfixDatabase.cs +++ b/Source/Framework/Database/Databases/HotfixDatabase.cs @@ -895,8 +895,9 @@ namespace Framework.Database // LfgDungeons.db2 PrepareStatement(HotfixStatements.SEL_LFG_DUNGEONS, "SELECT ID, Name, Description, TypeID, Subtype, Faction, IconTextureFileID, RewardsBgTextureFileID, " + "PopupBgTextureFileID, ExpansionLevel, MapID, DifficultyID, MinGear, GroupID, OrderIndex, RequiredPlayerConditionId, RandomID, ScenarioID, " + - "FinalEncounterID, CountTank, CountHealer, CountDamage, MinCountTank, MinCountHealer, MinCountDamage, BonusReputationAmount, MentorItemLevel, " + - "MentorCharLevel, MaxPremadeGroupSize, ContentTuningID, Flags1, Flags2 FROM lfg_dungeons WHERE (`VerifiedBuild` > 0) = ?"); + "FinalEncounterID, CountTank, CountHealer, CountDamage, MinCountTank, MinCountHealer, MinCountDamage, MaxPremadeCountTank, " + + "MaxPremadeCountHealer, MaxPremadeCountDamage, BonusReputationAmount, MentorItemLevel, MentorCharLevel, MaxPremadeGroupSize, ContentTuningID, " + + "Flags1, Flags2 FROM lfg_dungeons WHERE (`VerifiedBuild` > 0) = ?"); PrepareStatement(HotfixStatements.SEL_LFG_DUNGEONS_LOCALE, "SELECT ID, Name_lang, Description_lang FROM lfg_dungeons_locale WHERE (`VerifiedBuild` > 0) = ?" + " AND locale = ?"); @@ -940,7 +941,7 @@ namespace Framework.Database " AND locale = ?"); // MapDifficulty.db2 - PrepareStatement(HotfixStatements.SEL_MAP_DIFFICULTY, "SELECT ID, Message, DifficultyID, LockID, ResetInterval, MaxPlayers, ItemContext, " + + PrepareStatement(HotfixStatements.SEL_MAP_DIFFICULTY, "SELECT Message, ID, DifficultyID, LockID, ResetInterval, MaxPlayers, ItemContext, " + "ItemContextPickerID, Flags, ContentTuningID, WorldStateExpressionID, MapID FROM map_difficulty WHERE (`VerifiedBuild` > 0) = ?"); PrepareStatement(HotfixStatements.SEL_MAP_DIFFICULTY_LOCALE, "SELECT ID, Message_lang FROM map_difficulty_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?"); @@ -1028,8 +1029,8 @@ namespace Framework.Database PrepareStatement(HotfixStatements.SEL_PHASE_X_PHASE_GROUP, "SELECT ID, PhaseID, PhaseGroupID FROM phase_x_phase_group WHERE (`VerifiedBuild` > 0) = ?"); // PlayerCondition.db2 - PrepareStatement(HotfixStatements.SEL_PLAYER_CONDITION, "SELECT ID, RaceMask, FailureDescription, ClassMask, SkillLogic, LanguageID, MinLanguage, " + - "MaxLanguage, MaxFactionID, MaxReputation, ReputationLogic, CurrentPvpFaction, PvpMedal, PrevQuestLogic, CurrQuestLogic, " + + PrepareStatement(HotfixStatements.SEL_PLAYER_CONDITION, "SELECT ID, RaceMask, FailureDescription, MinLevel, MaxLevel, ClassMask, SkillLogic, LanguageID, " + + "MinLanguage, MaxLanguage, MaxFactionID, MaxReputation, ReputationLogic, CurrentPvpFaction, PvpMedal, PrevQuestLogic, CurrQuestLogic, " + "CurrentCompletedQuestLogic, SpellLogic, ItemLogic, ItemFlags, AuraSpellLogic, WorldStateExpressionID, WeatherID, PartyStatus, " + "LifetimeMaxPVPRank, AchievementLogic, Gender, NativeGender, AreaLogic, LfgLogic, CurrencyLogic, QuestKillID, QuestKillLogic, " + "MinExpansionLevel, MaxExpansionLevel, MinAvgItemLevel, MaxAvgItemLevel, MinAvgEquippedItemLevel, MaxAvgEquippedItemLevel, PhaseUseFlags, " + @@ -1624,7 +1625,7 @@ namespace Framework.Database // Vignette.db2 PrepareStatement(HotfixStatements.SEL_VIGNETTE, "SELECT ID, Name, PlayerConditionID, VisibleTrackingQuestID, QuestFeedbackEffectID, Flags, MaxHeight, " + - "MinHeight, VignetteType, RewardQuestID, UiWidgetSetID FROM vignette WHERE (`VerifiedBuild` > 0) = ?"); + "MinHeight, VignetteType, RewardQuestID, UiWidgetSetID, UiMapPinInfoID, ObjectiveType FROM vignette WHERE (`VerifiedBuild` > 0) = ?"); PrepareStatement(HotfixStatements.SEL_VIGNETTE_LOCALE, "SELECT ID, Name_lang FROM vignette_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?"); // WmoAreaTable.db2 diff --git a/Source/Game/DataStorage/CliDB.cs b/Source/Game/DataStorage/CliDB.cs index c7e8fa387..1464a0cb8 100644 --- a/Source/Game/DataStorage/CliDB.cs +++ b/Source/Game/DataStorage/CliDB.cs @@ -452,14 +452,14 @@ namespace Game.DataStorage } // Check loaded DB2 files proper version - if (!AreaTableStorage.ContainsKey(15913) || // last area added in 11.0.5 (57171) - !CharTitlesStorage.ContainsKey(871) || // last char title added in 11.0.5 (57171) + if (!AreaTableStorage.ContainsKey(16108) || // last area added in 11.0.7 (58162) + !CharTitlesStorage.ContainsKey(876) || // last char title added in 11.0.7 (58162) !FlightCapabilityStorage.ContainsKey(1) || // default flight capability (required) - !GemPropertiesStorage.ContainsKey(4251) || // last gem property added in 11.0.5 (57171) - !ItemStorage.ContainsKey(233014) || // last item added in 11.0.5 (57171) - !ItemExtendedCostStorage.ContainsKey(9647) || // last item extended cost added in 11.0.5 (57171) - !MapStorage.ContainsKey(2792) || // last map added in 11.0.5 (57171) - !SpellNameStorage.ContainsKey(474722)) // last spell added in 11.0.5 (57171) + !GemPropertiesStorage.ContainsKey(4266) || // last gem property added in 11.0.7 (58162) + !ItemStorage.ContainsKey(235551) || // last item added in 11.0.7 (58162) + !ItemExtendedCostStorage.ContainsKey(9918) || // last item extended cost added in 11.0.7 (58162) + !MapStorage.ContainsKey(2829) || // last map added in 11.0.7 (58162) + !SpellNameStorage.ContainsKey(1218101)) // last spell added in 11.0.7 (58162) { Log.outFatal(LogFilter.ServerLoading, "You have _outdated_ DB2 files. Please extract correct versions from current using client."); Environment.Exit(1); diff --git a/Source/Game/DataStorage/Structs/B_Records.cs b/Source/Game/DataStorage/Structs/B_Records.cs index 8059a96e9..e41467d4d 100644 --- a/Source/Game/DataStorage/Structs/B_Records.cs +++ b/Source/Game/DataStorage/Structs/B_Records.cs @@ -111,7 +111,7 @@ namespace Game.DataStorage public int LanguageID; public int ConditionID; public ushort EmotesID; - public byte Flags; + public ushort Flags; public uint ChatBubbleDurationMs; public int VoiceOverPriorityID; public uint[] SoundKitID = new uint[2]; diff --git a/Source/Game/DataStorage/Structs/L_Records.cs b/Source/Game/DataStorage/Structs/L_Records.cs index 56af267c9..8a248346e 100644 --- a/Source/Game/DataStorage/Structs/L_Records.cs +++ b/Source/Game/DataStorage/Structs/L_Records.cs @@ -50,6 +50,9 @@ namespace Game.DataStorage public byte MinCountTank; public byte MinCountHealer; public byte MinCountDamage; + public byte MaxPremadeCountTank; + public byte MaxPremadeCountHealer; + public byte MaxPremadeCountDamage; public ushort BonusReputationAmount; public ushort MentorItemLevel; public byte MentorCharLevel; diff --git a/Source/Game/DataStorage/Structs/M_Records.cs b/Source/Game/DataStorage/Structs/M_Records.cs index 1f7506170..b0799c611 100644 --- a/Source/Game/DataStorage/Structs/M_Records.cs +++ b/Source/Game/DataStorage/Structs/M_Records.cs @@ -122,8 +122,8 @@ namespace Game.DataStorage public sealed class MapDifficultyRecord { - public uint Id; public LocalizedString Message; // m_message_lang (text showed when transfer to map failed) + public uint Id; public uint DifficultyID; public int LockID; public MapDifficultyResetInterval ResetInterval; diff --git a/Source/Game/DataStorage/Structs/P_Records.cs b/Source/Game/DataStorage/Structs/P_Records.cs index f4da95dcd..2ace67bbd 100644 --- a/Source/Game/DataStorage/Structs/P_Records.cs +++ b/Source/Game/DataStorage/Structs/P_Records.cs @@ -63,6 +63,8 @@ namespace Game.DataStorage public uint Id; public long RaceMask; public string FailureDescription; + public ushort MinLevel; + public ushort MaxLevel; public int ClassMask; public uint SkillLogic; public int LanguageID; diff --git a/Source/Game/DataStorage/Structs/V_Records.cs b/Source/Game/DataStorage/Structs/V_Records.cs index 24073bd0c..f5319f8af 100644 --- a/Source/Game/DataStorage/Structs/V_Records.cs +++ b/Source/Game/DataStorage/Structs/V_Records.cs @@ -129,6 +129,8 @@ namespace Game.DataStorage public sbyte VignetteType; public int RewardQuestID; public int UiWidgetSetID; + public int UiMapPinInfoID; + public sbyte ObjectiveType; public bool HasFlag(VignetteFlags vignetteFlags) { return (Flags & (int)vignetteFlags) != 0; } public bool IsInfiniteAOI() diff --git a/Source/Game/Entities/Item/Item.cs b/Source/Game/Entities/Item/Item.cs index 3c499c695..54d5f08fb 100644 --- a/Source/Game/Entities/Item/Item.cs +++ b/Source/Game/Entities/Item/Item.cs @@ -2576,10 +2576,10 @@ namespace Game.Entities public void SetItemFlag(ItemFieldFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags), (uint)flags); } public void RemoveItemFlag(ItemFieldFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags), (uint)flags); } public void ReplaceAllItemFlags(ItemFieldFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags), (uint)flags); } - public bool HasItemFlag2(ItemFieldFlags2 flag) { return (m_itemData.DynamicFlags2 & (uint)flag) != 0; } - public void SetItemFlag2(ItemFieldFlags2 flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags2), (uint)flags); } - public void RemoveItemFlag2(ItemFieldFlags2 flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags2), (uint)flags); } - public void ReplaceAllItemFlags2(ItemFieldFlags2 flags) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags2), (uint)flags); } + public bool HasItemZoneFlag(ItemZoneFlags flag) { return (m_itemData.ZoneFlags & (uint)flag) != 0; } + public void SetItemZoneFlag(ItemZoneFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.ZoneFlags), (uint)flags); } + public void RemoveItemZoneFlag(ItemZoneFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.ZoneFlags), (uint)flags); } + public void ReplaceAllItemZoneFlags(ItemZoneFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.ZoneFlags), (uint)flags); } public Bag ToBag() { return IsBag() ? this as Bag : null; } public AzeriteItem ToAzeriteItem() { return IsAzeriteItem() ? this as AzeriteItem : null; } diff --git a/Source/Game/Entities/Object/Update/UpdateFields.cs b/Source/Game/Entities/Object/Update/UpdateFields.cs index a6cc24be4..9960252eb 100644 --- a/Source/Game/Entities/Object/Update/UpdateFields.cs +++ b/Source/Game/Entities/Object/Update/UpdateFields.cs @@ -396,7 +396,7 @@ namespace Game.Entities public UpdateField ArtifactXP = new(0, 15); public UpdateField ItemAppearanceModID = new(0, 16); public UpdateField Modifiers = new(0, 17); - public UpdateField DynamicFlags2 = new(0, 18); + public UpdateField ZoneFlags = new(0, 18); public UpdateField ItemBonusKey = new(0, 19); public UpdateField DEBUGItemLevel = new(0, 20); public UpdateFieldArray SpellCharges = new(5, 21, 22); @@ -441,7 +441,7 @@ namespace Game.Entities data.WriteInt32(Gems.Size()); if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner)) { - data.WriteUInt32(DynamicFlags2); + data.WriteUInt32(ZoneFlags); } ItemBonusKey.GetValue().Write(data); if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.Owner)) @@ -584,7 +584,7 @@ namespace Game.Entities } if (changesMask[18]) { - data.WriteUInt32(DynamicFlags2); + data.WriteUInt32(ZoneFlags); } if (changesMask[19]) { @@ -640,7 +640,7 @@ namespace Game.Entities ClearChangesMask(ArtifactXP); ClearChangesMask(ItemAppearanceModID); ClearChangesMask(Modifiers); - ClearChangesMask(DynamicFlags2); + ClearChangesMask(ZoneFlags); ClearChangesMask(ItemBonusKey); ClearChangesMask(DEBUGItemLevel); ClearChangesMask(SpellCharges); @@ -4208,17 +4208,14 @@ namespace Game.Entities public class QuestSession : HasChangesMask { public UpdateField Owner = new(0, 1); - public UpdateFieldArray QuestCompleted = new(1000, 2, 3); + public UpdateField QuestCompleted = new(0, 2); - public QuestSession() : base(1003) { } + public QuestSession() : base(3) { } public void WriteCreate(WorldPacket data, Player owner, Player receiver) { data.WritePackedGuid(Owner); - for (int i = 0; i < 1000; ++i) - { - data.WriteUInt64(QuestCompleted[i]); - } + QuestCompleted.GetValue().WriteCreate(data, owner, receiver); } public void WriteUpdate(WorldPacket data, bool ignoreChangesMask, Player owner, Player receiver) @@ -4227,10 +4224,7 @@ namespace Game.Entities if (ignoreChangesMask) changesMask.SetAll(); - data.WriteBits(changesMask.GetBlocksMask(0), 32); - for (uint i = 0; i < 32; ++i) - if (changesMask.GetBlock(i) != 0) - data.WriteBits(changesMask.GetBlock(i), 32); + data.WriteBits(changesMask.GetBlock(0), 3); data.FlushBits(); if (changesMask[0]) @@ -4239,15 +4233,10 @@ namespace Game.Entities { data.WritePackedGuid(Owner); } - } - if (changesMask[2]) - { - for (int i = 0; i < 1000; ++i) + + if (changesMask[2]) { - if (changesMask[3 + i]) - { - data.WriteUInt64(QuestCompleted[i]); - } + QuestCompleted.GetValue().WriteUpdate(data, ignoreChangesMask, owner, receiver); } } } diff --git a/Source/Game/Entities/Player/Player.Items.cs b/Source/Game/Entities/Player/Player.Items.cs index bc36ec23c..3622a98e8 100644 --- a/Source/Game/Entities/Player/Player.Items.cs +++ b/Source/Game/Entities/Player/Player.Items.cs @@ -1508,7 +1508,7 @@ namespace Game.Entities } } - pItem.SetItemFlag2(ItemFieldFlags2.Equipped); + pItem.SetItemZoneFlag(ItemZoneFlags.Equipped); if (IsInWorld && update) { @@ -1681,7 +1681,7 @@ namespace Game.Entities byte slot = (byte)(pos & 255); VisualizeItem(slot, pItem); - pItem.SetItemFlag2(ItemFieldFlags2.Equipped); + pItem.SetItemZoneFlag(ItemZoneFlags.Equipped); if (IsInWorld) { @@ -1792,7 +1792,7 @@ namespace Game.Entities _ApplyItemMods(pItem, slot, false, update); - pItem.RemoveItemFlag2(ItemFieldFlags2.Equipped); + pItem.RemoveItemZoneFlag(ItemZoneFlags.Equipped); // remove item dependent auras and casts (only weapon and armor slots) if (slot < ProfessionSlots.End) diff --git a/Source/Game/Entities/Player/Player.Quest.cs b/Source/Game/Entities/Player/Player.Quest.cs index 795b2411e..4d185a6ba 100644 --- a/Source/Game/Entities/Player/Player.Quest.cs +++ b/Source/Game/Entities/Player/Player.Quest.cs @@ -2420,15 +2420,22 @@ namespace Game.Entities if (questBit == 0) return; - uint fieldOffset = (uint)((questBit - 1) / ActivePlayerData.QuestCompletedBitsPerBlock); - if (fieldOffset >= ActivePlayerData.QuestCompletedBitsSize) - return; - + int fieldOffset = (int)((questBit - 1) / ActivePlayerData.QuestCompletedBitsPerBlock); ulong flag = 1ul << (((int)questBit - 1) % ActivePlayerData.QuestCompletedBitsPerBlock); + if (fieldOffset < ActivePlayerData.QuestCompletedBitsSize) + { + if (completed) + SetUpdateFieldFlagValue(ref m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.QuestCompleted,fieldOffset), flag); + else + RemoveUpdateFieldFlagValue(ref m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.QuestCompleted, fieldOffset), flag); + } + + BitVectors bitVectors = m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.BitVectors); + BitVector bitVector = bitVectors.ModifyValue(bitVectors.Values, (int)PlayerDataFlag.CharacterQuestCompletedIndex); if (completed) - SetUpdateFieldFlagValue(ref m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.QuestCompleted, (int)fieldOffset), flag); + SetUpdateFieldFlagValue(bitVector.ModifyValue(bitVector.Values, fieldOffset), flag); else - RemoveUpdateFieldFlagValue(ref m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.QuestCompleted, (int)fieldOffset), flag); + RemoveUpdateFieldFlagValue(bitVector.ModifyValue(bitVector.Values, fieldOffset), flag); } public void AreaExploredOrEventHappens(uint questId) @@ -2857,7 +2864,8 @@ namespace Game.Entities return objective; } return null; - }; + } + ; QuestObjective objective = findObjectiveForItem((int)itemId); if (objective != null) @@ -2892,7 +2900,8 @@ namespace Game.Entities return true; return false; - }; + } + ; bool hasObjectiveTypeForCurrency(QuestObjectiveType type) => m_questObjectiveStatus.LookupByKey((type, currencyId)).Any(isCompletableObjective); if (hasObjectiveTypeForCurrency(QuestObjectiveType.Currency)) diff --git a/Source/Game/Entities/Unit/Vignette.cs b/Source/Game/Entities/Unit/Vignette.cs index f8b3f282e..cc45d8ccf 100644 --- a/Source/Game/Entities/Unit/Vignette.cs +++ b/Source/Game/Entities/Unit/Vignette.cs @@ -21,6 +21,11 @@ namespace Game.Entities } } + public static void UpdateHealth(VignetteData vignette, Unit owner) + { + vignette.HealthPercent = (float)(owner.GetHealth()) / (float)(owner.GetMaxHealth()); // converted to percentage in lua + } + public static void SendVignetteUpdate(VignetteData vignette, WorldObject owner) { if (!owner.IsInWorld) @@ -72,6 +77,9 @@ namespace Game.Entities vignette.Data = vignetteData; vignette.ZoneID = owner.GetZoneId(); // not updateable UpdatePosition(vignette, owner); + Unit unitOwner = owner.ToUnit(); + if (unitOwner != null) + UpdateHealth(vignette, unitOwner); if (vignetteData.IsInfiniteAOI()) owner.GetMap().AddInfiniteAOIVignette(vignette); @@ -84,6 +92,9 @@ namespace Game.Entities public static void Update(VignetteData vignette, WorldObject owner) { UpdatePosition(vignette, owner); + Unit unitOwner = owner.ToUnit(); + if (unitOwner != null) + UpdateHealth(vignette, unitOwner); if (vignette.Data.IsInfiniteAOI()) vignette.NeedUpdate = true; @@ -129,6 +140,7 @@ namespace Game.Entities public uint ZoneID; public uint WMOGroupID; public uint WMODoodadPlacementID; + public float HealthPercent = 1.0f; public bool NeedUpdate; public void FillPacket(VignetteDataSet dataSet) @@ -142,6 +154,7 @@ namespace Game.Entities data.ZoneID = ZoneID; data.WMOGroupID = WMOGroupID; data.WMODoodadPlacementID = WMODoodadPlacementID; + data.HealthPercent = HealthPercent; dataSet.Data.Add(data); } diff --git a/Source/Game/Networking/Packets/AuthenticationPackets.cs b/Source/Game/Networking/Packets/AuthenticationPackets.cs index 937d8ddb8..d1dd7c0b4 100644 --- a/Source/Game/Networking/Packets/AuthenticationPackets.cs +++ b/Source/Game/Networking/Packets/AuthenticationPackets.cs @@ -53,7 +53,7 @@ namespace Game.Networking.Packets _worldPacket.WriteUInt8(DosZeroBits); } - public byte[] Challenge = new byte[16]; + public byte[] Challenge = new byte[32]; public byte[] DosChallenge = new byte[32]; // Encryption seeds public byte DosZeroBits; } @@ -83,7 +83,7 @@ namespace Game.Networking.Packets public uint RegionID; public uint BattlegroupID; public uint RealmID; - public Array LocalChallenge = new(16); + public Array LocalChallenge = new(32); public byte[] Digest = new byte[24]; public ulong DosResponse; public string RealmJoinTicket; @@ -288,7 +288,9 @@ namespace Game.Networking.Packets hash.Process((uint)Payload.Where.Type); hash.Finish(BitConverter.GetBytes(Payload.Port)); - Payload.Signature = RsaCrypt.RSA.SignHash(hash.Digest, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1).Reverse().ToArray(); + var signHash = RsaCrypt.RSA.SignHash(hash.Digest, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1); + signHash.Reverse(); + Payload.Signature = signHash; _worldPacket.WriteBytes(Payload.Signature, (uint)Payload.Signature.Length); _worldPacket.WriteBytes(whereBuffer); @@ -341,7 +343,7 @@ namespace Game.Networking.Packets public ulong DosResponse; public ulong Key; - public byte[] LocalChallenge = new byte[16]; + public byte[] LocalChallenge = new byte[32]; public byte[] Digest = new byte[24]; } @@ -372,7 +374,8 @@ namespace Game.Networking.Packets bool Enabled; static byte[] expandedPrivateKey; - static byte[] EnableEncryptionSeed = { 0x90, 0x9C, 0xD0, 0x50, 0x5A, 0x2C, 0x14, 0xDD, 0x5C, 0x2C, 0xC0, 0x64, 0x14, 0xF3, 0xFE, 0xC9 }; + static byte[] EnableEncryptionSeed = { 0x66, 0xBE, 0x29, 0x79, 0xEF, 0xF2, 0xD5, 0xB5, 0x61, 0x53, 0xF6, 0x5F, 0x45, 0xAE, 0x81, 0xCB, + 0x32, 0xEC, 0x94, 0xEC, 0x75, 0xB3, 0x5F, 0x44, 0x6A, 0x63, 0x43, 0x67, 0x17, 0x20, 0x44, 0x34 }; static byte[] EnableEncryptionContext = { 0xA7, 0x1F, 0xB6, 0x9B, 0xC9, 0x7C, 0xDD, 0x96, 0xE9, 0xBB, 0xB8, 0x21, 0x39, 0x8D, 0x5A, 0xD4 }; static byte[] EnterEncryptedModePrivateKey = @@ -396,7 +399,7 @@ namespace Game.Networking.Packets public override void Write() { - HmacSha256 toSign = new(EncryptionKey); + HmacSha512 toSign = new(EncryptionKey); toSign.Process(BitConverter.GetBytes(Enabled), 1); toSign.Finish(EnableEncryptionSeed, 16); diff --git a/Source/Game/Networking/Packets/ChannelPackets.cs b/Source/Game/Networking/Packets/ChannelPackets.cs index b012ce974..803163d60 100644 --- a/Source/Game/Networking/Packets/ChannelPackets.cs +++ b/Source/Game/Networking/Packets/ChannelPackets.cs @@ -100,6 +100,7 @@ namespace Game.Networking.Packets _worldPacket.WriteBits(Channel.GetByteCount(), 7); _worldPacket.WriteBits(ChannelWelcomeMsg.GetByteCount(), 11); _worldPacket.WriteUInt32((uint)ChannelFlags); + _worldPacket.WriteUInt8(Unknown1107); _worldPacket.WriteInt32(ChatChannelID); _worldPacket.WriteUInt64(InstanceID); _worldPacket.WritePackedGuid(ChannelGUID); @@ -113,6 +114,7 @@ namespace Game.Networking.Packets public ChannelFlags ChannelFlags; public string Channel = ""; public ObjectGuid ChannelGUID; + public byte Unknown1107; } public class ChannelNotifyLeft : ServerPacket diff --git a/Source/Game/Networking/Packets/CharacterPackets.cs b/Source/Game/Networking/Packets/CharacterPackets.cs index fea4f1697..23b95f3c1 100644 --- a/Source/Game/Networking/Packets/CharacterPackets.cs +++ b/Source/Game/Networking/Packets/CharacterPackets.cs @@ -849,9 +849,18 @@ namespace Game.Networking.Packets public class LogoutComplete : ServerPacket { + SwitchGameModeData SwitchGameMode; + public LogoutComplete() : base(ServerOpcodes.LogoutComplete) { } - public override void Write() { } + public override void Write() + { + _worldPacket.WriteBit(SwitchGameMode != null); + _worldPacket.FlushBits(); + + if (SwitchGameMode != null) + SwitchGameMode.Write(_worldPacket); + } } public class LogoutCancel : ClientPacket @@ -1323,4 +1332,56 @@ namespace Game.Networking.Packets member.Write(data); } } + + class GameModeData + { + public int Unknown_1107_0; + public ObjectGuid Guid; + public byte GameMode; + public int MapID = 0; + public byte Unknown_1107_1; + public byte Unknown_1107_2; + public byte Unknown_1107_3; + public Array Customizations = new(250); + public Array Unknown_1107_4 = new(250); + + public void Write(WorldPacket data) + { + data.WriteInt32(Unknown_1107_0); + data.WritePackedGuid(Guid); + data.WriteUInt8(GameMode); + data.WriteInt32(MapID); + data.WriteUInt8(Unknown_1107_1); + data.WriteUInt8(Unknown_1107_2); + data.WriteUInt8(Unknown_1107_3); + data.WriteInt32(Customizations.Count); + data.WriteInt32(Unknown_1107_4.Count); + + foreach (ChrCustomizationChoice customization in Customizations) + { + data.WriteUInt32(customization.ChrCustomizationOptionID); + data.WriteUInt32(customization.ChrCustomizationChoiceID); + } + + foreach (ChrCustomizationChoice customization in Unknown_1107_4) + { + data.WriteUInt32(customization.ChrCustomizationOptionID); + data.WriteUInt32(customization.ChrCustomizationChoiceID); + } + } + } + + class SwitchGameModeData + { + public bool IsFastLogin; + public GameModeData Current; + public GameModeData New; + + public void Write(WorldPacket data) + { + data.WriteBits(IsFastLogin, 1); + Current.Write(data); + New.Write(data); + } + } } diff --git a/Source/Game/Networking/Packets/LFGPackets.cs b/Source/Game/Networking/Packets/LFGPackets.cs index ddfa54c8f..2e8089258 100644 --- a/Source/Game/Networking/Packets/LFGPackets.cs +++ b/Source/Game/Networking/Packets/LFGPackets.cs @@ -704,7 +704,7 @@ namespace Game.Networking.Packets data.WriteBit(VotePassed); data.WriteBit(MyVoteCompleted); data.WriteBit(MyVote); - data.WriteBits(Reason.GetByteCount(), 8); + data.WriteBits(Reason.GetByteCount(), 9); data.WritePackedGuid(Target); data.WriteUInt32(TotalVotes); data.WriteUInt32(BootVotes); diff --git a/Source/Game/Networking/Packets/MiscPackets.cs b/Source/Game/Networking/Packets/MiscPackets.cs index 5ac68e969..0e18c4dee 100644 --- a/Source/Game/Networking/Packets/MiscPackets.cs +++ b/Source/Game/Networking/Packets/MiscPackets.cs @@ -585,18 +585,21 @@ namespace Game.Networking.Packets public class StandStateChange : ClientPacket { + public UnitStandStateType StandState; + public StandStateChange(WorldPacket packet) : base(packet) { } public override void Read() { - StandState = (UnitStandStateType)_worldPacket.ReadUInt32(); + StandState = (UnitStandStateType)_worldPacket.ReadUInt8(); } - - public UnitStandStateType StandState; } public class StandStateUpdate : ServerPacket { + uint AnimKitID; + UnitStandStateType State; + public StandStateUpdate(UnitStandStateType state, uint animKitId) : base(ServerOpcodes.StandStateUpdate) { State = state; @@ -605,12 +608,9 @@ namespace Game.Networking.Packets public override void Write() { - _worldPacket.WriteUInt32(AnimKitID); _worldPacket.WriteUInt8((byte)State); + _worldPacket.WriteUInt32(AnimKitID); } - - uint AnimKitID; - UnitStandStateType State; } public class SetAnimTier : ServerPacket @@ -630,6 +630,13 @@ namespace Game.Networking.Packets public class StartMirrorTimer : ServerPacket { + public MirrorTimerType Timer; + public int Scale; + public int MaxValue; + public int SpellID; + public int Value; + public bool Paused; + public StartMirrorTimer(MirrorTimerType timer, int value, int maxValue, int scale, int spellID, bool paused) : base(ServerOpcodes.StartMirrorTimer) { Timer = timer; @@ -642,7 +649,7 @@ namespace Game.Networking.Packets public override void Write() { - _worldPacket.WriteInt32((int)Timer); + _worldPacket.WriteUInt8((byte)Timer); _worldPacket.WriteInt32(Value); _worldPacket.WriteInt32(MaxValue); _worldPacket.WriteInt32(Scale); @@ -650,17 +657,13 @@ namespace Game.Networking.Packets _worldPacket.WriteBit(Paused); _worldPacket.FlushBits(); } - - public int Scale; - public int MaxValue; - public MirrorTimerType Timer; - public int SpellID; - public int Value; - public bool Paused; } public class PauseMirrorTimer : ServerPacket { + public MirrorTimerType Timer; + public bool Paused = true; + public PauseMirrorTimer(MirrorTimerType timer, bool paused) : base(ServerOpcodes.PauseMirrorTimer) { Timer = timer; @@ -669,17 +672,16 @@ namespace Game.Networking.Packets public override void Write() { - _worldPacket.WriteInt32((int)Timer); + _worldPacket.WriteUInt8((byte)Timer); _worldPacket.WriteBit(Paused); _worldPacket.FlushBits(); } - - public bool Paused = true; - public MirrorTimerType Timer; } public class StopMirrorTimer : ServerPacket { + public MirrorTimerType Timer; + public StopMirrorTimer(MirrorTimerType timer) : base(ServerOpcodes.StopMirrorTimer) { Timer = timer; @@ -687,10 +689,8 @@ namespace Game.Networking.Packets public override void Write() { - _worldPacket.WriteInt32((int)Timer); + _worldPacket.WriteUInt8((byte)Timer); } - - public MirrorTimerType Timer; } public class ExplorationExperience : ServerPacket diff --git a/Source/Game/Networking/Packets/PerksPorgramPacketsCommon.cs b/Source/Game/Networking/Packets/PerksPorgramPacketsCommon.cs index 2683e2f78..fe866646c 100644 --- a/Source/Game/Networking/Packets/PerksPorgramPacketsCommon.cs +++ b/Source/Game/Networking/Packets/PerksPorgramPacketsCommon.cs @@ -10,12 +10,13 @@ namespace Game.Networking.Packets public int BattlePetSpeciesID; public int TransmogSetID; public int ItemModifiedAppearanceID; - public int Field_14; - public int Field_18; + public int TransmogIllusionID; + public int ToyID; public int Price; + public int OriginalPrice; public long AvailableUntil; public bool Disabled; - public bool Field_41; + public bool DoesNotExpire; public void Write(WorldPacket data) { @@ -24,12 +25,13 @@ namespace Game.Networking.Packets data.WriteInt32(BattlePetSpeciesID); data.WriteInt32(TransmogSetID); data.WriteInt32(ItemModifiedAppearanceID); - data.WriteInt32(Field_14); - data.WriteInt32(Field_18); + data.WriteInt32(TransmogIllusionID); + data.WriteInt32(ToyID); data.WriteInt32(Price); + data.WriteInt32(OriginalPrice); data.WriteInt64(AvailableUntil); data.WriteBit(Disabled); - data.WriteBit(Field_41); + data.WriteBit(DoesNotExpire); data.FlushBits(); } } diff --git a/Source/Game/Networking/Packets/PetPackets.cs b/Source/Game/Networking/Packets/PetPackets.cs index d606583f5..60de61e33 100644 --- a/Source/Game/Networking/Packets/PetPackets.cs +++ b/Source/Game/Networking/Packets/PetPackets.cs @@ -90,7 +90,8 @@ namespace Game.Networking.Packets _worldPacket.WriteUInt16(CreatureFamily); _worldPacket.WriteUInt16(Specialization); _worldPacket.WriteUInt32(TimeLimit); - _worldPacket.WriteUInt16((ushort)((byte)CommandState | (Flag << 16))); + _worldPacket.WriteUInt8((byte)CommandState); + _worldPacket.WriteUInt8(Flag); _worldPacket.WriteUInt8((byte)ReactState); foreach (uint actionButton in ActionButtons) @@ -362,7 +363,8 @@ namespace Game.Networking.Packets public override void Write() { _worldPacket.WritePackedGuid(PetGUID); - _worldPacket.WriteUInt16((ushort)((int)CommandState | Flag << 8)); + _worldPacket.WriteUInt8((byte)CommandState); + _worldPacket.WriteUInt8(Flag); _worldPacket.WriteUInt8((byte)ReactState); } } diff --git a/Source/Game/Networking/Packets/PetitionPackets.cs b/Source/Game/Networking/Packets/PetitionPackets.cs index 0ce132e39..7e0a32273 100644 --- a/Source/Game/Networking/Packets/PetitionPackets.cs +++ b/Source/Game/Networking/Packets/PetitionPackets.cs @@ -297,11 +297,11 @@ namespace Game.Networking.Packets data.WriteInt32(StaticType); data.WriteUInt32(Muid); - data.WriteBits(Title.GetByteCount(), 7); + data.WriteBits(Title.GetByteCount(), 8); data.WriteBits(BodyText.GetByteCount(), 12); for (byte i = 0; i < Choicetext.Length; i++) - data.WriteBits(Choicetext[i].GetByteCount(), 6); + data.WriteBits(Choicetext[i].GetByteCount(), 7); data.FlushBits(); diff --git a/Source/Game/Networking/Packets/SystemPackets.cs b/Source/Game/Networking/Packets/SystemPackets.cs index 548cf78e5..b4b3176bb 100644 --- a/Source/Game/Networking/Packets/SystemPackets.cs +++ b/Source/Game/Networking/Packets/SystemPackets.cs @@ -95,20 +95,20 @@ namespace Game.Networking.Packets _worldPacket.WriteBit(SellAllJunkEnabled); _worldPacket.WriteBit(GroupFinderEnabled); - _worldPacket.WriteBit(LfdEnabled); - _worldPacket.WriteBit(LfrEnabled); _worldPacket.WriteBit(IsPremadeGroupEnabled); - _worldPacket.WriteBit(PremadeGroupsEnabled); + _worldPacket.WriteBit(UseActivePlayerDataQuestCompleted); _worldPacket.WriteBit(false); // unused 10.2.7 _worldPacket.WriteBit(GuildEventsEditsEnabled); _worldPacket.WriteBit(GuildTradeSkillsEnabled); - _worldPacket.WriteBits(Unknown1027.GetByteCount(), 7); _worldPacket.WriteBit(BNSendWhisperUseV2Services); - _worldPacket.WriteBit(BNSendGameDataUseV2Services); _worldPacket.WriteBit(IsAccountCurrencyTransferEnabled); + _worldPacket.WriteBit(false); // unused 11.0.7 + _worldPacket.WriteBit(LobbyMatchmakerQueueFromMainlineEnabled); + _worldPacket.WriteBit(CanSendLobbyMatchmakerPartyCustomizations); + _worldPacket.FlushBits(); { @@ -207,15 +207,15 @@ namespace Game.Networking.Packets public bool IsPlayerContentTrackingEnabled; public bool SellAllJunkEnabled; public bool GroupFinderEnabled = true; // classic only - public bool LfdEnabled = true; // classic only - public bool LfrEnabled = true; // classic only public bool IsPremadeGroupEnabled = true; // classic only - public bool PremadeGroupsEnabled = true; + public bool UseActivePlayerDataQuestCompleted = false; ///< Uses ActivePlayerData::QuestCompleted (legacy) to store completed quest bits instead of ActivePlayerData::BitVectors[9] public bool GuildEventsEditsEnabled = true; public bool GuildTradeSkillsEnabled = true; public bool BNSendWhisperUseV2Services = true; ///< BNSendWhisper will send to v2.WhisperService instead of v1.NotificationService public bool BNSendGameDataUseV2Services = true; ///< BNSendGameData will send to v2.NotificationService instead of v1.NotificationService public bool IsAccountCurrencyTransferEnabled; + public bool LobbyMatchmakerQueueFromMainlineEnabled; + public bool CanSendLobbyMatchmakerPartyCustomizations; public SocialQueueConfig QuickJoinConfig; public SquelchInfo Squelch; @@ -487,11 +487,13 @@ namespace Game.Networking.Packets { public int Rule; public int Value; + public float ValueF; public void Write(WorldPacket data) { data.WriteInt32(Rule); data.WriteInt32(Value); + data.WriteFloat(ValueF); } } diff --git a/Source/Game/Networking/Packets/TicketPackets.cs b/Source/Game/Networking/Packets/TicketPackets.cs index 4b165adc3..8b4513752 100644 --- a/Source/Game/Networking/Packets/TicketPackets.cs +++ b/Source/Game/Networking/Packets/TicketPackets.cs @@ -54,9 +54,13 @@ namespace Game.Networking.Packets _worldPacket.WriteBits(c.Url.GetByteCount(), 11); _worldPacket.WriteBits(c.WaitTimeOverrideMessage.GetByteCount(), 10); + _worldPacket.WriteBits(c.Title, 24); + _worldPacket.WriteBits(c.Description, 24); _worldPacket.WriteString(c.Url); _worldPacket.WriteString(c.WaitTimeOverrideMessage); + _worldPacket.WriteString(c.Title); + _worldPacket.WriteString(c.Description); } } @@ -72,6 +76,8 @@ namespace Game.Networking.Packets public int WaitTimeOverrideMinutes; public string Url; public string WaitTimeOverrideMessage; + public string Title; + public string Description; } } diff --git a/Source/Game/Networking/Packets/VignettePackets.cs b/Source/Game/Networking/Packets/VignettePackets.cs index 3fb9d5a6d..76edee530 100644 --- a/Source/Game/Networking/Packets/VignettePackets.cs +++ b/Source/Game/Networking/Packets/VignettePackets.cs @@ -16,6 +16,9 @@ namespace Game.Networking.Packets public uint ZoneID; public uint WMOGroupID; public uint WMODoodadPlacementID; + public float HealthPercent = 1.0f; + public ushort RecommendedGroupSizeMin; + public ushort RecommendedGroupSizeMax; public void Write(WorldPacket data) { @@ -25,6 +28,9 @@ namespace Game.Networking.Packets data.WriteUInt32(ZoneID); data.WriteUInt32(WMOGroupID); data.WriteUInt32(WMODoodadPlacementID); + data.WriteFloat(HealthPercent); + data.WriteUInt16(RecommendedGroupSizeMin); + data.WriteUInt16(RecommendedGroupSizeMax); } } diff --git a/Source/Game/Networking/WorldSocket.cs b/Source/Game/Networking/WorldSocket.cs index 90c8fd69c..fa541e983 100644 --- a/Source/Game/Networking/WorldSocket.cs +++ b/Source/Game/Networking/WorldSocket.cs @@ -21,10 +21,14 @@ namespace Game.Networking static readonly string ClientConnectionInitialize = "WORLD OF WARCRAFT CONNECTION - CLIENT TO SERVER - V2"; static readonly string ServerConnectionInitialize = "WORLD OF WARCRAFT CONNECTION - SERVER TO CLIENT - V2"; - static readonly byte[] AuthCheckSeed = { 0xC5, 0xC6, 0x98, 0x95, 0x76, 0x3F, 0x1D, 0xCD, 0xB6, 0xA1, 0x37, 0x28, 0xB3, 0x12, 0xFF, 0x8A }; - static readonly byte[] SessionKeySeed = { 0x58, 0xCB, 0xCF, 0x40, 0xFE, 0x2E, 0xCE, 0xA6, 0x5A, 0x90, 0xB8, 0x01, 0x68, 0x6C, 0x28, 0x0B }; - static readonly byte[] ContinuedSessionSeed = { 0x16, 0xAD, 0x0C, 0xD4, 0x46, 0xF9, 0x4F, 0xB2, 0xEF, 0x7D, 0xEA, 0x2A, 0x17, 0x66, 0x4D, 0x2F }; - static readonly byte[] EncryptionKeySeed = { 0xE9, 0x75, 0x3C, 0x50, 0x90, 0x93, 0x61, 0xDA, 0x3B, 0x07, 0xEE, 0xFA, 0xFF, 0x9D, 0x41, 0xB8 }; + static readonly byte[] AuthCheckSeed = { 0xDE, 0x3A, 0x2A, 0x8E, 0x6B, 0x89, 0x52, 0x66, 0x88, 0x9D, 0x7E, 0x7A, 0x77, 0x1D, 0x5D, 0x1F, + 0x4E, 0xD9, 0x0C, 0x23, 0x9B, 0xCD, 0x0E, 0xDC, 0xD2, 0xE8, 0x04, 0x3A, 0x68, 0x64, 0xC7, 0xB0 }; + static readonly byte[] SessionKeySeed = { 0xE8, 0x1E, 0x8B, 0x59, 0x27, 0x62, 0x1E, 0xAA, 0x86, 0x15, 0x18, 0xEA, 0xC0, 0xBF, 0x66, 0x8C, + 0x6D, 0xBF, 0x83, 0x93, 0xBC, 0xAA, 0x80, 0x52, 0x5B, 0x1E, 0xDC, 0x23, 0xA0, 0x12, 0xB7, 0x50 }; + static readonly byte[] ContinuedSessionSeed = { 0x56, 0x5C, 0x61, 0x9C, 0x48, 0x3A, 0x52, 0x1F, 0x61, 0x5D, 0x05, 0x49, 0xB2, 0x9A, 0x39, 0xBF, + 0x4B, 0x97, 0xB0, 0x1B, 0xF9, 0x6C, 0xDE, 0xD6, 0x80, 0x1D, 0xAB, 0x26, 0x02, 0xA9, 0x9B, 0x9D }; + static readonly byte[] EncryptionKeySeed = { 0x71, 0xC9, 0xED, 0x5A, 0xA7, 0x0E, 0x4D, 0xFF, 0x4C, 0x36, 0xA6, 0x5A, 0x3E, 0x46, 0x8A, 0x4A, + 0x5D, 0xA1, 0x48, 0xC8, 0x30, 0x47, 0x4A, 0xDE, 0xF6, 0x0D, 0x6C, 0xBE, 0x6F, 0xE4, 0x55, 0x73 }; static readonly int HeaderSize = 16; @@ -53,10 +57,10 @@ namespace Game.Networking public WorldSocket(Socket socket) : base(socket) { _connectType = ConnectionType.Realm; - _serverChallenge = Array.Empty().GenerateRandomKey(16); + _serverChallenge = Array.Empty().GenerateRandomKey(32); _worldCrypt = new WorldCrypt(); - _encryptKey = new byte[16]; + _encryptKey = new byte[32]; _headerBuffer = new SocketBuffer(HeaderSize); _packetBuffer = new SocketBuffer(0); @@ -504,14 +508,14 @@ namespace Game.Networking // For hook purposes, we get Remoteaddress at this point. var address = GetRemoteIpAddress(); - Sha256 digestKeyHash = new(); + Sha512 digestKeyHash = new(); digestKeyHash.Process(account.game.KeyData, account.game.KeyData.Length); digestKeyHash.Finish(clientBuildAuthKey.Key); - HmacSha256 hmac = new(digestKeyHash.Digest); + HmacSha512 hmac = new(digestKeyHash.Digest); hmac.Process(authSession.LocalChallenge, authSession.LocalChallenge.Count); - hmac.Process(_serverChallenge, 16); - hmac.Finish(AuthCheckSeed, 16); + hmac.Process(_serverChallenge, 32); + hmac.Finish(AuthCheckSeed, AuthCheckSeed.Length); // Check that Key and account name are the same on client and server if (!hmac.Digest.Compare(authSession.Digest)) @@ -522,25 +526,25 @@ namespace Game.Networking return; } - Sha256 keyData = new(); + Sha512 keyData = new(); keyData.Finish(account.game.KeyData); - HmacSha256 sessionKeyHmac = new(keyData.Digest); - sessionKeyHmac.Process(_serverChallenge, 16); + HmacSha512 sessionKeyHmac = new(keyData.Digest); + sessionKeyHmac.Process(_serverChallenge, 32); sessionKeyHmac.Process(authSession.LocalChallenge, authSession.LocalChallenge.Count); - sessionKeyHmac.Finish(SessionKeySeed, 16); + sessionKeyHmac.Finish(SessionKeySeed, SessionKeySeed.Length); _sessionKey = new byte[40]; - var sessionKeyGenerator = new SessionKeyGenerator256(sessionKeyHmac.Digest, 32); + var sessionKeyGenerator = new SessionKeyGenerator512(sessionKeyHmac.Digest, 32); sessionKeyGenerator.Generate(_sessionKey, 40); - HmacSha256 encryptKeyGen = new(_sessionKey); + HmacSha512 encryptKeyGen = new(_sessionKey); encryptKeyGen.Process(authSession.LocalChallenge, authSession.LocalChallenge.Count); - encryptKeyGen.Process(_serverChallenge, 16); - encryptKeyGen.Finish(EncryptionKeySeed, 16); + encryptKeyGen.Process(_serverChallenge, 32); + encryptKeyGen.Finish(EncryptionKeySeed, EncryptionKeySeed.Length); - // only first 16 bytes of the hmac are used - Buffer.BlockCopy(encryptKeyGen.Digest, 0, _encryptKey, 0, 16); + // only first 32 bytes of the hmac are used + Buffer.BlockCopy(encryptKeyGen.Digest, 0, _encryptKey, 0, 32); PreparedStatement stmt = null; @@ -714,11 +718,11 @@ namespace Game.Networking string login = result.Read(0); _sessionKey = result.Read(1); - HmacSha256 hmac = new(_sessionKey); + HmacSha512 hmac = new(_sessionKey); hmac.Process(BitConverter.GetBytes(authSession.Key), 8); hmac.Process(authSession.LocalChallenge, authSession.LocalChallenge.Length); - hmac.Process(_serverChallenge, 16); - hmac.Finish(ContinuedSessionSeed, 16); + hmac.Process(_serverChallenge, 32); + hmac.Finish(ContinuedSessionSeed, ContinuedSessionSeed.Length); if (!hmac.Digest.Compare(authSession.Digest)) { @@ -727,13 +731,13 @@ namespace Game.Networking return; } - HmacSha256 encryptKeyGen = new(_sessionKey); + HmacSha512 encryptKeyGen = new(_sessionKey); encryptKeyGen.Process(authSession.LocalChallenge, authSession.LocalChallenge.Length); - encryptKeyGen.Process(_serverChallenge, 16); - encryptKeyGen.Finish(EncryptionKeySeed, 16); + encryptKeyGen.Process(_serverChallenge, 32); + encryptKeyGen.Finish(EncryptionKeySeed, EncryptionKeySeed.Length); - // only first 16 bytes of the hmac are used - Buffer.BlockCopy(encryptKeyGen.Digest, 0, _encryptKey, 0, 16); + // only first 32 bytes of the hmac are used + Buffer.BlockCopy(encryptKeyGen.Digest, 0, _encryptKey, 0, 32); SendPacket(new EnterEncryptedMode(_encryptKey, true)); await AsyncRead(); diff --git a/Source/Game/Spells/SpellInfo.cs b/Source/Game/Spells/SpellInfo.cs index 9668ff333..a3f7ca59a 100644 --- a/Source/Game/Spells/SpellInfo.cs +++ b/Source/Game/Spells/SpellInfo.cs @@ -4765,6 +4765,13 @@ namespace Game.Spells new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 331 SPELL_EFFECT_331 new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 332 SPELL_EFFECT_332 new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 333 SPELL_EFFECT_333 + new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 334 SPELL_EFFECT_334 + new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 335 SPELL_EFFECT_335 + new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 336 SPELL_EFFECT_336 + new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 337 SPELL_EFFECT_337 + new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 338 SPELL_EFFECT_338 + new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 339 SPELL_EFFECT_UI_ACTION + new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 340 SPELL_EFFECT_340 }; #region Fields