DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionAttach.c
См. документацию.
2{
4}
5
6
8{
9 void ActionAttach()
10 {
11 m_Text = "#attach";
12 }
13
15 {
18 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_ATTACHITEM;
19 m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
20 }
21
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 {
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 {
76 ClearActionJuncture(action_data);
77 return;
78 }
79
80 ClearInventoryReservationEx(action_data);
81 AttachActionData action_data_a = AttachActionData.Cast(action_data);
82 AttachItem(action_data_a);
83 }
84
85 override void OnExecuteClient(ActionData action_data)
86 {
87 ClearInventoryReservationEx(action_data);
88
89 AttachActionData action_data_a = AttachActionData.Cast(action_data);
90 AttachItem(action_data_a);
91 }
92
93 protected void AttachItem(AttachActionData action_data)
94 {
95 EntityAI entity;
96 if (action_data.m_Target.IsProxy())
97 {
98 entity = EntityAI.Cast(action_data.m_Target.GetParent());
99 }
100 else
101 {
102 entity = EntityAI.Cast(action_data.m_Target.GetObject());
103 }
104
105 if (entity && action_data.m_MainItem)
106 {
107 action_data.m_Player.PredictiveTakeEntityToTargetAttachmentEx(entity, action_data.m_MainItem, action_data.m_AttSlot);
108 }
109 }
110
111 override bool CanBeSetFromInventory()
112 {
113 return false;
114 }
115}
AttachActionData ActionData ActionAttach()
Определения ActionAttach.c:9
void AttachItem(ActionData action_data)
ActionData CreateActionData()
Определения ActionBase.c:240
string m_Text
Определения ActionBase.c:57
bool CanBeSetFromInventory()
Определения ActionBase.c:351
void CreateConditionComponents()
Определения ActionBase.c:245
ref CCIBase m_ConditionItem
Определения ActionBase.c:63
ref CCTBase m_ConditionTarget
Определения ActionBase.c:64
bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Определения ActionBase.c:163
void ClearInventoryReservationEx(ActionData action_data)
Определения ActionBase.c:1120
void ClearActionJuncture(ActionData action_data)
Определения ActionBase.c:1207
bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionBase.c:441
int m_StanceMask
Определения ActionBase.c:61
override void OnExecuteServer(ActionData action_data)
Определения ActionDigOutStash.c:57
override void OnExecuteClient(ActionData action_data)
Определения ActionDigOutStash.c:50
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
Определения ActionTargets.c:125
DayZGame g_Game
Определения DayZGame.c:4074
FindInventoryLocationType
flags for searching locations in inventory
Определения InventoryLocation.c:18
PlayerBase m_Player
Определения ActionBase.c:40
ref ActionTarget m_Target
Определения ActionBase.c:39
ItemBase m_MainItem
Определения ActionBase.c:35
void ActionData()
Определения ActionBase.c:23
Определения ActionBase.c:22
int m_AttSlot
Определения ActionAttach.c:3
Определения ActionAttach.c:2
Определения CCINonRuined.c:2
Определения CCTNonRuined.c:2
proto native int GetSlot()
returns slot id if current type is Attachment
InventoryLocation.
Определения InventoryLocation.c:30
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Определения param.c:12
Определения PlayerBaseClient.c:2
const float DEFAULT
Определения ActionConstants.c:114
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602