DayZ 1.27
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
279 override void OnStart(ActionData action_data)
280 {
281 super.OnStart(action_data);
282
283 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
284 carHornData.m_ActionNeedEnd = true;
285 carHornData.m_Car = CarScript.Cast(action_data.m_Player.GetCommand_Vehicle().GetTransport());
286 }
287
288 override void OnStartServer(ActionData action_data)
289 {
290 super.OnStartServer(action_data);
291
292 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
293 carHornData.m_ActionNeedEnd = true;
294 ActionCarHornBase.SetCarHornState(carHornData, ECarHornState.LONG);
295 }
296
297 override void OnEndServer(ActionData action_data)
298 {
299 super.OnEndServer(action_data);
300
301 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
302 ActionCarHornBase.SetCarHornState(carHornData, ECarHornState.OFF);
303 }
304
305 override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
306 {
307 super.WriteToContext(ctx, action_data);
308
309 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
310
311 ctx.Write(carHornData.m_ActionNeedEnd);
312 ctx.Write(carHornData.m_Car);
313 }
314
315 override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
316 {
317 if (!action_recive_data)
318 {
319 action_recive_data = new CarHornActionReceiveData();
320 }
321
322 super.ReadFromContext(ctx, action_recive_data);
323
324 bool needUpdate;
325 if (!ctx.Read(needUpdate))
326 return false;
327
328 CarScript carScript;
329 if (!ctx.Read(carScript))
330 return false;
331
332 CarHornActionReceiveData carHornReceivedData = CarHornActionReceiveData.Cast(action_recive_data);
333 carHornReceivedData.m_ActionNeedEnd = needUpdate;
334 carHornReceivedData.m_Car = carScript;
335
336 return true;
337 }
338
339 override void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
340 {
341 super.HandleReciveData(action_recive_data, action_data);
342
343 CarHornActionReceiveData carHornReceivedData = CarHornActionReceiveData.Cast(action_recive_data);
344 CarHornActionData carHornData = CarHornActionData.Cast(action_data);
345 carHornData.m_ActionNeedEnd = carHornReceivedData.m_ActionNeedEnd;
346 carHornData.m_Car = carHornReceivedData.m_Car;
347 }
348}
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:225
bool HasProgress()
For UI: hiding of progress bar.
Определения ActionBase.c:250
int m_StanceMask
Определения ActionBase.c:62
bool CanBeUsedInVehicle()
Определения ActionBase.c:323
ref CCIBase m_ConditionItem
Определения ActionBase.c:64
bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
Определения ActionBase.c:482
void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
Определения ActionBase.c:426
bool UseMainItem()
Определения ActionBase.c:379
void OnStart(ActionData action_data)
Определения ActionBase.c:1257
void OnEndInput(ActionData action_data)
Определения ActionBase.c:776
void HandleReciveData(ActionReciveData action_recive_data, ActionData action_data)
Определения ActionBase.c:559
ref CCTBase m_ConditionTarget
Определения ActionBase.c:65
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:339
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:279
override ActionData CreateActionData()
Определения ActionCarHorn.c:247
override bool HasTarget()
Определения ActionCarHorn.c:216
override bool ReadFromContext(ParamsReadContext ctx, out ActionReciveData action_recive_data)
Определения ActionCarHorn.c:315
override void OnStartServer(ActionData action_data)
Определения ActionCarHorn.c:288
override bool HasProgress()
Определения ActionCarHorn.c:221
override void WriteToContext(ParamsWriteContext ctx, ActionData action_data)
Определения ActionCarHorn.c:305
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:297
override bool CanBeUsedInVehicle()
Определения ActionCarHorn.c:226
void ActionContinuousBase()
Определения ActionContinuousBase.c:124
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
Определения constants.c:659
proto native Transport GetTransport()
Определения human.c:690
Определения InventoryItem.c:731
Определения PlayerBaseClient.c:2
proto bool Write(void value_out)
proto bool Read(void value_in)
Base native class for all motorized wheeled vehicles.
Определения Boat.c:28
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
Определения constants.c:848
proto native void OnUpdate()
Определения tools.c:349