Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
actionunrestraintarget.c
Go to the documentation of this file.
1
class
ActionUnrestrainTargetCB
:
ActionContinuousBaseCB
2
{
3
const
float
DEFAULT_UNRESTRAIN_TIME
= 2;
4
5
override
void
CreateActionComponent
()
6
{
7
float
time =
ObtainUnrestrainTime
();
8
9
if
( time <=0 )
10
{
11
time =
DEFAULT_UNRESTRAIN_TIME
;
12
}
13
14
if
(
m_ActionData
.m_Player.IsQuickRestrain() )
15
{
16
time =
DEBUG_QUICK_UNRESTRAIN_TIME
;
17
}
18
19
m_ActionData
.m_ActionComponent =
new
CAContinuousTime
(time);
20
}
21
22
float
ObtainUnrestrainTime
()
23
{
24
PlayerBase
target_player =
PlayerBase
.Cast(
m_ActionData
.m_Target.GetObject());
25
PlayerBase
source_player =
m_ActionData
.m_Player;
26
27
if
(target_player.IsRestrained())
28
{
29
EntityAI
item_in_hands_source = source_player.GetItemInHands();
30
31
ItemBase
item_in_hands_target = target_player.GetItemInHands();
32
33
CachedObjectsArrays
.
ARRAY_STRING
.Clear();
34
item_in_hands_target.ConfigGetTextArray(
"CanBeUnrestrainedBy"
,
CachedObjectsArrays
.
ARRAY_STRING
);
35
36
string
item_in_hands_name = item_in_hands_source.GetType();
37
38
for
(
int
i = 0; i <
CachedObjectsArrays
.
ARRAY_STRING
.Count(); i++)
39
{
40
if
((i % 2) == 0)
41
{
42
string
class_name
=
CachedObjectsArrays
.
ARRAY_STRING
.Get(i);
43
if
(
g_Game
.IsKindOf(item_in_hands_name,
class_name
) )
44
{
45
float
value =
CachedObjectsArrays
.
ARRAY_STRING
.Get(i+1).ToFloat();
46
return
value;
47
}
48
}
49
}
50
}
51
return
-1;
52
}
53
};
54
55
class
ActionUnrestrainTarget
:
ActionContinuousBase
56
{
57
void
ActionUnrestrainTarget
()
58
{
59
m_CallbackClass
=
ActionUnrestrainTargetCB
;
60
m_CommandUID
=
DayZPlayerConstants
.CMD_ACTIONFB_UNRESTRAINTARGET;
61
m_FullBody
=
true
;
62
m_StanceMask
=
DayZPlayerConstants
.STANCEMASK_ERECT |
DayZPlayerConstants
.STANCEMASK_CROUCH;
63
m_SpecialtyWeight
= UASoftSkillsWeight.PRECISE_LOW;
64
m_Text
=
"#unrestrain"
;
65
}
66
67
override
void
CreateConditionComponents
()
68
{
69
m_ConditionTarget
=
new
CCTMan
(
UAMaxDistances
.
DEFAULT
,
false
);
70
m_ConditionItem
=
new
CCINonRuined
;
71
}
72
73
override
bool
ActionCondition
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item )
74
{
75
PlayerBase
other_player =
PlayerBase
.Cast(target.GetObject());
76
EntityAI
item_in_hands_source = player.GetItemInHands();
77
78
if
( other_player.IsRestrained() )
79
{
80
//Print("is restrained");
81
EntityAI
item_in_hands_target = other_player.GetItemInHands();
82
83
CachedObjectsArrays
.
ARRAY_STRING
.Clear();
84
85
if
( item_in_hands_target )
86
{
87
item_in_hands_target.ConfigGetTextArray(
"CanBeUnrestrainedBy"
,
CachedObjectsArrays
.
ARRAY_STRING
);
88
89
string
item_in_hands_name = item_in_hands_source.GetType();
90
91
for
(
int
i = 0; i <
CachedObjectsArrays
.
ARRAY_STRING
.Count(); i++)
92
{
93
if
((i % 2) == 0)
94
{
95
string
class_name
=
CachedObjectsArrays
.
ARRAY_STRING
.Get(i);
96
if
(
g_Game
.IsKindOf(item_in_hands_name,
class_name
) )
97
{
98
return
true
;
99
}
100
}
101
}
102
}
103
}
104
return
false
;
105
}
106
107
override
void
OnFinishProgressServer
(
ActionData
action_data )
108
{
109
PlayerBase
player_target =
PlayerBase
.Cast(action_data.m_Target.GetObject());
110
PlayerBase
player_source =
PlayerBase
.Cast(action_data.m_Player);
111
112
if
(
CanReceiveAction
(action_data.m_Target) && player_target.IsRestrained())
113
{
114
EntityAI
unrestraining_tool = action_data.m_MainItem;
115
EntityAI
restraining_item = player_target.GetItemInHands();
116
117
player_target.SetRestrained(
false
);
118
119
120
//Damage applied to tool
121
CachedObjectsArrays
.
ARRAY_STRING
.Clear();
122
123
restraining_item.ConfigGetTextArray(
"CanBeUnrestrainedBy"
,
CachedObjectsArrays
.
ARRAY_STRING
);
124
restraining_item.ConfigGetFloatArray(
"CanBeUnrestrainedByDMG"
,
CachedObjectsArrays
.
ARRAY_FLOAT
);
125
126
string
item_in_hands_name = unrestraining_tool.GetType();
127
float
damageToTool = 0;
128
129
for
(
int
i = 0; i <
CachedObjectsArrays
.
ARRAY_STRING
.Count(); i++)
130
{
131
string
class_name
=
CachedObjectsArrays
.
ARRAY_STRING
.Get(i);
132
if
(
g_Game
.IsKindOf(item_in_hands_name,
class_name
) )
133
{
134
damageToTool =
CachedObjectsArrays
.
ARRAY_FLOAT
.Get(i/2);
135
break
;
136
}
137
}
138
139
MiscGameplayFunctions.DealAbsoluteDmg(action_data.m_MainItem, damageToTool);
140
//---------------------------
141
142
MiscGameplayFunctions.TransformRestrainItem(restraining_item, unrestraining_tool, player_source, player_target);
143
}
144
}
145
};
146
147
class
ReplaceAndDestroyLambda
: TurnItemIntoItemLambdaAnimSysNotifyLambda
148
{
149
PlayerBase
m_TargetPlayer
;
150
bool
m_Destroy
;
151
bool
m_Drop
;
152
153
void
ReplaceAndDestroyLambda
(
EntityAI
old_item,
string
new_item_type,
PlayerBase
player,
bool
destroy =
false
)
154
{
155
m_TargetPlayer
= player;
156
m_Destroy
= destroy;
157
m_OldItem = old_item;
158
}
159
160
override
void
OnSuccess
(
EntityAI
new_item)
161
{
162
super.OnSuccess(new_item);
163
164
if
(
m_Destroy
)
165
{
166
new_item.SetHealth(
""
,
""
,0);
167
}
168
}
169
};
170
171
class
ReplaceAndDestroyLambdaEx
:
ReplaceAndDestroyLambda
172
{
173
void
ReplaceAndDestroyLambdaEx
(
EntityAI
old_item,
string
new_item_type,
PlayerBase
player,
bool
destroy =
false
,
bool
enableDrop =
true
)
174
{
175
m_Drop
= enableDrop;
176
}
177
178
override
protected
EntityAI
CreateNewEntity
()
179
{
180
EntityAI
newItem = super.CreateNewEntity();
181
182
if
(!newItem &&
m_Drop
)
183
{
184
newItem =
EntityAI
.Cast(
g_Game
.CreateObjectEx(m_NewItemType,
m_TargetPlayer
.GetPosition(),
ECE_PLACE_ON_SURFACE
|
ECE_LOCAL
));
185
}
186
187
return
newItem;
188
}
189
};
ActionData
ActionBase ActionData
Definition
actionbase.c:30
ActionTarget
class ActionTargets ActionTarget
ECE_LOCAL
const int ECE_LOCAL
Definition
centraleconomy.c:24
ECE_PLACE_ON_SURFACE
const int ECE_PLACE_ON_SURFACE
Definition
centraleconomy.c:37
ActionBaseCB::m_ActionData
ActionData m_ActionData
Definition
animatedactionbase.c:3
ActionBase::m_FullBody
bool m_FullBody
Definition
actionbase.c:67
ActionBase::m_Text
string m_Text
Definition
actionbase.c:64
ActionBase::m_ConditionItem
ref CCIBase m_ConditionItem
Definition
actionbase.c:70
ActionBase::m_SpecialtyWeight
float m_SpecialtyWeight
Definition
actionbase.c:83
ActionBase::m_ConditionTarget
ref CCTBase m_ConditionTarget
Definition
actionbase.c:71
ActionBase::CanReceiveAction
bool CanReceiveAction(ActionTarget target)
Definition
actionbase.c:805
ActionBase::m_StanceMask
int m_StanceMask
Definition
actionbase.c:68
ActionContinuousBaseCB
Definition
actioncontinuousbase.c:2
ActionContinuousBase::ActionContinuousBase
void ActionContinuousBase()
Definition
actioncontinuousbase.c:124
ActionUnrestrainTargetCB
Definition
actionunrestraintarget.c:2
ActionUnrestrainTargetCB::CreateActionComponent
override void CreateActionComponent()
Definition
actionunrestraintarget.c:5
ActionUnrestrainTargetCB::DEFAULT_UNRESTRAIN_TIME
const float DEFAULT_UNRESTRAIN_TIME
Definition
actionunrestraintarget.c:3
ActionUnrestrainTargetCB::ObtainUnrestrainTime
float ObtainUnrestrainTime()
Definition
actionunrestraintarget.c:22
ActionUnrestrainTarget::OnFinishProgressServer
override void OnFinishProgressServer(ActionData action_data)
Definition
actionunrestraintarget.c:107
ActionUnrestrainTarget::ActionUnrestrainTarget
void ActionUnrestrainTarget()
Definition
actionunrestraintarget.c:57
ActionUnrestrainTarget::CreateConditionComponents
override void CreateConditionComponents()
Definition
actionunrestraintarget.c:67
ActionUnrestrainTarget::ActionCondition
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Definition
actionunrestraintarget.c:73
AnimatedActionBase::m_CommandUID
int m_CommandUID
Definition
animatedactionbase.c:143
AnimatedActionBase::m_CallbackClass
m_CallbackClass
Definition
animatedactionbase.c:145
CAContinuousTime
Definition
cacontinuoustime.c:2
CCINonRuined
Definition
ccinonruined.c:2
CCTMan
Definition
cctman.c:2
CachedObjectsArrays
Definition
utilityclasses.c:41
CachedObjectsArrays::ARRAY_STRING
static ref TStringArray ARRAY_STRING
Definition
utilityclasses.c:49
CachedObjectsArrays::ARRAY_FLOAT
static ref TFloatArray ARRAY_FLOAT
Definition
utilityclasses.c:50
EntityAI
Definition
inventoryitem.c:2
ItemBase
Definition
inventoryitem.c:742
PlayerBase
Definition
playerbaseclient.c:2
ReplaceAndDestroyLambdaEx::ReplaceAndDestroyLambdaEx
void ReplaceAndDestroyLambdaEx(EntityAI old_item, string new_item_type, PlayerBase player, bool destroy=false, bool enableDrop=true)
Definition
actionunrestraintarget.c:173
ReplaceAndDestroyLambdaEx::CreateNewEntity
EntityAI CreateNewEntity()
Definition
actionunrestraintarget.c:178
ReplaceAndDestroyLambda::m_TargetPlayer
PlayerBase m_TargetPlayer
Definition
actionunrestraintarget.c:149
ReplaceAndDestroyLambda::OnSuccess
override void OnSuccess(EntityAI new_item)
Definition
actionunrestraintarget.c:160
ReplaceAndDestroyLambda::ReplaceAndDestroyLambda
void ReplaceAndDestroyLambda(EntityAI old_item, string new_item_type, PlayerBase player, bool destroy=false)
Definition
actionunrestraintarget.c:153
ReplaceAndDestroyLambda::m_Drop
bool m_Drop
Definition
actionunrestraintarget.c:151
ReplaceAndDestroyLambda::m_Destroy
bool m_Destroy
Definition
actionunrestraintarget.c:150
UAMaxDistances
Definition
actionconstants.c:110
UAMaxDistances::DEFAULT
const float DEFAULT
Definition
actionconstants.c:112
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
DayZPlayerConstants
DayZPlayerConstants
defined in C++
Definition
dayzplayer.c:602
DEBUG_QUICK_UNRESTRAIN_TIME
const float DEBUG_QUICK_UNRESTRAIN_TIME
\ misc
Definition
constants.c:650
class_name
class OptionSelectorMultistate extends OptionSelector class_name
Games
Dayz
scripts
4_world
classes
useractionscomponent
actions
continuous
actionunrestraintarget.c
Generated by
1.17.0