DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
OffroadHatchback.c
См. документацию.
2{
6
8 {
9 //m_dmgContactCoef = 0.075;
10
11 m_EngineStartOK = "offroad_engine_start_SoundSet";
12 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
13 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
14 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
15 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
16
17 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
18 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
19 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
20 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
21
22 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
23 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
24
25 SetEnginePos("0 0.7 1.2");
26 }
27
28 override void EEInit()
29 {
30 super.EEInit();
31
32 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
33 {
35 m_UTSSettings.m_ManualUpdate = true;
37 m_UTSSettings.m_TemperatureCap = 0;
38 m_UTSSettings.m_RangeFull = 0.5;
39 m_UTSSettings.m_RangeMax = 2;
40
43 }
44 }
45
46 override void OnEngineStart()
47 {
48 super.OnEngineStart();
49
50 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
51 {
52 m_UTSource.SetDefferedActive(true, 20.0);
53 }
54 }
55
56 override void OnEngineStop()
57 {
58 super.OnEngineStop();
59
60 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
61 {
62 m_UTSource.SetDefferedActive(false, 10.0);
63 }
64 }
65
66 override void EOnPostSimulate(IEntity other, float timeSlice)
67 {
68 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
69 {
70 if (m_UTSource.IsActive())
71 {
73 }
74 }
75 }
76
77 override int GetAnimInstance()
78 {
79 return VehicleAnimInstances.HATCHBACK;
80 }
81
83 {
84 return 3.5;
85 }
86
87 override int GetSeatAnimationType( int posIdx )
88 {
89 switch (posIdx)
90 {
91 case 0:
92 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
93 case 1:
94 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
95 case 2:
96 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
97 case 3:
98 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
99 }
100
101 return 0;
102
103 }
104
105
107 {
108 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(OffroadHatchbackRearLight) );
109 }
110
112 {
113 return CarLightBase.Cast( ScriptedLightBase.CreateLight(OffroadHatchbackFrontLight) );
114 }
115
116 override bool CanReleaseAttachment(EntityAI attachment)
117 {
118 if (!super.CanReleaseAttachment(attachment))
119 {
120 return false;
121 }
122
123 if (EngineIsOn() || GetCarDoorsState("NivaHood") == CarDoorState.DOORS_CLOSED)
124 {
125 string attType = attachment.GetType();
126 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
127 {
128 return false;
129 }
130 }
131
132 return true;
133 }
134
135 override protected bool CanManipulateSpareWheel(string slotSelectionName)
136 {
137 return GetCarDoorsState("NivaHood") != CarDoorState.DOORS_CLOSED;
138 }
139
140 override bool CanDisplayAttachmentCategory( string category_name )
141 {
142 if (!super.CanDisplayAttachmentCategory(category_name))
143 {
144 return false;
145 }
146
147 category_name.ToLower();
148 if (category_name.Contains("engine"))
149 {
150 if (GetCarDoorsState("NivaHood") == CarDoorState.DOORS_CLOSED)
151 {
152 return false;
153 }
154 }
155
156 return true;
157 }
158
159 override bool CanDisplayCargo()
160 {
161 if (!super.CanDisplayCargo())
162 {
163 return false;
164 }
165
166 if (GetCarDoorsState("NivaTrunk") == CarDoorState.DOORS_CLOSED)
167 {
168 return false;
169 }
170
171 return true;
172 }
173
174 override int GetCarDoorsState(string slotType)
175 {
176 CarDoor carDoor;
177
178 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
179 if (!carDoor)
180 {
181 return CarDoorState.DOORS_MISSING;
182 }
183
184 switch (slotType)
185 {
186 case "NivaDriverDoors":
187 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
188
189 case "NivaCoDriverDoors":
190 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
191
192 case "NivaHood":
193 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
194
195 case "NivaTrunk":
196 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
197 }
198
199 return CarDoorState.DOORS_MISSING;
200 }
201
202 override bool CrewCanGetThrough(int posIdx)
203 {
204 CarDoor carDoor;
205 switch (posIdx)
206 {
207 case 0:
208 if (GetCarDoorsState("NivaDriverDoors") == CarDoorState.DOORS_CLOSED)
209 return false;
210 else if (GetAnimationPhase("SeatDriver") > 0.5)
211 return false;
212
213 return true;
214
215 case 1:
216 if (GetCarDoorsState("NivaCoDriverDoors") == CarDoorState.DOORS_CLOSED)
217 return false;
218 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
219 return false;
220
221 return true;
222
223 case 2:
224 if (GetCarDoorsState("NivaDriverDoors") == CarDoorState.DOORS_CLOSED)
225 return false;
226 else if (GetAnimationPhase("SeatDriver") <= 0.5)
227 return false;
228
229 return true;
230
231 case 3:
232 if (GetCarDoorsState("NivaCoDriverDoors") == CarDoorState.DOORS_CLOSED)
233 return false;
234 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
235 return false;
236
237 return true;
238 }
239
240 return false;
241 }
242
243 override string GetDoorSelectionNameFromSeatPos(int posIdx)
244 {
245 switch (posIdx)
246 {
247 case 0:
248 case 2:
249 return "doors_driver";
250 case 1:
251 case 3:
252 return "doors_codriver";
253 }
254
255 return super.GetDoorSelectionNameFromSeatPos(posIdx);
256 }
257
258 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
259 {
260 switch (posIdx)
261 {
262 case 0:
263 case 2:
264 return "NivaDriverDoors";
265 case 1:
266 case 3:
267 return "NivaCoDriverDoors";
268 }
269
270 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
271 }
272
273 // 0 full ambient and engine sound
274 // 1 zero ambient and engine sound
275 override float OnSound(CarSoundCtrl ctrl, float oldValue)
276 {
277 float tempCap = 0.0;
278
279 switch (ctrl)
280 {
281 case CarSoundCtrl.DOORS:
282 float newValue = 0;
283 if (GetCarDoorsState("NivaDriverDoors") == CarDoorState.DOORS_CLOSED)
284 {
285 newValue += 0.5;
286 }
287
288 if (GetCarDoorsState("NivaCoDriverDoors") == CarDoorState.DOORS_CLOSED)
289 {
290 newValue += 0.5;
291 }
292
293 if (GetCarDoorsState("NivaTrunk") == CarDoorState.DOORS_CLOSED)
294 {
295 newValue += 0.3;
296 }
297
298 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
299 {
300 newValue -= 0.6;
301 }
302
303 if (GetHealthLevel("WindowLR") == GameConstants.STATE_RUINED)
304 {
305 newValue -= 0.2;
306 }
307
308 if (GetHealthLevel("WindowRR") == GameConstants.STATE_RUINED)
309 {
310 newValue -= 0.2;
311 }
312
313 return Math.Clamp(newValue, 0, 1);
314 break;
315 }
316
317 return super.OnSound(ctrl, oldValue);
318 }
319
320 override string GetAnimSourceFromSelection( string selection )
321 {
322 switch (selection)
323 {
324 case "doors_driver":
325 return "DoorsDriver";
326 case "doors_codriver":
327 return "DoorsCoDriver";
328 case "doors_hood":
329 return "DoorsHood";
330 case "doors_trunk":
331 return "DoorsTrunk";
332 case "seatback_driver":
333 return "SeatDriver";
334 case "seatback_codriver":
335 return "SeatCoDriver";
336 }
337
338 return "";
339 }
340
341 override string GetDoorConditionPointFromSelection(string selection)
342 {
343 switch (selection)
344 {
345 case "seat_driver":
346 case "seatback_driver":
347 case "seat_cargo1":
348 return "seat_con_1_1";
349 case "seat_codriver":
350 case "seatback_codriver":
351 case "seat_cargo2":
352 return "seat_con_2_1";
353 }
354
355 return "";
356 }
357
358 override int GetCrewIndex(string selection)
359 {
360 switch (selection)
361 {
362 case "seatback_driver":
363 return 0;
364 case "seatback_codriver":
365 return 1;
366 }
367
368 return -1;
369 }
370
371 override bool IsVitalTruckBattery()
372 {
373 return false;
374 }
375
376 override bool IsVitalGlowPlug()
377 {
378 return false;
379 }
380
381 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
382 {
383 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
384 return false;
385
386 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
387 return false;
388
389 switch (currentSeat)
390 {
391 case 0:
392 return nextSeat == 1;
393
394 case 1:
395 return nextSeat == 0;
396
397 case 2:
398 return nextSeat == 3;
399
400 case 3:
401 return nextSeat == 2;
402 }
403
404 return false;
405 }
406
407 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
408 {
409 switch (pCurrentSeat)
410 {
411 case 0:
412 return pDoorsSelection == "DoorsDriver";
413
414 case 1:
415 return pDoorsSelection == "DoorsCoDriver";
416
417 case 2:
418 return pDoorsSelection == "DoorsDriver";
419
420 case 3:
421 return pDoorsSelection == "DoorsCoDriver";
422 }
423
424 return false;
425 }
426
427 override int GetSeatIndexFromDoor( string pDoorSelection )
428 {
429 switch (pDoorSelection)
430 {
431 case "DoorsDriver":
432 return 0;
433 case "DoorsCoDriver":
434 return 1;
435 }
436
437 return -1;
438 }
439
440 override void SetActions()
441 {
442 super.SetActions();
443
445 }
446
447 override void OnDebugSpawn()
448 {
452
453 GetInventory().CreateInInventory("HatchbackWheel");
454 GetInventory().CreateInInventory("HatchbackWheel");
455 GetInventory().CreateInInventory("HatchbackWheel" );
456 GetInventory().CreateInInventory("HatchbackWheel");
457
458 GetInventory().CreateInInventory("HatchbackDoors_Driver");
459 GetInventory().CreateInInventory("HatchbackDoors_CoDriver");
460 GetInventory().CreateInInventory("HatchbackHood");
461 GetInventory().CreateInInventory("HatchbackTrunk");
462
463 //-----IN CAR CARGO
464 GetInventory().CreateInInventory("HatchbackWheel");
465 GetInventory().CreateInInventory("HatchbackWheel");
466 }
467}
468
469class OffroadHatchback_White extends OffroadHatchback
470{
471 override void OnDebugSpawn()
477 GetInventory().CreateInInventory("HatchbackWheel");
478 GetInventory().CreateInInventory("HatchbackWheel");
479 GetInventory().CreateInInventory("HatchbackWheel");
480 GetInventory().CreateInInventory("HatchbackWheel");
481
482 GetInventory().CreateInInventory("HatchbackDoors_Driver_White");
483 GetInventory().CreateInInventory("HatchbackDoors_CoDriver_White");
484 GetInventory().CreateInInventory("HatchbackHood_White");
485 GetInventory().CreateInInventory("HatchbackTrunk_White");
486
487 //-----IN CAR CARGO
488 GetInventory().CreateInInventory("HatchbackWheel");
489 GetInventory().CreateInInventory("HatchbackWheel");
490 }
491}
492
493class OffroadHatchback_Blue extends OffroadHatchback
494{
495 override void OnDebugSpawn()
496 {
500
501 GetInventory().CreateInInventory("HatchbackWheel");
502 GetInventory().CreateInInventory("HatchbackWheel");
503 GetInventory().CreateInInventory("HatchbackWheel");
504 GetInventory().CreateInInventory("HatchbackWheel");
505
506 GetInventory().CreateInInventory("HatchbackDoors_Driver_Blue");
507 GetInventory().CreateInInventory("HatchbackDoors_CoDriver_Blue");
508 GetInventory().CreateInInventory("HatchbackHood_Blue");
509 GetInventory().CreateInInventory("HatchbackTrunk_Blue");
510
511 //-----IN CAR CARGO
512 GetInventory().CreateInInventory("HatchbackWheel");
513 GetInventory().CreateInInventory("HatchbackWheel");
514 }
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
void SpawnUniversalParts()
Определения CarScript.c:2801
string m_CarSeatShiftInSound
Определения CarScript.c:215
CarDoorState TranslateAnimationPhaseToCarDoorState(string animation)
Определения CarScript.c:2513
CarDoorState
Определения CarScript.c:2
void SpawnAdditionalItems()
Определения CarScript.c:2839
string m_EngineStartOK
Sounds.
Определения CarScript.c:207
string m_CarDoorCloseSound
Определения CarScript.c:214
string m_EngineStartBattery
Определения CarScript.c:208
string m_EngineStartPlug
Определения CarScript.c:209
string m_EngineStartFuel
Определения CarScript.c:210
string m_CarHornShortSoundName
Определения CarScript.c:218
void FillUpCarFluids()
Определения CarScript.c:2869
string m_CarHornLongSoundName
Определения CarScript.c:219
string m_EngineStopFuel
Определения CarScript.c:211
string m_CarSeatShiftOutSound
Определения CarScript.c:216
string m_CarDoorOpenSound
Определения CarScript.c:213
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:432
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:220
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:219
override int GetCarDoorsState(string slotType)
Определения OffroadHatchback.c:643
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения InventoryItem.c:496
Определения CarRearLightBase.c:2
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения OffroadHatchback.c:275
override float GetTransportCameraDistance()
Определения OffroadHatchback.c:82
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения OffroadHatchback.c:243
override int GetAnimInstance()
Определения OffroadHatchback.c:77
override int GetCrewIndex(string selection)
Определения OffroadHatchback.c:358
void OffroadHatchback()
Определения OffroadHatchback.c:7
override CarRearLightBase CreateRearLight()
Определения OffroadHatchback.c:106
override void OnDebugSpawn()
Определения OffroadHatchback.c:447
override int GetSeatIndexFromDoor(string pDoorSelection)
Определения OffroadHatchback.c:427
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения OffroadHatchback.c:258
override string GetDoorConditionPointFromSelection(string selection)
Определения OffroadHatchback.c:341
override CarLightBase CreateFrontLight()
Определения OffroadHatchback.c:111
override bool IsVitalGlowPlug()
Определения OffroadHatchback.c:376
override int GetCarDoorsState(string slotType)
Определения OffroadHatchback.c:174
override bool IsVitalTruckBattery()
Определения OffroadHatchback.c:371
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:5
override string GetAnimSourceFromSelection(string selection)
Определения OffroadHatchback.c:320
override bool CanDisplayCargo()
Определения OffroadHatchback.c:159
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения OffroadHatchback.c:407
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения OffroadHatchback.c:66
override void OnEngineStart()
Определения OffroadHatchback.c:46
override bool CanReleaseAttachment(EntityAI attachment)
Определения OffroadHatchback.c:116
override void SetActions()
Определения OffroadHatchback.c:440
override void EEInit()
Определения OffroadHatchback.c:28
override bool CrewCanGetThrough(int posIdx)
Определения OffroadHatchback.c:202
ref UniversalTemperatureSource m_UTSource
Определения CivilianSedan.c:3
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения OffroadHatchback.c:381
bool CanManipulateSpareWheel(string slotSelectionName)
Определения OffroadHatchback.c:135
override void OnEngineStop()
Определения OffroadHatchback.c:56
override bool CanDisplayAttachmentCategory(string category_name)
Определения OffroadHatchback.c:140
override int GetSeatAnimationType(int posIdx)
Определения OffroadHatchback.c:87
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения CivilianSedan.c:4
Определения CivilianSedan.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения Building.c:6
Определения constants.c:659
Определения EnEntity.c:165
Определения EnMath.c:7
override void OnDebugSpawn()
Определения OffroadHatchback.c:495
original Timer deletes m_params which is unwanted
Определения UniversalTemperatureSource.c:38
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native CGame GetGame()
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
static const float ITEM_TEMPERATURE_NEUTRAL_ZONE_MIDDLE
Определения constants.c:806
const int STATE_RUINED
Определения constants.c:846
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
bool Contains(string sample)
Returns true if sample is substring of string.
Определения EnString.c:286
proto int ToLower()
Changes string to lowercase. Returns length.