diff --git a/data/sql/updates/pending_db_world/rev_1767208611672834231.sql b/data/sql/updates/pending_db_world/rev_1767208611672834231.sql new file mode 100644 index 000000000..4c8654736 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1767208611672834231.sql @@ -0,0 +1,2 @@ +-- +UPDATE `conditions` SET `ConditionValue1` = 0 WHERE (`SourceTypeOrReferenceId` = 4) AND (`SourceGroup` = 24524) AND (`SourceEntry` = 52676) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 105); diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 1e1840de3..add31c1b1 100644 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -553,7 +553,7 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo) if (!ConditionValue1) condMeets = true; else if (Map* map = player->GetMap()) - condMeets = map->GetDifficulty() == Difficulty(ConditionValue1); + condMeets = map->GetDifficulty() == Difficulty(ConditionValue2); } } } @@ -2487,13 +2487,16 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond) } break; case CONDITION_RANDOM_DUNGEON: - if (cond->ConditionValue1 >= MAX_DIFFICULTY) + if (cond->ConditionValue1 > 1) { - LOG_ERROR("sql.sql", "RandomDungeon condition has invalid difficulty in value1 ({}).", cond->ConditionValue1); + LOG_ERROR("sql.sql", "RandomDungeon condition has useless data in value1 ({}).", cond->ConditionValue1); + return false; + } + if (cond->ConditionValue2 >= MAX_DIFFICULTY) + { + LOG_ERROR("sql.sql", "RandomDungeon condition has invalid difficulty in value2 ({}).", cond->ConditionValue1); return false; } - if (cond->ConditionValue2) - LOG_ERROR("sql.sql", "RandomDungeon condition has useless data in value2 ({}).", cond->ConditionValue2); if (cond->ConditionValue3) LOG_ERROR("sql.sql", "RandomDungeon condition has useless data in value3 ({}).", cond->ConditionValue3); break;