DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ActionCarHorn.c
См. документацию.
2{
3 static bool ActionCondition(PlayerBase player)
4 {
5 HumanCommandVehicle vehCommand = player.GetCommand_Vehicle();
6
7 if (vehCommand)
8 {
9 Transport trans = vehCommand.GetTransport();
10 if (trans)
11 {
12 if (!PlayerIsDriver(trans, player))
13 {
14 return false;
15 }
16
17 CarScript car;
18 if (Class.CastTo(car, trans))
19 {
20 return BatteryIsVital(car.GetBattery());
21 }
22 }
23 }
24
25 return false;
26 }
27
28 static void SetCarHornState(CarHornActionData pActionData, int pState)
29 {
30 if (!pActionData.m_Player)
31 return;
32
33 if (!pActionData.m_Car)
34 return;
35
36 pActionData.m_Car.SetCarHornState(pState);
37 }
38
39 protected static bool PlayerIsDriver(Transport trans, PlayerBase player)
40 {
41 return trans.GetSeatAnimationType(trans.CrewMemberIndex(player)) == DayZPlayerConstants.VEHICLESEAT_DRIVER;
42 }
43
44 protected static bool BatteryIsVital(ItemBase battery)
45 {
46 return battery && battery.GetHealthLevel("Health") <= GameConstants.STATE_DAMAGED;
47 }
48}
49
50class CarHornActionReceiveData : ActionReciveData
51{
52 bool m_ActionNeedEnd;
54
55}
56
62
63class ActionCarHornShortCB : ActionSingleUseBaseCB {}
64
66{
68 {
69 m_CallbackClass = ActionCarHornShortCB;
70 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_TOOTHORN;
71 m_StanceMask = DayZPlayerConstants.STANCEMASK_ALL;
72 }
73
74 override bool HasTarget()
75 {
76 return false;
77 }
78
79 override bool HasProgress()
80 {
81 return false;
82 }
83
84 override bool CanBeUsedInVehicle()
85 {
86 return true;
87 }
88
89 override bool UseMainItem()
90 {
91 return false;
92 }
93
95 {
96 m_ConditionItem = new CCINone();
97 m_ConditionTarget = new CCTNone();
98 }
99
100 override typename GetInputType()
101 {
103 }
104
106 {
107 ActionData action_data = new CarHornActionData();
108 return action_data;
109 }
110
111 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
112 {
113 return ActionCarHornBase.ActionCondition(player);
114 }
115
117 override void OnUpdate(ActionData action_data)
118 {
119 super.OnUpdate(action_data);
120
121 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
122 if (carHornData.m_WasExecuted && carHornData.m_ActionNeedEnd)
123 {
124 carHornData.m_Callback.SetCommand(DayZPlayerConstants.CMD_ACTIONINT_END);
125 carHornData.m_ActionNeedEnd = false;
126 }
127 }
128
129 override void OnEndInput(ActionData action_data)
130 {
131 super.OnEndInput(action_data);
132
133 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
134 ActionCarHornBase.SetCarHornState(carHornData, ECarHornState.OFF);
135 }
136
138 override void OnStart(ActionData action_data)
139 {
140 super.OnStart(action_data);
141
142 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
143 carHornData.m_ActionNeedEnd = true;
144 carHornData.m_Car = CarScript.Cast(action_data.m_Player.GetCommand_Vehicle().GetTransport());
145 }
146
147 override void OnStartServer(ActionData action_data)
148 {
149 super.OnStartServer(action_data);
150
151 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
152 ActionCarHornBase.SetCarHornState(carHornData, ECarHornState.SHORT);
153 }
154
155 override void OnEndServer(ActionData action_data)
156 {
157 super.OnEndServer(action_data);
158
159 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
160 ActionCarHornBase.SetCarHornState(carHornData, ECarHornState.OFF);
161 }
162
163 override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
164 {
165 super.WriteToContext(ctx, action_data);
166
167 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
168
169 ctx.Write(carHornData.m_ActionNeedEnd);
170 ctx.Write(carHornData.m_Car);
171 }
172
173 override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
174 {
175 if (!action_recive_data)
176 {
177 action_recive_data = new CarHornActionReceiveData();
178 }
179
180 super.ReadFromContext(ctx, action_recive_data);
181
182 bool needUpdate;
183 if (!ctx.Read(needUpdate))
184 return false;
185
186 CarScript carScript;
187 if (!ctx.Read(carScript))
188 return false;
189
190 CarHornActionReceiveData carHornReceivedData = CarHornActionReceiveData.Cast(action_recive_data);
191 carHornReceivedData.m_ActionNeedEnd = needUpdate;
192 carHornReceivedData.m_Car = carScript;
193
194 return true;
195 }
196
197 override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
198 {
199 super.HandleReciveData(action_recive_data, action_data);
200
201 CarHornActionReceiveData carHornReceivedData = CarHornActionReceiveData.Cast(action_recive_data);
202 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
203 carHornData.m_ActionNeedEnd = carHornReceivedData.m_ActionNeedEnd;
204 carHornData.m_Car = carHornReceivedData.m_Car;
205 }
206}
207
209{
211 {
212 m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_TOOTHORN;
213 m_StanceMask = DayZPlayerConstants.STANCEMASK_ALL;
214 }
215
216 override bool HasTarget()
217 {
218 return false;
219 }
220
221 override bool HasProgress()
222 {
223 return false;
224 }
225
226 override bool CanBeUsedInVehicle()
227 {
228 return true;
229 }
230
231 override typename GetInputType()
232 {
234 }
235
236 override bool UseMainItem()
237 {
238 return false;
239 }
240
242 {
243 m_ConditionItem = new CCINone();
245 }
246
248 {
249 ActionData action_data = new CarHornActionData();
250 return action_data;
251 }
252
253 override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
254 {
255 return ActionCarHornBase.ActionCondition(player);
256 }
257
259 override void OnUpdate(ActionData action_data)
260 {
261 super.OnUpdate(action_data);
262
263 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
264 if (carHornData.m_ReciveEndInput && carHornData.m_ActionNeedEnd)
265 {
266 carHornData.m_Callback.SetCommand(DayZPlayerConstants.CMD_ACTIONINT_END);
267 carHornData.m_ActionNeedEnd = false;
268 }
269 }
270
271 override void OnEndInput(ActionData action_data)
272 {
273 super.OnEndInput(action_data);
274
275 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
276 ActionCarHornBase.SetCarHornState(carHornData, ECarHornState.OFF);
277
278 ActionContinuousBaseCB callback;
279 if (Class.CastTo(callback, action_data.m_Callback))
280 {
281 carHornData.m_State = UA_FINISHED;
282 callback.EndActionComponent();
283 }
284 }
285
286 override void OnStart(ActionData action_data)
287 {
288 super.OnStart(action_data);
289
290 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
291 carHornData.m_ActionNeedEnd = true;
292 carHornData.m_Car = CarScript.Cast(action_data.m_Player.GetCommand_Vehicle().GetTransport());
293 }
294
295 override void OnStartServer(ActionData action_data)
296 {
297 super.OnStartServer(action_data);
298
299 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
300 carHornData.m_ActionNeedEnd = true;
301 ActionCarHornBase.SetCarHornState(carHornData, ECarHornState.LONG);
302 }
303
304 override void OnEndServer(ActionData action_data)
305 {
306 super.OnEndServer(action_data);
307
308 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
309 ActionCarHornBase.SetCarHornState(carHornData, ECarHornState.OFF);
310 }
311
312 override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
313 {
314 super.WriteToContext(ctx, action_data);
315
316 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
317
318 ctx.Write(carHornData.m_ActionNeedEnd);
319 ctx.Write(carHornData.m_Car);
320 }
321
322 override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
323 {
324 if (!action_recive_data)
325 {
326 action_recive_data = new CarHornActionReceiveData();
327 }
328
329 super.ReadFromContext(ctx, action_recive_data);
330
331 bool needUpdate;
332 if (!ctx.Read(needUpdate))
333 return false;
334
335 CarScript carScript;
336 if (!ctx.Read(carScript))
337 return false;
338
339 CarHornActionReceiveData carHornReceivedData = CarHornActionReceiveData.Cast(action_recive_data);
340 carHornReceivedData.m_ActionNeedEnd = needUpdate;
341 carHornReceivedData.m_Car = carScript;
342
343 return true;
344 }
345
346 override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
347 {
348 super.HandleReciveData(action_recive_data, action_data);
349
350 CarHornActionReceiveData carHornReceivedData = CarHornActionReceiveData.Cast(action_recive_data);
351 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
352 carHornData.m_ActionNeedEnd = carHornReceivedData.m_ActionNeedEnd;
353 carHornData.m_Car = carHornReceivedData.m_Car;
354 }
355}
int m_CommandUID
Определения ActionBase.c:31
int m_StanceMask
Определения ActionBase.c:33
ActionBase ActionData
Определения ActionBase.c:30
class ActionCarHornBase m_ActionNeedEnd
Определения ActionCarHorn.c:68
CarHornActionData ActionData ActionCarHornShort()
Определения ActionCarHorn.c:67
ToggleLightsActionInput CarHornLongActionInput
CarScript m_Car
Определения ActionPushCar.c:19
class ActionTargets ActionTarget
ActionData CreateActionData()
Определения ActionBase.c:231
bool HasProgress()
For UI: hiding of progress bar.
Определения ActionBase.c:256
int m_StanceMask
Определения ActionBase.c:68
bool CanBeUsedInVehicle()
Определения ActionBase.c:335
ref CCIBase m_ConditionItem
Определения ActionBase.c:70
bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
Определения ActionBase.c:494
void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
Определения ActionBase.c:438
bool UseMainItem()
Определения ActionBase.c:391
void OnStart(ActionData action_data)
Определения ActionBase.c:1271
void OnEndInput(ActionData action_data)
Определения ActionBase.c:788
void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
Определения ActionBase.c:571
ref CCTBase m_ConditionTarget
Определения ActionBase.c:71
static void SetCarHornState(CarHornActionData pActionData, int pState)
Определения ActionCarHorn.c:28
static bool ActionCondition(PlayerBase player)
Определения ActionCarHorn.c:3
static bool PlayerIsDriver(Transport trans, PlayerBase player)
Определения ActionCarHorn.c:39
static bool BatteryIsVital(ItemBase battery)
Определения ActionCarHorn.c:44
Определения ActionCarHorn.c:2
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionCarHorn.c:253
override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
Определения ActionCarHorn.c:346
override void OnEndInput(ActionData action_data)
Определения ActionCarHorn.c:271
override bool UseMainItem()
Определения ActionCarHorn.c:236
void ActionCarHornLong()
Определения ActionCarHorn.c:210
override void OnStart(ActionData action_data)
Определения ActionCarHorn.c:286
override ActionData CreateActionData()
Определения ActionCarHorn.c:247
override bool HasTarget()
Определения ActionCarHorn.c:216
override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
Определения ActionCarHorn.c:322
override void OnStartServer(ActionData action_data)
Определения ActionCarHorn.c:295
override bool HasProgress()
Определения ActionCarHorn.c:221
override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
Определения ActionCarHorn.c:312
override void OnUpdate(ActionData action_data)
special case - manually ends the action on exec event
Определения ActionCarHorn.c:259
override void CreateConditionComponents()
Определения ActionCarHorn.c:241
override GetInputType()
Определения ActionCarHorn.c:231
override void OnEndServer(ActionData action_data)
Определения ActionCarHorn.c:304
override bool CanBeUsedInVehicle()
Определения ActionCarHorn.c:226
void ActionContinuousBase()
Определения ActionContinuousBase.c:124
override void EndActionComponent()
Определения ActionContinuousBase.c:79
override bool HasTarget()
Определения ActionPin.c:14
override GetInputType()
Определения ActionSingleUseBase.c:37
override void CreateConditionComponents()
Определения ActionPin.c:8
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
Определения ActionPin.c:19
override void OnStartServer(ActionData action_data)
Определения AnimatedActionBase.c:489
override void OnEndServer(ActionData action_data)
Определения AnimatedActionBase.c:497
int m_CommandUID
Определения AnimatedActionBase.c:143
Определения CCINone.c:2
Определения CCTNone.c:2
CarScript m_Car
Определения ActionCarHorn.c:60
bool m_ActionNeedEnd
Определения ActionCarHorn.c:59
Определения CivilianSedan.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
proto native Transport GetTransport()
Определения human.c:690
Определения PlayerBaseClient.c:2
proto bool Write(void value_out)
proto bool Read(void value_in)
Native class for boats - handles physics simulation.
Определения Boat.c:32
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
Serializer ParamsReadContext
Определения gameplay.c:15
Serializer ParamsWriteContext
Определения gameplay.c:16
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
const int STATE_DAMAGED
Определения 3_Game/DayZ/constants.c:853
proto native void OnUpdate()
Определения 3_Game/DayZ/tools/tools.c:349
const int UA_FINISHED
Определения 3_Game/DayZ/constants.c:469