Dayz Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Loading...
Searching...
No Matches
sedan_02.c
Go to the documentation of this file.
1class Sedan_02 extends CarScript
2{
6
7 void Sedan_02()
8 {
9 m_dmgContactCoef = 0.0790;
10
11 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
12 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
13 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
14 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
15 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
16 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
17
18 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
19 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
20
21 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
22 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
23
24 SetEnginePos("0 0.7 -1.7");
25 }
26
27 void ~Sedan_02()
28 {
29 m_UTSource = null;
30 m_UTSSettings = null;
31 m_UTSLEngine = null;
32 }
33
34 override void EEInit()
35 {
36 super.EEInit();
37
38 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
39 {
41 m_UTSSettings.m_ManualUpdate = true;
43 m_UTSSettings.m_TemperatureCap = 0;
44 m_UTSSettings.m_RangeFull = 0.5;
45 m_UTSSettings.m_RangeMax = 2;
46
49 }
50 }
51
52 override void OnEngineStart()
53 {
54 super.OnEngineStart();
55
56 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
57 {
58 if (m_UTSource)
59 m_UTSource.SetDefferedActive(true, 20.0);
60 }
61 }
62
63 override void OnEngineStop()
64 {
65 super.OnEngineStop();
66
67 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
68 {
69 if (m_UTSource)
70 m_UTSource.SetDefferedActive(false, 10.0);
71 }
72 }
73
74 override void EOnPostSimulate(IEntity other, float timeSlice)
75 {
76 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
77 {
78 if (m_UTSource && m_UTSource.IsActive())
79 {
81 }
82 }
83 }
84
85 override int GetAnimInstance()
86 {
87 return VehicleAnimInstances.S120;
88 }
89
90 override int GetSeatAnimationType(int posIdx)
91 {
92 switch (posIdx)
93 {
94 case 0:
95 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
96 case 1:
97 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
98 case 2:
99 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
100 case 3:
101 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
102 }
103
104 return 0;
105 }
106
107 // Override for car-specific light type
109 {
110 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02FrontLight));
111 }
112
113 // Override for car-specific light type
115 {
116 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02RearLight));
117 }
118
119 override bool CanReleaseAttachment( EntityAI attachment )
120 {
121 if (!super.CanReleaseAttachment(attachment))
122 {
123 return false;
124 }
125
126 string attType = attachment.GetType();
127 switch (attType)
128 {
129 case "CarBattery":
130 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
131 {
132 return false;
133 }
134 break;
135
136 case "SparkPlug":
137 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
138 {
139 return false;
140 }
141 break;
142
143 case "CarRadiator":
144 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
145 {
146 return false;
147 }
148 break;
149 }
150
151 return true;
152 }
153
154 override protected bool CanManipulateSpareWheel(string slotSelectionName)
155 {
156 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
157 }
158
159 override bool CanDisplayAttachmentCategory(string category_name)
160 {
161 if ( !super.CanDisplayAttachmentCategory(category_name))
162 {
163 return false;
164 }
165
166 category_name.ToLower();
167 if (category_name.Contains("engine"))
168 {
169 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
170 {
171 return false;
172 }
173 }
174
175 if (category_name.Contains("trunk"))
176 {
177 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
178 {
179 return false;
180 }
181 }
182
183 return true;
184 }
185
186 override bool CanDisplayCargo()
187 {
188 if ( !super.CanDisplayCargo() )
189 return false;
190
191 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
192 return false;
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 "Sedan_02_Door_1_1":
210 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
211
212 case "Sedan_02_Door_2_1":
213 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
214
215 case "Sedan_02_Door_1_2":
216 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
217
218 case "Sedan_02_Door_2_2":
219 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
220
221 case "Sedan_02_Hood":
222 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
223
224 case "Sedan_02_Trunk":
225 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
226 }
227
228 return CarDoorState.DOORS_MISSING;
229 }
230
231
232 override bool CrewCanGetThrough( int posIdx )
233 {
234 switch( posIdx )
235 {
236 case 0:
237 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
238 return false;
239
240 return true;
241 break;
242
243 case 1:
244 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
245 return false;
246
247 return true;
248 break;
249
250 case 2:
251 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
252 return false;
253
254 return true;
255 break;
256
257 case 3:
258 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
259 return false;
260
261 return true;
262 break;
263 }
264
265 return false;
266 }
267
268 override string GetDoorSelectionNameFromSeatPos(int posIdx)
269 {
270 switch( posIdx )
271 {
272 case 0:
273 return "doors_driver";
274 break;
275 case 1:
276 return "doors_codriver";
277 break;
278 case 2:
279 return "doors_cargo1";
280 break;
281 case 3:
282 return "doors_cargo2";
283 break;
284 }
285
286 return super.GetDoorSelectionNameFromSeatPos(posIdx);
287 }
288
289 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
290 {
291 switch( posIdx )
292 {
293 case 0:
294 return "Sedan_02_Door_1_1";
295 break;
296 case 1:
297 return "Sedan_02_Door_2_1";
298 break;
299 case 2:
300 return "Sedan_02_Door_1_2";
301 break;
302 case 3:
303 return "Sedan_02_Door_2_2";
304 break;
305 }
306
307 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
308 }
309
310 override float OnSound(CarSoundCtrl ctrl, float oldValue)
311 {
312 switch ( ctrl )
313 {
314 case CarSoundCtrl.DOORS:
315 float newValue = 0;
316 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
317 {
318 newValue += 0.25;
319 }
320
321 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
322 {
323 newValue += 0.25;
324 }
325
326 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
327 {
328 newValue += 0.25;
329 }
330
331 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
332 {
333 newValue += 0.25;
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_cargo1":
352 return "DoorsCargo1";
353 case "doors_cargo2":
354 return "DoorsCargo2";
355 case "doors_hood":
356 return "DoorsHood";
357 case "doors_trunk":
358 return "DoorsTrunk";
359 }
360
361 return "";
362 }
363
364
365 override bool IsVitalTruckBattery()
366 {
367 return false;
368 }
369
370 override bool IsVitalGlowPlug()
371 {
372 return false;
373 }
374
375 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
376 {
377 switch (currentSeat)
378 {
379 case 0:
380 return nextSeat == 1;
381
382 case 1:
383 return nextSeat == 0;
384
385 case 2:
386 return nextSeat == 3;
387
388 case 3:
389 return nextSeat == 2;
390 }
391
392 return false;
393 }
394
395 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
396 {
397 switch (pCurrentSeat)
398 {
399 case 0:
400 return pDoorsSelection == "DoorsDriver";
401
402 case 1:
403 return pDoorsSelection == "DoorsCoDriver";
404
405 case 2:
406 return pDoorsSelection == "DoorsCargo1";
407
408 case 3:
409 return pDoorsSelection == "DoorsCargo2";
410 }
411
412 return false;
413 }
414
415 override void OnDebugSpawn()
416 {
417 SpawnUniversalParts();
418 SpawnAdditionalItems();
419 FillUpCarFluids();
420
421 GameInventory inventory = GetInventory();
422 inventory.CreateInInventory("Sedan_02_Wheel");
423 inventory.CreateInInventory("Sedan_02_Wheel");
424 inventory.CreateInInventory("Sedan_02_Wheel");
425 inventory.CreateInInventory("Sedan_02_Wheel");
426 inventory.CreateInInventory("Sedan_02_Wheel");
427
428 inventory.CreateInInventory("Sedan_02_Door_1_1");
429 inventory.CreateInInventory("Sedan_02_Door_1_2");
430 inventory.CreateInInventory("Sedan_02_Door_2_1");
431 inventory.CreateInInventory("Sedan_02_Door_2_2");
432 inventory.CreateInInventory("Sedan_02_Hood");
433 inventory.CreateInInventory("Sedan_02_Trunk");
434
435 //-----IN CAR CARGO
436 inventory.CreateInInventory("Sedan_02_Wheel");
437 inventory.CreateInInventory("Sedan_02_Wheel");
438 }
439}
440
441class Sedan_02_Red extends Sedan_02
442{
443 override void OnDebugSpawn()
445 SpawnUniversalParts();
446 SpawnAdditionalItems();
447 FillUpCarFluids();
449 GameInventory inventory = GetInventory();
450 inventory.CreateInInventory("Sedan_02_Wheel");
451 inventory.CreateInInventory("Sedan_02_Wheel");
452 inventory.CreateInInventory("Sedan_02_Wheel");
453 inventory.CreateInInventory("Sedan_02_Wheel");
454
455 inventory.CreateInInventory("Sedan_02_Door_1_1_Red");
456 inventory.CreateInInventory("Sedan_02_Door_1_2_Red");
457 inventory.CreateInInventory("Sedan_02_Door_2_1_Red");
458 inventory.CreateInInventory("Sedan_02_Door_2_2_Red");
459 inventory.CreateInInventory("Sedan_02_Hood_Red");
460 inventory.CreateInInventory("Sedan_02_Trunk_Red");
461
462 //-----IN CAR CARGO
463 inventory.CreateInInventory("Sedan_02_Wheel");
464 inventory.CreateInInventory("Sedan_02_Wheel");
465 }
466}
467
468class Sedan_02_Grey extends Sedan_02
469{
470 override void OnDebugSpawn()
471 {
472 SpawnUniversalParts();
473 SpawnAdditionalItems();
474 FillUpCarFluids();
476 GameInventory inventory = GetInventory();
477 inventory.CreateInInventory("Sedan_02_Wheel");
478 inventory.CreateInInventory("Sedan_02_Wheel");
479 inventory.CreateInInventory("Sedan_02_Wheel");
480 inventory.CreateInInventory("Sedan_02_Wheel");
481
482 inventory.CreateInInventory("Sedan_02_Door_1_1_Grey");
483 inventory.CreateInInventory("Sedan_02_Door_1_2_Grey");
484 inventory.CreateInInventory("Sedan_02_Door_2_1_Grey");
485 inventory.CreateInInventory("Sedan_02_Door_2_2_Grey");
486 inventory.CreateInInventory("Sedan_02_Hood_Grey");
487 inventory.CreateInInventory("Sedan_02_Trunk_Grey");
488
489 //-----IN CAR CARGO
490 inventory.CreateInInventory("Sedan_02_Wheel");
491 inventory.CreateInInventory("Sedan_02_Wheel");
492 }
CarSoundCtrl
Car's sound controller list. (native, do not change or extend).
Definition car.c:4
CarDoorState
Definition carscript.c:2
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override int GetCarDoorsState(string slotType)
Definition sedan_02.c:197
override void OnDebugSpawn()
Definition sedan_02.c:415
override bool CanDisplayAttachmentCategory(string category_name)
Definition sedan_02.c:159
override void EOnPostSimulate(IEntity other, float timeSlice)
Definition sedan_02.c:74
ref UniversalTemperatureSourceSettings m_UTSSettings
override bool IsVitalGlowPlug()
Definition sedan_02.c:370
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Definition sedan_02.c:395
override bool CanDisplayCargo()
Definition sedan_02.c:186
override int GetAnimInstance()
Definition sedan_02.c:85
void ~Sedan_02()
Definition sedan_02.c:27
override bool CrewCanGetThrough(int posIdx)
Definition sedan_02.c:232
override CarLightBase CreateFrontLight()
Definition sedan_02.c:108
override CarRearLightBase CreateRearLight()
Definition sedan_02.c:114
override void EEInit()
Definition sedan_02.c:34
void Sedan_02()
Definition sedan_02.c:7
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Definition sedan_02.c:310
override bool IsVitalTruckBattery()
Definition sedan_02.c:365
override bool CanReleaseAttachment(EntityAI attachment)
Definition sedan_02.c:119
override void OnEngineStart()
Definition sedan_02.c:52
override string GetAnimSourceFromSelection(string selection)
Definition sedan_02.c:343
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Definition sedan_02.c:375
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Definition sedan_02.c:268
override int GetSeatAnimationType(int posIdx)
Definition sedan_02.c:90
ref UniversalTemperatureSource m_UTSource
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Definition sedan_02.c:289
bool CanManipulateSpareWheel(string slotSelectionName)
Definition sedan_02.c:154
override void OnEngineStop()
Definition sedan_02.c:63
Super root of all classes in Enforce script.
Definition enscript.c:11
script counterpart to engine's class Inventory
Definition inventory.c:81
EntityAI CreateInInventory(string type)
Definition inventory.c:876
Internal ancestor of all Entity implementations.
Definition enentity.c:165
Definition enmath.c:7
override void OnDebugSpawn()
Definition sedan_02.c:470
original Timer deletes m_params which is unwanted
DayZGame g_Game
Definition dayzgame.c:3942
DayZPlayerConstants
defined in C++
Definition dayzplayer.c:602
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
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
Definition constants.c:811
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.
Definition enstring.c:286
proto int ToLower()
Changes string to lowercase.
override int GetCarDoorsState(string slotType)
Definition sedan_02.c:638
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances