DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
CivilianSedan.c
См. документацию.
2{
6
8 {
9 //m_dmgContactCoef = 0.065;
10
11 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
12 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
13 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
14 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
15 m_EngineStop = "CivilianSedan_engine_stop_SoundSet";
16 m_EngineStopFuel = "CivilianSedan_engine_stop_fuel_SoundSet";
17
18 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
19 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
20
21 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
22 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
23
24 SetEnginePos("0 0.7 1.6");
25 }
26
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.SEDAN;
88 }
89
91 {
92 return 4.5;
93 }
94
95 override int GetSeatAnimationType(int posIdx)
96 {
97 switch (posIdx)
98 {
99 case 0:
100 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
101 case 1:
102 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
103 case 2:
104 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
105 case 3:
106 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
107 }
108
109 return 0;
110 }
111
112 // Override for car-specific light type
114 {
115 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
116 }
117
118 // Override for car-specific light type
120 {
121 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
122 }
123
124 override bool CanReleaseAttachment( EntityAI attachment )
125 {
126 if( !super.CanReleaseAttachment( attachment ) )
127 return false;
128
129 string attType = attachment.GetType();
130
131 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
132 {
133 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
134 return false;
135 }
136
137 return true;
138 }
139
140 override protected bool CanManipulateSpareWheel(string slotSelectionName)
141 {
142 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
143 }
144
145 override bool CanDisplayAttachmentCategory(string category_name)
146 {
147 //super
148 if (!super.CanDisplayAttachmentCategory(category_name))
149 return false;
150 //
151
152 category_name.ToLower();
153 if (category_name.Contains("engine"))
154 {
155 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
156 return false;
157 }
158
159 return true;
160 }
161
162 override bool CanDisplayCargo()
163 {
164 if ( !super.CanDisplayCargo() )
165 return false;
166
167 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
168 return false;
169
170 return true;
171 }
172
173 override int GetCarDoorsState( string slotType )
174 {
175 CarDoor carDoor;
176
177 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
178 if (!carDoor)
179 {
180 return CarDoorState.DOORS_MISSING;
181 }
182
183 switch (slotType)
184 {
185 case "CivSedanDriverDoors":
186 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
187 break;
188
189 case "CivSedanCoDriverDoors":
190 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
191 break;
192
193 case "CivSedanCargo1Doors":
194 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
195 break;
196
197 case "CivSedanCargo2Doors":
198 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
199 break;
200
201 case "CivSedanTrunk":
202 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
203 break;
204
205 case "CivSedanHood":
206 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
207 break;
208 }
209
210 return CarDoorState.DOORS_MISSING;
211 }
212
213
214 override bool CrewCanGetThrough( int posIdx )
215 {
216 switch( posIdx )
217 {
218 case 0:
219 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
220 return false;
221
222 return true;
223 break;
224
225 case 1:
226 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
227 return false;
228
229 return true;
230 break;
231
232 case 2:
233 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
234 return false;
235
236 return true;
237 break;
238
239 case 3:
240 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
241 return false;
242
243 return true;
244 break;
245 }
246
247 return false;
248 }
249
250 override string GetDoorSelectionNameFromSeatPos(int posIdx)
251 {
252 switch( posIdx )
253 {
254 case 0:
255 return "doors_driver";
256 break;
257 case 1:
258 return "doors_codriver";
259 break;
260 case 2:
261 return "doors_cargo1";
262 break;
263 case 3:
264 return "doors_cargo2";
265 break;
266 }
267
268 return super.GetDoorSelectionNameFromSeatPos(posIdx);
269 }
270
271 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
272 {
273 switch( posIdx )
274 {
275 case 0:
276 return "CivSedanDriverDoors";
277 break;
278 case 1:
279 return "CivSedanCoDriverDoors";
280 break;
281 case 2:
282 return "CivSedanCargo1Doors";
283 break;
284 case 3:
285 return "CivSedanCargo2Doors";
286 break;
287 }
288
289 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
290 }
291
292 // 0 full ambient and engine sound
293 // 1 zero ambient and engine sound
294 override float OnSound(CarSoundCtrl ctrl, float oldValue)
295 {
296 switch (ctrl)
297 {
298 case CarSoundCtrl.DOORS:
299 float newValue = 0;
300 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
301 {
302 newValue += 0.25;
303 }
304
305 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
306 {
307 newValue += 0.25;
308 }
309
310 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
311 {
312 newValue += 0.25;
313 }
314
315 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
316 {
317 newValue += 0.25;
318 }
319
320 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
321 {
322 newValue -= 0.6;
323 }
324
325 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
326 {
327 newValue -= 0.6;
328 }
329
330 return Math.Clamp(newValue, 0, 1);
331 break;
332 }
333
334 return super.OnSound(ctrl, oldValue);
335 }
336
337 override string GetAnimSourceFromSelection(string selection)
338 {
339 switch (selection)
340 {
341 case "doors_driver":
342 return "DoorsDriver";
343 case "doors_codriver":
344 return "DoorsCoDriver";
345 case "doors_cargo1":
346 return "DoorsCargo1";
347 case "doors_cargo2":
348 return "DoorsCargo2";
349 case "doors_hood":
350 return "DoorsHood";
351 case "doors_trunk":
352 return "DoorsTrunk";
353 }
354
355 return "";
356 }
357
358 override bool IsVitalTruckBattery()
359 {
360 return false;
361 }
362
363 override bool IsVitalGlowPlug()
364 {
365 return false;
366 }
367
368 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
369 {
370 switch (currentSeat)
371 {
372 case 0:
373 return nextSeat == 1;
374
375 case 1:
376 return nextSeat == 0;
377
378 case 2:
379 return nextSeat == 3;
380
381 case 3:
382 return nextSeat == 2;
383 }
384
385 return false;
386 }
387
388 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
389 {
390 switch (pCurrentSeat)
391 {
392 case 0:
393 return pDoorsSelection == "DoorsDriver";
394
395 case 1:
396 return pDoorsSelection == "DoorsCoDriver";
397
398 case 2:
399 return pDoorsSelection == "DoorsCargo1";
400
401 case 3:
402 return pDoorsSelection == "DoorsCargo2";
403 }
404
405 return false;
406 }
407
408 override void OnDebugSpawn()
409 {
410 SpawnUniversalParts();
411 SpawnAdditionalItems();
412 FillUpCarFluids();
413
414 GameInventory inventory = GetInventory();
415 inventory.CreateInInventory("CivSedanWheel");
416 inventory.CreateInInventory("CivSedanWheel");
417 inventory.CreateInInventory("CivSedanWheel");
418 inventory.CreateInInventory("CivSedanWheel");
419
420 inventory.CreateInInventory("CivSedanDoors_Driver");
421 inventory.CreateInInventory("CivSedanDoors_CoDriver");
422 inventory.CreateInInventory("CivSedanDoors_BackLeft");
423 inventory.CreateInInventory("CivSedanDoors_BackRight");
424 inventory.CreateInInventory("CivSedanHood");
425 inventory.CreateInInventory("CivSedanTrunk");
426
427 //-----IN CAR CARGO
428 inventory.CreateInInventory("CivSedanWheel");
429 inventory.CreateInInventory("CivSedanWheel");
430 }
431
433 {
434 return 1.5;
435 }
436}
437
438class CivilianSedan_Wine extends CivilianSedan
439{
440 override void OnDebugSpawn()
442 SpawnUniversalParts();
443 SpawnAdditionalItems();
444 FillUpCarFluids();
446 GameInventory inventory = GetInventory();
447 inventory.CreateInInventory("CivSedanWheel");
448 inventory.CreateInInventory("CivSedanWheel");
449 inventory.CreateInInventory("CivSedanWheel");
450 inventory.CreateInInventory("CivSedanWheel");
451
452 inventory.CreateInInventory("CivSedanDoors_Driver_Wine");
453 inventory.CreateInInventory("CivSedanDoors_CoDriver_Wine");
454 inventory.CreateInInventory("CivSedanDoors_BackLeft_Wine");
455 inventory.CreateInInventory("CivSedanDoors_BackRight_Wine");
456 inventory.CreateInInventory("CivSedanHood_Wine");
457 inventory.CreateInInventory("CivSedanTrunk_Wine");
458
459 //-----IN CAR CARGO
460 inventory.CreateInInventory("CivSedanWheel");
461 inventory.CreateInInventory("CivSedanWheel");
462 }
463}
464
465class CivilianSedan_Black extends CivilianSedan
466{
467 override void OnDebugSpawn()
468 {
469 SpawnUniversalParts();
470 SpawnAdditionalItems();
471 FillUpCarFluids();
473 GameInventory inventory = GetInventory();
474 inventory.CreateInInventory("CivSedanWheel");
475 inventory.CreateInInventory("CivSedanWheel");
476 inventory.CreateInInventory("CivSedanWheel");
477 inventory.CreateInInventory("CivSedanWheel");
478
479 inventory.CreateInInventory("CivSedanDoors_Driver_Black");
480 inventory.CreateInInventory("CivSedanDoors_CoDriver_Black");
481 inventory.CreateInInventory("CivSedanDoors_BackLeft_Black");
482 inventory.CreateInInventory("CivSedanDoors_BackRight_Black");
483 inventory.CreateInInventory("CivSedanHood_Black");
484 inventory.CreateInInventory("CivSedanTrunk_Black");
485
486 //-----IN CAR CARGO
487 inventory.CreateInInventory("CivSedanWheel");
488 inventory.CreateInInventory("CivSedanWheel");
489 }
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
CarDoorState
Определения CarScript.c:2
override int GetCarDoorsState(string slotType)
Определения CivilianSedan.c:611
DayZGame g_Game
Определения DayZGame.c:3942
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.c:2
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения CivilianSedan.c:294
void CivilianSedan()
Определения CivilianSedan.c:7
override float GetTransportCameraDistance()
Определения CivilianSedan.c:90
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения CivilianSedan.c:250
override int GetAnimInstance()
Определения CivilianSedan.c:85
override CarRearLightBase CreateRearLight()
Определения CivilianSedan.c:119
override void OnDebugSpawn()
Определения CivilianSedan.c:408
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения CivilianSedan.c:271
override CarLightBase CreateFrontLight()
Определения CivilianSedan.c:113
override bool IsVitalGlowPlug()
Определения CivilianSedan.c:363
override int GetCarDoorsState(string slotType)
Определения CivilianSedan.c:173
override bool IsVitalTruckBattery()
Определения CivilianSedan.c:358
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:5
override string GetAnimSourceFromSelection(string selection)
Определения CivilianSedan.c:337
override bool CanDisplayCargo()
Определения CivilianSedan.c:162
void ~CivilianSedan()
Определения CivilianSedan.c:27
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения CivilianSedan.c:388
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения CivilianSedan.c:74
override void OnEngineStart()
Определения CivilianSedan.c:52
override bool CanReleaseAttachment(EntityAI attachment)
Определения CivilianSedan.c:124
override void EEInit()
Определения CivilianSedan.c:34
override bool CrewCanGetThrough(int posIdx)
Определения CivilianSedan.c:214
ref UniversalTemperatureSource m_UTSource
Определения CivilianSedan.c:3
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения CivilianSedan.c:368
bool CanManipulateSpareWheel(string slotSelectionName)
Определения CivilianSedan.c:140
override float GetPushForceCoefficientMultiplier()
Определения CivilianSedan.c:432
override void OnEngineStop()
Определения CivilianSedan.c:63
override bool CanDisplayAttachmentCategory(string category_name)
Определения CivilianSedan.c:145
override int GetSeatAnimationType(int posIdx)
Определения CivilianSedan.c:95
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения CivilianSedan.c:4
Определения CivilianSedan.c:2
override void OnDebugSpawn()
Определения CivilianSedan.c:467
Определения CivilianSedan.c:466
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
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.