DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
Sedan_02.c
См. документацию.
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)
Определения 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)
Определения Sedan_02.c:638
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.c:2
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Sedan_02.c:310
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Sedan_02.c:268
override int GetAnimInstance()
Определения Sedan_02.c:85
void ~Sedan_02()
Определения Sedan_02.c:27
override CarRearLightBase CreateRearLight()
Определения Sedan_02.c:114
override void OnDebugSpawn()
Определения Sedan_02.c:415
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Sedan_02.c:289
override CarLightBase CreateFrontLight()
Определения Sedan_02.c:108
override bool IsVitalGlowPlug()
Определения Sedan_02.c:370
override int GetCarDoorsState(string slotType)
Определения Sedan_02.c:197
override bool IsVitalTruckBattery()
Определения Sedan_02.c:365
void Sedan_02()
Определения Sedan_02.c:7
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:5
override string GetAnimSourceFromSelection(string selection)
Определения Sedan_02.c:343
override bool CanDisplayCargo()
Определения Sedan_02.c:186
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Sedan_02.c:395
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Sedan_02.c:74
override void OnEngineStart()
Определения Sedan_02.c:52
override bool CanReleaseAttachment(EntityAI attachment)
Определения Sedan_02.c:119
override void EEInit()
Определения Sedan_02.c:34
override bool CrewCanGetThrough(int posIdx)
Определения Sedan_02.c:232
ref UniversalTemperatureSource m_UTSource
Определения CivilianSedan.c:3
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Sedan_02.c:375
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Sedan_02.c:154
override void OnEngineStop()
Определения Sedan_02.c:63
override bool CanDisplayAttachmentCategory(string category_name)
Определения Sedan_02.c:159
override int GetSeatAnimationType(int posIdx)
Определения Sedan_02.c:90
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()
Определения Sedan_02.c:470
Определения Sedan_02.c:469
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
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.