diff options
| author | kissingers <33601959+kissingers@users.noreply.github.com> | 2025-12-07 01:38:47 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-06 14:38:47 -0300 |
| commit | 34f261b92c0e64c47ec5c79a61b82af612f454a0 (patch) | |
| tree | 26284acab7995087a1b0b329e84e5f05584a5e3a /src | |
| parent | 5dc2382805e278538cabcd1e3e1570b354cb9e56 (diff) | |
feat(Core/LFG): Add option to exclude locked heroic dungeons in RDF (#24055)
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/apps/worldserver/worldserver.conf.dist | 9 | ||||
| -rw-r--r-- | src/server/game/DungeonFinding/LFGMgr.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/World/WorldConfig.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/World/WorldConfig.h | 1 |
4 files changed, 12 insertions, 2 deletions
diff --git a/src/server/apps/worldserver/worldserver.conf.dist b/src/server/apps/worldserver/worldserver.conf.dist index 089c1911a5..fd9c61cfed 100644 --- a/src/server/apps/worldserver/worldserver.conf.dist +++ b/src/server/apps/worldserver/worldserver.conf.dist @@ -3376,6 +3376,15 @@ DungeonAccessRequirements.LFGLevelDBCOverride = 0 DungeonFinder.CastDeserter = 1 # +# DungeonFinder.AllowCompleted +# +# Description: Controls whether completed heroic dungeons are excluded from LFG queue. +# 0 - (Classic WLK mode: Dungeons completed by any group member today are excluded (daily lockout enforced)) +# Default: 1 - (Blizzlike: All dungeons are available for queue, even if already completed) + +DungeonFinder.AllowCompleted = 1 + +# ################################################################################################### ################################################################################################### diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index b48138a8ba..4b19fac35c 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -1496,7 +1496,7 @@ namespace lfg { uint32 dungeonId = (it2->first & 0x00FFFFFF); // Compare dungeon ids - if (it2->second == LFG_LOCKSTATUS_RAID_LOCKED && isRDF) + if (it2->second == LFG_LOCKSTATUS_RAID_LOCKED && isRDF && sWorld->getBoolConfig(CONFIG_LFG_ALLOW_COMPLETED)) continue; LfgDungeonSet::iterator itDungeon = dungeons.find(dungeonId); diff --git a/src/server/game/World/WorldConfig.cpp b/src/server/game/World/WorldConfig.cpp index 761b8dd7be..6ae1b16cec 100644 --- a/src/server/game/World/WorldConfig.cpp +++ b/src/server/game/World/WorldConfig.cpp @@ -555,8 +555,8 @@ void WorldConfig::BuildConfigCache() // Dungeon finder SetConfigValue<uint32>(CONFIG_LFG_OPTIONSMASK, "DungeonFinder.OptionsMask", 5); - SetConfigValue<bool>(CONFIG_LFG_CAST_DESERTER, "DungeonFinder.CastDeserter", true); + SetConfigValue<bool>(CONFIG_LFG_ALLOW_COMPLETED, "DungeonFinder.AllowCompleted", true); // DBC_ItemAttributes SetConfigValue<bool>(CONFIG_DBC_ENFORCE_ITEM_ATTRIBUTES, "DBC.EnforceItemAttributes", true); diff --git a/src/server/game/World/WorldConfig.h b/src/server/game/World/WorldConfig.h index 540fd8324c..7a34aad36e 100644 --- a/src/server/game/World/WorldConfig.h +++ b/src/server/game/World/WorldConfig.h @@ -94,6 +94,7 @@ enum ServerConfigs CONFIG_ALLOW_TICKETS, CONFIG_DELETE_CHARACTER_TICKET_TRACE, CONFIG_LFG_CAST_DESERTER, + CONFIG_LFG_ALLOW_COMPLETED, CONFIG_DBC_ENFORCE_ITEM_ATTRIBUTES, CONFIG_PRESERVE_CUSTOM_CHANNELS, CONFIG_PDUMP_NO_PATHS, |
