feat(Core/Wintergrasp): toggle for VoA pre-battle kick (#25942)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -3675,6 +3675,19 @@ Wintergrasp.CrashRestartTimer = 10
|
|||||||
|
|
||||||
Wintergrasp.SkipBattleSessionCount = 3500
|
Wintergrasp.SkipBattleSessionCount = 3500
|
||||||
|
|
||||||
|
#
|
||||||
|
# Wintergrasp.KickVoAPlayers
|
||||||
|
# Description: Kick players from Vault of Archavon and freeze its bosses
|
||||||
|
# in the minutes leading up to a Wintergrasp battle, and
|
||||||
|
# block new entries during wartime / the 10-minute warmup.
|
||||||
|
# Requires a server restart to take effect (not reloadable).
|
||||||
|
# Default: 1 - (Enabled, players are warned then teleported to their
|
||||||
|
# homebind before the battle starts)
|
||||||
|
# 0 - (Disabled, players stay inside and bosses behave
|
||||||
|
# normally during Wintergrasp)
|
||||||
|
|
||||||
|
Wintergrasp.KickVoAPlayers = 1
|
||||||
|
|
||||||
#
|
#
|
||||||
###################################################################################################
|
###################################################################################################
|
||||||
|
|
||||||
|
|||||||
@@ -595,6 +595,7 @@ void WorldConfig::BuildConfigCache()
|
|||||||
SetConfigValue<uint32>(CONFIG_WINTERGRASP_RESTART_AFTER_CRASH, "Wintergrasp.CrashRestartTimer", 10);
|
SetConfigValue<uint32>(CONFIG_WINTERGRASP_RESTART_AFTER_CRASH, "Wintergrasp.CrashRestartTimer", 10);
|
||||||
|
|
||||||
SetConfigValue<uint32>(CONFIG_WINTERGRASP_SKIP_BATTLE_SESSION_COUNT, "Wintergrasp.SkipBattleSessionCount", 3500);
|
SetConfigValue<uint32>(CONFIG_WINTERGRASP_SKIP_BATTLE_SESSION_COUNT, "Wintergrasp.SkipBattleSessionCount", 3500);
|
||||||
|
SetConfigValue<bool>(CONFIG_WINTERGRASP_KICK_VOA_PLAYERS, "Wintergrasp.KickVoAPlayers", true, ConfigValueCache::Reloadable::No);
|
||||||
|
|
||||||
SetConfigValue<uint32>(CONFIG_BIRTHDAY_TIME, "BirthdayTime", 1222964635);
|
SetConfigValue<uint32>(CONFIG_BIRTHDAY_TIME, "BirthdayTime", 1222964635);
|
||||||
SetConfigValue<bool>(CONFIG_MINIGOB_MANABONK, "Minigob.Manabonk.Enable", true);
|
SetConfigValue<bool>(CONFIG_MINIGOB_MANABONK, "Minigob.Manabonk.Enable", true);
|
||||||
|
|||||||
@@ -326,6 +326,7 @@ enum ServerConfigs
|
|||||||
CONFIG_WINTERGRASP_NOBATTLETIME,
|
CONFIG_WINTERGRASP_NOBATTLETIME,
|
||||||
CONFIG_WINTERGRASP_RESTART_AFTER_CRASH,
|
CONFIG_WINTERGRASP_RESTART_AFTER_CRASH,
|
||||||
CONFIG_WINTERGRASP_SKIP_BATTLE_SESSION_COUNT,
|
CONFIG_WINTERGRASP_SKIP_BATTLE_SESSION_COUNT,
|
||||||
|
CONFIG_WINTERGRASP_KICK_VOA_PLAYERS,
|
||||||
CONFIG_PACKET_SPOOF_BANMODE,
|
CONFIG_PACKET_SPOOF_BANMODE,
|
||||||
CONFIG_PACKET_SPOOF_BANDURATION,
|
CONFIG_PACKET_SPOOF_BANDURATION,
|
||||||
CONFIG_WARDEN_CLIENT_RESPONSE_DELAY,
|
CONFIG_WARDEN_CLIENT_RESPONSE_DELAY,
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
#include "Player.h"
|
#include "Player.h"
|
||||||
#include "ScriptedCreature.h"
|
#include "ScriptedCreature.h"
|
||||||
#include "SpellAuras.h"
|
#include "SpellAuras.h"
|
||||||
|
#include "World.h"
|
||||||
#include "vault_of_archavon.h"
|
#include "vault_of_archavon.h"
|
||||||
|
|
||||||
/* Vault of Archavon encounters:
|
/* Vault of Archavon encounters:
|
||||||
@@ -73,6 +74,8 @@ public:
|
|||||||
if (checkTimer >= 60000)
|
if (checkTimer >= 60000)
|
||||||
{
|
{
|
||||||
checkTimer -= 60000; // one minute
|
checkTimer -= 60000; // one minute
|
||||||
|
if (!sWorld->getBoolConfig(CONFIG_WINTERGRASP_KICK_VOA_PLAYERS))
|
||||||
|
return;
|
||||||
if (Battlefield* bf = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG))
|
if (Battlefield* bf = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG))
|
||||||
{
|
{
|
||||||
if (!bf->IsWarTime())
|
if (!bf->IsWarTime())
|
||||||
@@ -133,6 +136,9 @@ public:
|
|||||||
if (m_auiEncounter[i] == IN_PROGRESS)
|
if (m_auiEncounter[i] == IN_PROGRESS)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
if (!sWorld->getBoolConfig(CONFIG_WINTERGRASP_KICK_VOA_PLAYERS))
|
||||||
|
return false;
|
||||||
|
|
||||||
Battlefield* bf = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
|
Battlefield* bf = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
|
||||||
if (!bf || bf->IsWarTime() || bf->GetTimer() <= 10 * MINUTE * IN_MILLISECONDS)
|
if (!bf || bf->IsWarTime() || bf->GetTimer() <= 10 * MINUTE * IN_MILLISECONDS)
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user