From 015ba8008c8b98756e4712b223b32dc11a67ed3b Mon Sep 17 00:00:00 2001 From: hondacrx Date: Wed, 13 Jul 2022 17:41:56 -0400 Subject: [PATCH] Core/WorldStates: Migrate pvp season worldstates to new system Port From (https://github.com/TrinityCore/TrinityCore/commit/5f601f53b8374ead5a6a8b734054ea623f74c24e) --- Source/Framework/Constants/SharedConst.cs | 3 +++ Source/Game/Entities/Player/Player.cs | 11 ----------- Source/Game/Server/WorldConfig.cs | 8 +++++++- Source/Game/World/WorldManager.cs | 2 ++ Source/WorldServer/WorldServer.conf.dist | 4 ++-- sql/updates/world/master/2022_07_11_02_world.sql | 7 +++++++ 6 files changed, 21 insertions(+), 14 deletions(-) create mode 100644 sql/updates/world/master/2022_07_11_02_world.sql diff --git a/Source/Framework/Constants/SharedConst.cs b/Source/Framework/Constants/SharedConst.cs index 5739b272e..c19792892 100644 --- a/Source/Framework/Constants/SharedConst.cs +++ b/Source/Framework/Constants/SharedConst.cs @@ -2990,6 +2990,9 @@ namespace Framework.Constants public enum WorldStates { + CurrentPvpSeasonId = 3191, + PreviousPvpSeasonId = 3901, + BattlefieldWgVehicleH = 3490, BattlefieldWgMaxVehicleH = 3491, BattlefieldWgVehicleA = 3680, diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index 2472c92a0..09ab6818e 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -2920,17 +2920,6 @@ namespace Game.Entities packet.AddState(2260, 0); // SCOURGE_EVENT_WORLDSTATE_AZSHARA packet.AddState(2259, 0); // SCOURGE_EVENT_WORLDSTATE_WINTERSPRING - // ARENA_SEASON_IN_PROGRESS - // 7 - arena season in progress - // 0 - end of season - packet.AddState(3191, WorldConfig.GetBoolValue(WorldCfg.ArenaSeasonInProgress) ? WorldConfig.GetUIntValue(WorldCfg.ArenaSeasonId) : 0); // 7 Current Season - Arena season in progress - - // Previous arena season id - uint previousArenaSeason = 0; - if (WorldConfig.GetBoolValue(WorldCfg.ArenaSeasonInProgress) && WorldConfig.GetIntValue(WorldCfg.ArenaSeasonId) > 0) - previousArenaSeason = WorldConfig.GetUIntValue(WorldCfg.ArenaSeasonId) - 1;// 0 - End of season - packet.AddState(3901, previousArenaSeason); - SendPacket(packet); } diff --git a/Source/Game/Server/WorldConfig.cs b/Source/Game/Server/WorldConfig.cs index 4db25a924..d127638b8 100644 --- a/Source/Game/Server/WorldConfig.cs +++ b/Source/Game/Server/WorldConfig.cs @@ -752,7 +752,7 @@ namespace Game Values[WorldCfg.ArenaRatingDiscardTimer] = GetDefaultValue("Arena.RatingDiscardTimer", 10 * Time.Minute * Time.InMilliseconds); Values[WorldCfg.ArenaRatedUpdateTimer] = GetDefaultValue("Arena.RatedUpdateTimer", 5 * Time.InMilliseconds); Values[WorldCfg.ArenaQueueAnnouncerEnable] = GetDefaultValue("Arena.QueueAnnouncer.Enable", false); - Values[WorldCfg.ArenaSeasonId] = GetDefaultValue("Arena.ArenaSeason.ID", 15); + Values[WorldCfg.ArenaSeasonId] = GetDefaultValue("Arena.ArenaSeason.ID", 32); Values[WorldCfg.ArenaStartRating] = GetDefaultValue("Arena.ArenaStartRating", 0); Values[WorldCfg.ArenaStartPersonalRating] = GetDefaultValue("Arena.ArenaStartPersonalRating", 1000); Values[WorldCfg.ArenaStartMatchmakerRating] = GetDefaultValue("Arena.ArenaStartMatchmakerRating", 1500); @@ -763,6 +763,12 @@ namespace Game Values[WorldCfg.ArenaLoseRatingModifier] = GetDefaultValue("Arena.ArenaLoseRatingModifier", 24.0f); Values[WorldCfg.ArenaMatchmakerRatingModifier] = GetDefaultValue("Arena.ArenaMatchmakerRatingModifier", 24.0f); + if (reload) + { + Global.WorldStateMgr.SetValue(WorldStates.CurrentPvpSeasonId, GetBoolValue(WorldCfg.ArenaSeasonInProgress) ? GetIntValue(WorldCfg.ArenaSeasonId) : 0, false, null); + Global.WorldStateMgr.SetValue(WorldStates.PreviousPvpSeasonId, GetIntValue(WorldCfg.ArenaSeasonId) - (GetBoolValue(WorldCfg.ArenaSeasonInProgress) ? 1 : 0), false, null); + } + Values[WorldCfg.OffhandCheckAtSpellUnlearn] = GetDefaultValue("OffhandCheckAtSpellUnlearn", true); Values[WorldCfg.CreaturePickpocketRefill] = GetDefaultValue("Creature.PickPocketRefillDelay", 10 * Time.Minute); diff --git a/Source/Game/World/WorldManager.cs b/Source/Game/World/WorldManager.cs index 38f6ea072..a48a15a54 100644 --- a/Source/Game/World/WorldManager.cs +++ b/Source/Game/World/WorldManager.cs @@ -895,6 +895,8 @@ namespace Game Log.outInfo(LogFilter.ServerLoading, "Loading World States..."); // must be loaded before Battleground, outdoor PvP and conditions LoadWorldStates(); + Global.WorldStateMgr.SetValue(WorldStates.CurrentPvpSeasonId, WorldConfig.GetBoolValue(WorldCfg.ArenaSeasonInProgress) ? WorldConfig.GetIntValue(WorldCfg.ArenaSeasonId) : 0, false, null); + Global.WorldStateMgr.SetValue(WorldStates.PreviousPvpSeasonId, WorldConfig.GetIntValue(WorldCfg.ArenaSeasonId) - (WorldConfig.GetBoolValue(WorldCfg.ArenaSeasonInProgress) ? 1 : 0), false, null); // TODO: this is temporary until custom world states are purged from old world state saved values Global.WorldStateMgr.SetValue(WorldStates.WarModeHordeBuffValue, (int)GetWorldState(WorldStates.WarModeHordeBuffValue), false, null); Global.WorldStateMgr.SetValue(WorldStates.WarModeAllianceBuffValue, (int)GetWorldState(WorldStates.WarModeAllianceBuffValue), false, null); diff --git a/Source/WorldServer/WorldServer.conf.dist b/Source/WorldServer/WorldServer.conf.dist index 124f01d66..04f455a9f 100644 --- a/Source/WorldServer/WorldServer.conf.dist +++ b/Source/WorldServer/WorldServer.conf.dist @@ -2848,9 +2848,9 @@ Arena.QueueAnnouncer.Enable = 0 # # Arena.ArenaSeason.ID # Description: Current arena season id shown in clients. -# Default: 15 +# Default: 32 -Arena.ArenaSeason.ID = 15 +Arena.ArenaSeason.ID = 32 # # Arena.ArenaSeason.InProgress diff --git a/sql/updates/world/master/2022_07_11_02_world.sql b/sql/updates/world/master/2022_07_11_02_world.sql new file mode 100644 index 000000000..136c8958b --- /dev/null +++ b/sql/updates/world/master/2022_07_11_02_world.sql @@ -0,0 +1,7 @@ +UPDATE `world_state` SET `Comment`='Battlegrounds - Horde bases' WHERE `ID`=1778; +UPDATE `world_state` SET `Comment`='Battlegrounds - Alliance bases' WHERE `ID`=1779; + +DELETE FROM `world_state` WHERE `ID` IN (3191,3901); +INSERT INTO `world_state` (`ID`,`DefaultValue`,`MapIDs`,`AreaIDs`,`ScriptName`,`Comment`) VALUES +(3191,0,NULL,NULL,'','PvpSeason - Current season ID'), +(3901,0,NULL,NULL,'','PvpSeason - Previous season ID');