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 #