diff options
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 8 | ||||
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartScriptMgr.h | 8 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 20ad2721b67..f4efd3e525b 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -3080,6 +3080,14 @@ ObjectList* SmartScript::GetTargets(SmartScriptHolder const& e, Unit* invoker /* } } } + case SMART_TARGET_VEHICLE_ACCESSORY: + { + if (me && me->IsVehicle()) + { + if (Unit* target = me->GetVehicleKit()->GetPassenger(e.target.vehicle.seat)) + l->push_back(target); + } + } case SMART_TARGET_POSITION: case SMART_TARGET_NONE: default: diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h index 7a082bb472b..2b8192e2965 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -1195,8 +1195,9 @@ enum SMARTAI_TARGETS SMART_TARGET_CLOSEST_FRIENDLY = 26, // maxDist, playerOnly SMART_TARGET_LOOT_RECIPIENTS = 27, // all players that have tagged this creature (for kill credit) SMART_TARGET_FARTHEST = 28, // maxDist, playerOnly, isInLos + SMART_TARGET_VEHICLE_ACCESSORY = 29, // seat number (vehicle can target it's own accessory) - SMART_TARGET_END = 29 + SMART_TARGET_END = 30 }; struct SmartTarget @@ -1319,6 +1320,11 @@ struct SmartTarget uint32 param2; uint32 param3; } raw; + + struct + { + uint32 seat; + } vehicle; }; }; |