diff options
| author | QAston <qaston@gmail.com> | 2012-02-10 23:40:38 +0100 |
|---|---|---|
| committer | QAston <qaston@gmail.com> | 2012-02-10 23:42:08 +0100 |
| commit | ce4a4ffe50a26fa2040d4af3933621b66813488d (patch) | |
| tree | ca1afb50445232f1c7e7a30862038c31024d8934 /src/server/game/AI/SmartScripts | |
| parent | 8c2526e7d0f8cd516e0a3d3ebd6e554774c76c7b (diff) | |
Core/Db/Conditions: Add ContidionTarget column which allows selection of objects which will be checked by condition, depending on SourceTypeOrReferenceId.
So far usable only with CONDITION_SOURCE_TYPE_SPELL:
ContidionTarget = 0 - check caster
ContidionTarget = 1 - check explicit target
Diffstat (limited to 'src/server/game/AI/SmartScripts')
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 12 | ||||
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.h | 12 |
2 files changed, 13 insertions, 11 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 42a23236182..01f301cc85d 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -2783,6 +2783,18 @@ void SmartScript::InstallEvents() } } +bool SmartScript::ConditionValid(Unit* u, int32 c, int32 v1, int32 v2, int32 v3) +{ + if (c == 0) return true; + if (!u || !u->ToPlayer()) return false; + Condition cond; + cond.mConditionType = ConditionType(uint32(c)); + cond.mConditionValue1 = uint32(v1); + cond.mConditionValue1 = uint32(v2); + cond.mConditionValue1 = uint32(v3); + return cond.Meets(ConditionSourceInfo(u->ToPlayer())); +} + void SmartScript::OnUpdate(uint32 const diff) { if ((mScriptType == SMART_SCRIPT_TYPE_CREATURE || mScriptType == SMART_SCRIPT_TYPE_GAMEOBJECT) && !GetBaseObject()) diff --git a/src/server/game/AI/SmartScripts/SmartScript.h b/src/server/game/AI/SmartScripts/SmartScript.h index fec38a690ed..f7524582ab7 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.h +++ b/src/server/game/AI/SmartScripts/SmartScript.h @@ -84,17 +84,7 @@ class SmartScript return obj && obj->GetTypeId() == TYPEID_GAMEOBJECT; } - bool ConditionValid(Unit* u, int32 c, int32 v1, int32 v2, int32 v3) - { - if (c == 0) return true; - if (!u || !u->ToPlayer()) return false; - Condition cond; - cond.mConditionType = ConditionType(uint32(c)); - cond.mConditionValue1 = uint32(v1); - cond.mConditionValue1 = uint32(v2); - cond.mConditionValue1 = uint32(v3); - return cond.Meets(u->ToPlayer()); - } + bool ConditionValid(Unit* u, int32 c, int32 v1, int32 v2, int32 v3); void OnUpdate(const uint32 diff); void OnMoveInLineOfSight(Unit* who); |
