Core/SmartAI: added new target type (invoker's vehicle)

-added new action: ENTER_VEHICLE (79), param1: seatID

--HG--
branch : trunk
This commit is contained in:
Rat
2010-10-31 14:21:35 +01:00
parent b6c8158f88
commit 75c065637c
4 changed files with 32 additions and 3 deletions

View File

@@ -910,6 +910,21 @@ void SmartScript::ProcessAction(SmartScriptHolder &e, Unit* unit, uint32 var0, u
case SMART_ACTION_CALL_SCRIPT_RESET:
OnReset();
break;
case SMART_ACTION_ENTER_VEHICLE:
{
if (!me) return;
ObjectList* targets = GetTargets(e, unit);
if (!targets) return;
for (ObjectList::iterator itr = targets->begin(); itr != targets->end(); itr++)
{
if (IsUnit(*itr) && (*itr)->ToUnit()->GetVehicleKit())
{
me->EnterVehicle((*itr)->ToUnit()->GetVehicleKit(), e.action.enterVehicle.seat);
return;
}
}
break;
}
default:
sLog.outErrorDb("SmartScript::ProcessAction: Unhandled Action type %u", e.GetActionType());
break;
@@ -1062,6 +1077,12 @@ ObjectList* SmartScript::GetTargets(SmartScriptHolder e, Unit* invoker)
l->push_back(invoker);
}
break;
case SMART_TARGET_ACTION_INVOKER_VEHICLE:
if (invoker && invoker->GetVehicle() && invoker->GetVehicle()->GetBase())
{
l->push_back(invoker->GetVehicle()->GetBase());
}
break;
case SMART_TARGET_INVOKER_PARTY:
if (invoker)
{