DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionAttachExplosivesTrigger.c
См. документацию.
2{
3 override void CreateActionComponent()
4 {
6 }
7}
8
10{
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
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 if (g_Game.IsMultiplayer())
86 {
87 ClearActionJuncture(action_data);;
88 }
89 ClearInventoryReservationEx(action_data);
90
91 ExplosivesBase explosive = ExplosivesBase.Cast(action_data.m_Target.GetObject());
92 if (explosive)
93 {
94 explosive.OnPlacementComplete(action_data.m_Player, explosive.GetPosition(), action_data.m_Player.GetOrientation());
95 explosive.UnlockTriggerSlots();
96 }
97
98 if (action_data.m_MainItem.IsInherited(RemoteDetonator))
99 {
101
102 return;
103 }
104 else
105 {
106 AttachItem(action_data);
107 }
108 }
109
110 override void OnFinishProgressClient(ActionData action_data)
111 {
112 ClearInventoryReservationEx(action_data);
113
114 ExplosivesBase explosive = ExplosivesBase.Cast(action_data.m_Target.GetObject());
115 if (explosive)
116 {
117 explosive.UnlockTriggerSlots();
118 }
119
120 if (!action_data.m_MainItem.IsInherited(RemoteDetonator))
121 {
122 AttachItem(action_data);
123 }
124 }
125
127 {
128 ExplosivesBase explosive;
129 if (action_data.m_Target.IsProxy())
130 {
131 explosive = ExplosivesBase.Cast(action_data.m_Target.GetParent());
132 }
133 else
134 {
135 explosive = ExplosivesBase.Cast(action_data.m_Target.GetObject());
136 }
137
138 if (explosive && action_data.m_MainItem)
139 {
140 explosive.UnlockTriggerSlots();
141 RemoteDetonatorTrigger.SpawnInPlayerHands(action_data.m_Player, explosive);
142 }
143 }
144
145 protected void AttachItem(ActionData action_data)
146 {
147 EntityAI targetEAI;
148 if (action_data.m_Target.IsProxy())
149 {
150 targetEAI = EntityAI.Cast(action_data.m_Target.GetParent());
151 }
152 else
153 {
154 targetEAI = EntityAI.Cast(action_data.m_Target.GetObject());
155 }
156
157 if (targetEAI && action_data.m_MainItem)
158 {
159 int slotId = InventorySlots.GetSlotIdFromString(action_data.m_MainItem.GetExplosiveTriggerSlotName());
160 action_data.m_Player.PredictiveTakeEntityToTargetAttachmentEx(targetEAI, action_data.m_MainItem, slotId);
161 }
162 }
163}
ActionAttachExplosivesTriggerCB ActionContinuousBaseCB ActionAttachExplosivesTrigger()
Определения ActionAttachExplosivesTrigger.c:11
void CreateRemoteDetonatorReceiverAsAttachment(ActionData action_data)
void AttachItem(ActionData action_data)
bool m_FullBody
Определения ActionBase.c:60
string m_Text
Определения ActionBase.c:57
bool CanBeSetFromInventory()
Определения ActionBase.c:351
void CreateConditionComponents()
Определения ActionBase.c:245
ref CCIBase m_ConditionItem
Определения ActionBase.c:63
float m_SpecialtyWeight
Определения ActionBase.c:77
ref CCTBase m_ConditionTarget
Определения ActionBase.c:64
void ClearInventoryReservationEx(ActionData action_data)
Определения ActionBase.c:1120
void ClearActionJuncture(ActionData action_data)
Определения ActionBase.c:1207
void ActionTarget(Object object, Object parent, int componentIndex, vector cursorHitPos, float utility, string surfaceName="")
Определения ActionTargets.c:125
void ClockBase()
Определения ClockBase.c:27
DayZGame g_Game
Определения DayZGame.c:4074
void ExplosivesBase()
Определения ExplosivesBase.c:45
override void CreateActionComponent()
Определения ActionAttachExplosivesTrigger.c:3
ActionData m_ActionData
Определения AnimatedActionBase.c:3
void OnFinishProgressClient(ActionData action_data)
Определения ActionContinuousBase.c:293
void OnFinishProgressServer(ActionData action_data)
Определения ActionContinuousBase.c:289
PlayerBase m_Player
Определения ActionBase.c:40
ref ActionTarget m_Target
Определения ActionBase.c:39
ItemBase m_MainItem
Определения ActionBase.c:35
Определения ActionBase.c:22
override void OnStartServer(ActionData action_data)
Определения AnimatedActionBase.c:504
override bool ActionConditionContinue(ActionData action_data)
Определения AnimatedActionBase.c:239
override void OnEndServer(ActionData action_data)
Определения AnimatedActionBase.c:512
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения AnimatedActionBase.c:244
Определения CCINonRuined.c:2
Определения CCTNonRuined.c:2
Определения ClaymoreMine.c:2
static proto native int GetSlotIdFromString(string slot_name)
converts string to slot_id
provides access to slot configuration
Определения InventorySlots.c:6
Определения PlayerBaseClient.c:2
static RemoteDetonatorTrigger SpawnInPlayerHands(notnull EntityAI pEntity, EntityAI deviceToPair=null)
Определения RemoteDetonator.c:155
const float DEFAULT
Определения ActionConstants.c:114
const float EXPLOSIVE_ARM
Определения ActionConstants.c:105
Определения ActionConstants.c:28
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602