mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-17 10:55:43 +00:00
feat(Core/Battleground): Added new config variables to battleground b… (#6432)
- Closes #5098.
This commit is contained in:
@@ -1818,7 +1818,9 @@ void Battleground::HandleTriggerBuff(GameObject* gameObject)
|
||||
uint32 index = 0;
|
||||
for (; index < BgObjects.size() && BgObjects[index] != gameObject->GetGUID(); ++index);
|
||||
if (BgObjects[index] != gameObject->GetGUID())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_BuffChange)
|
||||
{
|
||||
@@ -1835,7 +1837,26 @@ void Battleground::HandleTriggerBuff(GameObject* gameObject)
|
||||
}
|
||||
}
|
||||
|
||||
SpawnBGObject(index, BUFF_RESPAWN_TIME);
|
||||
uint32 respawnTime = SPEED_BUFF_RESPAWN_TIME;
|
||||
if (Map* map = FindBgMap())
|
||||
{
|
||||
if (GameObject* obj = map->GetGameObject(BgObjects[index]))
|
||||
{
|
||||
switch (obj->GetEntry())
|
||||
{
|
||||
case BG_OBJECTID_REGENBUFF_ENTRY:
|
||||
respawnTime = RESTORATION_BUFF_RESPAWN_TIME;
|
||||
break;
|
||||
case BG_OBJECTID_BERSERKERBUFF_ENTRY:
|
||||
respawnTime = BERSERKING_BUFF_RESPAWN_TIME;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SpawnBGObject(index, respawnTime);
|
||||
}
|
||||
|
||||
void Battleground::HandleKillPlayer(Player* victim, Player* killer)
|
||||
|
||||
@@ -136,7 +136,9 @@ enum BattlegroundTimeIntervals
|
||||
};
|
||||
|
||||
#define RESURRECTION_INTERVAL (sWorld->getIntConfig(CONFIG_BATTLEGROUND_PLAYER_RESPAWN) * IN_MILLISECONDS)
|
||||
#define BUFF_RESPAWN_TIME (sWorld->getIntConfig(CONFIG_BATTLEGROUND_BUFF_RESPAWN))
|
||||
#define RESTORATION_BUFF_RESPAWN_TIME (sWorld->getIntConfig(CONFIG_BATTLEGROUND_RESTORATION_BUFF_RESPAWN))
|
||||
#define BERSERKING_BUFF_RESPAWN_TIME (sWorld->getIntConfig(CONFIG_BATTLEGROUND_BERSERKING_BUFF_RESPAWN))
|
||||
#define SPEED_BUFF_RESPAWN_TIME (sWorld->getIntConfig(CONFIG_BATTLEGROUND_SPEED_BUFF_RESPAWN))
|
||||
|
||||
enum BattlegroundStartTimeIntervals
|
||||
{
|
||||
|
||||
@@ -405,12 +405,12 @@ bool BattlegroundWS::SetupBattleground()
|
||||
AddObject(BG_WS_OBJECT_A_FLAG, BG_OBJECT_A_FLAG_WS_ENTRY, 1540.423f, 1481.325f, 351.8284f, 3.089233f, 0, 0, 0.9996573f, 0.02617699f, RESPAWN_IMMEDIATELY);
|
||||
AddObject(BG_WS_OBJECT_H_FLAG, BG_OBJECT_H_FLAG_WS_ENTRY, 916.0226f, 1434.405f, 345.413f, 0.01745329f, 0, 0, 0.008726535f, 0.9999619f, RESPAWN_IMMEDIATELY);
|
||||
// buffs
|
||||
AddObject(BG_WS_OBJECT_SPEEDBUFF_1, BG_OBJECTID_SPEEDBUFF_ENTRY, 1449.93f, 1470.71f, 342.6346f, -1.64061f, 0, 0, 0.7313537f, -0.6819983f, BUFF_RESPAWN_TIME);
|
||||
AddObject(BG_WS_OBJECT_SPEEDBUFF_2, BG_OBJECTID_SPEEDBUFF_ENTRY, 1005.171f, 1447.946f, 335.9032f, 1.64061f, 0, 0, 0.7313537f, 0.6819984f, BUFF_RESPAWN_TIME);
|
||||
AddObject(BG_WS_OBJECT_REGENBUFF_1, BG_OBJECTID_REGENBUFF_ENTRY, 1317.506f, 1550.851f, 313.2344f, -0.2617996f, 0, 0, 0.1305263f, -0.9914448f, BUFF_RESPAWN_TIME);
|
||||
AddObject(BG_WS_OBJECT_REGENBUFF_2, BG_OBJECTID_REGENBUFF_ENTRY, 1110.451f, 1353.656f, 316.5181f, -0.6806787f, 0, 0, 0.333807f, -0.9426414f, BUFF_RESPAWN_TIME);
|
||||
AddObject(BG_WS_OBJECT_BERSERKBUFF_1, BG_OBJECTID_BERSERKERBUFF_ENTRY, 1320.09f, 1378.79f, 314.7532f, 1.186824f, 0, 0, 0.5591929f, 0.8290376f, BUFF_RESPAWN_TIME);
|
||||
AddObject(BG_WS_OBJECT_BERSERKBUFF_2, BG_OBJECTID_BERSERKERBUFF_ENTRY, 1139.688f, 1560.288f, 306.8432f, -2.443461f, 0, 0, 0.9396926f, -0.3420201f, BUFF_RESPAWN_TIME);
|
||||
AddObject(BG_WS_OBJECT_SPEEDBUFF_1, BG_OBJECTID_SPEEDBUFF_ENTRY, 1449.93f, 1470.71f, 342.6346f, -1.64061f, 0, 0, 0.7313537f, -0.6819983f, SPEED_BUFF_RESPAWN_TIME);
|
||||
AddObject(BG_WS_OBJECT_SPEEDBUFF_2, BG_OBJECTID_SPEEDBUFF_ENTRY, 1005.171f, 1447.946f, 335.9032f, 1.64061f, 0, 0, 0.7313537f, 0.6819984f, SPEED_BUFF_RESPAWN_TIME);
|
||||
AddObject(BG_WS_OBJECT_REGENBUFF_1, BG_OBJECTID_REGENBUFF_ENTRY, 1317.506f, 1550.851f, 313.2344f, -0.2617996f, 0, 0, 0.1305263f, -0.9914448f, RESTORATION_BUFF_RESPAWN_TIME);
|
||||
AddObject(BG_WS_OBJECT_REGENBUFF_2, BG_OBJECTID_REGENBUFF_ENTRY, 1110.451f, 1353.656f, 316.5181f, -0.6806787f, 0, 0, 0.333807f, -0.9426414f, RESTORATION_BUFF_RESPAWN_TIME);
|
||||
AddObject(BG_WS_OBJECT_BERSERKBUFF_1, BG_OBJECTID_BERSERKERBUFF_ENTRY, 1320.09f, 1378.79f, 314.7532f, 1.186824f, 0, 0, 0.5591929f, 0.8290376f, BERSERKING_BUFF_RESPAWN_TIME);
|
||||
AddObject(BG_WS_OBJECT_BERSERKBUFF_2, BG_OBJECTID_BERSERKERBUFF_ENTRY, 1139.688f, 1560.288f, 306.8432f, -2.443461f, 0, 0, 0.9396926f, -0.3420201f, BERSERKING_BUFF_RESPAWN_TIME);
|
||||
// alliance gates
|
||||
AddObject(BG_WS_OBJECT_DOOR_A_1, BG_OBJECT_DOOR_A_1_WS_ENTRY, 1503.335f, 1493.466f, 352.1888f, 3.115414f, 0, 0, 0.9999143f, 0.01308903f, RESPAWN_IMMEDIATELY);
|
||||
AddObject(BG_WS_OBJECT_DOOR_A_2, BG_OBJECT_DOOR_A_2_WS_ENTRY, 1492.478f, 1457.912f, 342.9689f, 3.115414f, 0, 0, 0.9999143f, 0.01308903f, RESPAWN_IMMEDIATELY);
|
||||
|
||||
@@ -284,7 +284,9 @@ enum WorldIntConfigs
|
||||
CONFIG_BATTLEGROUND_REPORT_AFK,
|
||||
CONFIG_BATTLEGROUND_INVITATION_TYPE,
|
||||
CONFIG_BATTLEGROUND_PLAYER_RESPAWN,
|
||||
CONFIG_BATTLEGROUND_BUFF_RESPAWN,
|
||||
CONFIG_BATTLEGROUND_RESTORATION_BUFF_RESPAWN,
|
||||
CONFIG_BATTLEGROUND_BERSERKING_BUFF_RESPAWN,
|
||||
CONFIG_BATTLEGROUND_SPEED_BUFF_RESPAWN,
|
||||
CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_LEVEL,
|
||||
CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_PLAYERS,
|
||||
CONFIG_ARENA_MAX_RATING_DIFFERENCE,
|
||||
|
||||
@@ -1123,11 +1123,23 @@ void World::LoadConfigSettings(bool reload)
|
||||
LOG_ERROR("server.loading", "Battleground.PlayerRespawn (%i) must be >2. Using 30 instead.", m_int_configs[CONFIG_BATTLEGROUND_PLAYER_RESPAWN]);
|
||||
m_int_configs[CONFIG_BATTLEGROUND_PLAYER_RESPAWN] = 30;
|
||||
}
|
||||
m_int_configs[CONFIG_BATTLEGROUND_BUFF_RESPAWN] = sConfigMgr->GetOption<int32>("Battleground.BuffRespawn", 180);
|
||||
if (m_int_configs[CONFIG_BATTLEGROUND_BUFF_RESPAWN] < 1)
|
||||
m_int_configs[CONFIG_BATTLEGROUND_RESTORATION_BUFF_RESPAWN] = sConfigMgr->GetOption<int32>("Battleground.RestorationBuffRespawn", 20);
|
||||
if (m_int_configs[CONFIG_BATTLEGROUND_RESTORATION_BUFF_RESPAWN] < 1)
|
||||
{
|
||||
LOG_ERROR("server.loading", "Battleground.BuffRespawn (%i) must be >0. Using 180 instead.", m_int_configs[CONFIG_BATTLEGROUND_BUFF_RESPAWN]);
|
||||
m_int_configs[CONFIG_BATTLEGROUND_BUFF_RESPAWN] = 180;
|
||||
LOG_ERROR("server.loading", "Battleground.RestorationBuffRespawn (%i) must be > 0. Using 20 instead.", m_int_configs[CONFIG_BATTLEGROUND_RESTORATION_BUFF_RESPAWN]);
|
||||
m_int_configs[CONFIG_BATTLEGROUND_RESTORATION_BUFF_RESPAWN] = 20;
|
||||
}
|
||||
m_int_configs[CONFIG_BATTLEGROUND_BERSERKING_BUFF_RESPAWN] = sConfigMgr->GetOption<int32>("Battleground.BerserkingBuffRespawn", 120);
|
||||
if (m_int_configs[CONFIG_BATTLEGROUND_BERSERKING_BUFF_RESPAWN] < 1)
|
||||
{
|
||||
LOG_ERROR("server.loading", "Battleground.BerserkingBuffRespawn (%i) must be > 0. Using 120 instead.", m_int_configs[CONFIG_BATTLEGROUND_BERSERKING_BUFF_RESPAWN]);
|
||||
m_int_configs[CONFIG_BATTLEGROUND_BERSERKING_BUFF_RESPAWN] = 120;
|
||||
}
|
||||
m_int_configs[CONFIG_BATTLEGROUND_SPEED_BUFF_RESPAWN] = sConfigMgr->GetOption<int32>("Battleground.SpeedBuffRespawn", 150);
|
||||
if (m_int_configs[CONFIG_BATTLEGROUND_SPEED_BUFF_RESPAWN] < 1)
|
||||
{
|
||||
LOG_ERROR("server.loading", "Battleground.SpeedBuffRespawn (%i) must be > 0. Using 150 instead.", m_int_configs[CONFIG_BATTLEGROUND_SPEED_BUFF_RESPAWN]);
|
||||
m_int_configs[CONFIG_BATTLEGROUND_SPEED_BUFF_RESPAWN] = 150;
|
||||
}
|
||||
|
||||
m_int_configs[CONFIG_ARENA_MAX_RATING_DIFFERENCE] = sConfigMgr->GetOption<int32> ("Arena.MaxRatingDifference", 150);
|
||||
|
||||
@@ -2672,11 +2672,25 @@ Battleground.RewardLoserHonorLast = 5
|
||||
Battleground.PlayerRespawn = 30
|
||||
|
||||
#
|
||||
# Battleground.BuffRespawn
|
||||
# Description: Battleground buff respawn time (in seconds).
|
||||
# Default: 180 (Recommended 10+)
|
||||
# Battleground.RestorationBuffRespawn
|
||||
# Description: Battleground restoration buff respawn time (in seconds).
|
||||
# Default: 20 (Recommended 10+)
|
||||
|
||||
Battleground.BuffRespawn = 180
|
||||
Battleground.RestorationBuffRespawn = 20
|
||||
|
||||
#
|
||||
# Battleground.BerserkingBuffRespawn
|
||||
# Description: Battleground berserking buff respawn time (in seconds).
|
||||
# Default: 120 (Recommended 10+)
|
||||
|
||||
Battleground.BerserkingBuffRespawn = 120
|
||||
|
||||
#
|
||||
# Battleground.SpeedBuffRespawn
|
||||
# Description: Battleground speed buff respawn time (in seconds).
|
||||
# Default: 150 (Recommended 10+)
|
||||
|
||||
Battleground.SpeedBuffRespawn = 150
|
||||
|
||||
#
|
||||
###################################################################################################
|
||||
|
||||
Reference in New Issue
Block a user