From cfecdc0fe56309a8e23eb99ac273cd71c1816c9f Mon Sep 17 00:00:00 2001 From: "Kenneth P. Barquero" Date: Sat, 31 Oct 2020 05:54:53 -0600 Subject: [PATCH] Core/Battlegrounds: implement rated battleground world state allow queueing up for rated BGs This will allow to toggle the rated battleground UI for the player, the RBG system is yet to be implemented. --- src/server/game/Battlegrounds/Battleground.h | 1 + .../game/Handlers/BattleGroundHandler.cpp | 8 +++++- src/server/game/World/World.cpp | 4 +++ src/server/game/World/World.h | 2 ++ src/server/worldserver/worldserver.conf.dist | 27 +++++++++++++++++-- 5 files changed, 39 insertions(+), 3 deletions(-) diff --git a/src/server/game/Battlegrounds/Battleground.h b/src/server/game/Battlegrounds/Battleground.h index 1528a6d106a..6c5f60a318b 100644 --- a/src/server/game/Battlegrounds/Battleground.h +++ b/src/server/game/Battlegrounds/Battleground.h @@ -234,6 +234,7 @@ enum BGHonorMode #define BG_AWARD_ARENA_POINTS_MIN_LEVEL 71 #define ARENA_TIMELIMIT_POINTS_LOSS -16 +#define WS_RATED_BATTLEGROUND_STATE_ACTIVE 5508 /* This class is used to: diff --git a/src/server/game/Handlers/BattleGroundHandler.cpp b/src/server/game/Handlers/BattleGroundHandler.cpp index ee383301ede..15dae84fdf9 100644 --- a/src/server/game/Handlers/BattleGroundHandler.cpp +++ b/src/server/game/Handlers/BattleGroundHandler.cpp @@ -872,8 +872,11 @@ void WorldSession::HandleRequestRatedBgStats(WorldPacket& /*recvData*/) { TC_LOG_DEBUG("network", "WORLD: CMSG_REQUEST_RATED_BG_STATS"); + uint8 ratedBattlegroundActive = sWorld->getBoolConfig(CONFIG_RATED_BATTLEGROUND_ENABLE); + uint8 ratedBattlegroundReward = sWorld->getIntConfig(CONFIG_RATED_BATTLEGROUND_REWARD) / CURRENCY_PRECISION; + WorldPacket data(SMSG_BATTLEFIELD_RATED_INFO, 29); - data << uint32(0); // Reward + data << uint32(ratedBattlegroundReward); // Reward data << uint8(3); // unk data << uint32(0); // unk data << uint32(0); // unk @@ -883,6 +886,9 @@ void WorldSession::HandleRequestRatedBgStats(WorldPacket& /*recvData*/) data << _player->GetCurrency(CURRENCY_TYPE_CONQUEST_POINTS, true); SendPacket(&data); + + // update the rated battleground state + _player->SendUpdateWorldState(WS_RATED_BATTLEGROUND_STATE_ACTIVE, ratedBattlegroundActive); } void WorldSession::HandleBattlegroundStateQuery(WorldPacket& /*recvData*/) diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 288df318746..828dc8eee23 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1254,6 +1254,10 @@ void World::LoadConfigSettings(bool reload) m_int_configs[CONFIG_BATTLEGROUND_PREMATURE_FINISH_TIMER] = sConfigMgr->GetIntDefault ("Battleground.PrematureFinishTimer", 5 * MINUTE * IN_MILLISECONDS); m_int_configs[CONFIG_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH] = sConfigMgr->GetIntDefault ("Battleground.PremadeGroupWaitForMatch", 30 * MINUTE * IN_MILLISECONDS); m_bool_configs[CONFIG_BG_XP_FOR_KILL] = sConfigMgr->GetBoolDefault("Battleground.GiveXPForKills", false); + + m_bool_configs[CONFIG_RATED_BATTLEGROUND_ENABLE] = sConfigMgr->GetIntDefault ("RatedBattleground.Enable", 0); + m_int_configs[CONFIG_RATED_BATTLEGROUND_REWARD] = sConfigMgr->GetIntDefault ("RatedBattleground.Reward", 40000); + m_int_configs[CONFIG_ARENA_MAX_RATING_DIFFERENCE] = sConfigMgr->GetIntDefault ("Arena.MaxRatingDifference", 150); 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); diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 464e0003126..4633312d92d 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -134,6 +134,7 @@ enum WorldBoolConfigs CONFIG_BATTLEGROUND_STORE_STATISTICS_ENABLE, CONFIG_BATTLEGROUND_TRACK_DESERTERS, CONFIG_BG_XP_FOR_KILL, + CONFIG_RATED_BATTLEGROUND_ENABLE, CONFIG_ARENA_QUEUE_ANNOUNCER_ENABLE, CONFIG_ARENA_SEASON_IN_PROGRESS, CONFIG_ARENA_LOG_EXTENDED_INFO, @@ -324,6 +325,7 @@ enum WorldIntConfigs CONFIG_BATTLEGROUND_PREMATURE_FINISH_TIMER, CONFIG_BATTLEGROUND_PREMADE_GROUP_WAIT_FOR_MATCH, CONFIG_BATTLEGROUND_REPORT_AFK, + CONFIG_RATED_BATTLEGROUND_REWARD, CONFIG_ARENA_MAX_RATING_DIFFERENCE, CONFIG_ARENA_RATING_DISCARD_TIMER, CONFIG_ARENA_RATED_UPDATE_TIMER, diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 11217151b92..f93350644af 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -24,6 +24,7 @@ # STATS LIMITS # AUTO BROADCAST # BATTLEGROUND CONFIG +# RATED BATTLEGROUND CONFIG # BATTLEFIELD CONFIG # ARENA CONFIG # NETWORK CONFIG @@ -1093,7 +1094,7 @@ MinQuestScaledXPRatio = 0 # # MinCreatureScaledXPRatio -# Description: Min ratio of experience that a creature kill can grant when player level scaling is factored. This +# Description: Min ratio of experience that a creature kill can grant when player level scaling is factored. This # will also allow spell procs to trigger, such as Drain Soul, if > 0 and exp is grantable. # Example: 50 (No less than 50% experience granted from a lower leveled creature kill) # 100 (Creature kills always grant full experience upon kill) @@ -1279,7 +1280,7 @@ BirthdayTime = 1222964635 # # CacheDataQueries -# Description: Server caches data queries at startup. +# Description: Server caches data queries at startup. # Can be disabled if not enough memory is available. # Default: 1 - (Enabled) # 0 - (Disabled) @@ -2662,6 +2663,28 @@ Battleground.ReportAFK = 3 # ################################################################################################### +################################################################################################### +# RATED BATTLEGROUND CONFIG +# +# RatedBattleground.Enable +# Description: Enable or disable the rated battleground system. +# Default: 0 - (Disabled) +# 1 - (10v10 Enabled, Experimental as in not implemented) +# 2 - (15v15 Enabled, Experimental as in not implemented) +# 3 - (25v25 Enabled, Experimental as in not implemented) + +RatedBattleground.Enable = 0 + +# +# RatedBattleground.Reward +# Description: The conquest points reward after winning a rated battleground. +# Default: 40000 + +RatedBattleground.Reward = 40000 + +# +################################################################################################### + ################################################################################################### # BATTLEFIELD CONFIG #