Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
actionattachexplosivestrigger.c
Go to the documentation of this file.
1
class
ActionAttachExplosivesTriggerCB
:
ActionContinuousBaseCB
2
{
3
override
void
CreateActionComponent
()
4
{
5
m_ActionData
.m_ActionComponent =
new
CAContinuousTime
(
UATimeSpent
.
EXPLOSIVE_ARM
);
6
}
7
}
8
9
class
ActionAttachExplosivesTrigger
:
ActionContinuousBase
10
{
11
void
ActionAttachExplosivesTrigger
()
12
{
13
m_CallbackClass =
ActionAttachExplosivesTriggerCB
;
14
m_CommandUID
=
DayZPlayerConstants
.CMD_ACTIONFB_CRAFTING;
15
m_FullBody =
true
;
16
m_SpecialtyWeight = UASoftSkillsWeight.PRECISE_LOW;
17
18
m_Text =
"#STR_ArmExplosive"
;
19
}
20
21
override
void
CreateConditionComponents
()
22
{
23
m_ConditionTarget =
new
CCTNonRuined
(
UAMaxDistances
.
DEFAULT
);
24
m_ConditionItem =
new
CCINonRuined
();
25
}
26
27
override
bool
ActionConditionContinue
(
ActionData
action_data)
28
{
29
return
true
;
30
}
31
32
override
bool
CanBeSetFromInventory
()
33
{
34
return
true
;
35
}
36
37
override
bool
ActionCondition
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item)
38
{
39
if
(target.GetParent())
40
{
41
return
false
;
42
}
43
44
if
(
ClaymoreMine
.Cast(target.GetObject()))
45
{
46
return
false
;
47
}
48
49
ExplosivesBase
explosive =
ExplosivesBase
.Cast(target.GetObject());
50
if
(explosive)
51
{
52
ClockBase
timedTrigger;
53
if
(
ClockBase
.CastTo(timedTrigger, item))
54
{
55
return
timedTrigger.IsAlarmOn() && explosive.IsTimerDetonable() && explosive.CanBeArmed();
56
}
57
58
return
explosive.CanBeArmed();
59
}
60
61
62
return
false
;
63
}
64
65
override
void
OnStartServer
(
ActionData
action_data)
66
{
67
super.OnStartServer(action_data);
68
69
ExplosivesBase
item =
ExplosivesBase
.Cast(action_data.m_Target.GetObject());
70
if
(item.GetArmSoundset() !=
string
.Empty)
71
item.StartItemSoundServer(SoundConstants.ITEM_EXPLOSIVE_ARM);
72
}
73
74
override
void
OnEndServer
(
ActionData
action_data)
75
{
76
super.OnEndServer(action_data);
77
78
ExplosivesBase
item =
ExplosivesBase
.Cast(action_data.m_Target.GetObject());
79
if
(item.GetArmSoundset() !=
string
.Empty)
80
item.StopItemSoundServer(SoundConstants.ITEM_EXPLOSIVE_ARM);
81
}
82
83
override
void
OnFinishProgressServer
(
ActionData
action_data)
84
{
85
ClearInventoryReservationEx
(action_data);
86
87
ExplosivesBase
explosive =
ExplosivesBase
.Cast(action_data.m_Target.GetObject());
88
if
(explosive)
89
{
90
explosive.OnPlacementComplete(action_data.m_Player, explosive.GetPosition(), action_data.m_Player.GetOrientation());
91
explosive.UnlockTriggerSlots();
92
}
93
94
if
(action_data.m_MainItem.IsInherited(RemoteDetonator))
95
{
96
CreateRemoteDetonatorReceiverAsAttachment
(action_data);
97
98
return
;
99
}
100
else
101
{
102
AttachItem
(action_data);
103
}
104
}
105
106
override
void
OnFinishProgressClient
(
ActionData
action_data)
107
{
108
ClearInventoryReservationEx
(action_data);
109
110
ExplosivesBase
explosive =
ExplosivesBase
.Cast(action_data.m_Target.GetObject());
111
if
(explosive)
112
{
113
explosive.UnlockTriggerSlots();
114
}
115
116
if
(!action_data.m_MainItem.IsInherited(RemoteDetonator))
117
{
118
AttachItem
(action_data);
119
}
120
}
121
122
protected
void
CreateRemoteDetonatorReceiverAsAttachment
(
ActionData
action_data)
123
{
124
ExplosivesBase
explosive;
125
if
(action_data.m_Target.IsProxy())
126
{
127
explosive =
ExplosivesBase
.Cast(action_data.m_Target.GetParent());
128
}
129
else
130
{
131
explosive =
ExplosivesBase
.Cast(action_data.m_Target.GetObject());
132
}
133
134
if
(explosive && action_data.m_MainItem)
135
{
136
explosive.UnlockTriggerSlots();
137
RemoteDetonatorTrigger
.
SpawnInPlayerHands
(action_data.m_Player, explosive);
138
}
139
}
140
141
protected
void
AttachItem
(
ActionData
action_data)
142
{
143
EntityAI
targetEAI;
144
if
(action_data.m_Target.IsProxy())
145
{
146
targetEAI =
EntityAI
.Cast(action_data.m_Target.GetParent());
147
}
148
else
149
{
150
targetEAI =
EntityAI
.Cast(action_data.m_Target.GetObject());
151
}
152
153
if
(targetEAI && action_data.m_MainItem)
154
{
155
int
slotId =
InventorySlots
.
GetSlotIdFromString
(action_data.m_MainItem.GetExplosiveTriggerSlotName());
156
action_data.m_Player.PredictiveTakeEntityToTargetAttachmentEx(targetEAI, action_data.m_MainItem, slotId);
157
}
158
}
159
}
ActionAttachExplosivesTrigger
ActionAttachExplosivesTriggerCB ActionContinuousBaseCB ActionAttachExplosivesTrigger()
Definition
actionattachexplosivestrigger.c:11
CreateRemoteDetonatorReceiverAsAttachment
void CreateRemoteDetonatorReceiverAsAttachment(ActionData action_data)
Definition
actionattachexplosivestrigger.c:122
AttachItem
void AttachItem(ActionData action_data)
Definition
actionattachexplosivestrigger.c:141
m_CommandUID
int m_CommandUID
Definition
actionbase.c:31
ActionData
ActionBase ActionData
Definition
actionbase.c:30
ActionTarget
class ActionTargets ActionTarget
ActionAttachExplosivesTriggerCB
Definition
actionattachexplosivestrigger.c:2
ActionAttachExplosivesTriggerCB::CreateActionComponent
override void CreateActionComponent()
Definition
actionattachexplosivestrigger.c:3
ActionBaseCB::m_ActionData
ActionData m_ActionData
Definition
animatedactionbase.c:3
ActionBase::CanBeSetFromInventory
bool CanBeSetFromInventory()
Definition
actionbase.c:325
ActionBase::CreateConditionComponents
void CreateConditionComponents()
Definition
actionbase.c:236
ActionBase::ClearInventoryReservationEx
void ClearInventoryReservationEx(ActionData action_data)
Definition
actionbase.c:1040
ActionContinuousBaseCB
Definition
actioncontinuousbase.c:2
ActionContinuousBase
Definition
actioncontinuousbase.c:121
ActionContinuousBase::OnFinishProgressServer
void OnFinishProgressServer(ActionData action_data)
Definition
actioncontinuousbase.c:283
ActionContinuousBase::OnFinishProgressClient
void OnFinishProgressClient(ActionData action_data)
Definition
actioncontinuousbase.c:287
AnimatedActionBase::ActionConditionContinue
override bool ActionConditionContinue(ActionData action_data)
Definition
animatedactionbase.c:235
AnimatedActionBase::OnEndServer
override void OnEndServer(ActionData action_data)
Definition
animatedactionbase.c:497
AnimatedActionBase::ActionCondition
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Definition
animatedactionbase.c:240
AnimatedActionBase::OnStartServer
override void OnStartServer(ActionData action_data)
Definition
animatedactionbase.c:489
CAContinuousTime
Definition
cacontinuoustime.c:2
CCINonRuined
Definition
ccinonruined.c:2
CCTNonRuined
Definition
cctnonruined.c:2
ClaymoreMine
Definition
claymoremine.c:2
EntityAI
Definition
inventoryitem.c:2
InventorySlots
provides access to slot configuration
Definition
inventoryslots.c:6
InventorySlots::GetSlotIdFromString
static proto native int GetSlotIdFromString(string slot_name)
ItemBase
Definition
inventoryitem.c:742
PlayerBase
Definition
playerbaseclient.c:2
RemoteDetonatorTrigger
Definition
remotedetonator.c:47
RemoteDetonatorTrigger::SpawnInPlayerHands
static RemoteDetonatorTrigger SpawnInPlayerHands(notnull EntityAI pEntity, EntityAI deviceToPair=null)
Definition
remotedetonator.c:155
UAMaxDistances
Definition
actionconstants.c:110
UAMaxDistances::DEFAULT
const float DEFAULT
Definition
actionconstants.c:112
UATimeSpent
Definition
actionconstants.c:28
UATimeSpent::EXPLOSIVE_ARM
const float EXPLOSIVE_ARM
Definition
actionconstants.c:104
ClockBase
void ClockBase()
Definition
clockbase.c:27
DayZPlayerConstants
DayZPlayerConstants
defined in C++
Definition
dayzplayer.c:602
ExplosivesBase
void ExplosivesBase()
Definition
explosivesbase.c:42
Games
Dayz
scripts
4_world
classes
useractionscomponent
actions
continuous
actionattachexplosivestrigger.c
Generated by
1.17.0