fix(Core/Conditions): correctly check if player queued random dungeon (#24424)

This commit is contained in:
sogladev
2026-01-16 03:22:58 +01:00
committed by GitHub
parent d908b4c2fc
commit e85c267c28
7 changed files with 42 additions and 6 deletions

View File

@@ -542,13 +542,13 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo)
condMeets = object->GetMap()->GetDifficulty() == ConditionValue1;
break;
}
case CONDITION_RANDOM_DUNGEON:
case CONDITION_PLAYER_QUEUED_RANDOM_DUNGEON:
{
if (Unit* unit = object->ToUnit())
{
if (Player* player = unit->GetCharmerOrOwnerPlayerOrPlayerItself())
if (Player* player = unit->ToPlayer())
{
if (sLFGMgr->selectedRandomLfgDungeon(player->GetGUID()))
if (sLFGMgr->IsPlayerQueuedForRandomDungeon(player->GetGUID()))
{
if (!ConditionValue1)
condMeets = true;
@@ -803,7 +803,7 @@ uint32 Condition::GetSearcherTypeMaskForCondition()
case CONDITION_CHARMED:
mask |= GRID_MAP_TYPE_MASK_CREATURE | GRID_MAP_TYPE_MASK_PLAYER;
break;
case CONDITION_RANDOM_DUNGEON:
case CONDITION_PLAYER_QUEUED_RANDOM_DUNGEON:
mask |= GRID_MAP_TYPE_MASK_PLAYER;
break;
case CONDITION_WORLD_SCRIPT:
@@ -2486,7 +2486,7 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond)
return false;
}
break;
case CONDITION_RANDOM_DUNGEON:
case CONDITION_PLAYER_QUEUED_RANDOM_DUNGEON:
if (cond->ConditionValue1 > 1)
{
LOG_ERROR("sql.sql", "RandomDungeon condition has useless data in value1 ({}).", cond->ConditionValue1);