DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
Vehicles/InheritedCars/Sedan_02.c
См. документацию.
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_LightsComponent.RegisterLight("Front", new VehicleLightData(new Sedan_02LightProfileFront()));
22 m_LightsComponent.RegisterLight("Rear", new VehicleLightData(new Sedan_02LightProfileRear()));
23
24 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "Sedan_02_Horn_Short_SoundSet");
25 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "Sedan_02_Horn_SoundSet");
26
27 SetEnginePos("0 0.7 -1.7");
28
30 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
31 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
32 }
33
34 void ~Sedan_02()
35 {
36 m_UTSource = null;
37 m_UTSSettings = null;
38 m_UTSLEngine = null;
39 }
40
41 override void EEInit()
42 {
43 super.EEInit();
44
45 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
46 {
48 m_UTSSettings.m_ManualUpdate = true;
50 m_UTSSettings.m_TemperatureCap = 0;
51 m_UTSSettings.m_RangeFull = 0.5;
52 m_UTSSettings.m_RangeMax = 2;
53
56 }
57 }
58
60 {
61 return true;
62 }
63
65 {
66 super.GetElectricitySourceDevice();
67
68 return GetInventory().FindAttachment(CarBattery.SLOT_ID);
69 }
70
72 {
73 return "CarBattery";
74 }
75
76 override void OnEngineStart()
77 {
78 super.OnEngineStart();
79
80 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
81 {
82 if (m_UTSource)
83 m_UTSource.SetDefferedActive(true, 20.0);
84 }
85 }
86
87 override void OnEngineStop()
88 {
89 super.OnEngineStop();
90
91 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
92 {
93 if (m_UTSource)
94 m_UTSource.SetDefferedActive(false, 10.0);
95 }
96 }
97
98 override void EOnPostSimulate(IEntity other, float timeSlice)
99 {
100 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
101 {
102 if (m_UTSource && m_UTSource.IsActive())
103 {
105 }
106 }
107 }
108
109 override int GetAnimInstance()
110 {
111 return VehicleAnimInstances.S120;
112 }
113
114 override int GetSeatAnimationType(int posIdx)
115 {
116 switch (posIdx)
117 {
118 case 0:
119 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
120 case 1:
121 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
122 case 2:
123 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
124 case 3:
125 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
126 }
127
128 return 0;
129 }
130
131 override bool CanReleaseAttachment( EntityAI attachment )
132 {
133 if (!super.CanReleaseAttachment(attachment))
134 {
135 return false;
136 }
137
138 string attType = attachment.GetType();
139 switch (attType)
140 {
141 case "CarBattery":
142 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
143 {
144 return false;
145 }
146 break;
147
148 case "SparkPlug":
149 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
150 {
151 return false;
152 }
153 break;
154
155 case "CarRadiator":
156 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
157 {
158 return false;
159 }
160 break;
161 }
162
163 return true;
164 }
165
166 override protected bool CanManipulateSpareWheel(string slotSelectionName)
167 {
168 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
169 }
170
171 override bool CanDisplayAttachmentCategory(string category_name)
172 {
173 if ( !super.CanDisplayAttachmentCategory(category_name))
174 {
175 return false;
176 }
177
178 category_name.ToLower();
179 if (category_name.Contains("engine"))
180 {
181 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
182 {
183 return false;
184 }
185 }
186
187 if (category_name.Contains("trunk"))
188 {
189 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
190 {
191 return false;
192 }
193 }
194
195 return true;
196 }
197
198 override bool CanDisplayCargo()
199 {
200 if ( !super.CanDisplayCargo() )
201 return false;
202
203 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
204 return false;
205
206 return true;
207 }
208
209 override int GetCarDoorsState(string slotType)
210 {
211 CarDoor carDoor;
212
213 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
214 if (!carDoor)
215 {
216 return CarDoorState.DOORS_MISSING;
217 }
218
219 switch (slotType)
220 {
221 case "Sedan_02_Door_1_1":
222 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
223
224 case "Sedan_02_Door_2_1":
225 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
226
227 case "Sedan_02_Door_1_2":
228 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
229
230 case "Sedan_02_Door_2_2":
231 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
232
233 case "Sedan_02_Hood":
234 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
235
236 case "Sedan_02_Trunk":
237 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
238 }
239
240 return CarDoorState.DOORS_MISSING;
241 }
242
243
244 override bool CrewCanGetThrough( int posIdx )
245 {
246 switch( posIdx )
247 {
248 case 0:
249 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
250 return false;
251
252 return true;
253 break;
254
255 case 1:
256 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
257 return false;
258
259 return true;
260 break;
261
262 case 2:
263 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
264 return false;
265
266 return true;
267 break;
268
269 case 3:
270 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
271 return false;
272
273 return true;
274 break;
275 }
276
277 return false;
278 }
279
280 override string GetDoorSelectionNameFromSeatPos(int posIdx)
281 {
282 switch( posIdx )
283 {
284 case 0:
285 return "doors_driver";
286 break;
287 case 1:
288 return "doors_codriver";
289 break;
290 case 2:
291 return "doors_cargo1";
292 break;
293 case 3:
294 return "doors_cargo2";
295 break;
296 }
297
298 return super.GetDoorSelectionNameFromSeatPos(posIdx);
299 }
300
301 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
302 {
303 switch( posIdx )
304 {
305 case 0:
306 return "Sedan_02_Door_1_1";
307 break;
308 case 1:
309 return "Sedan_02_Door_2_1";
310 break;
311 case 2:
312 return "Sedan_02_Door_1_2";
313 break;
314 case 3:
315 return "Sedan_02_Door_2_2";
316 break;
317 }
318
319 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
320 }
321
322 override float OnSound(CarSoundCtrl ctrl, float oldValue)
323 {
324 switch ( ctrl )
325 {
326 case CarSoundCtrl.DOORS:
327 float newValue = 0;
328 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
329 {
330 newValue += 0.25;
331 }
332
333 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
334 {
335 newValue += 0.25;
336 }
337
338 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
339 {
340 newValue += 0.25;
341 }
342
343 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
344 {
345 newValue += 0.25;
346 }
347
348 return Math.Clamp(newValue, 0, 1);
349 break;
350 }
351
352 return super.OnSound(ctrl, oldValue);
353 }
354
355 override string GetAnimSourceFromSelection( string selection )
356 {
357 switch( selection )
358 {
359 case "doors_driver":
360 return "DoorsDriver";
361 case "doors_codriver":
362 return "DoorsCoDriver";
363 case "doors_cargo1":
364 return "DoorsCargo1";
365 case "doors_cargo2":
366 return "DoorsCargo2";
367 case "doors_hood":
368 return "DoorsHood";
369 case "doors_trunk":
370 return "DoorsTrunk";
371 }
372
373 return "";
374 }
375
376 override bool IsVitalGlowPlug()
377 {
378 return false;
379 }
380
381 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
382 {
383 switch (currentSeat)
384 {
385 case 0:
386 return nextSeat == 1;
387
388 case 1:
389 return nextSeat == 0;
390
391 case 2:
392 return nextSeat == 3;
393
394 case 3:
395 return nextSeat == 2;
396 }
397
398 return false;
399 }
400
401 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
402 {
403 switch (pCurrentSeat)
404 {
405 case 0:
406 return pDoorsSelection == "DoorsDriver";
407
408 case 1:
409 return pDoorsSelection == "DoorsCoDriver";
410
411 case 2:
412 return pDoorsSelection == "DoorsCargo1";
413
414 case 3:
415 return pDoorsSelection == "DoorsCargo2";
416 }
417
418 return false;
419 }
420
421 override void OnDebugSpawn()
422 {
424 SpawnAdditionalItems();
425 FillUpCarFluids();
426
427 GameInventory inventory = GetInventory();
428 inventory.CreateInInventory("Sedan_02_Wheel");
429 inventory.CreateInInventory("Sedan_02_Wheel");
430 inventory.CreateInInventory("Sedan_02_Wheel");
431 inventory.CreateInInventory("Sedan_02_Wheel");
432 inventory.CreateInInventory("Sedan_02_Wheel");
433
434 inventory.CreateInInventory("Sedan_02_Door_1_1");
435 inventory.CreateInInventory("Sedan_02_Door_1_2");
436 inventory.CreateInInventory("Sedan_02_Door_2_1");
437 inventory.CreateInInventory("Sedan_02_Door_2_2");
438 inventory.CreateInInventory("Sedan_02_Hood");
439 inventory.CreateInInventory("Sedan_02_Trunk");
440
441 //-----IN CAR CARGO
442 inventory.CreateInInventory("Sedan_02_Wheel");
443 inventory.CreateInInventory("Sedan_02_Wheel");
444 }
445}
446
447class Sedan_02_Red : Sedan_02
448{
449 override void OnDebugSpawn()
452 SpawnAdditionalItems();
453 FillUpCarFluids();
455 GameInventory inventory = GetInventory();
456 inventory.CreateInInventory("Sedan_02_Wheel");
457 inventory.CreateInInventory("Sedan_02_Wheel");
458 inventory.CreateInInventory("Sedan_02_Wheel");
459 inventory.CreateInInventory("Sedan_02_Wheel");
460
461 inventory.CreateInInventory("Sedan_02_Door_1_1_Red");
462 inventory.CreateInInventory("Sedan_02_Door_1_2_Red");
463 inventory.CreateInInventory("Sedan_02_Door_2_1_Red");
464 inventory.CreateInInventory("Sedan_02_Door_2_2_Red");
465 inventory.CreateInInventory("Sedan_02_Hood_Red");
466 inventory.CreateInInventory("Sedan_02_Trunk_Red");
467
468 //-----IN CAR CARGO
469 inventory.CreateInInventory("Sedan_02_Wheel");
470 inventory.CreateInInventory("Sedan_02_Wheel");
471 }
472}
473
475{
476 override void OnDebugSpawn()
477 {
479 SpawnAdditionalItems();
480 FillUpCarFluids();
482 GameInventory inventory = GetInventory();
483 inventory.CreateInInventory("Sedan_02_Wheel");
484 inventory.CreateInInventory("Sedan_02_Wheel");
485 inventory.CreateInInventory("Sedan_02_Wheel");
486 inventory.CreateInInventory("Sedan_02_Wheel");
487
488 inventory.CreateInInventory("Sedan_02_Door_1_1_Grey");
489 inventory.CreateInInventory("Sedan_02_Door_1_2_Grey");
490 inventory.CreateInInventory("Sedan_02_Door_2_1_Grey");
491 inventory.CreateInInventory("Sedan_02_Door_2_2_Grey");
492 inventory.CreateInInventory("Sedan_02_Hood_Grey");
493 inventory.CreateInInventory("Sedan_02_Trunk_Grey");
494
495 //-----IN CAR CARGO
496 inventory.CreateInInventory("Sedan_02_Wheel");
497 inventory.CreateInInventory("Sedan_02_Wheel");
498 }
499}
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
Sedan_02LightProfileFront VehicleLightProfileFront Sedan_02LightProfileRear()
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 void OnDebugSpawn()
override bool CrewCanGetThrough(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override int GetSeatAnimationType(int posIdx)
void ~Sedan_02()
override bool IsVitalGlowPlug()
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
ref UniversalTemperatureSource m_UTSource
override bool CanDisplayCargo()
override void EEInit()
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
ref UniversalTemperatureSourceSettings m_UTSSettings
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
override bool CanReleaseAttachment(EntityAI attachment)
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override string GetElectricitySourceDeviceType()
override EntityAI GetElectricitySourceDevice()
override int GetCarDoorsState(string slotType)
override void OnEngineStart()
override string GetAnimSourceFromSelection(string selection)
override bool NeedElectricitySourceDevice()
void Sedan_02()
override bool CanDisplayAttachmentCategory(string category_name)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
override void OnDebugSpawn()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetAnimInstance()
override void OnEngineStop()
bool CanManipulateSpareWheel(string slotSelectionName)
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
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.