From 460a7c0ca9e6fc33f5d543100f8035e91df99c72 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Thu, 23 Mar 2023 08:03:41 -0400 Subject: [PATCH] Core: Update to 10.0.7 Port From (https://github.com/TrinityCore/TrinityCore/commit/922f60fa25569db05a7717b6b55568f321a02f64) --- Source/Framework/Constants/ChatConst.cs | 7 + Source/Framework/Constants/ItemConst.cs | 16 +- Source/Framework/Constants/Network/Opcodes.cs | 522 +++++++++--------- Source/Framework/Constants/SharedConst.cs | 72 +-- .../Framework/Constants/Spells/SpellConst.cs | 3 + .../Database/Databases/HotfixDatabase.cs | 2 +- Source/Game/DataStorage/CliDB.cs | 14 +- Source/Game/DataStorage/Structs/A_Records.cs | 2 +- Source/Game/DataStorage/Structs/C_Records.cs | 2 +- Source/Game/DataStorage/Structs/D_Records.cs | 6 +- Source/Game/DataStorage/Structs/G_Records.cs | 8 +- Source/Game/DataStorage/Structs/L_Records.cs | 3 +- Source/Game/DataStorage/Structs/Q_Records.cs | 2 +- Source/Game/DataStorage/Structs/T_Records.cs | 2 +- .../Entities/Object/Update/UpdateFields.cs | 31 +- Source/Game/Handlers/CharacterHandler.cs | 2 - Source/Game/Handlers/ChatHandler.cs | 162 +++--- .../Networking/Packets/AuctionHousePackets.cs | 4 + Source/Game/Networking/Packets/ChatPackets.cs | 26 + .../Networking/Packets/GameObjectPackets.cs | 4 - Source/Game/Networking/Packets/LootPackets.cs | 16 +- Source/Game/Networking/Packets/NPCPackets.cs | 2 +- .../Game/Networking/Packets/SpellPackets.cs | 2 - .../Game/Networking/Packets/SystemPackets.cs | 39 +- .../Game/Networking/Packets/TicketPackets.cs | 2 + Source/Game/Spells/SpellInfo.cs | 2 + Source/Game/Spells/TraitManager.cs | 2 +- sql/base/auth_database.sql | 10 +- .../auth/master/2023_03_22_00_auth.sql | 7 + 29 files changed, 541 insertions(+), 431 deletions(-) create mode 100644 sql/updates/auth/master/2023_03_22_00_auth.sql diff --git a/Source/Framework/Constants/ChatConst.cs b/Source/Framework/Constants/ChatConst.cs index eb57fff47..a9fe06f1e 100644 --- a/Source/Framework/Constants/ChatConst.cs +++ b/Source/Framework/Constants/ChatConst.cs @@ -93,4 +93,11 @@ namespace Framework.Constants // 0x40 // 0x80 } + + public enum ChatWhisperTargetStatus + { + CanWhisper = 0, + Offline = 1, + WrongFaction = 2 + } } diff --git a/Source/Framework/Constants/ItemConst.cs b/Source/Framework/Constants/ItemConst.cs index d8e7366fb..3e92cb512 100644 --- a/Source/Framework/Constants/ItemConst.cs +++ b/Source/Framework/Constants/ItemConst.cs @@ -58,7 +58,14 @@ namespace Framework.Constants SocketColor.RelicWater, SocketColor.RelicLife, SocketColor.RelicWind, - SocketColor.RelicHoly + SocketColor.RelicHoly, + SocketColor.PunchcardRed, + SocketColor.PunchcardYellow, + SocketColor.PunchcardBlue, + SocketColor.Domination, + SocketColor.Cypher, + SocketColor.Tinker, + SocketColor.Primordial }; public static ItemModifier[] AppearanceModifierSlotBySpec = @@ -194,6 +201,13 @@ namespace Framework.Constants RelicLife = 0x04000, RelicWind = 0x08000, RelicHoly = 0x10000, + PunchcardRed = 0x20000, + PunchcardYellow = 0x40000, + PunchcardBlue = 0x80000, + Domination = 0x100000, + Cypher = 0x200000, + Tinker = 0x400000, + Primordial = 0x800000, Standard = (Red | Yellow | Blue) } diff --git a/Source/Framework/Constants/Network/Opcodes.cs b/Source/Framework/Constants/Network/Opcodes.cs index 6441b5ca2..67d42d3eb 100644 --- a/Source/Framework/Constants/Network/Opcodes.cs +++ b/Source/Framework/Constants/Network/Opcodes.cs @@ -5,14 +5,14 @@ namespace Framework.Constants { public enum ClientOpcodes : uint { - AbandonNpeResponse = 0x33eb, + AbandonNpeResponse = 0x33ea, AcceptGuildInvite = 0x35fc, AcceptReturningPlayerPrompt = 0x3395, - AcceptSocialContract = 0x373c, + AcceptSocialContract = 0x373d, AcceptTrade = 0x315a, AcceptWargameInvite = 0x35e0, - AccountNotificationAcknowledged = 0x3731, - ActivateSoulbind = 0x33da, + AccountNotificationAcknowledged = 0x3732, + ActivateSoulbind = 0x33d9, ActivateTaxi = 0x34b1, AddonList = 0x35d8, AddAccountCosmetic = 0x32b1, @@ -21,7 +21,7 @@ namespace Framework.Constants AddIgnore = 0x36d0, AddToy = 0x32b0, AdventureJournalOpenQuest = 0x3204, - AdventureJournalUpdateSuggestions = 0x33dd, + AdventureJournalUpdateSuggestions = 0x33dc, AdventureMapStartQuest = 0x3369, AlterAppearance = 0x3503, AreaSpiritHealerQuery = 0x34b6, @@ -47,10 +47,10 @@ namespace Framework.Constants AuctionPlaceBid = 0x34d5, AuctionRemoveItem = 0x34d3, AuctionReplicateItems = 0x34d4, - AuctionRequestFavoriteList = 0x3733, + AuctionRequestFavoriteList = 0x3734, AuctionSellCommodity = 0x34df, AuctionSellItem = 0x34d2, - AuctionSetFavoriteItem = 0x3732, + AuctionSetFavoriteItem = 0x3733, AuthContinuedSession = 0x3766, AuthSession = 0x3765, AutobankItem = 0x3997, @@ -79,17 +79,17 @@ namespace Framework.Constants BattlenetChallengeResponse = 0x36cf, BattlenetRequest = 0x36f1, BattlePayAckFailedResponse = 0x36c9, - BattlePayCancelOpenCheckout = 0x370f, + BattlePayCancelOpenCheckout = 0x3710, BattlePayConfirmPurchaseResponse = 0x36c8, BattlePayDistributionAssignToTarget = 0x36bf, - BattlePayDistributionAssignVas = 0x3736, + BattlePayDistributionAssignVas = 0x3737, BattlePayGetProductList = 0x36b7, BattlePayGetPurchaseList = 0x36b8, - BattlePayOpenCheckout = 0x3708, - BattlePayRequestPriceInfo = 0x3704, + BattlePayOpenCheckout = 0x3709, + BattlePayRequestPriceInfo = 0x3705, BattlePayStartPurchase = 0x36c7, BattlePayStartVasPurchase = 0x36ee, - BattlePetClearFanfare = 0x312b, + BattlePetClearFanfare = 0x3126, BattlePetDeletePet = 0x3623, BattlePetDeletePetCheat = 0x3624, BattlePetModifyName = 0x3626, @@ -140,7 +140,7 @@ namespace Framework.Constants CancelTempEnchantment = 0x3500, CancelTrade = 0x315c, CanDuel = 0x3660, - CanRedeemTokenForBalance = 0x3703, + CanRedeemTokenForBalance = 0x3704, CastSpell = 0x32b4, ChallengeModeRequestLeaders = 0x308f, ChangeBagSlotFlag = 0x334e, @@ -157,6 +157,7 @@ namespace Framework.Constants CharRaceOrFactionChange = 0x3690, ChatAddonMessage = 0x37ee, ChatAddonMessageTargeted = 0x37ef, + ChatCanLocalWhisperTargetRequest = 0x37f4, ChatChannelAnnouncements = 0x37e3, ChatChannelBan = 0x37e1, ChatChannelDeclineInvite = 0x37e6, @@ -194,33 +195,33 @@ namespace Framework.Constants CheckCharacterNameAvailability = 0x3643, CheckIsAdventureMapPoiValid = 0x3254, ChoiceResponse = 0x32bc, - ChromieTimeSelectExpansion = 0x33d9, - ClaimWeeklyReward = 0x33b5, - ClassTalentsDeleteConfig = 0x3410, + ChromieTimeSelectExpansion = 0x33d8, + ClaimWeeklyReward = 0x33b4, + ClassTalentsDeleteConfig = 0x340f, ClassTalentsNotifyEmptyConfig = 0x3214, - ClassTalentsNotifyValidationFailed = 0x3412, - ClassTalentsRenameConfig = 0x340f, - ClassTalentsRequestNewConfig = 0x340e, - ClassTalentsSetStarterBuildActive = 0x3413, + ClassTalentsNotifyValidationFailed = 0x3411, + ClassTalentsRenameConfig = 0x340e, + ClassTalentsRequestNewConfig = 0x340d, + ClassTalentsSetStarterBuildActive = 0x3412, ClassTalentsSetUsesSharedActionBars = 0x3213, - ClearNewAppearance = 0x312e, + ClearNewAppearance = 0x3129, ClearRaidMarker = 0x31a7, ClearTradeItem = 0x315e, ClientPortGraveyard = 0x353a, CloseInteraction = 0x3499, CloseQuestChoice = 0x32bd, - CloseRuneforgeInteraction = 0x33e1, - CloseTraitSystemInteraction = 0x3414, - ClubFinderApplicationResponse = 0x371a, - ClubFinderGetApplicantsList = 0x3718, - ClubFinderPost = 0x3715, - ClubFinderRequestClubsData = 0x371c, - ClubFinderRequestClubsList = 0x3716, - ClubFinderRequestMembershipToClub = 0x3717, - ClubFinderRequestPendingClubsList = 0x371b, - ClubFinderRequestSubscribedClubPostingIds = 0x371d, - ClubFinderRespondToApplicant = 0x3719, - ClubFinderWhisperApplicantRequest = 0x3739, + CloseRuneforgeInteraction = 0x33e0, + CloseTraitSystemInteraction = 0x3413, + ClubFinderApplicationResponse = 0x371b, + ClubFinderGetApplicantsList = 0x3719, + ClubFinderPost = 0x3716, + ClubFinderRequestClubsData = 0x371d, + ClubFinderRequestClubsList = 0x3717, + ClubFinderRequestMembershipToClub = 0x3718, + ClubFinderRequestPendingClubsList = 0x371c, + ClubFinderRequestSubscribedClubPostingIds = 0x371e, + ClubFinderRespondToApplicant = 0x371a, + ClubFinderWhisperApplicantRequest = 0x373a, ClubPresenceSubscribe = 0x36f3, CollectionItemSetFavorite = 0x3631, CommentatorEnable = 0x35f0, @@ -229,7 +230,7 @@ namespace Framework.Constants CommentatorGetMapInfo = 0x35f1, CommentatorGetPlayerCooldowns = 0x35f3, CommentatorGetPlayerInfo = 0x35f2, - CommentatorSpectate = 0x3737, + CommentatorSpectate = 0x3738, CommentatorStartWargame = 0x35ef, CommerceTokenGetCount = 0x36e0, CommerceTokenGetLog = 0x36ea, @@ -282,7 +283,7 @@ namespace Framework.Constants DfTeleport = 0x3617, DiscardedTimeSyncAcks = 0x3a41, DismissCritter = 0x3507, - DoCountdown = 0x3714, + DoCountdown = 0x3715, DoMasterLootRoll = 0x321b, DoReadyCheck = 0x3632, DuelResponse = 0x34f0, @@ -323,18 +324,18 @@ namespace Framework.Constants GarrisonSetFollowerFavorite = 0x32f9, GarrisonSetFollowerInactive = 0x32f1, GarrisonSetRecruitmentPreferences = 0x32ff, - GarrisonSocketTalent = 0x33ee, + GarrisonSocketTalent = 0x33ed, GarrisonStartMission = 0x333b, GarrisonSwapBuildings = 0x32e9, GenerateRandomCharacterName = 0x35e7, GetAccountCharacterList = 0x36b2, - GetAccountNotifications = 0x3730, + GetAccountNotifications = 0x3731, GetGarrisonInfo = 0x32de, GetItemPurchaseData = 0x3542, GetLandingPageShipments = 0x3319, GetMirrorImageData = 0x32ae, GetPvpOptionsEnabled = 0x35ee, - GetRafAccountInfo = 0x371e, + GetRafAccountInfo = 0x371f, GetRemainingGameTime = 0x36e7, GetTrophyList = 0x332c, GetUndeleteCharacterCooldownStatus = 0x36db, @@ -396,7 +397,7 @@ namespace Framework.Constants InitiateTrade = 0x3156, Inspect = 0x353c, InstanceLockResponse = 0x351a, - IslandQueue = 0x33b1, + IslandQueue = 0x33b0, ItemPurchaseRefund = 0x3543, ItemTextQuery = 0x334b, JoinPetBattleQueue = 0x31df, @@ -451,7 +452,7 @@ namespace Framework.Constants MergeItemWithGuildBankItem = 0x34c2, MinimapPing = 0x3649, MissileTrajectoryCollision = 0x318b, - MountClearFanfare = 0x312c, + MountClearFanfare = 0x3127, MountSetFavorite = 0x3630, MountSpecialAnim = 0x3297, MoveAddImpulseAck = 0x3a50, @@ -548,7 +549,7 @@ namespace Framework.Constants NextCinematicCamera = 0x3557, ObjectUpdateFailed = 0x3181, ObjectUpdateRescued = 0x3182, - OfferPetition = 0x33d8, + OfferPetition = 0x33d7, OpeningCinematic = 0x3556, OpenItem = 0x334c, OpenMissionNpc = 0x330f, @@ -560,11 +561,11 @@ namespace Framework.Constants PartyInviteResponse = 0x3604, PartyUninvite = 0x3645, PerformItemInteraction = 0x323a, - PerksProgramRequestPendingRewards = 0x313a, - PerksProgramRequestPurchase = 0x3400, - PerksProgramRequestRefund = 0x3401, - PerksProgramSetFrozenVendorItem = 0x3402, - PerksProgramStatusRequest = 0x33ff, + PerksProgramRequestPendingRewards = 0x3135, + PerksProgramRequestPurchase = 0x33ff, + PerksProgramRequestRefund = 0x3400, + PerksProgramSetFrozenVendorItem = 0x3401, + PerksProgramStatusRequest = 0x33fe, PetitionBuy = 0x34cf, PetitionRenameGuild = 0x36c5, PetitionShowList = 0x34ce, @@ -630,25 +631,25 @@ namespace Framework.Constants QuestLogRemoveQuest = 0x3541, QuestPoiQuery = 0x36ac, QuestPushResult = 0x34a6, - QuestSessionBeginResponse = 0x33c9, - QuestSessionRequestStart = 0x33c8, - QuestSessionRequestStop = 0x3729, + QuestSessionBeginResponse = 0x33c8, + QuestSessionRequestStart = 0x33c7, + QuestSessionRequestStop = 0x372a, QueuedMessagesEnd = 0x376c, QuickJoinAutoAcceptRequests = 0x3702, QuickJoinRequestInvite = 0x3701, - QuickJoinRequestInviteWithConfirmation = 0x372e, + QuickJoinRequestInviteWithConfirmation = 0x372f, QuickJoinRespondToInvite = 0x3700, QuickJoinSignalToastDisplayed = 0x36ff, RafClaimActivityReward = 0x3512, - RafClaimNextReward = 0x371f, - RafGenerateRecruitmentLink = 0x3721, - RafUpdateRecruitmentInfo = 0x3720, + RafClaimNextReward = 0x3720, + RafGenerateRecruitmentLink = 0x3722, + RafUpdateRecruitmentInfo = 0x3721, RandomRoll = 0x3652, ReadyCheckResponse = 0x3633, ReadItem = 0x334d, ReclaimCorpse = 0x34e9, RemoveNewItem = 0x3373, - RemoveRafRecruit = 0x3722, + RemoveRafRecruit = 0x3723, ReorderCharacters = 0x35e9, RepairItem = 0x34fa, ReplaceTrophy = 0x332e, @@ -658,8 +659,8 @@ namespace Framework.Constants ReportFrozenWhileLoadingMap = 0x36a4, ReportKeybindingExecutionCounts = 0x36fd, ReportPvpPlayerAfk = 0x3502, - ReportServerLag = 0x33c1, - ReportStuckInCombat = 0x33c2, + ReportServerLag = 0x33c0, + ReportStuckInCombat = 0x33c1, RequestAccountData = 0x3692, RequestAreaPoiUpdate = 0x3372, RequestBattlefieldStatus = 0x35dc, @@ -667,13 +668,13 @@ namespace Framework.Constants RequestCemeteryList = 0x3177, RequestCharacterGuildFollowInfo = 0x3689, RequestConquestFormulaConstants = 0x32d0, - RequestCovenantCallings = 0x33b3, + RequestCovenantCallings = 0x33b2, RequestCrowdControlSpell = 0x353d, RequestForcedReactions = 0x320e, - RequestGarrisonTalentWorldQuestUnlocks = 0x33ed, + RequestGarrisonTalentWorldQuestUnlocks = 0x33ec, RequestGuildPartyState = 0x31a9, RequestGuildRewardsList = 0x31a8, - RequestLatestSplashScreen = 0x33c3, + RequestLatestSplashScreen = 0x33c2, RequestLfgListBlacklist = 0x32bf, RequestMythicPlusAffixes = 0x3208, RequestMythicPlusSeasonData = 0x3209, @@ -692,7 +693,7 @@ namespace Framework.Constants RequestVehicleNextSeat = 0x3246, RequestVehiclePrevSeat = 0x3245, RequestVehicleSwitchSeat = 0x3247, - RequestWeeklyRewards = 0x33b6, + RequestWeeklyRewards = 0x33b5, RequestWorldQuestUpdate = 0x3371, ResetChallengeMode = 0x3206, ResetChallengeModeCheat = 0x3207, @@ -700,6 +701,7 @@ namespace Framework.Constants ResurrectResponse = 0x3681, RevertMonumentAppearance = 0x3330, RideVehicleInteract = 0x3248, + SaveAccountDataExport = 0x3741, SaveCufProfiles = 0x318c, SaveEquipmentSet = 0x3518, SaveGuildEmblem = 0x32c3, @@ -727,6 +729,7 @@ namespace Framework.Constants SetDungeonDifficulty = 0x3680, SetEmpowerMinHoldStagePercent = 0x327e, SetEveryoneIsAssistant = 0x3618, + SetExcludedChatCensorSources = 0x3703, SetFactionAtWar = 0x34ec, SetFactionInactive = 0x34ee, SetFactionNotAtWar = 0x34ed, @@ -757,7 +760,7 @@ namespace Framework.Constants ShowTradeSkill = 0x36be, SignPetition = 0x3546, SilencePartyTalker = 0x3650, - SocialContractRequest = 0x373b, + SocialContractRequest = 0x373c, SocketGems = 0x34f9, SortBags = 0x3354, SortBankBags = 0x3355, @@ -776,7 +779,7 @@ namespace Framework.Constants StartWarGame = 0x35de, StoreGuildBankItem = 0x34be, SubmitUserFeedback = 0x3691, - SubscriptionInterstitialResponse = 0x33e2, + SubscriptionInterstitialResponse = 0x33e1, SummonResponse = 0x3668, SupportTicketSubmitComplaint = 0x3644, SurrenderArena = 0x3174, @@ -800,25 +803,22 @@ namespace Framework.Constants ToggleDifficulty = 0x3655, TogglePvp = 0x32c6, TotemDestroyed = 0x3506, - ToyClearFanfare = 0x312d, + ToyClearFanfare = 0x3128, TradeSkillSetFavorite = 0x336f, TrainerBuySpell = 0x34b4, TrainerList = 0x34b3, - TraitsCommitConfig = 0x3408, - TraitsTalentTestUnlearnSpells = 0x3406, + TraitsCommitConfig = 0x3407, + TraitsTalentTestUnlearnSpells = 0x3405, TransmogrifyItems = 0x3198, TurnInPetition = 0x3548, Tutorial = 0x36d8, - TwitterCheckStatus = 0x3129, - TwitterConnect = 0x3126, - TwitterDisconnect = 0x312a, - UiMapQuestLinesRequest = 0x33b2, + UiMapQuestLinesRequest = 0x33b1, UnacceptTrade = 0x315b, UndeleteCharacter = 0x36da, UnlearnSkill = 0x34f3, UnlearnSpecialization = 0x31a6, UnlockVoidStorage = 0x31a2, - UpdateAadcStatus = 0x3735, + UpdateAadcStatus = 0x3736, UpdateAccountData = 0x3693, UpdateAreaTriggerVisual = 0x32b6, UpdateClientSettings = 0x3662, @@ -828,19 +828,19 @@ namespace Framework.Constants UpdateSpellVisual = 0x32b5, UpdateVasPurchaseStates = 0x36ef, UpgradeGarrison = 0x32d9, - UpgradeRuneforgeLegendary = 0x33e0, + UpgradeRuneforgeLegendary = 0x33df, UsedFollow = 0x3187, UseCritterItem = 0x324e, UseEquipmentSet = 0x3995, UseItem = 0x32af, UseToy = 0x32b2, - VasCheckTransferOk = 0x3707, - VasGetQueueMinutes = 0x3706, - VasGetServiceStatus = 0x3705, + VasCheckTransferOk = 0x3708, + VasGetQueueMinutes = 0x3707, + VasGetServiceStatus = 0x3706, ViolenceLevel = 0x3185, - VoiceChannelSttTokenRequest = 0x370b, - VoiceChatJoinChannel = 0x370c, - VoiceChatLogin = 0x370a, + VoiceChannelSttTokenRequest = 0x370c, + VoiceChatJoinChannel = 0x370d, + VoiceChatLogin = 0x370b, VoidStorageTransfer = 0x31a4, Warden3Data = 0x35ec, Who = 0x367f, @@ -881,7 +881,7 @@ namespace Framework.Constants AeLootTargets = 0x2616, AeLootTargetAck = 0x2617, AiReaction = 0x26b2, - AlliedRaceDetails = 0x27f5, + AlliedRaceDetails = 0x27f6, AllAccountCriteria = 0x2571, AllAchievementData = 0x2570, AllGuildAchievements = 0x29b8, @@ -899,18 +899,18 @@ namespace Framework.Constants ArenaClearOpponents = 0x2647, ArenaCrowdControlSpellResult = 0x2630, ArenaPrepOpponentSpecializations = 0x2646, - ArtifactEndgamePowersRefunded = 0x279f, - ArtifactForgeError = 0x279d, - ArtifactRespecPrompt = 0x279e, - ArtifactXpGain = 0x27e8, + ArtifactEndgamePowersRefunded = 0x27a0, + ArtifactForgeError = 0x279e, + ArtifactRespecPrompt = 0x279f, + ArtifactXpGain = 0x27e9, AttackerStateUpdate = 0x294d, AttackStart = 0x2938, AttackStop = 0x2939, AttackSwingError = 0x2947, AttackSwingLandedLog = 0x2948, - AuctionableTokenAuctionSold = 0x27d1, - AuctionableTokenSellAtMarketPriceResponse = 0x27d0, - AuctionableTokenSellConfirmRequired = 0x27cf, + AuctionableTokenAuctionSold = 0x27d2, + AuctionableTokenSellAtMarketPriceResponse = 0x27d1, + AuctionableTokenSellConfirmRequired = 0x27d0, AuctionClosedNotification = 0x26ee, AuctionCommandResult = 0x26eb, AuctionDisableNewPostings = 0x2895, @@ -949,29 +949,29 @@ namespace Framework.Constants BattlegroundPlayerLeft = 0x292c, BattlegroundPlayerPositions = 0x2928, BattlegroundPoints = 0x2949, - BattlenetChallengeAbort = 0x2784, - BattlenetChallengeStart = 0x2783, - BattlenetNotification = 0x2801, - BattlenetResponse = 0x2800, - BattleNetConnectionStatus = 0x2802, - BattlePayAckFailed = 0x277e, - BattlePayBattlePetDelivered = 0x2773, - BattlePayCollectionItemDelivered = 0x2774, - BattlePayConfirmPurchase = 0x277d, - BattlePayDeliveryEnded = 0x2771, - BattlePayDeliveryStarted = 0x2770, + BattlenetChallengeAbort = 0x2785, + BattlenetChallengeStart = 0x2784, + BattlenetNotification = 0x2802, + BattlenetResponse = 0x2801, + BattleNetConnectionStatus = 0x2803, + BattlePayAckFailed = 0x277f, + BattlePayBattlePetDelivered = 0x2774, + BattlePayCollectionItemDelivered = 0x2775, + BattlePayConfirmPurchase = 0x277e, + BattlePayDeliveryEnded = 0x2772, + BattlePayDeliveryStarted = 0x2771, BattlePayDistributionAssignVasResponse = 0x2881, - BattlePayDistributionUnrevoked = 0x276e, - BattlePayDistributionUpdate = 0x276f, - BattlePayGetDistributionListResponse = 0x276d, - BattlePayGetProductListResponse = 0x276b, - BattlePayGetPurchaseListResponse = 0x276c, - BattlePayMountDelivered = 0x2772, - BattlePayPurchaseUpdate = 0x277c, - BattlePayStartCheckout = 0x281d, - BattlePayStartDistributionAssignToTargetResponse = 0x277a, - BattlePayStartPurchaseResponse = 0x2779, - BattlePayValidatePurchaseResponse = 0x2811, + BattlePayDistributionUnrevoked = 0x276f, + BattlePayDistributionUpdate = 0x2770, + BattlePayGetDistributionListResponse = 0x276e, + BattlePayGetProductListResponse = 0x276c, + BattlePayGetPurchaseListResponse = 0x276d, + BattlePayMountDelivered = 0x2773, + BattlePayPurchaseUpdate = 0x277d, + BattlePayStartCheckout = 0x281e, + BattlePayStartDistributionAssignToTargetResponse = 0x277b, + BattlePayStartPurchaseResponse = 0x277a, + BattlePayValidatePurchaseResponse = 0x2812, BattlePetsHealed = 0x25f2, BattlePetCageDateError = 0x2676, BattlePetDeleted = 0x25ef, @@ -1028,7 +1028,7 @@ namespace Framework.Constants CancelSpellVisual = 0x2c47, CancelSpellVisualKit = 0x2c4b, CanDuelResult = 0x2942, - CanRedeemTokenForBalanceResponse = 0x2810, + CanRedeemTokenForBalanceResponse = 0x2811, CapturePointRemoved = 0x292a, CastFailed = 0x2c5a, CategoryCooldown = 0x2c16, @@ -1039,24 +1039,25 @@ namespace Framework.Constants ChallengeModeStart = 0x2607, ChallengeModeUpdateDeathCount = 0x2608, ChangePlayerDifficultyResult = 0x3004, - ChangeRealmTicketResponse = 0x2803, + ChangeRealmTicketResponse = 0x2804, ChannelList = 0x2bc3, ChannelNotify = 0x2bc0, ChannelNotifyJoined = 0x2bc1, ChannelNotifyLeft = 0x2bc2, - CharacterCheckUpgradeResult = 0x27ba, + CharacterCheckUpgradeResult = 0x27bb, CharacterLoginFailed = 0x2700, - CharacterObjectTestResponse = 0x2782, - CharacterRenameResult = 0x275d, - CharacterUpgradeAborted = 0x27b9, - CharacterUpgradeComplete = 0x27b8, - CharacterUpgradeManualUnrevokeResult = 0x27bb, - CharacterUpgradeStarted = 0x27b7, + CharacterObjectTestResponse = 0x2783, + CharacterRenameResult = 0x275e, + CharacterUpgradeAborted = 0x27ba, + CharacterUpgradeComplete = 0x27b9, + CharacterUpgradeManualUnrevokeResult = 0x27bc, + CharacterUpgradeStarted = 0x27b8, CharCustomizeFailure = 0x26dd, CharCustomizeSuccess = 0x26de, - CharFactionChangeResult = 0x27a4, + CharFactionChangeResult = 0x27a5, Chat = 0x2bad, ChatAutoResponded = 0x2bb8, + ChatCanLocalWhisperTargetResponse = 0x2bca, ChatDown = 0x2bbd, ChatIgnoredAccountMuted = 0x2bac, ChatIsDown = 0x2bbe, @@ -1081,7 +1082,7 @@ namespace Framework.Constants ClearSpellCharges = 0x2c28, ClearTarget = 0x2943, ClearTreasurePickerCache = 0x2aa1, - CloseArtifactForge = 0x279c, + CloseArtifactForge = 0x279d, ClubFinderErrorMessage = 0x284b, ClubFinderGetClubPostingIdsResponse = 0x284e, ClubFinderLookupClubPostingsList = 0x284c, @@ -1094,32 +1095,32 @@ namespace Framework.Constants CommentatorMapInfo = 0x2702, CommentatorPlayerInfo = 0x2703, CommentatorStateChanged = 0x2701, - CommerceTokenGetCountResponse = 0x27cc, - CommerceTokenGetLogResponse = 0x27d8, - CommerceTokenGetMarketPriceResponse = 0x27ce, - CommerceTokenUpdate = 0x27cd, + CommerceTokenGetCountResponse = 0x27cd, + CommerceTokenGetLogResponse = 0x27d9, + CommerceTokenGetMarketPriceResponse = 0x27cf, + CommerceTokenUpdate = 0x27ce, ComplaintResult = 0x26a9, - CompleteShipmentResponse = 0x2795, - ConfirmPartyInvite = 0x280f, + CompleteShipmentResponse = 0x2796, + ConfirmPartyInvite = 0x2810, ConnectTo = 0x304d, - ConquestFormulaConstants = 0x277f, + ConquestFormulaConstants = 0x2780, ConsoleWrite = 0x2633, - ConsumableTokenBuyAtMarketPriceResponse = 0x27d4, - ConsumableTokenBuyChoiceRequired = 0x27d3, - ConsumableTokenCanVeteranBuyResponse = 0x27d2, - ConsumableTokenRedeemConfirmRequired = 0x27d6, - ConsumableTokenRedeemResponse = 0x27d7, - ContactList = 0x2780, - ContributionLastUpdateResponse = 0x2816, + ConsumableTokenBuyAtMarketPriceResponse = 0x27d5, + ConsumableTokenBuyChoiceRequired = 0x27d4, + ConsumableTokenCanVeteranBuyResponse = 0x27d3, + ConsumableTokenRedeemConfirmRequired = 0x27d7, + ConsumableTokenRedeemResponse = 0x27d8, + ContactList = 0x2781, + ContributionLastUpdateResponse = 0x2817, ControlUpdate = 0x2645, ConvertItemsToCurrencyValue = 0x2875, CooldownCheat = 0x2733, CooldownEvent = 0x26b6, CorpseLocation = 0x264d, - CorpseReclaimDelay = 0x2744, + CorpseReclaimDelay = 0x2745, CorpseTransportQuery = 0x270d, CovenantCallingsAvailabilityResponse = 0x2aa3, - CovenantPreviewOpenNpc = 0x27f8, + CovenantPreviewOpenNpc = 0x27f9, CovenantRenownSendCatchupState = 0x2876, CraftingHouseHelloResponse = 0x28a6, CraftingOrderCancelResult = 0x28a2, @@ -1133,14 +1134,14 @@ namespace Framework.Constants CraftingOrderUpdateState = 0x28a7, CraftEnchantResult = 0x28a5, CreateChar = 0x26fc, - CreateShipmentResponse = 0x2794, + CreateShipmentResponse = 0x2795, CreatorVisualsOverride = 0x28aa, CriteriaDeleted = 0x26e2, CriteriaUpdate = 0x26dc, CrossedInebriationThreshold = 0x26be, CustomLoadScreen = 0x25cb, DailyQuestsReset = 0x2a80, - DamageCalcLog = 0x27c1, + DamageCalcLog = 0x27c2, DbReply = 0x290e, DeathReleaseLoc = 0x26cf, DebugMenuManagerFullUpdate = 0x2653, @@ -1159,7 +1160,7 @@ namespace Framework.Constants DisplayQuestPopup = 0x2a9e, DisplaySoulbindUpdateMessage = 0x287a, DisplayToast = 0x2622, - DisplayWorldText = 0x27e9, + DisplayWorldText = 0x27ea, DontAutoPushSpellsToActionBar = 0x25e0, DropNewConnection = 0x304c, DuelArranged = 0x293c, @@ -1170,24 +1171,24 @@ namespace Framework.Constants DuelRequested = 0x293b, DuelWinner = 0x2941, DurabilityDamageDeath = 0x2740, - Emote = 0x27c2, + Emote = 0x27c3, EnableBarberShop = 0x26b9, EnchantmentLog = 0x270e, - EncounterEnd = 0x2778, - EncounterStart = 0x2777, + EncounterEnd = 0x2779, + EncounterStart = 0x2778, EndLightningStorm = 0x26a6, EnsureWorldLoaded = 0x2889, EnterEncryptedMode = 0x3049, EnumCharactersResult = 0x2583, - EnumVasPurchaseStatesResponse = 0x27ee, + EnumVasPurchaseStatesResponse = 0x27ef, EnvironmentalDamageLog = 0x2c21, EquipmentSetId = 0x26af, ExpectedSpamRecords = 0x2bb1, - ExplorationExperience = 0x2759, + ExplorationExperience = 0x275a, ExternalTransactionIdGenerated = 0x2873, FactionBonusInfo = 0x271f, FailedPlayerCondition = 0x2ffa, - FailedQuestTurnIn = 0x280c, + FailedQuestTurnIn = 0x280d, FeatureSystemStatus = 0x25bf, FeatureSystemStatusGlueScreen = 0x25c0, FeignDeathResisted = 0x273f, @@ -1195,13 +1196,13 @@ namespace Framework.Constants FishNotHooked = 0x26cb, FlightSplineSync = 0x2e2b, ForcedDeathUpdate = 0x26d0, - ForceAnim = 0x274b, - ForceAnimations = 0x274c, + ForceAnim = 0x274c, + ForceAnimations = 0x274d, ForceObjectRelink = 0x2649, - FriendStatus = 0x2781, - GainMawPower = 0x27dd, + FriendStatus = 0x2782, + GainMawPower = 0x27de, GameObjectActivateAnimKit = 0x25c3, - GameObjectBase = 0x2823, + GameObjectBase = 0x2824, GameObjectCloseInteraction = 0x288d, GameObjectCustomAnim = 0x25c4, GameObjectDespawn = 0x25c5, @@ -1209,7 +1210,7 @@ namespace Framework.Constants GameObjectPlaySpellVisual = 0x2c4e, GameObjectPlaySpellVisualKit = 0x2c4d, GameObjectResetState = 0x2719, - GameObjectSetStateLocal = 0x27ff, + GameObjectSetStateLocal = 0x2800, GameSpeedSet = 0x267f, GameTimeSet = 0x2707, GameTimeUpdate = 0x2706, @@ -1284,17 +1285,17 @@ namespace Framework.Constants GarrisonUpgradeResult = 0x296b, GarrisonUseRecallPortalResult = 0x297d, GenerateRandomCharacterNameResult = 0x2585, - GenerateSsoTokenResponse = 0x2817, - GetAccountCharacterListResult = 0x275b, + GenerateSsoTokenResponse = 0x2818, + GetAccountCharacterListResult = 0x275c, GetGarrisonInfoResult = 0x295e, - GetLandingPageShipmentsResponse = 0x2797, - GetRemainingGameTimeResponse = 0x27d5, - GetSelectedTrophyIdResponse = 0x27bf, - GetShipmentsOfTypeResponse = 0x2796, - GetShipmentInfoResponse = 0x2792, - GetTrophyListResponse = 0x27be, - GetVasAccountCharacterListResult = 0x27ea, - GetVasTransferTargetRealmListResult = 0x27eb, + GetLandingPageShipmentsResponse = 0x2798, + GetRemainingGameTimeResponse = 0x27d6, + GetSelectedTrophyIdResponse = 0x27c0, + GetShipmentsOfTypeResponse = 0x2797, + GetShipmentInfoResponse = 0x2793, + GetTrophyListResponse = 0x27bf, + GetVasAccountCharacterListResult = 0x27eb, + GetVasTransferTargetRealmListResult = 0x27ec, GmPlayerInfo = 0x3005, GmRequestPlayerInfo = 0x2ffb, GmTicketCaseStatus = 0x26a1, @@ -1303,16 +1304,16 @@ namespace Framework.Constants GossipComplete = 0x2a97, GossipMessage = 0x2a98, GossipOptionNpcInteraction = 0x2aa7, - GossipPoi = 0x278f, + GossipPoi = 0x2790, GossipQuestUpdate = 0x2a99, GossipRefreshOptions = 0x2aa6, GroupActionThrottled = 0x2590, - GroupAutoKick = 0x278c, - GroupDecline = 0x2788, - GroupDestroyed = 0x278b, + GroupAutoKick = 0x278d, + GroupDecline = 0x2789, + GroupDestroyed = 0x278c, GroupNewLeader = 0x262b, - GroupRequestDecline = 0x2789, - GroupUninvite = 0x278a, + GroupRequestDecline = 0x278a, + GroupUninvite = 0x278b, GuildAchievementDeleted = 0x29c5, GuildAchievementEarned = 0x29c4, GuildAchievementMembers = 0x29c7, @@ -1374,49 +1375,49 @@ namespace Framework.Constants InitialSetup = 0x2580, InitWorldStates = 0x2741, InspectResult = 0x262f, - InstanceEncounterChangePriority = 0x27aa, - InstanceEncounterDisengageUnit = 0x27a9, - InstanceEncounterEnd = 0x27b2, - InstanceEncounterEngageUnit = 0x27a8, - InstanceEncounterGainCombatResurrectionCharge = 0x27b4, - InstanceEncounterInCombatResurrection = 0x27b3, - InstanceEncounterObjectiveComplete = 0x27ad, - InstanceEncounterObjectiveStart = 0x27ac, - InstanceEncounterObjectiveUpdate = 0x27b1, - InstanceEncounterPhaseShiftChanged = 0x27b5, - InstanceEncounterStart = 0x27ae, - InstanceEncounterTimerStart = 0x27ab, - InstanceEncounterUpdateAllowReleaseInProgress = 0x27b0, - InstanceEncounterUpdateSuppressRelease = 0x27af, + InstanceEncounterChangePriority = 0x27ab, + InstanceEncounterDisengageUnit = 0x27aa, + InstanceEncounterEnd = 0x27b3, + InstanceEncounterEngageUnit = 0x27a9, + InstanceEncounterGainCombatResurrectionCharge = 0x27b5, + InstanceEncounterInCombatResurrection = 0x27b4, + InstanceEncounterObjectiveComplete = 0x27ae, + InstanceEncounterObjectiveStart = 0x27ad, + InstanceEncounterObjectiveUpdate = 0x27b2, + InstanceEncounterPhaseShiftChanged = 0x27b6, + InstanceEncounterStart = 0x27af, + InstanceEncounterTimerStart = 0x27ac, + InstanceEncounterUpdateAllowReleaseInProgress = 0x27b1, + InstanceEncounterUpdateSuppressRelease = 0x27b0, InstanceGroupSizeChanged = 0x26f5, InstanceInfo = 0x2632, InstanceReset = 0x2684, InstanceResetFailed = 0x2685, - InstanceSaveCreated = 0x2776, + InstanceSaveCreated = 0x2777, InterruptPowerRegen = 0x2c5c, InvalidatePageText = 0x2918, InvalidatePlayer = 0x2fff, - InvalidPromotionCode = 0x274d, + InvalidPromotionCode = 0x274e, InventoryChangeFailure = 0x2da5, - InventoryFixupComplete = 0x280e, - InventoryFullOverflow = 0x281f, - IslandAzeriteGain = 0x2756, - IslandComplete = 0x2757, + InventoryFixupComplete = 0x280f, + InventoryFullOverflow = 0x2820, + IslandAzeriteGain = 0x2757, + IslandComplete = 0x2758, IsQuestCompleteResponse = 0x2a84, ItemChanged = 0x26e6, - ItemCooldown = 0x27c0, - ItemEnchantTimeUpdate = 0x274f, + ItemCooldown = 0x27c1, + ItemEnchantTimeUpdate = 0x2750, ItemExpirePurchaseRefund = 0x25a0, ItemInteractionComplete = 0x286b, ItemPurchaseRefundResult = 0x259e, ItemPushResult = 0x2621, - ItemTimeUpdate = 0x274e, + ItemTimeUpdate = 0x274f, KickReason = 0x2687, LatencyReportPing = 0x287d, LearnedSpells = 0x2c50, LearnPvpTalentFailed = 0x25d4, LearnTalentFailed = 0x25d3, - LegacyLootRules = 0x2824, + LegacyLootRules = 0x2825, LevelLinkingResult = 0x2851, LevelUpInfo = 0x26e4, LfgBootPlayer = 0x2a35, @@ -1446,10 +1447,10 @@ namespace Framework.Constants LfgSlotInvalid = 0x2a30, LfgTeleportDenied = 0x2a32, LfgUpdateStatus = 0x2a24, - LiveRegionAccountRestoreResult = 0x2768, - LiveRegionCharacterCopyResult = 0x2767, - LiveRegionGetAccountCharacterListResult = 0x275c, - LiveRegionKeyBindingsCopyResult = 0x2769, + LiveRegionAccountRestoreResult = 0x2769, + LiveRegionCharacterCopyResult = 0x2768, + LiveRegionGetAccountCharacterListResult = 0x275d, + LiveRegionKeyBindingsCopyResult = 0x276a, LoadCufProfiles = 0x25bc, LoadEquipmentSet = 0x2709, LobbyMatchmakerPartyInfo = 0x2891, @@ -1471,8 +1472,8 @@ namespace Framework.Constants LootRollWon = 0x2620, LossOfControlAuraUpdate = 0x266e, MailCommandResult = 0x2639, - MailListResult = 0x2750, - MailQueryNextTimeResult = 0x2751, + MailListResult = 0x2751, + MailQueryNextTimeResult = 0x2752, MapObjectivesInit = 0x294b, MapObjEvents = 0x25c6, MasterLootCandidateList = 0x261d, @@ -1482,7 +1483,7 @@ namespace Framework.Constants MirrorImageComponentedData = 0x2c14, MirrorImageCreatureData = 0x2c13, MissileCancel = 0x25c7, - ModifyCooldown = 0x275e, + ModifyCooldown = 0x275f, Motd = 0x2baf, MountResult = 0x257b, MovementEnforcementAlert = 0x2841, @@ -1593,8 +1594,8 @@ namespace Framework.Constants MoveUpdateTeleport = 0x2de1, MoveUpdateTurnRate = 0x2ddd, MoveUpdateWalkSpeed = 0x2dd8, - MultiFloorLeaveFloor = 0x27da, - MultiFloorNewFloor = 0x27d9, + MultiFloorLeaveFloor = 0x27db, + MultiFloorNewFloor = 0x27da, MythicPlusAllMapStats = 0x260b, MythicPlusCurrentAffixes = 0x260d, MythicPlusNewWeekRecord = 0x2610, @@ -1610,17 +1611,17 @@ namespace Framework.Constants OfferPetitionError = 0x26b3, OnCancelExpectedRideVehicleAura = 0x26e1, OnMonsterMove = 0x2dd4, - OpenArtifactForge = 0x279b, + OpenArtifactForge = 0x279c, OpenContainer = 0x2da6, OpenLfgDungeonFinder = 0x2a31, - OpenShipmentNpcResult = 0x2793, + OpenShipmentNpcResult = 0x2794, OverrideLight = 0x26b8, PageText = 0x2714, - PartyCommandResult = 0x278d, + PartyCommandResult = 0x278e, PartyInvite = 0x25bd, - PartyKillLog = 0x2754, - PartyMemberFullState = 0x2753, - PartyMemberPartialState = 0x2752, + PartyKillLog = 0x2755, + PartyMemberFullState = 0x2754, + PartyMemberPartialState = 0x2753, PartyNotifyLfgLeaderChange = 0x2871, PartyUpdate = 0x25f4, PastTimeEvents = 0x25c2, @@ -1635,8 +1636,8 @@ namespace Framework.Constants PetitionRenameGuildResponse = 0x29fa, PetitionShowList = 0x26bb, PetitionShowSignatures = 0x26bc, - PetitionSignResults = 0x2746, - PetActionFeedback = 0x2743, + PetitionSignResults = 0x2747, + PetActionFeedback = 0x2744, PetActionSound = 0x269e, PetAdded = 0x2595, PetBattleChatRestricted = 0x2602, @@ -1686,13 +1687,13 @@ namespace Framework.Constants PlayerSkinned = 0x3006, PlayerTutorialHighlightSpell = 0x300d, PlayerTutorialUnhighlightSpell = 0x300c, - PlayMusic = 0x2763, - PlayObjectSound = 0x2764, + PlayMusic = 0x2764, + PlayObjectSound = 0x2765, PlayOneShotAnimKit = 0x272b, PlayOrphanSpellVisual = 0x2c4a, PlayScene = 0x2634, - PlaySound = 0x2762, - PlaySpeakerbotSound = 0x2765, + PlaySound = 0x2763, + PlaySpeakerbotSound = 0x2766, PlaySpellVisual = 0x2c48, PlaySpellVisualKit = 0x2c4c, PlayTimeWarning = 0x26f9, @@ -1701,10 +1702,10 @@ namespace Framework.Constants PreloadChildMap = 0x2579, PreloadWorld = 0x2599, PrepopulateNameCache = 0x2844, - PreRessurect = 0x2761, + PreRessurect = 0x2762, PrintNotification = 0x25ca, - ProcResist = 0x2755, - ProfessionGossip = 0x27fa, + ProcResist = 0x2756, + ProfessionGossip = 0x27fb, PushSpellToActionBar = 0x2c54, PvpCredit = 0x2945, PvpMatchComplete = 0x294f, @@ -1757,11 +1758,11 @@ namespace Framework.Constants QuestUpdateComplete = 0x2a89, QuestUpdateFailed = 0x2a8a, QuestUpdateFailedTimer = 0x2a8b, - QueueSummaryUpdate = 0x280d, + QueueSummaryUpdate = 0x280e, RafAccountInfo = 0x2852, RafActivityStateChanged = 0x2863, - RaidDifficultySet = 0x27a5, - RaidGroupOnly = 0x27a7, + RaidDifficultySet = 0x27a6, + RaidGroupOnly = 0x27a8, RaidInstanceMessage = 0x2bb4, RaidMarkersChanged = 0x25a4, RandomRoll = 0x262e, @@ -1769,18 +1770,18 @@ namespace Framework.Constants ReadyCheckCompleted = 0x25f8, ReadyCheckResponse = 0x25f7, ReadyCheckStarted = 0x25f6, - ReadItemResultFailed = 0x27a1, - ReadItemResultOk = 0x2798, - RealmLookupInfo = 0x27c5, + ReadItemResultFailed = 0x27a2, + ReadItemResultOk = 0x2799, + RealmLookupInfo = 0x27c6, RealmQueryResponse = 0x2913, - ReattachResurrect = 0x2745, + ReattachResurrect = 0x2746, RecraftItemResult = 0x28a3, RecruitAFriendFailure = 0x26bd, RefreshComponent = 0x264f, RefreshSpellHistory = 0x2c2c, RemoveItemPassive = 0x25ac, RemoveSpellFromActionBar = 0x2c55, - ReplaceTrophyResponse = 0x27bd, + ReplaceTrophyResponse = 0x27be, ReportPvpPlayerAfkResult = 0x3001, RequestCemeteryListResponse = 0x2591, RequestPvpRewardsResponse = 0x2935, @@ -1804,21 +1805,21 @@ namespace Framework.Constants ResumeToken = 0x25aa, ResurrectRequest = 0x257e, ResyncRunes = 0x2c62, - ReturningPlayerPrompt = 0x27a0, + ReturningPlayerPrompt = 0x27a1, ReturnApplicantList = 0x2848, ReturnRecruitingClubs = 0x2847, RoleChangedInform = 0x258d, RoleChosen = 0x2a39, RolePollInform = 0x258e, - RuneforgeLegendaryCraftingOpenNpc = 0x27f9, + RuneforgeLegendaryCraftingOpenNpc = 0x27fa, RuneRegenDebug = 0x25b6, - ScenarioCompleted = 0x27e7, + ScenarioCompleted = 0x27e8, ScenarioPois = 0x2631, ScenarioProgressUpdate = 0x262a, - ScenarioShowCriteria = 0x27fd, + ScenarioShowCriteria = 0x27fe, ScenarioState = 0x2629, - ScenarioUiUpdate = 0x27fc, - ScenarioVacate = 0x27a2, + ScenarioUiUpdate = 0x27fd, + ScenarioVacate = 0x27a3, SceneObjectEvent = 0x25e1, SceneObjectPetBattleFinalRound = 0x25e6, SceneObjectPetBattleFinished = 0x25e7, @@ -1842,7 +1843,7 @@ namespace Framework.Constants SetupCurrency = 0x2573, SetupResearchHistory = 0x2586, SetAiAnimKit = 0x272a, - SetAllTaskProgress = 0x2786, + SetAllTaskProgress = 0x2787, SetAnimTier = 0x272e, SetChrUpgradeTier = 0x25de, SetCurrency = 0x2574, @@ -1855,7 +1856,7 @@ namespace Framework.Constants SetFlatSpellModifier = 0x2c39, SetForcedReactions = 0x2718, SetItemPurchaseData = 0x259f, - SetLootMethodFailed = 0x27cb, + SetLootMethodFailed = 0x27cc, SetMaxWeeklyQuantity = 0x25a2, SetMeleeAnimKit = 0x272d, SetMovementAnimKit = 0x272c, @@ -1867,7 +1868,7 @@ namespace Framework.Constants SetQuestReplayCooldownOverride = 0x285b, SetShipmentReadyResponse = 0x2998, SetSpellCharges = 0x2c29, - SetTaskComplete = 0x2787, + SetTaskComplete = 0x2788, SetTimeZoneInformation = 0x2675, SetVehicleRecId = 0x26f2, ShadowlandsCapacitanceUpdate = 0x288a, @@ -1875,7 +1876,7 @@ namespace Framework.Constants ShowNeutralPlayerFactionSelectUi = 0x25da, ShowQuestCompletionText = 0x2a95, ShowTaxiNodes = 0x26c9, - ShowTradeSkillResponse = 0x276a, + ShowTradeSkillResponse = 0x276b, SocialContractRequestResponse = 0x2893, SocketGemsFailure = 0x2722, SocketGemsSuccess = 0x2721, @@ -1920,10 +1921,10 @@ namespace Framework.Constants StartTimer = 0x25a6, StopElapsedTimer = 0x2605, StopMirrorTimer = 0x270c, - StopSpeakerbotSound = 0x2766, + StopSpeakerbotSound = 0x2767, StopTimer = 0x25a7, StreamingMovies = 0x25a5, - SuggestInviteInform = 0x278e, + SuggestInviteInform = 0x278f, SummonCancel = 0x26ae, SummonRaidMemberValidateFailed = 0x258f, SummonRequest = 0x271c, @@ -1952,53 +1953,52 @@ namespace Framework.Constants TransferAborted = 0x26fe, TransferPending = 0x25cd, TreasurePickerResponse = 0x291f, - TriggerCinematic = 0x27c3, + TriggerCinematic = 0x27c4, TriggerMovie = 0x26c7, - TurnInPetitionResult = 0x2748, - TutorialFlags = 0x27b6, - TwitterStatus = 0x3043, + TurnInPetitionResult = 0x2749, + TutorialFlags = 0x27b7, UiHealingRangeModified = 0x273e, UiMapQuestLinesResponse = 0x2aa2, - UndeleteCharacterResponse = 0x27c6, - UndeleteCooldownStatusResponse = 0x27c7, + UndeleteCharacterResponse = 0x27c7, + UndeleteCooldownStatusResponse = 0x27c8, UnlearnedSpells = 0x2c51, UnloadChildMap = 0x257a, UpdateAadcStatusResponse = 0x287f, UpdateAccountData = 0x2704, UpdateActionButtons = 0x25df, - UpdateBnetSessionKey = 0x281e, + UpdateBnetSessionKey = 0x281f, UpdateCapturePoint = 0x2929, - UpdateCelestialBody = 0x281a, - UpdateCharacterFlags = 0x27bc, - UpdateChargeCategoryCooldown = 0x2760, - UpdateCooldown = 0x275f, + UpdateCelestialBody = 0x281b, + UpdateCharacterFlags = 0x27bd, + UpdateChargeCategoryCooldown = 0x2761, + UpdateCooldown = 0x2760, UpdateCraftingNpcRecipes = 0x2996, UpdateDailyMissionCounter = 0x297f, UpdateExpansionLevel = 0x2644, - UpdateGameTimeState = 0x2821, + UpdateGameTimeState = 0x2822, UpdateInstanceOwnership = 0x26a7, UpdateLastInstance = 0x2686, - UpdateObject = 0x27c4, + UpdateObject = 0x27c5, UpdatePrimarySpec = 0x25d7, UpdateRecentPlayerGuids = 0x25f5, UpdateTalentData = 0x25d6, - UpdateTaskProgress = 0x2785, + UpdateTaskProgress = 0x2786, UpdateWeeklySpellUsage = 0x2c19, - UpdateWorldState = 0x2742, + UpdateWorldState = 0x2743, UserlistAdd = 0x2bb9, UserlistRemove = 0x2bba, UserlistUpdate = 0x2bbb, - UseEquipmentSetResult = 0x2749, - VasCheckTransferOkResponse = 0x2815, - VasGetQueueMinutesResponse = 0x2813, - VasGetServiceStatusResponse = 0x2812, - VasPurchaseComplete = 0x27ed, - VasPurchaseStateUpdate = 0x27ec, + UseEquipmentSetResult = 0x274a, + VasCheckTransferOkResponse = 0x2816, + VasGetQueueMinutesResponse = 0x2814, + VasGetServiceStatusResponse = 0x2813, + VasPurchaseComplete = 0x27ee, + VasPurchaseStateUpdate = 0x27ed, VendorInventory = 0x25b8, VignetteUpdate = 0x3008, - VoiceChannelInfoResponse = 0x2819, + VoiceChannelInfoResponse = 0x281a, VoiceChannelSttTokenResponse = 0x2879, - VoiceLoginResponse = 0x2818, + VoiceLoginResponse = 0x2819, VoidItemSwapResponse = 0x2da4, VoidStorageContents = 0x2da1, VoidStorageFailed = 0x2da0, @@ -2007,9 +2007,9 @@ namespace Framework.Constants WaitQueueFinish = 0x256f, WaitQueueUpdate = 0x256e, Warden3Data = 0x2577, - Warden3Disabled = 0x281c, - Warden3Enabled = 0x281b, - WarfrontComplete = 0x2758, + Warden3Disabled = 0x281d, + Warden3Enabled = 0x281c, + WarfrontComplete = 0x2759, WargameRequestSuccessfullySentToOpponent = 0x2933, Weather = 0x26a4, WeeklyRewardsProgressResult = 0x2870, @@ -2018,13 +2018,13 @@ namespace Framework.Constants WeeklySpellUsage = 0x2c18, Who = 0x2bae, WhoIs = 0x26a3, - WillBeKickedForAddedSubscriptionTime = 0x2820, + WillBeKickedForAddedSubscriptionTime = 0x2821, WorldQuestUpdateResponse = 0x300f, WorldServerInfo = 0x25ae, WowEntitlementNotification = 0x2866, XpAwardedFromCurrency = 0x28a8, XpGainAborted = 0x25c9, - XpGainEnabled = 0x27a6, + XpGainEnabled = 0x27a7, ZoneUnderAttack = 0x2bb5, // Opcodes That Are Not Generated Automatically diff --git a/Source/Framework/Constants/SharedConst.cs b/Source/Framework/Constants/SharedConst.cs index 2df3a5112..f2e0f1c84 100644 --- a/Source/Framework/Constants/SharedConst.cs +++ b/Source/Framework/Constants/SharedConst.cs @@ -3006,41 +3006,43 @@ namespace Framework.Constants SocketingCypherGemOnlyInCypherslot = 1077, SocketingRequiresTinkerGem = 1078, SocketingTinkerGemOnlyInTinkerslot = 1079, - LevelLinkingResultLinked = 1080, - LevelLinkingResultUnlinked = 1081, - ClubFinderErrorPostClub = 1082, - ClubFinderErrorApplyClub = 1083, - ClubFinderErrorRespondApplicant = 1084, - ClubFinderErrorCancelApplication = 1085, - ClubFinderErrorTypeAcceptApplication = 1086, - ClubFinderErrorTypeNoInvitePermissions = 1087, - ClubFinderErrorTypeNoPostingPermissions = 1088, - ClubFinderErrorTypeApplicantList = 1089, - ClubFinderErrorTypeApplicantListNoPerm = 1090, - ClubFinderErrorTypeFinderNotAvailable = 1091, - ClubFinderErrorTypeGetPostingIds = 1092, - ClubFinderErrorTypeJoinApplication = 1093, - ClubFinderErrorTypeRealmNotEligible = 1094, - ClubFinderErrorTypeFlaggedRename = 1095, - ClubFinderErrorTypeFlaggedDescriptionChange = 1096, - ItemInteractionNotEnoughGold = 1097, - ItemInteractionNotEnoughCurrency = 1098, - PlayerChoiceErrorPendingChoice = 1099, - SoulbindInvalidConduit = 1100, - SoulbindInvalidConduitItem = 1101, - SoulbindInvalidTalent = 1102, - SoulbindDuplicateConduit = 1103, - ActivateSoulbindS = 1104, - ActivateSoulbindFailedRestArea = 1105, - CantUseProfanity = 1106, - NotInPetBattle = 1107, - NotInNpe = 1108, - NoSpec = 1109, - NoDominationshardOverwrite = 1110, - UseWeeklyRewardsDisabled = 1111, - CrossFactionGroupJoined = 1112, - CantTargetUnfriendlyInOverworld = 1113, - EquipablespellsSlotsFull = 1114 + SocketingRequiresPrimordialGem = 1080, + SocketingPrimordialGemOnlyInPrimordialslot = 1081, + LevelLinkingResultLinked = 1082, + LevelLinkingResultUnlinked = 1083, + ClubFinderErrorPostClub = 1084, + ClubFinderErrorApplyClub = 1085, + ClubFinderErrorRespondApplicant = 1086, + ClubFinderErrorCancelApplication = 1087, + ClubFinderErrorTypeAcceptApplication = 1088, + ClubFinderErrorTypeNoInvitePermissions = 1089, + ClubFinderErrorTypeNoPostingPermissions = 1090, + ClubFinderErrorTypeApplicantList = 1091, + ClubFinderErrorTypeApplicantListNoPerm = 1092, + ClubFinderErrorTypeFinderNotAvailable = 1093, + ClubFinderErrorTypeGetPostingIds = 1094, + ClubFinderErrorTypeJoinApplication = 1095, + ClubFinderErrorTypeRealmNotEligible = 1096, + ClubFinderErrorTypeFlaggedRename = 1097, + ClubFinderErrorTypeFlaggedDescriptionChange = 1098, + ItemInteractionNotEnoughGold = 1099, + ItemInteractionNotEnoughCurrency = 1100, + PlayerChoiceErrorPendingChoice = 1101, + SoulbindInvalidConduit = 1102, + SoulbindInvalidConduitItem = 1103, + SoulbindInvalidTalent = 1104, + SoulbindDuplicateConduit = 1105, + ActivateSoulbindS = 1106, + ActivateSoulbindFailedRestArea = 1107, + CantUseProfanity = 1108, + NotInPetBattle = 1109, + NotInNpe = 1110, + NoSpec = 1111, + NoDominationshardOverwrite = 1112, + UseWeeklyRewardsDisabled = 1113, + CrossFactionGroupJoined = 1114, + CantTargetUnfriendlyInOverworld = 1115, + EquipablespellsSlotsFull = 1116 } public enum SceneFlags diff --git a/Source/Framework/Constants/Spells/SpellConst.cs b/Source/Framework/Constants/Spells/SpellConst.cs index b1bb4a057..f5239ad6d 100644 --- a/Source/Framework/Constants/Spells/SpellConst.cs +++ b/Source/Framework/Constants/Spells/SpellConst.cs @@ -2481,6 +2481,9 @@ namespace Framework.Constants Gathering = 302, CreateTraitTreeConfig = 303, // Miscvalue[0] = Traittreeid ChangeActiveCombatTraitConfig = 304, + Unk305 = 305, + Unk306 = 306, + TotalSpellEffects } diff --git a/Source/Framework/Database/Databases/HotfixDatabase.cs b/Source/Framework/Database/Databases/HotfixDatabase.cs index 2c5059c14..a6f147900 100644 --- a/Source/Framework/Database/Databases/HotfixDatabase.cs +++ b/Source/Framework/Database/Databases/HotfixDatabase.cs @@ -828,7 +828,7 @@ namespace Framework.Database PrepareStatement(HotfixStatements.SEL_LANGUAGE_WORDS, "SELECT ID, Word, LanguageID FROM language_words WHERE (`VerifiedBuild` > 0) = ?"); // Languages.db2 - PrepareStatement(HotfixStatements.SEL_LANGUAGES, "SELECT ID, Name, Flags, UiTextureKitID, UiTextureKitElementCount FROM languages" + + PrepareStatement(HotfixStatements.SEL_LANGUAGES, "SELECT Name, ID, Flags, UiTextureKitID, UiTextureKitElementCount, LearningCurveID FROM languages" + " WHERE (`VerifiedBuild` > 0) = ?"); PrepareStatement(HotfixStatements.SEL_LANGUAGES_LOCALE, "SELECT ID, Name_lang FROM languages_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?"); diff --git a/Source/Game/DataStorage/CliDB.cs b/Source/Game/DataStorage/CliDB.cs index 55d0e8b6a..01329aae5 100644 --- a/Source/Game/DataStorage/CliDB.cs +++ b/Source/Game/DataStorage/CliDB.cs @@ -419,13 +419,13 @@ namespace Game.DataStorage } // Check loaded DB2 files proper version - if (!AreaTableStorage.ContainsKey(14618) || // last area added in 10.0.5 (47660) - !CharTitlesStorage.ContainsKey(753) || // last char title added in 10.0.5 (47660) - !GemPropertiesStorage.ContainsKey(4028) || // last gem property added in 10.0.5 (47660) - !ItemStorage.ContainsKey(203716) || // last item added in 10.0.5 (47660) - !ItemExtendedCostStorage.ContainsKey(7882) || // last item extended cost added in 10.0.5 (47660) - !MapStorage.ContainsKey(2582) || // last map added in 10.0.5 (47660) - !SpellNameStorage.ContainsKey(401848)) // last spell added in 10.0.5 (47660) + if (!AreaTableStorage.ContainsKey(14720) || // last area added in 10.0.7 (48520) + !CharTitlesStorage.ContainsKey(762) || // last char title added in 10.0.7 (48520) + !GemPropertiesStorage.ContainsKey(4059) || // last gem property added in 10.0.7 (48520) + !ItemStorage.ContainsKey(205244) || // last item added in 10.0.7 (48520) + !ItemExtendedCostStorage.ContainsKey(8043) || // last item extended cost added in 10.0.7 (48520) + !MapStorage.ContainsKey(2616) || // last map added in 10.0.7 (48520) + !SpellNameStorage.ContainsKey(409033)) // last spell added in 10.0.7 (48520) { 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/A_Records.cs b/Source/Game/DataStorage/Structs/A_Records.cs index 782b1bd9f..04bbd50e0 100644 --- a/Source/Game/DataStorage/Structs/A_Records.cs +++ b/Source/Game/DataStorage/Structs/A_Records.cs @@ -167,7 +167,7 @@ namespace Game.DataStorage public float BoxYaw; public sbyte ShapeType; public short ShapeID; - public short AreaTriggerActionSetID; + public int AreaTriggerActionSetID; public sbyte Flags; } diff --git a/Source/Game/DataStorage/Structs/C_Records.cs b/Source/Game/DataStorage/Structs/C_Records.cs index c6a330dd8..05e385fb4 100644 --- a/Source/Game/DataStorage/Structs/C_Records.cs +++ b/Source/Game/DataStorage/Structs/C_Records.cs @@ -513,7 +513,7 @@ namespace Game.DataStorage public int MinAmount; public int MaxAmount; public int ContainerIconID; - public int ContainerQuality; + public sbyte ContainerQuality; public int OnLootSpellVisualKitID; public uint CurrencyTypesID; } diff --git a/Source/Game/DataStorage/Structs/D_Records.cs b/Source/Game/DataStorage/Structs/D_Records.cs index d5d545383..bf8a1b2e0 100644 --- a/Source/Game/DataStorage/Structs/D_Records.cs +++ b/Source/Game/DataStorage/Structs/D_Records.cs @@ -45,9 +45,9 @@ namespace Game.DataStorage public DifficultyFlags Flags; public byte ItemContext; public byte ToggleDifficultyID; - public ushort GroupSizeHealthCurveID; - public ushort GroupSizeDmgCurveID; - public ushort GroupSizeSpellPointsCurveID; + public uint GroupSizeHealthCurveID; + public uint GroupSizeDmgCurveID; + public uint GroupSizeSpellPointsCurveID; } public sealed class DungeonEncounterRecord diff --git a/Source/Game/DataStorage/Structs/G_Records.cs b/Source/Game/DataStorage/Structs/G_Records.cs index 70ea74d89..d2eaf97ce 100644 --- a/Source/Game/DataStorage/Structs/G_Records.cs +++ b/Source/Game/DataStorage/Structs/G_Records.cs @@ -69,7 +69,7 @@ namespace Game.DataStorage public string AllianceName; public string Description; public string Tooltip; - public byte GarrTypeID; + public sbyte GarrTypeID; public sbyte BuildingType; public uint HordeGameObjectID; public uint AllianceGameObjectID; @@ -118,7 +118,7 @@ namespace Game.DataStorage public string HordeSourceText; public string AllianceSourceText; public string TitleName; - public byte GarrTypeID; + public sbyte GarrTypeID; public sbyte GarrFollowerTypeID; public int HordeCreatureID; public int AllianceCreatureID; @@ -167,7 +167,7 @@ namespace Game.DataStorage public LocalizedString Description; public Vector2 MapPos; public Vector2 WorldPos; - public byte GarrTypeID; + public sbyte GarrTypeID; public byte GarrMissionTypeID; public sbyte GarrFollowerTypeID; public byte MaxFollowers; @@ -248,7 +248,7 @@ namespace Game.DataStorage { public uint Id; public string Name; - public byte GarrTypeID; + public sbyte GarrTypeID; public int ClassID; public sbyte MaxTiers; public sbyte UiOrder; diff --git a/Source/Game/DataStorage/Structs/L_Records.cs b/Source/Game/DataStorage/Structs/L_Records.cs index 25ac0f1f3..8f5e1ed7e 100644 --- a/Source/Game/DataStorage/Structs/L_Records.cs +++ b/Source/Game/DataStorage/Structs/L_Records.cs @@ -15,11 +15,12 @@ namespace Game.DataStorage public sealed class LanguagesRecord { - public uint Id; public LocalizedString Name; + public uint Id; public int Flags; public int UiTextureKitID; public int UiTextureKitElementCount; + public int LearningCurveID; } public sealed class LFGDungeonsRecord diff --git a/Source/Game/DataStorage/Structs/Q_Records.cs b/Source/Game/DataStorage/Structs/Q_Records.cs index b90c6ede6..b3a6a700a 100644 --- a/Source/Game/DataStorage/Structs/Q_Records.cs +++ b/Source/Game/DataStorage/Structs/Q_Records.cs @@ -17,7 +17,7 @@ namespace Game.DataStorage public LocalizedString InfoName; public sbyte Type; public int Modifiers; - public int Profession; + public ushort Profession; } public sealed class QuestLineXQuestRecord diff --git a/Source/Game/DataStorage/Structs/T_Records.cs b/Source/Game/DataStorage/Structs/T_Records.cs index 6e4697dbc..8c60d61fc 100644 --- a/Source/Game/DataStorage/Structs/T_Records.cs +++ b/Source/Game/DataStorage/Structs/T_Records.cs @@ -249,7 +249,7 @@ namespace Game.DataStorage public sealed class TraitNodeXTraitCostRecord { public uint Id; - public uint TraitNodeID; + public int TraitNodeID; public int TraitCostID; } diff --git a/Source/Game/Entities/Object/Update/UpdateFields.cs b/Source/Game/Entities/Object/Update/UpdateFields.cs index 2d5008080..ce467c66a 100644 --- a/Source/Game/Entities/Object/Update/UpdateFields.cs +++ b/Source/Game/Entities/Object/Update/UpdateFields.cs @@ -2596,11 +2596,11 @@ namespace Game.Entities public UpdateField CovenantID = new(32, 34); public UpdateField SoulbindID = new(32, 35); public UpdateField DungeonScore = new(32, 36); - public UpdateFieldArray QuestLog = new(125, 37, 38); - public UpdateFieldArray VisibleItems = new(19, 163, 164); - public UpdateFieldArray AvgItemLevel = new(6, 183, 184); + public UpdateFieldArray QuestLog = new(175, 37, 38); + public UpdateFieldArray VisibleItems = new(19, 213, 214); + public UpdateFieldArray AvgItemLevel = new(6, 233, 234); - public PlayerData() : base(0, TypeId.Player, 190) { } + public PlayerData() : base(0, TypeId.Player, 240) { } public void WriteCreate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, Player owner, Player receiver) { @@ -2622,10 +2622,9 @@ namespace Game.Entities data.WriteInt32(GuildTimeStamp); if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.PartyMember)) { - for (int i = 0; i < 125; ++i) - { + for (int i = 0; i < 175; ++i) QuestLog[i].WriteCreate(data, owner, receiver); - } + data.WriteInt32(QuestSessionQuestLog.Size()); } for (int i = 0; i < 19; ++i) @@ -2681,7 +2680,7 @@ namespace Game.Entities public void WriteUpdate(WorldPacket data, UpdateFieldFlag fieldVisibilityFlags, Player owner, Player receiver) { - UpdateMask allowedMaskForTarget = new(188, new[] { 0xFFFFFFEDu, 0x0000001Fu, 0x00000000u, 0x00000000u, 0x00000000u, 0x3FFFFFF8u }); + UpdateMask allowedMaskForTarget = new(188, new[] { 0xFFFFFFEDu, 0x0000001Fu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFE00000u, 0x0000FFFFu }); AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); WriteUpdate(data, _changesMask & allowedMaskForTarget, false, owner, receiver); } @@ -2689,20 +2688,20 @@ namespace Game.Entities public void AppendAllowedFieldsMaskForFlag(UpdateMask allowedMaskForTarget, UpdateFieldFlag fieldVisibilityFlags) { if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag.PartyMember)) - allowedMaskForTarget.OR(new UpdateMask(188, new[] { 0x00000012u, 0xFFFFFFE0u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x00000007u })); + allowedMaskForTarget.OR(new UpdateMask(188, new[] { 0x00000012u, 0xFFFFFFE0u, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0xFFFFFFFFu, 0x001FFFFFu, 0x00000000u })); } public void FilterDisallowedFieldsMaskForFlag(UpdateMask changesMask, UpdateFieldFlag fieldVisibilityFlags) { - UpdateMask allowedMaskForTarget = new(188, new[] { 0xFFFFFFEDu, 0x0000001Fu, 0x00000000u, 0x00000000u, 0x00000000u, 0x3FFFFFF8u }); + UpdateMask allowedMaskForTarget = new(188, new[] { 0xFFFFFFEDu, 0x0000001Fu, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xFFE00000u, 0x0000FFFFu }); AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags); changesMask.AND(allowedMaskForTarget); } public void WriteUpdate(WorldPacket data, UpdateMask changesMask, bool ignoreNestedChangesMask, Player owner, Player receiver) { - data.WriteBits(changesMask.GetBlocksMask(0), 6); - for (uint i = 0; i < 6; ++i) + data.WriteBits(changesMask.GetBlocksMask(0), 8); + for (uint i = 0; i < 8; ++i) if (changesMask.GetBlock(i) != 0) data.WriteBits(changesMask.GetBlock(i), 32); @@ -2914,7 +2913,7 @@ namespace Game.Entities } if (changesMask[37]) { - for (int i = 0; i < 125; ++i) + for (int i = 0; i < 175; ++i) { if (changesMask[38 + i]) { @@ -2925,7 +2924,7 @@ namespace Game.Entities } } } - if (changesMask[163]) + if (changesMask[214]) { for (int i = 0; i < 19; ++i) { @@ -2935,11 +2934,11 @@ namespace Game.Entities } } } - if (changesMask[183]) + if (changesMask[233]) { for (int i = 0; i < 6; ++i) { - if (changesMask[184 + i]) + if (changesMask[234 + i]) { data.WriteFloat(AvgItemLevel[i]); } diff --git a/Source/Game/Handlers/CharacterHandler.cs b/Source/Game/Handlers/CharacterHandler.cs index 23469dc68..3e3ff94c6 100644 --- a/Source/Game/Handlers/CharacterHandler.cs +++ b/Source/Game/Handlers/CharacterHandler.cs @@ -1113,8 +1113,6 @@ namespace Game // START OF DUMMY VALUES features.ComplaintStatus = (byte)ComplaintStatus.EnabledWithAutoIgnore; - features.TwitterPostThrottleLimit = 60; - features.TwitterPostThrottleCooldown = 20; features.CfgRealmID = 2; features.CfgRealmRecID = 0; features.TokenPollTimeSeconds = 300; diff --git a/Source/Game/Handlers/ChatHandler.cs b/Source/Game/Handlers/ChatHandler.cs index 43082cbbe..d3ec40b7a 100644 --- a/Source/Game/Handlers/ChatHandler.cs +++ b/Source/Game/Handlers/ChatHandler.cs @@ -2,7 +2,6 @@ // Licensed under the GNU GENERAL PUBLIC LICENSE. See LICENSE file in the project root for full license information. using Framework.Constants; -using Framework.Dynamic; using Game.Chat; using Game.DataStorage; using Game.Entities; @@ -249,26 +248,26 @@ namespace Game GetPlayer().Whisper(msg, lang, receiver); break; case ChatMsg.Party: + { + // if player is in Battleground, he cannot say to Battlegroundmembers by /p + Group group = GetPlayer().GetOriginalGroup(); + if (!group) { - // if player is in Battleground, he cannot say to Battlegroundmembers by /p - Group group = GetPlayer().GetOriginalGroup(); - if (!group) - { - group = GetPlayer().GetGroup(); - if (!group || group.IsBGGroup()) - return; - } - - if (group.IsLeader(GetPlayer().GetGUID())) - type = ChatMsg.PartyLeader; - - Global.ScriptMgr.OnPlayerChat(GetPlayer(), type, lang, msg, group); - - ChatPkt data = new(); - data.Initialize(type, lang, sender, null, msg); - group.BroadcastPacket(data, false, group.GetMemberGroup(GetPlayer().GetGUID())); + group = GetPlayer().GetGroup(); + if (!group || group.IsBGGroup()) + return; } - break; + + if (group.IsLeader(GetPlayer().GetGUID())) + type = ChatMsg.PartyLeader; + + Global.ScriptMgr.OnPlayerChat(GetPlayer(), type, lang, msg, group); + + ChatPkt data = new(); + data.Initialize(type, lang, sender, null, msg); + group.BroadcastPacket(data, false, group.GetMemberGroup(GetPlayer().GetGUID())); + } + break; case ChatMsg.Guild: if (GetPlayer().GetGuildId() != 0) { @@ -294,35 +293,35 @@ namespace Game } break; case ChatMsg.Raid: - { - Group group = GetPlayer().GetGroup(); - if (!group || !group.IsRaidGroup() || group.IsBGGroup()) - return; + { + Group group = GetPlayer().GetGroup(); + if (!group || !group.IsRaidGroup() || group.IsBGGroup()) + return; - if (group.IsLeader(GetPlayer().GetGUID())) - type = ChatMsg.RaidLeader; + if (group.IsLeader(GetPlayer().GetGUID())) + type = ChatMsg.RaidLeader; - Global.ScriptMgr.OnPlayerChat(GetPlayer(), type, lang, msg, group); + Global.ScriptMgr.OnPlayerChat(GetPlayer(), type, lang, msg, group); - ChatPkt data = new(); - data.Initialize(type, lang, sender, null, msg); - group.BroadcastPacket(data, false); - } - break; + ChatPkt data = new(); + data.Initialize(type, lang, sender, null, msg); + group.BroadcastPacket(data, false); + } + break; case ChatMsg.RaidWarning: - { - Group group = GetPlayer().GetGroup(); - if (!group || !(group.IsRaidGroup() || WorldConfig.GetBoolValue(WorldCfg.ChatPartyRaidWarnings)) || !(group.IsLeader(GetPlayer().GetGUID()) || group.IsAssistant(GetPlayer().GetGUID())) || group.IsBGGroup()) - return; + { + Group group = GetPlayer().GetGroup(); + if (!group || !(group.IsRaidGroup() || WorldConfig.GetBoolValue(WorldCfg.ChatPartyRaidWarnings)) || !(group.IsLeader(GetPlayer().GetGUID()) || group.IsAssistant(GetPlayer().GetGUID())) || group.IsBGGroup()) + return; - Global.ScriptMgr.OnPlayerChat(GetPlayer(), type, lang, msg, group); + Global.ScriptMgr.OnPlayerChat(GetPlayer(), type, lang, msg, group); - ChatPkt data = new(); - //in Battleground, raid warning is sent only to players in Battleground - code is ok - data.Initialize(ChatMsg.RaidWarning, lang, sender, null, msg); - group.BroadcastPacket(data, false); - } - break; + ChatPkt data = new(); + //in Battleground, raid warning is sent only to players in Battleground - code is ok + data.Initialize(ChatMsg.RaidWarning, lang, sender, null, msg); + group.BroadcastPacket(data, false); + } + break; case ChatMsg.Channel: if (!HasPermission(RBACPermissions.SkipCheckChatChannelReq)) { @@ -340,21 +339,21 @@ namespace Game } break; case ChatMsg.InstanceChat: - { - Group group = GetPlayer().GetGroup(); - if (!group) - return; + { + Group group = GetPlayer().GetGroup(); + if (!group) + return; - if (group.IsLeader(GetPlayer().GetGUID())) - type = ChatMsg.InstanceChatLeader; + if (group.IsLeader(GetPlayer().GetGUID())) + type = ChatMsg.InstanceChatLeader; - Global.ScriptMgr.OnPlayerChat(GetPlayer(), type, lang, msg, group); + Global.ScriptMgr.OnPlayerChat(GetPlayer(), type, lang, msg, group); - ChatPkt packet = new(); - packet.Initialize(type, lang, sender, null, msg); - group.BroadcastPacket(packet, false); - break; - } + ChatPkt packet = new(); + packet.Initialize(type, lang, sender, null, msg); + group.BroadcastPacket(packet, false); + break; + } default: Log.outError(LogFilter.ChatSystem, "CHAT: unknown message type {0}, lang: {1}", type, lang); break; @@ -415,27 +414,27 @@ namespace Game case ChatMsg.Party: case ChatMsg.Raid: case ChatMsg.InstanceChat: + { + Group group = null; + int subGroup = -1; + if (type != ChatMsg.InstanceChat) + group = sender.GetOriginalGroup(); + + if (!group) { - Group group = null; - int subGroup = -1; - if (type != ChatMsg.InstanceChat) - group = sender.GetOriginalGroup(); - + group = sender.GetGroup(); if (!group) - { - group = sender.GetGroup(); - if (!group) - break; + break; - if (type == ChatMsg.Party) - subGroup = sender.GetSubGroup(); - } - - ChatPkt data = new(); - data.Initialize(type, isLogged ? Language.AddonLogged : Language.Addon, sender, null, text, 0, "", Locale.enUS, prefix); - group.BroadcastAddonMessagePacket(data, prefix, true, subGroup, sender.GetGUID()); - break; + if (type == ChatMsg.Party) + subGroup = sender.GetSubGroup(); } + + ChatPkt data = new(); + data.Initialize(type, isLogged ? Language.AddonLogged : Language.Addon, sender, null, text, 0, "", Locale.enUS, prefix); + group.BroadcastAddonMessagePacket(data, prefix, true, subGroup, sender.GetGUID()); + break; + } case ChatMsg.Channel: Channel chn = channelGuid.HasValue ? ChannelManager.GetChannelForPlayerByGuid(channelGuid.Value, sender) : ChannelManager.GetChannelForPlayerByNamePart(target, sender); if (chn != null) @@ -625,5 +624,26 @@ namespace Game SendPacket(new ChatRestricted(restriction)); } + [WorldPacketHandler(ClientOpcodes.ChatCanLocalWhisperTargetRequest)] + void HandleChatCanLocalWhisperTargetRequest(CanLocalWhisperTargetRequest canLocalWhisperTargetRequest) + { + ChatWhisperTargetStatus status = ChatWhisperTargetStatus.CanWhisper; + + Player sender = GetPlayer(); + Player receiver = Global.ObjAccessor.FindConnectedPlayer(canLocalWhisperTargetRequest.WhisperTarget); + if (!receiver || (!receiver.IsAcceptWhispers() && receiver.GetSession().HasPermission(RBACPermissions.CanFilterWhispers) && !receiver.IsInWhisperWhiteList(sender.GetGUID()))) + status = ChatWhisperTargetStatus.Offline; + else + { + if (!receiver.IsInWhisperWhiteList(sender.GetGUID()) && !receiver.IsGameMasterAcceptingWhispers()) + if (GetPlayer().GetEffectiveTeam() != receiver.GetEffectiveTeam() && !HasPermission(RBACPermissions.TwoSideInteractionChat)) + status = ChatWhisperTargetStatus.WrongFaction; + } + + CanLocalWhisperTargetResponse canLocalWhisperTargetResponse = new(); + canLocalWhisperTargetResponse.WhisperTarget = canLocalWhisperTargetRequest.WhisperTarget; + canLocalWhisperTargetResponse.Status = status; + SendPacket(canLocalWhisperTargetResponse); + } } } diff --git a/Source/Game/Networking/Packets/AuctionHousePackets.cs b/Source/Game/Networking/Packets/AuctionHousePackets.cs index b13dc3f90..401647df6 100644 --- a/Source/Game/Networking/Packets/AuctionHousePackets.cs +++ b/Source/Game/Networking/Packets/AuctionHousePackets.cs @@ -14,6 +14,8 @@ namespace Game.Networking.Packets public uint Offset; public byte MinLevel = 1; public byte MaxLevel = SharedConst.MaxLevel; + public byte Unused1007_1; + public byte Unused1007_2; public AuctionHouseFilterMask Filters; public byte[] KnownPets; public sbyte MaxPetLevel; @@ -30,6 +32,8 @@ namespace Game.Networking.Packets Offset = _worldPacket.ReadUInt32(); MinLevel = _worldPacket.ReadUInt8(); MaxLevel = _worldPacket.ReadUInt8(); + Unused1007_1 = _worldPacket.ReadUInt8(); + Unused1007_2= _worldPacket.ReadUInt8(); Filters = (AuctionHouseFilterMask)_worldPacket.ReadUInt32(); uint knownPetSize = _worldPacket.ReadUInt32(); MaxPetLevel = _worldPacket.ReadInt8(); diff --git a/Source/Game/Networking/Packets/ChatPackets.cs b/Source/Game/Networking/Packets/ChatPackets.cs index 36bde13d8..f09080478 100644 --- a/Source/Game/Networking/Packets/ChatPackets.cs +++ b/Source/Game/Networking/Packets/ChatPackets.cs @@ -460,6 +460,32 @@ namespace Game.Networking.Packets public byte Reason; } + class CanLocalWhisperTargetRequest : ClientPacket + { + public ObjectGuid WhisperTarget; + + public CanLocalWhisperTargetRequest(WorldPacket packet) : base(packet) { } + + public override void Read() + { + WhisperTarget = _worldPacket.ReadPackedGuid(); + } + } + + class CanLocalWhisperTargetResponse : ServerPacket + { + public ObjectGuid WhisperTarget; + public ChatWhisperTargetStatus Status; + + public CanLocalWhisperTargetResponse() : base(ServerOpcodes.ChatCanLocalWhisperTargetResponse) { } + + public override void Write() + { + _worldPacket.WritePackedGuid(WhisperTarget); + _worldPacket.WriteInt32((int)Status); + } + } + public class ChatAddonMessageParams { public void Read(WorldPacket data) diff --git a/Source/Game/Networking/Packets/GameObjectPackets.cs b/Source/Game/Networking/Packets/GameObjectPackets.cs index 5e638ad93..948f9b59d 100644 --- a/Source/Game/Networking/Packets/GameObjectPackets.cs +++ b/Source/Game/Networking/Packets/GameObjectPackets.cs @@ -13,11 +13,9 @@ namespace Game.Networking.Packets public override void Read() { Guid = _worldPacket.ReadPackedGuid(); - IsSoftInteract = _worldPacket.HasBit(); } public ObjectGuid Guid; - public bool IsSoftInteract; } public class GameObjReportUse : ClientPacket @@ -27,11 +25,9 @@ namespace Game.Networking.Packets public override void Read() { Guid = _worldPacket.ReadPackedGuid(); - IsSoftInteract = _worldPacket.HasBit(); } public ObjectGuid Guid; - public bool IsSoftInteract; } class GameObjectDespawn : ServerPacket diff --git a/Source/Game/Networking/Packets/LootPackets.cs b/Source/Game/Networking/Packets/LootPackets.cs index a88eee055..5ed103a02 100644 --- a/Source/Game/Networking/Packets/LootPackets.cs +++ b/Source/Game/Networking/Packets/LootPackets.cs @@ -15,11 +15,9 @@ namespace Game.Networking.Packets public override void Read() { Unit = _worldPacket.ReadPackedGuid(); - IsSoftInteract = _worldPacket.HasBit(); } public ObjectGuid Unit; - public bool IsSoftInteract; } public class LootResponse : ServerPacket @@ -69,6 +67,9 @@ namespace Game.Networking.Packets class LootItemPkt : ClientPacket { + public List Loot = new(); + public bool IsSoftInteract; + public LootItemPkt(WorldPacket packet) : base(packet) { } public override void Read() @@ -85,9 +86,9 @@ namespace Game.Networking.Packets Loot.Add(loot); } - } - public List Loot = new(); + IsSoftInteract = _worldPacket.HasBit(); + } } class MasterLootItem : ClientPacket @@ -142,9 +143,14 @@ namespace Game.Networking.Packets class LootMoney : ClientPacket { + public bool IsSoftInteract; + public LootMoney(WorldPacket packet) : base(packet) { } - public override void Read() { } + public override void Read() + { + IsSoftInteract = _worldPacket.HasBit(); + } } class LootMoneyNotify : ServerPacket diff --git a/Source/Game/Networking/Packets/NPCPackets.cs b/Source/Game/Networking/Packets/NPCPackets.cs index a1249b268..db52acae7 100644 --- a/Source/Game/Networking/Packets/NPCPackets.cs +++ b/Source/Game/Networking/Packets/NPCPackets.cs @@ -199,11 +199,11 @@ namespace Game.Networking.Packets public override void Write() { _worldPacket.WriteUInt32(Id); + _worldPacket.WriteUInt32(Flags); _worldPacket.WriteVector3(Pos); _worldPacket.WriteUInt32(Icon); _worldPacket.WriteUInt32(Importance); _worldPacket.WriteUInt32(WMOGroupID); - _worldPacket.WriteBits(Flags, 14); _worldPacket.WriteBits(Name.GetByteCount(), 6); _worldPacket.FlushBits(); _worldPacket.WriteString(Name); diff --git a/Source/Game/Networking/Packets/SpellPackets.cs b/Source/Game/Networking/Packets/SpellPackets.cs index 330839bad..6906cb7b0 100644 --- a/Source/Game/Networking/Packets/SpellPackets.cs +++ b/Source/Game/Networking/Packets/SpellPackets.cs @@ -966,12 +966,10 @@ namespace Game.Networking.Packets { SpellClickUnitGuid = _worldPacket.ReadPackedGuid(); TryAutoDismount = _worldPacket.HasBit(); - IsSoftInteract = _worldPacket.HasBit(); } public ObjectGuid SpellClickUnitGuid; public bool TryAutoDismount; - public bool IsSoftInteract; } class ResyncRunes : ServerPacket diff --git a/Source/Game/Networking/Packets/SystemPackets.cs b/Source/Game/Networking/Packets/SystemPackets.cs index 40f76cb69..5a5f3030d 100644 --- a/Source/Game/Networking/Packets/SystemPackets.cs +++ b/Source/Game/Networking/Packets/SystemPackets.cs @@ -24,9 +24,7 @@ namespace Game.Networking.Packets _worldPacket.WriteUInt32(RAFSystem.MaxRecruitMonths); _worldPacket.WriteUInt32(RAFSystem.MaxRecruitmentUses); _worldPacket.WriteUInt32(RAFSystem.DaysInCycle); - - _worldPacket.WriteUInt32(TwitterPostThrottleLimit); - _worldPacket.WriteUInt32(TwitterPostThrottleCooldown); + _worldPacket.WriteUInt32(RAFSystem.Unknown1007); _worldPacket.WriteUInt32(TokenPollTimeSeconds); _worldPacket.WriteUInt32(KioskSessionMinutes); @@ -61,7 +59,6 @@ namespace Game.Networking.Packets _worldPacket.WriteBit(RestrictedAccount); _worldPacket.WriteBit(CommerceSystemEnabled); _worldPacket.WriteBit(TutorialsEnabled); - _worldPacket.WriteBit(TwitterEnabled); _worldPacket.WriteBit(Unk67); _worldPacket.WriteBit(WillKickFromWorld); @@ -140,8 +137,6 @@ namespace Game.Networking.Packets public uint CfgRealmID; public byte ComplaintStatus; public int CfgRealmRecID; - public uint TwitterPostThrottleLimit; - public uint TwitterPostThrottleCooldown; public uint TokenPollTimeSeconds; public long TokenBalanceAmount; public uint BpayStoreProductDeliveryDelay; @@ -155,7 +150,6 @@ namespace Game.Networking.Packets public bool ItemRestorationButtonEnabled; public bool CharUndeleteEnabled; // Implemented public bool BpayStoreDisabledByParentalControls; - public bool TwitterEnabled; public bool CommerceSystemEnabled; public bool Unk67; public bool WillKickFromWorld; @@ -237,9 +231,10 @@ namespace Game.Networking.Packets public uint MaxRecruitMonths; public uint MaxRecruitmentUses; public uint DaysInCycle; + public uint Unknown1007; } } - + public class FeatureSystemStatusGlueScreen : ServerPacket { public FeatureSystemStatusGlueScreen() : base(ServerOpcodes.FeatureSystemStatusGlueScreen) { } @@ -272,6 +267,10 @@ namespace Game.Networking.Packets _worldPacket.WriteBit(LaunchETA.HasValue); _worldPacket.WriteBit(AddonsDisabled); _worldPacket.WriteBit(Unused1000); + + _worldPacket.WriteBit(AccountSaveDataExportEnabled); + _worldPacket.WriteBit(AccountLockedByExport); + _worldPacket.FlushBits(); if (EuropaTicketSystemStatus.HasValue) @@ -292,6 +291,8 @@ namespace Game.Networking.Packets _worldPacket.WriteInt16(MaxPlayerNameQueriesPerPacket); _worldPacket.WriteInt16(PlayerNameQueryTelemetryInterval); _worldPacket.WriteUInt32((uint)PlayerNameQueryInterval.TotalSeconds); + _worldPacket.WriteInt32(DebugTimeEvents.Count); + _worldPacket.WriteInt32(Unused1007); if (LaunchETA.HasValue) _worldPacket.WriteInt32(LaunchETA.Value); @@ -301,6 +302,9 @@ namespace Game.Networking.Packets foreach (GameRuleValuePair gameRuleValue in GameRuleValues) gameRuleValue.Write(_worldPacket); + + foreach (DebugTimeEventInfo debugTimeEventInfo in DebugTimeEvents) + debugTimeEventInfo.Write(_worldPacket); } public bool BpayStoreAvailable; // NYI @@ -322,6 +326,8 @@ namespace Game.Networking.Packets public bool Unknown901CheckoutRelated; // NYI public bool AddonsDisabled; public bool Unused1000; + public bool AccountSaveDataExportEnabled; + public bool AccountLockedByExport; public EuropaTicketConfig? EuropaTicketSystemStatus; public List LiveRegionCharacterCopySourceRegions = new(); public uint TokenPollTimeSeconds; // NYI @@ -339,6 +345,8 @@ namespace Game.Networking.Packets public short PlayerNameQueryTelemetryInterval = 600; public TimeSpan PlayerNameQueryInterval = TimeSpan.FromSeconds(10); public int? LaunchETA; + public List DebugTimeEvents = new(); + public int Unused1007; } public class MOTD : ServerPacket @@ -429,4 +437,19 @@ namespace Game.Networking.Packets data.WriteInt32(Value); } } + + public struct DebugTimeEventInfo + { + public uint TimeEvent; + public string Text; + + public void Write(WorldPacket data) + { + data.WriteUInt32(TimeEvent); + data.WriteBits(Text.GetByteCount(), 7); + data.FlushBits(); + + data.WriteString(Text); + } + } } diff --git a/Source/Game/Networking/Packets/TicketPackets.cs b/Source/Game/Networking/Packets/TicketPackets.cs index e69fd73eb..6b262e00d 100644 --- a/Source/Game/Networking/Packets/TicketPackets.cs +++ b/Source/Game/Networking/Packets/TicketPackets.cs @@ -391,6 +391,7 @@ namespace Game.Networking.Packets RideTicket.Read(data); GroupFinderActivityID = data.ReadUInt32(); + Unknown1007 = data.ReadUInt8(); LastTitleAuthorGuid = data.ReadPackedGuid(); LastDescriptionAuthorGuid = data.ReadPackedGuid(); LastVoiceChatAuthorGuid = data.ReadPackedGuid(); @@ -408,6 +409,7 @@ namespace Game.Networking.Packets public RideTicket RideTicket; public uint GroupFinderActivityID; + public byte Unknown1007; public ObjectGuid LastTitleAuthorGuid; public ObjectGuid LastDescriptionAuthorGuid; public ObjectGuid LastVoiceChatAuthorGuid; diff --git a/Source/Game/Spells/SpellInfo.cs b/Source/Game/Spells/SpellInfo.cs index d9baa90f9..a6b6749c6 100644 --- a/Source/Game/Spells/SpellInfo.cs +++ b/Source/Game/Spells/SpellInfo.cs @@ -4824,6 +4824,8 @@ namespace Game.Spells new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.None), // 302 SPELL_EFFECT_GATHERING new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 303 SPELL_EFFECT_CREATE_TRAIT_TREE_CONFIG new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 304 SPELL_EFFECT_CHANGE_ACTIVE_COMBAT_TRAIT_CONFIG + new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 305 SPELL_EFFECT_305 + new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 306 SPELL_EFFECT_306 }; #region Fields diff --git a/Source/Game/Spells/TraitManager.cs b/Source/Game/Spells/TraitManager.cs index dcc366ec2..a9766b4ef 100644 --- a/Source/Game/Spells/TraitManager.cs +++ b/Source/Game/Spells/TraitManager.cs @@ -77,7 +77,7 @@ namespace Game { TraitCostRecord traitCostEntry = CliDB.TraitCostStorage.LookupByKey(traitNodeXTraitCostEntry.TraitCostID); if (traitCostEntry != null) - nodeCosts.Add(traitNodeXTraitCostEntry.TraitNodeID, traitCostEntry); + nodeCosts.Add((uint)traitNodeXTraitCostEntry.TraitNodeID, traitCostEntry); } MultiMap nodeEntries = new(); diff --git a/sql/base/auth_database.sql b/sql/base/auth_database.sql index cd7871088..dc27bfaf3 100644 --- a/sql/base/auth_database.sql +++ b/sql/base/auth_database.sql @@ -698,7 +698,8 @@ INSERT INTO `build_info` VALUES (48069,10,0,5,NULL,NULL,'558CDF958FA082E95849779C7C6945E5',NULL,NULL,NULL), (48317,10,0,5,NULL,NULL,'C096E37B45B43244E9C79916604DD4AF',NULL,NULL,NULL), (48397,10,0,5,NULL,NULL,'64BA8779EAA97E6C57982B6B1A5B32E7',NULL,NULL,NULL), -(48526,10,0,5,NULL,NULL,'D5B7D3303A2A741E6913EE1AEB0BCB65',NULL,NULL,NULL); +(48526,10,0,5,NULL,NULL,'D5B7D3303A2A741E6913EE1AEB0BCB65',NULL,NULL,NULL), +(48676,10,0,7,NULL,NULL,'E059FB74DFF6438CC20C7F28900F64CA',NULL,NULL,NULL); /*!40000 ALTER TABLE `build_info` ENABLE KEYS */; UNLOCK TABLES; @@ -2306,7 +2307,7 @@ CREATE TABLE `realmlist` ( `timezone` tinyint unsigned NOT NULL DEFAULT '0', `allowedSecurityLevel` tinyint unsigned NOT NULL DEFAULT '0', `population` float unsigned NOT NULL DEFAULT '0', - `gamebuild` int unsigned NOT NULL DEFAULT '48526', + `gamebuild` int unsigned NOT NULL DEFAULT '48676', `Region` tinyint unsigned NOT NULL DEFAULT '1', `Battlegroup` tinyint unsigned NOT NULL DEFAULT '1', PRIMARY KEY (`id`), @@ -2321,7 +2322,7 @@ CREATE TABLE `realmlist` ( LOCK TABLES `realmlist` WRITE; /*!40000 ALTER TABLE `realmlist` DISABLE KEYS */; INSERT INTO `realmlist` VALUES -(1,'Trinity','127.0.0.1','127.0.0.1','255.255.255.0',8085,0,0,1,0,0,48526,1,1); +(1,'Trinity','127.0.0.1','127.0.0.1','255.255.255.0',8085,0,0,1,0,0,48676,1,1); /*!40000 ALTER TABLE `realmlist` ENABLE KEYS */; UNLOCK TABLES; @@ -2667,7 +2668,8 @@ INSERT INTO `updates` VALUES ('2023_02_14_00_auth.sql','033F4460715121A8B6E9DD0F7456AE930DD18A7A','RELEASED','2023-02-14 10:02:49',0), ('2023_02_28_00_auth.sql','F57F70D6E1BBB1CB799E338C3358C265FD7F8689','RELEASED','2023-02-28 21:32:14',0), ('2023_03_08_00_auth.sql','2490CEA2EBDB0ECD3590F1D9328DD88266E179F3','RELEASED','2023-03-08 21:58:27',0), -('2023_03_11_00_auth.sql','6532C5E043692E7361689090DA19E6350705B591','RELEASED','2023-03-11 00:10:17',0); +('2023_03_11_00_auth.sql','6532C5E043692E7361689090DA19E6350705B591','RELEASED','2023-03-11 00:10:17',0), +('2023_03_22_00_auth.sql','C589D68CF88A62E03F2E797E03CF2F237371BD34','RELEASED','2023-03-21 18:12:28',0); /*!40000 ALTER TABLE `updates` ENABLE KEYS */; UNLOCK TABLES; diff --git a/sql/updates/auth/master/2023_03_22_00_auth.sql b/sql/updates/auth/master/2023_03_22_00_auth.sql new file mode 100644 index 000000000..46edc6b85 --- /dev/null +++ b/sql/updates/auth/master/2023_03_22_00_auth.sql @@ -0,0 +1,7 @@ +DELETE FROM `build_info` WHERE `build`=48676; +INSERT INTO `build_info` (`build`,`majorVersion`,`minorVersion`,`bugfixVersion`,`hotfixVersion`,`winAuthSeed`,`win64AuthSeed`,`mac64AuthSeed`,`winChecksumSeed`,`macChecksumSeed`) VALUES +(48676,10,0,7,NULL,NULL,'E059FB74DFF6438CC20C7F28900F64CA',NULL,NULL,NULL); + +UPDATE `realmlist` SET `gamebuild`=48676 WHERE `gamebuild`=48526; + +ALTER TABLE `realmlist` CHANGE `gamebuild` `gamebuild` int unsigned NOT NULL DEFAULT '48676';