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..4e0ddc7 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 minPlayersRaid; +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..87503e2 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); + minPlayersRaid = 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.");