diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index ea7660f1cb..aa7b00284d 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -3120,6 +3120,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 a81716dd26..20dae9f5d1 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -1209,8 +1209,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 @@ -1333,6 +1334,11 @@ struct SmartTarget uint32 param2; uint32 param3; } raw; + + struct + { + uint32 seat; + } vehicle; }; };