48 return other_player.CanBeRestrained();
52 return !other_player.IsRestrained();
71 if ( target_player.IsSurrendered() || !target_player.CanBeRestrained() )
82 target_player.SetRestrainPrelocked(
true);
94 if ( target_player.IsSurrendered() )
96 SurrenderDataRestrain sdr =
new SurrenderDataRestrain;
97 target_player.EndSurrenderRequest(sdr);
99 else if ( target_player.IsEmotePlaying() )
101 target_player.m_EmoteManager.ServerRequestEmoteCancel();
104 target_player.SetRestrainStarted(
true);
112 target_player.SetRestrainStarted(
false);
113 target_player.SetRestrainPrelocked(
false);
124 EntityAI item_in_hands_target = target_player.GetHumanInventory().GetEntityInHands();
125 EntityAI item_in_hands_source = source_player.GetHumanInventory().GetEntityInHands();
127 if ( !item_in_hands_source )
129 Error(
"Restraining target failed, nothing in hands");
133 string new_item_name = MiscGameplayFunctions.ObtainRestrainItemTargetClassname(item_in_hands_source);
134 if (item_in_hands_target)
136 Print(
"Restraining player with item in hands, first drop & then restrain");
139 MiscGameplayFunctions.TurnItemInHandsIntoItemEx(target_player, lambda2);
143 Print(
"Restraining player with empty hands");
145 source_player.LocalReplaceItemInHandsWithNewElsewhere(lambda);
154 super.OnFinishProgressClient( action_data );
172 super.OnSuccess(new_item);
184 if (item_in_hands_source)
186 string new_item_name = MiscGameplayFunctions.ObtainRestrainItemTargetClassname(item_in_hands_source);
191 Error(
"ChainedDropAndRestrainLambda: missing source player!");
195 Error(
"ChainedDropAndRestrainLambda: missing source item in hands!");
201 super.CopyOldPropertiesToNew(old_item, new_item);
219 OverrideNewLocation(targetHnd);
224 super.OnSuccess(new_item);
protected float m_SpecialtyWeight
ref CCIBase m_ConditionItem
ref CCTBase m_ConditionTarget
bool CanReceiveAction(ActionTarget target)
protected bool m_FullBody
protected int m_StanceMask
void RestrainTargetPlayerLambda(EntityAI old_item, string new_item_type, PlayerBase player)
ChainedDropAndRestrainLambda m_TargetPlayer
class ActionTargets ActionTarget
float GetActionComponentProgress()
protected ActionData m_ActionData
ref CABase m_ActionComponent
ref ActionTarget m_Target
override void CreateActionComponent()
const float DEFAULT_RESTRAIN_TIME
override void OnFinishProgressServer(ActionData action_data)
override bool ActionConditionContinue(ActionData action_data)
override void OnEndServer(ActionData action_data)
override int GetStanceMask(PlayerBase player)
override void CreateConditionComponents()
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
override void OnFinishProgressClient(ActionData action_data)
void ActionRestrainTarget()
override void OnStartServer(ActionData action_data)
protected int m_CommandUID
protected m_CallbackClass
proto native Mission GetMission()
AnalyticsManagerClient GetAnalyticsClient()
override void CopyOldPropertiesToNew(notnull EntityAI old_item, EntityAI new_item)
override void OnSuccess(EntityAI new_item)
ExplosivesBase m_PairedExplosive
PlayerBase m_SourcePlayer
void ChainedDropAndRestrainLambda(EntityAI old_item, string new_item_type, PlayerBase player, bool destroy=false, PlayerBase src_player=null)
proto native void SetHands(notnull EntityAI parent, EntityAI e)
sets current inventory location type to Hands
bool IsPlayerDisconnecting(Man player)
EntityAI GetControlledDevice()
override void OnSuccess(EntityAI new_item)
DayZPlayerInstanceType
defined in C++
DayZPlayerConstants
defined in C++
proto native CGame GetGame()
void Error(string err)
Messagebox with error message.
proto void Print(void var)
Prints content of variable to console/log.
const float DEBUG_QUICK_UNRESTRAIN_TIME