ActionPullBodyFromTransport.c
class ActionPullBodyFromTransport: ActionInteractBase
{
void ActionPullBodyFromTransport()
{
m_StanceMask = DayZPlayerConstants.STANCEMASK_ALL;
m_Text = "#pull_out_body";
}
override void CreateConditionComponents()
{
m_ConditionItem = new CCINone();
m_ConditionTarget = new CCTNone();
}
override bool HasProgress()
{
return false;
}
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
{
PlayerBase targetPlayer = PlayerBase.Cast(target.GetObject());
if (!targetPlayer)
return false;
if (targetPlayer.IsAlive())
return false;
IEntity parent = targetPlayer.GetParent();
if (!parent || !parent.IsInherited(Transport))
return false;
bool found = false;
Transport transportTarget = Transport.Cast(targetPlayer.GetParent());
for (int i = 0; i < transportTarget.CrewSize(); ++i)
{
if (transportTarget.CrewMember(i) == targetPlayer)
{
found = true;
break;
}
}
return found && transportTarget.CrewCanGetThrough(i);
}
override void OnStartServer(ActionData action_data)
{
super.OnStartServer(action_data);
DayZPlayerImplement player;
if (!Class.CastTo(player, action_data.m_Target.GetObject()))
{
return;
}
player.TriggerPullPlayerOutOfVehicle();
}
override bool IsInstant()
{
return true;
}
}