Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
actionrestrainself.c
Go to the documentation of this file.
2{
3 const float DEFAULT_RESTRAIN_TIME = 2;
4
5 override void CreateActionComponent()
6 {
7 float time = DEFAULT_RESTRAIN_TIME;
8
9 if( m_ActionData.m_MainItem.ConfigIsExisting("RestrainTime") )
10 {
11 time = m_ActionData.m_MainItem.ConfigGetFloat("RestrainTime");
12 }
13
14 if( m_ActionData.m_Player.IsQuickRestrain() )
15 {
17 }
18
19 m_ActionData.m_ActionComponent = new CAContinuousTime(time);
20 }
21};
22
24{
26 {
28 m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_RESTRAINSELF;
29 m_FullBody = true;
30 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
31 //m_Animation = "INJECTEPIPENS";
32 m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_LOW;
33 m_Text = "#restrain_self";
34 }
35
36 override int GetStanceMask(PlayerBase player)
37 {
38 if ( player.IsPlayerInStance(DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_PRONE))
39 return DayZPlayerConstants.STANCEMASK_CROUCH;
40 else
41 return DayZPlayerConstants.STANCEMASK_ERECT;
42 }
43
44 override void CreateConditionComponents()
45 {
48 }
49
50 override bool HasTarget()
51 {
52 return false;
53 }
54
55 override bool HasAlternativeInterrupt()
56 {
57 return true;
58 }
59
60 override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
61 {
62 if(player.IsRestrained())
63 {
64 return false;
65 }
66
67 return true;
68 }
69
70 override void OnStartServer(ActionData action_data)
71 {
72 super.OnStartServer(action_data);
73
74 action_data.m_Player.SetRestrainStarted(true);
75 }
76
77 override void OnFinishProgressServer( ActionData action_data )
78 {
79 PlayerBase player = PlayerBase.Cast( action_data.m_Player );
80 EntityAI item_in_hands = action_data.m_MainItem;
81 if (item_in_hands)
82 {
83 ClearInventoryReservationEx(action_data);
84 //action_data.m_Player.RemoveQuickBarEntityShortcut(item_in_hands);
85 string new_item_name = MiscGameplayFunctions.ObtainRestrainItemTargetClassname(item_in_hands);
86 TurnItemIntoItemLambdaRestrainLambda lambda = new TurnItemIntoItemLambdaRestrainLambda(item_in_hands, new_item_name, action_data.m_Player);
87 MiscGameplayFunctions.TurnItemIntoItemEx(player, lambda);
88 }
89 }
90
91 override void OnFinishProgressClient( ActionData action_data )
92 {
93 //action_data.m_Player.RemoveQuickBarEntityShortcut(action_data.m_MainItem);
94 }
95
96 override void OnEndServer(ActionData action_data)
97 {
98 super.OnEndServer(action_data);
99
100 action_data.m_Player.SetRestrainStarted(false);
101 }
102};
ActionData m_ActionData
float m_SpecialtyWeight
Definition actionbase.c:77
int m_StanceMask
Definition actionbase.c:62
string m_Text
Definition actionbase.c:58
ref CCIBase m_ConditionItem
Definition actionbase.c:64
void ClearInventoryReservationEx(ActionData action_data)
bool m_FullBody
Definition actionbase.c:61
ref CCTBase m_ConditionTarget
Definition actionbase.c:65
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
const float DEBUG_QUICK_UNRESTRAIN_TIME
Definition constants.c:647
int GetStanceMask()