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;
|
uint32 index = 0;
|
||||||
for (; index < BgObjects.size() && BgObjects[index] != gameObject->GetGUID(); ++index);
|
for (; index < BgObjects.size() && BgObjects[index] != gameObject->GetGUID(); ++index);
|
||||||
if (BgObjects[index] != gameObject->GetGUID())
|
if (BgObjects[index] != gameObject->GetGUID())
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_BuffChange)
|
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)
|
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 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
|
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_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);
|
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
|
// 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_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, 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, 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, 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, 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, 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
|
// 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_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);
|
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_REPORT_AFK,
|
||||||
CONFIG_BATTLEGROUND_INVITATION_TYPE,
|
CONFIG_BATTLEGROUND_INVITATION_TYPE,
|
||||||
CONFIG_BATTLEGROUND_PLAYER_RESPAWN,
|
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_LEVEL,
|
||||||
CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_PLAYERS,
|
CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_LIMIT_MIN_PLAYERS,
|
||||||
CONFIG_ARENA_MAX_RATING_DIFFERENCE,
|
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]);
|
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_PLAYER_RESPAWN] = 30;
|
||||||
}
|
}
|
||||||
m_int_configs[CONFIG_BATTLEGROUND_BUFF_RESPAWN] = sConfigMgr->GetOption<int32>("Battleground.BuffRespawn", 180);
|
m_int_configs[CONFIG_BATTLEGROUND_RESTORATION_BUFF_RESPAWN] = sConfigMgr->GetOption<int32>("Battleground.RestorationBuffRespawn", 20);
|
||||||
if (m_int_configs[CONFIG_BATTLEGROUND_BUFF_RESPAWN] < 1)
|
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]);
|
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_BUFF_RESPAWN] = 180;
|
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);
|
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.PlayerRespawn = 30
|
||||||
|
|
||||||
#
|
#
|
||||||
# Battleground.BuffRespawn
|
# Battleground.RestorationBuffRespawn
|
||||||
# Description: Battleground buff respawn time (in seconds).
|
# Description: Battleground restoration buff respawn time (in seconds).
|
||||||
# Default: 180 (Recommended 10+)
|
# 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