feat(Core: new hook OnPlayerQueueRandomDungeon() and revert (now unnecessary) PR (#8196)
This commit is contained in:
@@ -405,7 +405,7 @@ namespace lfg
|
|||||||
DungeonProgressionRequirements const* ar = sObjectMgr->GetAccessRequirement(dungeon->map, Difficulty(dungeon->difficulty));
|
DungeonProgressionRequirements const* ar = sObjectMgr->GetAccessRequirement(dungeon->map, Difficulty(dungeon->difficulty));
|
||||||
|
|
||||||
uint32 lockData = 0;
|
uint32 lockData = 0;
|
||||||
if (dungeon->expansion > expansion || dungeon->expansion > sWorld->getIntConfig(CONFIG_LFG_DUNGEON_FINDER_EXPANSION))
|
if (dungeon->expansion > expansion)
|
||||||
lockData = LFG_LOCKSTATUS_INSUFFICIENT_EXPANSION;
|
lockData = LFG_LOCKSTATUS_INSUFFICIENT_EXPANSION;
|
||||||
else if (DisableMgr::IsDisabledFor(DISABLE_TYPE_MAP, dungeon->map, player))
|
else if (DisableMgr::IsDisabledFor(DISABLE_TYPE_MAP, dungeon->map, player))
|
||||||
lockData = LFG_LOCKSTATUS_RAID_LOCKED;
|
lockData = LFG_LOCKSTATUS_RAID_LOCKED;
|
||||||
@@ -572,6 +572,7 @@ namespace lfg
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
rDungeonId = (*dungeons.begin());
|
rDungeonId = (*dungeons.begin());
|
||||||
|
sScriptMgr->OnPlayerQueueRandomDungeon(player, rDungeonId);
|
||||||
}
|
}
|
||||||
// No break on purpose (Random can only be dungeon or heroic dungeon)
|
// No break on purpose (Random can only be dungeon or heroic dungeon)
|
||||||
[[fallthrough]];
|
[[fallthrough]];
|
||||||
|
|||||||
@@ -1629,6 +1629,11 @@ void ScriptMgr::OnPlayerAddToBattleground(Player* player, Battleground* bg)
|
|||||||
FOREACH_SCRIPT(PlayerScript)->OnAddToBattleground(player, bg);
|
FOREACH_SCRIPT(PlayerScript)->OnAddToBattleground(player, bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScriptMgr::OnPlayerQueueRandomDungeon(Player* player, uint32 & rDungeonId)
|
||||||
|
{
|
||||||
|
FOREACH_SCRIPT(PlayerScript)->OnQueueRandomDungeon(player, rDungeonId);
|
||||||
|
}
|
||||||
|
|
||||||
void ScriptMgr::OnPlayerRemoveFromBattleground(Player* player, Battleground* bg)
|
void ScriptMgr::OnPlayerRemoveFromBattleground(Player* player, Battleground* bg)
|
||||||
{
|
{
|
||||||
FOREACH_SCRIPT(PlayerScript)->OnRemoveFromBattleground(player, bg);
|
FOREACH_SCRIPT(PlayerScript)->OnRemoveFromBattleground(player, bg);
|
||||||
|
|||||||
@@ -841,6 +841,9 @@ public:
|
|||||||
// Called when a player is added to battleground
|
// Called when a player is added to battleground
|
||||||
virtual void OnAddToBattleground(Player* /*player*/, Battleground* /*bg*/) { }
|
virtual void OnAddToBattleground(Player* /*player*/, Battleground* /*bg*/) { }
|
||||||
|
|
||||||
|
// Called when a player queues a Random Dungeon using the RDF (Random Dungeon Finder)
|
||||||
|
virtual void OnQueueRandomDungeon(Player* /*player*/, uint32 & /*rDungeonId*/) { }
|
||||||
|
|
||||||
// Called when a player is removed from battleground
|
// Called when a player is removed from battleground
|
||||||
virtual void OnRemoveFromBattleground(Player* /*player*/, Battleground* /*bg*/) { }
|
virtual void OnRemoveFromBattleground(Player* /*player*/, Battleground* /*bg*/) { }
|
||||||
|
|
||||||
@@ -1646,6 +1649,7 @@ public: /* PlayerScript */
|
|||||||
bool OnBeforePlayerTeleport(Player* player, uint32 mapid, float x, float y, float z, float orientation, uint32 options, Unit* target);
|
bool OnBeforePlayerTeleport(Player* player, uint32 mapid, float x, float y, float z, float orientation, uint32 options, Unit* target);
|
||||||
void OnPlayerUpdateFaction(Player* player);
|
void OnPlayerUpdateFaction(Player* player);
|
||||||
void OnPlayerAddToBattleground(Player* player, Battleground* bg);
|
void OnPlayerAddToBattleground(Player* player, Battleground* bg);
|
||||||
|
void OnPlayerQueueRandomDungeon(Player* player, uint32 & rDungeonId);
|
||||||
void OnPlayerRemoveFromBattleground(Player* player, Battleground* bg);
|
void OnPlayerRemoveFromBattleground(Player* player, Battleground* bg);
|
||||||
void OnAchievementComplete(Player* player, AchievementEntry const* achievement);
|
void OnAchievementComplete(Player* player, AchievementEntry const* achievement);
|
||||||
bool OnBeforeAchievementComplete(Player* player, AchievementEntry const* achievement);
|
bool OnBeforeAchievementComplete(Player* player, AchievementEntry const* achievement);
|
||||||
|
|||||||
@@ -344,7 +344,6 @@ enum WorldIntConfigs
|
|||||||
CONFIG_PRESERVE_CUSTOM_CHANNEL_DURATION,
|
CONFIG_PRESERVE_CUSTOM_CHANNEL_DURATION,
|
||||||
CONFIG_PERSISTENT_CHARACTER_CLEAN_FLAGS,
|
CONFIG_PERSISTENT_CHARACTER_CLEAN_FLAGS,
|
||||||
CONFIG_LFG_OPTIONSMASK,
|
CONFIG_LFG_OPTIONSMASK,
|
||||||
CONFIG_LFG_DUNGEON_FINDER_EXPANSION,
|
|
||||||
CONFIG_MAX_INSTANCES_PER_HOUR,
|
CONFIG_MAX_INSTANCES_PER_HOUR,
|
||||||
CONFIG_WINTERGRASP_PLR_MAX,
|
CONFIG_WINTERGRASP_PLR_MAX,
|
||||||
CONFIG_WINTERGRASP_PLR_MIN,
|
CONFIG_WINTERGRASP_PLR_MIN,
|
||||||
|
|||||||
@@ -1321,7 +1321,6 @@ void World::LoadConfigSettings(bool reload)
|
|||||||
|
|
||||||
// Dungeon finder
|
// 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", 3);
|
||||||
m_int_configs[CONFIG_LFG_DUNGEON_FINDER_EXPANSION] = sConfigMgr->GetOption<int32>("DungeonFinder.Expansion", 2);
|
|
||||||
|
|
||||||
// Max instances per hour
|
// Max instances per hour
|
||||||
m_int_configs[CONFIG_MAX_INSTANCES_PER_HOUR] = sConfigMgr->GetOption<int32>("AccountInstancesPerHour", 5);
|
m_int_configs[CONFIG_MAX_INSTANCES_PER_HOUR] = sConfigMgr->GetOption<int32>("AccountInstancesPerHour", 5);
|
||||||
|
|||||||
@@ -1252,16 +1252,6 @@ DeletedCharacterTicketTrace = 0
|
|||||||
|
|
||||||
DungeonFinder.OptionsMask = 1
|
DungeonFinder.OptionsMask = 1
|
||||||
|
|
||||||
#
|
|
||||||
# DungeonFinder.Expansion
|
|
||||||
# Description: Allow setting which expansion can be used in LFG
|
|
||||||
# 2 - Wotlk (Default)
|
|
||||||
# 1 - TBC
|
|
||||||
# 0 - Classic
|
|
||||||
# Default: 2
|
|
||||||
|
|
||||||
DungeonFinder.Expansion = 2
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# AccountInstancesPerHour
|
# AccountInstancesPerHour
|
||||||
# Description: Controls the max amount of different instances player can enter within hour
|
# Description: Controls the max amount of different instances player can enter within hour
|
||||||
|
|||||||
Reference in New Issue
Block a user