diff options
| author | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-08-08 20:56:27 +0200 |
|---|---|---|
| committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-08-08 20:56:27 +0200 |
| commit | 80d7c093ebdf17b24390426c7b09c0b8a732949e (patch) | |
| tree | 5de0d83d847c5d2a48598fa8ca01aaf46eb247a2 /src/server/game | |
| parent | 2daa8ed56f430fd4f4dcc0171519f1793d00ae79 (diff) | |
| parent | 27a433d277f81de21e7e97552cfd1ab00c249273 (diff) | |
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Diffstat (limited to 'src/server/game')
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 11 | ||||
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartScriptMgr.cpp | 1 | ||||
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartScriptMgr.h | 8 | ||||
| -rw-r--r-- | src/server/game/Scripting/ScriptLoader.cpp | 2 |
4 files changed, 20 insertions, 2 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 04940858062..1a445435d4e 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -1422,7 +1422,8 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u e.GetTargetType() == SMART_TARGET_CREATURE_DISTANCE || e.GetTargetType() == SMART_TARGET_GAMEOBJECT_RANGE || e.GetTargetType() == SMART_TARGET_GAMEOBJECT_GUID || e.GetTargetType() == SMART_TARGET_GAMEOBJECT_DISTANCE || e.GetTargetType() == SMART_TARGET_CLOSEST_CREATURE || e.GetTargetType() == SMART_TARGET_CLOSEST_GAMEOBJECT || - e.GetTargetType() == SMART_TARGET_OWNER_OR_SUMMONER || e.GetTargetType() == SMART_TARGET_ACTION_INVOKER) + e.GetTargetType() == SMART_TARGET_OWNER_OR_SUMMONER || e.GetTargetType() == SMART_TARGET_ACTION_INVOKER || + e.GetTargetType() == SMART_TARGET_CLOSEST_ENEMY) { ObjectList* targets = GetTargets(e, unit); if (!targets) @@ -2485,6 +2486,14 @@ ObjectList* SmartScript::GetTargets(SmartScriptHolder const& e, Unit* invoker /* } break; } + case SMART_TARGET_CLOSEST_ENEMY: + { + if (me) + if (Unit* target = me->SelectNearestTarget(e.target.closestAttackable.maxDist)) + l->push_back(target); + + break; + } case SMART_TARGET_POSITION: default: break; diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp index 3c6be82c28b..fe78c4fce06 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp @@ -300,6 +300,7 @@ bool SmartAIMgr::IsTargetValid(SmartScriptHolder const& e) case SMART_TARGET_THREAT_LIST: case SMART_TARGET_CLOSEST_GAMEOBJECT: case SMART_TARGET_CLOSEST_CREATURE: + case SMART_TARGET_CLOSEST_ENEMY: case SMART_TARGET_STORED: break; default: diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h index d80b4816d4b..ede8101b522 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -993,7 +993,8 @@ enum SMARTAI_TARGETS SMART_TARGET_ACTION_INVOKER_VEHICLE = 22, // Unit's vehicle who caused this Event to occur SMART_TARGET_OWNER_OR_SUMMONER = 23, // Unit's owner or summoner SMART_TARGET_THREAT_LIST = 24, // All units on creature's threat list - SMART_TARGET_END = 25 + SMART_TARGET_CLOSEST_ENEMY = 25, // maxDist + SMART_TARGET_END = 26 }; struct SmartTarget @@ -1077,6 +1078,11 @@ struct SmartTarget struct { + uint32 maxDist; + } closestAttackable; + + struct + { uint32 param1; uint32 param2; uint32 param3; diff --git a/src/server/game/Scripting/ScriptLoader.cpp b/src/server/game/Scripting/ScriptLoader.cpp index 8253516867b..6d12a073824 100644 --- a/src/server/game/Scripting/ScriptLoader.cpp +++ b/src/server/game/Scripting/ScriptLoader.cpp @@ -536,6 +536,7 @@ void AddSC_boss_nexusprince_shaffar(); //Auchindoun Mana Tombs void AddSC_boss_pandemonius(); void AddSC_boss_darkweaver_syth(); //Auchindoun Sekketh Halls void AddSC_boss_talon_king_ikiss(); +void AddSC_boss_anzu(); void AddSC_instance_sethekk_halls(); void AddSC_instance_shadow_labyrinth(); //Auchindoun Shadow Labyrinth void AddSC_boss_ambassador_hellmaw(); @@ -1035,6 +1036,7 @@ void AddOutlandScripts() AddSC_boss_pandemonius(); AddSC_boss_darkweaver_syth(); //Auchindoun Sekketh Halls AddSC_boss_talon_king_ikiss(); + AddSC_boss_anzu(); AddSC_instance_sethekk_halls(); AddSC_instance_shadow_labyrinth(); //Auchindoun Shadow Labyrinth AddSC_boss_ambassador_hellmaw(); |
