diff options
author | Rat <none@none> | 2010-11-03 17:25:46 +0100 |
---|---|---|
committer | Rat <none@none> | 2010-11-03 17:25:46 +0100 |
commit | 4747c5f820ad966a8cf95633ad3b8456ef57c79f (patch) | |
tree | c6643ebf2696fa9c7764fcf2a3d30655c37d07d1 | |
parent | 58bc1194d2b625f9a8de14dd61e03f5419641306 (diff) |
Core/SmartAI: fixed EVENT_RANGE handling, and limited it to only creature scripts
--HG--
branch : trunk
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 18 | ||||
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartScriptMgr.h | 2 |
2 files changed, 7 insertions, 13 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 7857cd1d75e..84520090466 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -1477,19 +1477,13 @@ void SmartScript::ProcessEvent(SmartScriptHolder &e, Unit* unit, uint32 var0, ui } case SMART_EVENT_RANGE: { - if (!GetBaseObject()) return; - ObjectList* targets = GetTargets(e, unit); - if (!targets) return; - for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); itr++) + if (!me || !me->isInCombat() || !me->getVictim()) + return; + + if (me->IsInRange(me->getVictim(),(float)e.event.minMaxRepeat.min,(float)e.event.minMaxRepeat.max)) { - if (!IsUnit((*itr))) - continue; - if (GetBaseObject()->IsInMap((*itr))) - if (GetBaseObject()->IsInRange((*itr),(float)e.event.minMaxRepeat.min,(float)e.event.minMaxRepeat.max)) - { - ProcessAction(e, (*itr)->ToUnit()); - RecalcTimer(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax); - } + ProcessAction(e, me->getVictim()); + RecalcTimer(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax); } break; } diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h index b70c65c1e04..dc3a30013da 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -982,7 +982,7 @@ const uint32 SmartAIEventMask[SMART_EVENT_END][2] = {SMART_EVENT_DEATH, SMART_SCRIPT_TYPE_MASK_CREATURE }, {SMART_EVENT_EVADE, SMART_SCRIPT_TYPE_MASK_CREATURE }, {SMART_EVENT_SPELLHIT, SMART_SCRIPT_TYPE_MASK_CREATURE + SMART_SCRIPT_TYPE_MASK_GAMEOBJECT }, - {SMART_EVENT_RANGE, SMART_SCRIPT_TYPE_MASK_CREATURE + SMART_SCRIPT_TYPE_MASK_GAMEOBJECT }, + {SMART_EVENT_RANGE, SMART_SCRIPT_TYPE_MASK_CREATURE }, {SMART_EVENT_OOC_LOS, SMART_SCRIPT_TYPE_MASK_CREATURE }, {SMART_EVENT_RESPAWN, SMART_SCRIPT_TYPE_MASK_CREATURE + SMART_SCRIPT_TYPE_MASK_GAMEOBJECT }, {SMART_EVENT_TARGET_HEALTH_PCT, SMART_SCRIPT_TYPE_MASK_CREATURE }, |