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