aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2022_07_11_02_world.sql7
-rw-r--r--src/server/game/Entities/Player/Player.cpp11
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h3
-rw-r--r--src/server/game/Server/Packets/WorldStatePackets.h2
-rw-r--r--src/server/game/World/World.cpp10
-rw-r--r--src/server/worldserver/worldserver.conf.dist4
6 files changed, 22 insertions, 15 deletions
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 00000000000..136c8958bb4
--- /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');
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index da8b1b74883..10791374d76 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -9220,17 +9220,6 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
packet.Worldstates.emplace_back(2260, 0); // SCOURGE_EVENT_WORLDSTATE_AZSHARA
packet.Worldstates.emplace_back(2259, 0); // SCOURGE_EVENT_WORLDSTATE_WINTERSPRING
- // ARENA_SEASON_IN_PROGRESS
- // 7 - arena season in progress
- // 0 - end of season
- packet.Worldstates.emplace_back(3191, sWorld->getBoolConfig(CONFIG_ARENA_SEASON_IN_PROGRESS) ? sWorld->getIntConfig(CONFIG_ARENA_SEASON_ID) : 0);
-
- // Previous arena season id
- int32 previousArenaSeason = 0;
- if (sWorld->getBoolConfig(CONFIG_ARENA_SEASON_IN_PROGRESS) && sWorld->getIntConfig(CONFIG_ARENA_SEASON_ID) > 0)
- previousArenaSeason = sWorld->getIntConfig(CONFIG_ARENA_SEASON_ID) - 1;
- packet.Worldstates.emplace_back(3901, previousArenaSeason);
-
SendDirectMessage(packet.Write());
}
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index 9edb899361f..8a638e638fc 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -7747,6 +7747,9 @@ enum AreaId : uint32
enum WorldState : uint32
{
+ WS_CURRENT_PVP_SEASON_ID = 3191,
+ WS_PREVIOUS_PVP_SEASON_ID = 3901,
+
WS_BATTLEFIELD_WG_VEHICLE_H = 3490,
WS_BATTLEFIELD_WG_MAX_VEHICLE_H = 3491,
WS_BATTLEFIELD_WG_VEHICLE_A = 3680,
diff --git a/src/server/game/Server/Packets/WorldStatePackets.h b/src/server/game/Server/Packets/WorldStatePackets.h
index 3cc6466b4ec..edb94c2f4d2 100644
--- a/src/server/game/Server/Packets/WorldStatePackets.h
+++ b/src/server/game/Server/Packets/WorldStatePackets.h
@@ -24,7 +24,7 @@ namespace WorldPackets
{
namespace WorldState
{
- class InitWorldStates final : public ServerPacket
+ class TC_GAME_API InitWorldStates final : public ServerPacket
{
public:
struct WorldStateInfo
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index f14f1107ca8..b762853b02a 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -1321,7 +1321,7 @@ void World::LoadConfigSettings(bool reload)
m_int_configs[CONFIG_ARENA_RATING_DISCARD_TIMER] = sConfigMgr->GetIntDefault ("Arena.RatingDiscardTimer", 10 * MINUTE * IN_MILLISECONDS);
m_int_configs[CONFIG_ARENA_RATED_UPDATE_TIMER] = sConfigMgr->GetIntDefault ("Arena.RatedUpdateTimer", 5 * IN_MILLISECONDS);
m_bool_configs[CONFIG_ARENA_QUEUE_ANNOUNCER_ENABLE] = sConfigMgr->GetBoolDefault("Arena.QueueAnnouncer.Enable", false);
- m_int_configs[CONFIG_ARENA_SEASON_ID] = sConfigMgr->GetIntDefault ("Arena.ArenaSeason.ID", 15);
+ m_int_configs[CONFIG_ARENA_SEASON_ID] = sConfigMgr->GetIntDefault ("Arena.ArenaSeason.ID", 32);
m_int_configs[CONFIG_ARENA_START_RATING] = sConfigMgr->GetIntDefault ("Arena.ArenaStartRating", 0);
m_int_configs[CONFIG_ARENA_START_PERSONAL_RATING] = sConfigMgr->GetIntDefault ("Arena.ArenaStartPersonalRating", 1000);
m_int_configs[CONFIG_ARENA_START_MATCHMAKER_RATING] = sConfigMgr->GetIntDefault ("Arena.ArenaStartMatchmakerRating", 1500);
@@ -1332,6 +1332,12 @@ void World::LoadConfigSettings(bool reload)
m_float_configs[CONFIG_ARENA_LOSE_RATING_MODIFIER] = sConfigMgr->GetFloatDefault("Arena.ArenaLoseRatingModifier", 24.0f);
m_float_configs[CONFIG_ARENA_MATCHMAKER_RATING_MODIFIER] = sConfigMgr->GetFloatDefault("Arena.ArenaMatchmakerRatingModifier", 24.0f);
+ if (reload)
+ {
+ sWorldStateMgr->SetValue(WS_CURRENT_PVP_SEASON_ID, getBoolConfig(CONFIG_ARENA_SEASON_IN_PROGRESS) ? getIntConfig(CONFIG_ARENA_SEASON_ID) : 0, false, nullptr);
+ sWorldStateMgr->SetValue(WS_PREVIOUS_PVP_SEASON_ID, getIntConfig(CONFIG_ARENA_SEASON_ID) - getBoolConfig(CONFIG_ARENA_SEASON_IN_PROGRESS), false, nullptr);
+ }
+
m_bool_configs[CONFIG_OFFHAND_CHECK_AT_SPELL_UNLEARN] = sConfigMgr->GetBoolDefault("OffhandCheckAtSpellUnlearn", true);
m_int_configs[CONFIG_CREATURE_PICKPOCKET_REFILL] = sConfigMgr->GetIntDefault("Creature.PickPocketRefillDelay", 10 * MINUTE);
@@ -2245,6 +2251,8 @@ void World::SetInitialWorldSettings()
TC_LOG_INFO("server.loading", "Loading World States..."); // must be loaded before battleground, outdoor PvP and conditions
LoadWorldStates();
+ sWorldStateMgr->SetValue(WS_CURRENT_PVP_SEASON_ID, getBoolConfig(CONFIG_ARENA_SEASON_IN_PROGRESS) ? getIntConfig(CONFIG_ARENA_SEASON_ID) : 0, false, nullptr);
+ sWorldStateMgr->SetValue(WS_PREVIOUS_PVP_SEASON_ID, getIntConfig(CONFIG_ARENA_SEASON_ID) - getBoolConfig(CONFIG_ARENA_SEASON_IN_PROGRESS), false, nullptr);
// TODO: this is temporary until custom world states are purged from old world state saved values
sWorldStateMgr->SetValue(WS_WAR_MODE_HORDE_BUFF_VALUE, getWorldState(WS_WAR_MODE_HORDE_BUFF_VALUE), false, nullptr);
sWorldStateMgr->SetValue(WS_WAR_MODE_ALLIANCE_BUFF_VALUE, getWorldState(WS_WAR_MODE_ALLIANCE_BUFF_VALUE), false, nullptr);
diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist
index 59c8b5ecdf6..fd92d54234b 100644
--- a/src/server/worldserver/worldserver.conf.dist
+++ b/src/server/worldserver/worldserver.conf.dist
@@ -3008,9 +3008,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