Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
actionattach.c
Go to the documentation of this file.
1
class
AttachActionData
:
ActionData
2
{
3
int
m_AttSlot
;
4
}
5
6
7
class
ActionAttach
:
ActionSingleUseBase
8
{
9
void
ActionAttach
()
10
{
11
m_Text =
"#attach"
;
12
}
13
14
override
void
CreateConditionComponents
()
15
{
16
m_ConditionItem =
new
CCINonRuined
();
17
m_ConditionTarget =
new
CCTNonRuined
(
UAMaxDistances
.
DEFAULT
);
18
m_CommandUID
=
DayZPlayerConstants
.CMD_ACTIONMOD_ATTACHITEM;
19
m_StanceMask
=
DayZPlayerConstants
.STANCEMASK_ERECT |
DayZPlayerConstants
.STANCEMASK_CROUCH;
20
}
21
22
override
ActionData
CreateActionData
()
23
{
24
AttachActionData
action_data =
new
AttachActionData
();
25
return
action_data;
26
}
27
28
override
bool
SetupAction
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item, out
ActionData
action_data,
Param
extra_data = null)
29
{
30
InventoryLocation
il =
new
InventoryLocation
();
31
if
(!
g_Game
.IsDedicatedServer())
32
{
33
EntityAI
targetEntity;
34
if
(target.IsProxy())
35
{
36
targetEntity =
EntityAI
.Cast(target.GetParent());
37
}
38
else
39
{
40
targetEntity =
EntityAI
.Cast(target.GetObject());
41
}
42
43
if
(!targetEntity.GetInventory().FindFreeLocationFor(item,
FindInventoryLocationType
.ATTACHMENT, il))
44
return
false
;
45
}
46
47
if
(super.SetupAction(player, target, item, action_data, extra_data))
48
{
49
#ifndef SERVER
50
AttachActionData
action_data_a =
AttachActionData
.Cast(action_data);
51
action_data_a.
m_AttSlot
= il.
GetSlot
();
52
#endif
53
54
return
true
;
55
}
56
57
return
false
;
58
}
59
60
61
override
bool
ActionCondition
(
PlayerBase
player,
ActionTarget
target,
ItemBase
item)
62
{
63
EntityAI
targetEntity =
EntityAI
.Cast(target.GetObject());
64
if
(targetEntity && item)
65
{
66
return
targetEntity.GetInventory() && targetEntity.GetInventory().CanAddAttachment(item) && !targetEntity.CanUseConstruction();
67
}
68
69
return
false
;
70
}
71
72
override
void
OnExecuteServer
(
ActionData
action_data)
73
{
74
if
(
g_Game
.IsMultiplayer())
75
return
;
76
77
ClearInventoryReservationEx(action_data);
78
AttachActionData
action_data_a =
AttachActionData
.Cast(action_data);
79
AttachItem
(action_data_a);
80
}
81
82
override
void
OnExecuteClient
(
ActionData
action_data)
83
{
84
ClearInventoryReservationEx(action_data);
85
86
AttachActionData
action_data_a =
AttachActionData
.Cast(action_data);
87
AttachItem
(action_data_a);
88
}
89
90
protected
void
AttachItem
(
AttachActionData
action_data)
91
{
92
EntityAI
entity;
93
if
(action_data.m_Target.IsProxy())
94
{
95
entity =
EntityAI
.Cast(action_data.m_Target.GetParent());
96
}
97
else
98
{
99
entity =
EntityAI
.Cast(action_data.m_Target.GetObject());
100
}
101
102
if
(entity && action_data.m_MainItem)
103
{
104
action_data.m_Player.PredictiveTakeEntityToTargetAttachmentEx(entity, action_data.m_MainItem, action_data.
m_AttSlot
);
105
}
106
}
107
108
override
bool
CanBeSetFromInventory
()
109
{
110
return
false
;
111
}
112
}
CreateConditionComponents
override void CreateConditionComponents()
Definition
actionactivatetrap.c:30
ActionCondition
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Definition
actionactivatetrap.c:46
ActionAttach
AttachActionData ActionData ActionAttach()
Definition
actionattach.c:9
AttachItem
void AttachItem(ActionData action_data)
Definition
actionattachexplosivestrigger.c:141
CanBeSetFromInventory
override bool CanBeSetFromInventory()
Definition
actionattachexplosivestrigger.c:32
m_CommandUID
int m_CommandUID
Definition
actionbase.c:31
m_StanceMask
int m_StanceMask
Definition
actionbase.c:33
ActionData
ActionBase ActionData
Definition
actionbase.c:30
SetupAction
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Definition
actionbuildpart.c:344
OnExecuteServer
override void OnExecuteServer(ActionData action_data)
Definition
actiondigoutstash.c:57
OnExecuteClient
override void OnExecuteClient(ActionData action_data)
Definition
actiondigoutstash.c:50
CreateActionData
override ActionData CreateActionData()
Definition
actionsequentialbase.c:16
ActionTarget
class ActionTargets ActionTarget
ActionSingleUseBase
Definition
actionsingleusebase.c:30
AttachActionData
Definition
actionattach.c:2
AttachActionData::m_AttSlot
int m_AttSlot
Definition
actionattach.c:3
CCINonRuined
Definition
ccinonruined.c:2
CCTNonRuined
Definition
cctnonruined.c:2
EntityAI
Definition
inventoryitem.c:2
InventoryLocation
InventoryLocation.
Definition
inventorylocation.c:30
InventoryLocation::GetSlot
proto native int GetSlot()
returns slot id if current type is Attachment
ItemBase
Definition
inventoryitem.c:742
Param
Base Param Class with no parameters.
Definition
param.c:12
PlayerBase
Definition
playerbaseclient.c:2
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
FindInventoryLocationType
FindInventoryLocationType
flags for searching locations in inventory
Definition
inventorylocation.c:18
Games
Dayz
scripts
4_world
classes
useractionscomponent
actions
singleuse
actionattach.c
Generated by
1.17.0