diff options
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 11 | ||||
-rwxr-xr-x | src/server/game/Conditions/ConditionMgr.cpp | 4 |
2 files changed, 6 insertions, 9 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 4b15805c2c9..0794179d158 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -85,14 +85,9 @@ void SmartScript::ProcessEventsFor(SMART_EVENT e, Unit* unit, uint32 var0, uint3 if (eventType == e/* && (!(*i).event.event_phase_mask || IsInPhase((*i).event.event_phase_mask)) && !((*i).event.event_flags & SMART_EVENT_FLAG_NOT_REPEATABLE && (*i).runOnce)*/) { bool meets = true; - if (unit) - { - if (Player* player = unit->ToPlayer()) - { - ConditionList conds = sConditionMgr->GetConditionsForSmartEvent((*i).entryOrGuid, (*i).event_id, (*i).source_type); - meets = sConditionMgr->IsObjectMeetToConditions(player, conds); - } - } + ConditionList conds = sConditionMgr->GetConditionsForSmartEvent((*i).entryOrGuid, (*i).event_id, (*i).source_type); + ConditionSourceInfo info = ConditionSourceInfo(unit, GetBaseObject()); + meets = sConditionMgr->IsObjectMeetToConditionList(info, conds); if (meets) ProcessEvent(*i, unit, var0, var1, bvar, spell, gob); diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 0e8e999bcac..14f782683b3 100755 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -36,7 +36,7 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo) // object not present, return false if (!object) { - sLog->outDebug(LOG_FILTER_CONDITIONSYS, "Condition object not found"); + sLog->outDebug(LOG_FILTER_CONDITIONSYS, "Condition object not found for condition (Entry: %u Type: %u Group: %u)", mSourceEntry, mSourceType, mSourceGroup); return false; } bool condMeets = false; @@ -334,6 +334,8 @@ uint32 Condition::GetMaxAvailableConditionTargets() { case CONDITION_SOURCE_TYPE_SPELL: return 2; + case CONDITION_SOURCE_TYPE_SMART_EVENT: + return 2; default: return 1; } |