mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-13 01:08:35 +00:00
feat(Core/PvP): Outdoor PvP capture rate multiplier (#23902)
This commit is contained in:
@@ -53,6 +53,7 @@
|
||||
# CHARTER
|
||||
# GUILD
|
||||
# FFAPVP
|
||||
# OUTDOORPVP
|
||||
# WINTERGRASP
|
||||
# BATTLEGROUND
|
||||
# ARENA
|
||||
@@ -3515,6 +3516,18 @@ FFAPvPTimer = 30
|
||||
#
|
||||
###################################################################################################
|
||||
|
||||
###################################################################################################
|
||||
# OUTDOORPVP
|
||||
#
|
||||
# OutdoorPvPCaptureRate
|
||||
# Description: Specify rate multiplier for outdoor PvP capture points. (e.g. Eastern Plaguelands, Hellfire Peninsula)
|
||||
# Default: 1.0
|
||||
|
||||
OutdoorPvPCaptureRate = 1.0
|
||||
|
||||
#
|
||||
###################################################################################################
|
||||
|
||||
###################################################################################################
|
||||
# WINTERGRASP
|
||||
#
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "ObjectMgr.h"
|
||||
#include "OutdoorPvPMgr.h"
|
||||
#include "WorldPacket.h"
|
||||
#include "World.h"
|
||||
|
||||
OPvPCapturePoint::OPvPCapturePoint(OutdoorPvP* pvp) :
|
||||
_pvp(pvp)
|
||||
@@ -349,12 +350,12 @@ bool OPvPCapturePoint::Update(uint32 diff)
|
||||
}
|
||||
|
||||
// get the difference of numbers
|
||||
float factDiff = ((float)_activePlayers[0].size() - (float)_activePlayers[1].size()) * float(diff) / OUTDOORPVP_OBJECTIVE_UPDATE_INTERVAL;
|
||||
float factDiff = (((float)_activePlayers[0].size() - (float)_activePlayers[1].size()) * float(diff) / OUTDOORPVP_OBJECTIVE_UPDATE_INTERVAL) * sWorld->getFloatConfig(CONFIG_OUTDOOR_PVP_CAPTURE_RATE);
|
||||
if (factDiff == 0.f)
|
||||
return false;
|
||||
|
||||
TeamId ChallengerId = TEAM_NEUTRAL;
|
||||
float maxDiff = _maxSpeed * float(diff);
|
||||
float maxDiff = (_maxSpeed * float(diff)) * sWorld->getFloatConfig(CONFIG_OUTDOOR_PVP_CAPTURE_RATE);
|
||||
|
||||
if (factDiff < 0.f)
|
||||
{
|
||||
|
||||
@@ -488,6 +488,8 @@ void WorldConfig::BuildConfigCache()
|
||||
|
||||
SetConfigValue<uint32>(CONFIG_FFA_PVP_TIMER, "FFAPvPTimer", 30);
|
||||
|
||||
SetConfigValue<float>(CONFIG_OUTDOOR_PVP_CAPTURE_RATE, "OutdoorPvPCaptureRate", 1.0f);
|
||||
|
||||
SetConfigValue<uint32>(CONFIG_LOOT_NEED_BEFORE_GREED_ILVL_RESTRICTION, "LootNeedBeforeGreedILvlRestriction", 70);
|
||||
|
||||
SetConfigValue<bool>(CONFIG_PLAYER_SETTINGS_ENABLED, "EnablePlayerSettings", 0);
|
||||
|
||||
@@ -372,6 +372,7 @@ enum ServerConfigs
|
||||
CONFIG_NPC_EVADE_IF_NOT_REACHABLE,
|
||||
CONFIG_NPC_REGEN_TIME_IF_NOT_REACHABLE_IN_RAID,
|
||||
CONFIG_FFA_PVP_TIMER,
|
||||
CONFIG_OUTDOOR_PVP_CAPTURE_RATE,
|
||||
CONFIG_LOOT_NEED_BEFORE_GREED_ILVL_RESTRICTION,
|
||||
CONFIG_LFG_MAX_KICK_COUNT,
|
||||
CONFIG_LFG_KICK_PREVENTION_TIMER,
|
||||
|
||||
@@ -673,11 +673,11 @@ bool OPvPCapturePointNA::Update(uint32 diff)
|
||||
m_RespawnTimer -= diff;
|
||||
|
||||
// get the difference of numbers
|
||||
float factDiff = ((float)_activePlayers[0].size() - (float)_activePlayers[1].size()) * diff / OUTDOORPVP_OBJECTIVE_UPDATE_INTERVAL;
|
||||
float factDiff = (((float)_activePlayers[0].size() - (float)_activePlayers[1].size()) * diff / OUTDOORPVP_OBJECTIVE_UPDATE_INTERVAL) * sWorld->getFloatConfig(CONFIG_OUTDOOR_PVP_CAPTURE_RATE);
|
||||
if (!factDiff)
|
||||
return false;
|
||||
|
||||
float maxDiff = _maxSpeed * diff;
|
||||
float maxDiff = _maxSpeed * diff * sWorld->getFloatConfig(CONFIG_OUTDOOR_PVP_CAPTURE_RATE);
|
||||
|
||||
if (factDiff < 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user