mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-23 21:56:22 +00:00
feat(Core/LFG): Implemented LFG_OPTION_ENABLE_SEASONAL_BOSSES. (#8219)
Closes #8098
This commit is contained in:
@@ -272,7 +272,7 @@ namespace lfg
|
||||
|
||||
void LFGMgr::Update(uint32 tdiff, uint8 task)
|
||||
{
|
||||
if (!isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
||||
if (!isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||
return;
|
||||
|
||||
if (task == 0)
|
||||
@@ -394,6 +394,8 @@ namespace lfg
|
||||
LfgDungeonSet const& dungeons = GetDungeonsByRandom(0);
|
||||
LfgLockMap lock;
|
||||
|
||||
bool onlySeasonalBosses = m_options == LFG_OPTION_ENABLE_SEASONAL_BOSSES;
|
||||
|
||||
float avgItemLevel = player->GetAverageItemLevelForDF();
|
||||
|
||||
for (LfgDungeonSet::const_iterator it = dungeons.begin(); it != dungeons.end(); ++it)
|
||||
@@ -405,7 +407,7 @@ namespace lfg
|
||||
DungeonProgressionRequirements const* ar = sObjectMgr->GetAccessRequirement(dungeon->map, Difficulty(dungeon->difficulty));
|
||||
|
||||
uint32 lockData = 0;
|
||||
if (dungeon->expansion > expansion)
|
||||
if (dungeon->expansion > expansion || (onlySeasonalBosses && !dungeon->seasonal))
|
||||
lockData = LFG_LOCKSTATUS_INSUFFICIENT_EXPANSION;
|
||||
else if (DisableMgr::IsDisabledFor(DISABLE_TYPE_MAP, dungeon->map, player))
|
||||
lockData = LFG_LOCKSTATUS_RAID_LOCKED;
|
||||
|
||||
@@ -36,8 +36,9 @@ namespace lfg
|
||||
|
||||
enum LfgOptions
|
||||
{
|
||||
LFG_OPTION_ENABLE_DUNGEON_FINDER = 0x01,
|
||||
LFG_OPTION_ENABLE_RAID_BROWSER = 0x02,
|
||||
LFG_OPTION_ENABLE_DUNGEON_FINDER = 0x01,
|
||||
LFG_OPTION_ENABLE_RAID_BROWSER = 0x02,
|
||||
LFG_OPTION_ENABLE_SEASONAL_BOSSES = 0x04
|
||||
};
|
||||
|
||||
enum LFGMgrEnum
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace lfg
|
||||
|
||||
void LFGPlayerScript::OnLevelChanged(Player* player, uint8 /*oldLevel*/)
|
||||
{
|
||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||
return;
|
||||
|
||||
sLFGMgr->InitializeLockedDungeons(player);
|
||||
@@ -44,7 +44,7 @@ namespace lfg
|
||||
|
||||
void LFGPlayerScript::OnLogout(Player* player)
|
||||
{
|
||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||
return;
|
||||
|
||||
if (!player->GetGroup() || !player->GetGroup()->isLFGGroup())
|
||||
@@ -64,7 +64,7 @@ namespace lfg
|
||||
|
||||
void LFGPlayerScript::OnLogin(Player* player)
|
||||
{
|
||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||
return;
|
||||
|
||||
// Temporal: Trying to determine when group data and LFG data gets desynched
|
||||
@@ -138,7 +138,7 @@ namespace lfg
|
||||
|
||||
void LFGGroupScript::OnAddMember(Group* group, ObjectGuid guid)
|
||||
{
|
||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||
return;
|
||||
|
||||
ObjectGuid gguid = group->GetGUID();
|
||||
@@ -183,7 +183,7 @@ namespace lfg
|
||||
(void)kicker;
|
||||
(void)reason;
|
||||
|
||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||
return;
|
||||
|
||||
ObjectGuid gguid = group->GetGUID();
|
||||
@@ -249,7 +249,7 @@ namespace lfg
|
||||
|
||||
void LFGGroupScript::OnDisband(Group* group)
|
||||
{
|
||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||
return;
|
||||
|
||||
ObjectGuid gguid = group->GetGUID();
|
||||
@@ -264,7 +264,7 @@ namespace lfg
|
||||
|
||||
void LFGGroupScript::OnChangeLeader(Group* group, ObjectGuid newLeaderGuid, ObjectGuid oldLeaderGuid)
|
||||
{
|
||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||
return;
|
||||
|
||||
ObjectGuid gguid = group->GetGUID();
|
||||
@@ -283,7 +283,7 @@ namespace lfg
|
||||
// used only with EXTRA_LOGS
|
||||
(void)guid;
|
||||
|
||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||
return;
|
||||
|
||||
ObjectGuid gguid = group->GetGUID();
|
||||
|
||||
@@ -45,7 +45,7 @@ void BuildPartyLockDungeonBlock(WorldPacket& data, const lfg::LfgLockPartyMap& l
|
||||
|
||||
void WorldSession::HandleLfgJoinOpcode(WorldPacket& recvData)
|
||||
{
|
||||
if (!sLFGMgr->isOptionEnabled(lfg::LFG_OPTION_ENABLE_DUNGEON_FINDER | lfg::LFG_OPTION_ENABLE_RAID_BROWSER))
|
||||
if (!sLFGMgr->isOptionEnabled(lfg::LFG_OPTION_ENABLE_DUNGEON_FINDER | lfg::LFG_OPTION_ENABLE_RAID_BROWSER | lfg::LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||
{
|
||||
recvData.rfinish();
|
||||
return;
|
||||
|
||||
@@ -1320,7 +1320,7 @@ void World::LoadConfigSettings(bool reload)
|
||||
m_int_configs[CONFIG_WARDEN_CLIENT_RESPONSE_DELAY] = sConfigMgr->GetOption<int32>("Warden.ClientResponseDelay", 600);
|
||||
|
||||
// Dungeon finder
|
||||
m_int_configs[CONFIG_LFG_OPTIONSMASK] = sConfigMgr->GetOption<int32>("DungeonFinder.OptionsMask", 3);
|
||||
m_int_configs[CONFIG_LFG_OPTIONSMASK] = sConfigMgr->GetOption<int32>("DungeonFinder.OptionsMask", 5);
|
||||
|
||||
// Max instances per hour
|
||||
m_int_configs[CONFIG_MAX_INSTANCES_PER_HOUR] = sConfigMgr->GetOption<int32>("AccountInstancesPerHour", 5);
|
||||
|
||||
@@ -1246,11 +1246,13 @@ DeletedCharacterTicketTrace = 0
|
||||
# DungeonFinder.OptionsMask
|
||||
# Description: Dungeon and raid finder system.
|
||||
# Value is a bitmask consisting of:
|
||||
# LFG_OPTION_ENABLE_DUNGEON_FINDER = 1, Enable the dungeon finder browser
|
||||
# LFG_OPTION_ENABLE_RAID_BROWSER = 2, Enable the raid browser
|
||||
# Default: 1
|
||||
# LFG_OPTION_ENABLE_DUNGEON_FINDER = 1, Enable the dungeon finder browser
|
||||
# LFG_OPTION_ENABLE_RAID_BROWSER = 2, Enable the raid browser
|
||||
# LFG_OPTION_ENABLE_SEASONAL_BOSSES = 4, Enable seasonal bosses
|
||||
|
||||
DungeonFinder.OptionsMask = 1
|
||||
# Default: 5
|
||||
|
||||
DungeonFinder.OptionsMask = 5
|
||||
|
||||
#
|
||||
# AccountInstancesPerHour
|
||||
|
||||
Reference in New Issue
Block a user