aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/game/Conditions/ConditionMgr.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index f7e42519774..0730d4e9a23 100644
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -1014,7 +1014,11 @@ bool ConditionMgr::IsObjectMeetToConditionList(ConditionSourceInfo& sourceInfo,
auto ref = ConditionStore[CONDITION_SOURCE_TYPE_REFERENCE_CONDITION].find({ condition.ReferenceId, 0, 0 });
if (ref != ConditionStore[CONDITION_SOURCE_TYPE_REFERENCE_CONDITION].end())
{
- if (!IsObjectMeetToConditionList(sourceInfo, *ref->second))
+ bool condMeets = IsObjectMeetToConditionList(sourceInfo, *ref->second);
+ if (condition.NegativeCondition)
+ condMeets = !condMeets;
+
+ if (!condMeets)
itr->second = false;
}
else
@@ -1337,8 +1341,6 @@ void ConditionMgr::LoadConditions(bool isReload)
TC_LOG_ERROR("sql.sql", "Condition {} {} has useless data in value2 ({})!", rowType, iSourceTypeOrReferenceId, cond.ConditionValue2);
if (cond.ConditionValue3)
TC_LOG_ERROR("sql.sql", "Condition {} {} has useless data in value3 ({})!", rowType, iSourceTypeOrReferenceId, cond.ConditionValue3);
- if (cond.NegativeCondition)
- TC_LOG_ERROR("sql.sql", "Condition {} {} has useless data in NegativeCondition ({})!", rowType, iSourceTypeOrReferenceId, cond.NegativeCondition);
}
else if (!isConditionTypeValid(&cond))//doesn't have reference, validate ConditionType
continue;