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