From bb0433eed34eebb55a7221f523a01ba3232f881b Mon Sep 17 00:00:00 2001 From: Quentin Dawans Date: Thu, 1 May 2025 21:04:12 +0200 Subject: [PATCH 1/2] Add options to configure minimum players in raids --- conf/AutoBalance.conf.dist | 2 ++ src/ABConfig.cpp | 2 ++ src/ABConfig.h | 2 ++ src/ABUtils.cpp | 8 ++++++-- src/ABWorldScript.cpp | 2 ++ 5 files changed, 14 insertions(+), 2 deletions(-) diff --git a/conf/AutoBalance.conf.dist b/conf/AutoBalance.conf.dist index ffe2abc..b15d35a 100644 --- a/conf/AutoBalance.conf.dist +++ b/conf/AutoBalance.conf.dist @@ -81,6 +81,8 @@ AutoBalance.Disable.PerInstance = "" # Default: 1 AutoBalance.MinPlayers = 1 AutoBalance.MinPlayers.Heroic = 1 +AutoBalance.MinPlayers.Raid = 1 +AutoBalance.MinPlayers.RaidHeroic = 1 # # AutoBalance.MinPlayers.PerInstance diff --git a/src/ABConfig.cpp b/src/ABConfig.cpp index fba88ca..5b38abc 100644 --- a/src/ABConfig.cpp +++ b/src/ABConfig.cpp @@ -10,6 +10,8 @@ std::list disabledDungeonIds; uint32 minPlayersNormal; uint32 minPlayersHeroic; +uint32 minPlayersRaid; +uint32 minPlayersRaidHeroic; std::map minPlayersPerDungeonIdMap; std::map minPlayersPerHeroicDungeonIdMap; diff --git a/src/ABConfig.h b/src/ABConfig.h index 560ea99..6b4e2a6 100644 --- a/src/ABConfig.h +++ b/src/ABConfig.h @@ -28,6 +28,8 @@ extern std::list disabledDun extern uint32 minPlayersNormal; extern uint32 minPlayersHeroic; +extern uint32 minPlayersRaidNormal; +extern uint32 minPlayersRaidHeroic; extern std::map minPlayersPerDungeonIdMap; extern std::map minPlayersPerHeroicDungeonIdMap; diff --git a/src/ABUtils.cpp b/src/ABUtils.cpp index a4d5240..0802c40 100644 --- a/src/ABUtils.cpp +++ b/src/ABUtils.cpp @@ -2059,10 +2059,14 @@ void LoadMapSettings(Map* map) if (isDungeonInMinPlayerMap(map->GetId(), instanceMap->IsHeroic())) mapABInfo->minPlayers = instanceMap->IsHeroic() ? minPlayersPerHeroicDungeonIdMap[map->GetId()] : minPlayersPerDungeonIdMap[map->GetId()]; - else if (instanceMap->IsHeroic()) + if (instanceMap->GetMaxPlayers() <= 5 && !instanceMap->IsHeroic()) + mapABInfo->minPlayers = minPlayersNormal; + else if (instanceMap->GetMaxPlayers() <= 5 && instanceMap->IsHeroic()) mapABInfo->minPlayers = minPlayersHeroic; + else if (instanceMap->GetMaxPlayers() > 5 && !instanceMap->IsHeroic()) + mapABInfo->minPlayers = minPlayersRaid; else - mapABInfo->minPlayers = minPlayersNormal; + mapABInfo->minPlayers = minPlayersRaidHeroic; // // If the minPlayers value we determined is less than the max number of players in this map, adjust down diff --git a/src/ABWorldScript.cpp b/src/ABWorldScript.cpp index c59593a..ec9046e 100644 --- a/src/ABWorldScript.cpp +++ b/src/ABWorldScript.cpp @@ -45,6 +45,8 @@ void AutoBalance_WorldScript::SetInitialWorldSettings() minPlayersNormal = sConfigMgr->GetOption("AutoBalance.MinPlayers", 1); minPlayersHeroic = sConfigMgr->GetOption("AutoBalance.MinPlayers.Heroic", 1); + minPlayersRaidNormal = sConfigMgr->GetOption("AutoBalance.MinPlayers.Raid", minPlayersNormal); + minPlayersRaidHeroic = sConfigMgr->GetOption("AutoBalance.MinPlayers.RaidHeroic", minPlayersHeroic); if (sConfigMgr->GetOption("AutoBalance.PerDungeonPlayerCounts", false, false)) LOG_WARN("server.loading", "mod-autobalance: deprecated value `AutoBalance.PerDungeonPlayerCounts` defined in `AutoBalance.conf`. This variable will be removed in a future release. Please see `AutoBalance.conf.dist` for more details."); From cf76d93fa070c96f304880ad0b2f000173f5922e Mon Sep 17 00:00:00 2001 From: Quentin Dawans Date: Thu, 1 May 2025 21:18:13 +0200 Subject: [PATCH 2/2] minPlayersRaidNormal -> minPlayersRaid --- src/ABConfig.h | 2 +- src/ABWorldScript.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ABConfig.h b/src/ABConfig.h index 6b4e2a6..4e0ddc7 100644 --- a/src/ABConfig.h +++ b/src/ABConfig.h @@ -28,7 +28,7 @@ extern std::list disabledDun extern uint32 minPlayersNormal; extern uint32 minPlayersHeroic; -extern uint32 minPlayersRaidNormal; +extern uint32 minPlayersRaid; extern uint32 minPlayersRaidHeroic; extern std::map minPlayersPerDungeonIdMap; extern std::map minPlayersPerHeroicDungeonIdMap; diff --git a/src/ABWorldScript.cpp b/src/ABWorldScript.cpp index ec9046e..87503e2 100644 --- a/src/ABWorldScript.cpp +++ b/src/ABWorldScript.cpp @@ -45,7 +45,7 @@ void AutoBalance_WorldScript::SetInitialWorldSettings() minPlayersNormal = sConfigMgr->GetOption("AutoBalance.MinPlayers", 1); minPlayersHeroic = sConfigMgr->GetOption("AutoBalance.MinPlayers.Heroic", 1); - minPlayersRaidNormal = sConfigMgr->GetOption("AutoBalance.MinPlayers.Raid", minPlayersNormal); + minPlayersRaid = sConfigMgr->GetOption("AutoBalance.MinPlayers.Raid", minPlayersNormal); minPlayersRaidHeroic = sConfigMgr->GetOption("AutoBalance.MinPlayers.RaidHeroic", minPlayersHeroic); if (sConfigMgr->GetOption("AutoBalance.PerDungeonPlayerCounts", false, false))