DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionAttach.c
См. документацию.
2{
4}
5
6
8{
9 void ActionAttach()
10 {
11 m_Text = "#attach";
12 }
13
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
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 (!GetGame().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 (GetGame().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}
override void CreateConditionComponents()
Определения ActionActivateTrap.c:30
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionActivateTrap.c:46
AttachActionData ActionData ActionAttach()
Определения ActionAttach.c:9
void AttachItem(ActionData action_data)
override bool CanBeSetFromInventory()
Определения ActionAttachExplosivesTrigger.c:32
int m_CommandUID
Определения ActionBase.c:31
int m_StanceMask
Определения ActionBase.c:33
ActionBase ActionData
Определения ActionBase.c:30
override bool SetupAction(PlayerBase player, ActionTarget target, ItemBase item, out ActionData action_data, Param extra_data=NULL)
Определения ActionBuildPart.c:344
override void OnExecuteServer(ActionData action_data)
Определения ActionDigOutStash.c:57
override void OnExecuteClient(ActionData action_data)
Определения ActionDigOutStash.c:50
override ActionData CreateActionData()
Определения ActionSequentialBase.c:16
class ActionTargets ActionTarget
FindInventoryLocationType
flags for searching locations in inventory
Определения InventoryLocation.c:17
int m_AttSlot
Определения ActionAttach.c:3
Определения ActionAttach.c:2
Определения CCINonRuined.c:2
Определения CCTNonRuined.c:2
Определения Building.c:6
proto native int GetSlot()
returns slot id if current type is Attachment
InventoryLocation.
Определения InventoryLocation.c:29
Определения InventoryItem.c:731
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:112
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native CGame GetGame()