DayZ 1.27
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_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
16
17 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
18 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
19
20 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
21 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
22
23 SetEnginePos("0 0.7 1.6");
24 }
25
26 override void EEInit()
27 {
28 super.EEInit();
29
30 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
31 {
33 m_UTSSettings.m_ManualUpdate = true;
35 m_UTSSettings.m_TemperatureCap = 0;
36 m_UTSSettings.m_RangeFull = 0.5;
37 m_UTSSettings.m_RangeMax = 2;
38
41 }
42 }
43
44 override void OnEngineStart()
45 {
46 super.OnEngineStart();
47
48 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
49 {
50 m_UTSource.SetDefferedActive(true, 20.0);
51 }
52 }
53
54 override void OnEngineStop()
55 {
56 super.OnEngineStop();
57
58 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
59 {
60 m_UTSource.SetDefferedActive(false, 10.0);
61 }
62 }
63
64 override void EOnPostSimulate(IEntity other, float timeSlice)
65 {
66 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
67 {
68 if (m_UTSource.IsActive())
69 {
71 }
72 }
73 }
74
75 override int GetAnimInstance()
76 {
77 return VehicleAnimInstances.SEDAN;
78 }
79
81 {
82 return 4.5;
83 }
84
85 override int GetSeatAnimationType(int posIdx)
86 {
87 switch (posIdx)
88 {
89 case 0:
90 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
91 case 1:
92 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
93 case 2:
94 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
95 case 3:
96 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
97 }
98
99 return 0;
100 }
101
102 // Override for car-specific light type
104 {
105 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
106 }
107
108 // Override for car-specific light type
110 {
111 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
112 }
113
114 override bool CanReleaseAttachment( EntityAI attachment )
115 {
116 if( !super.CanReleaseAttachment( attachment ) )
117 return false;
118
119 string attType = attachment.GetType();
120
121 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
122 {
123 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
124 return false;
125 }
126
127 return true;
128 }
129
130 override protected bool CanManipulateSpareWheel(string slotSelectionName)
131 {
132 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
133 }
134
135 override bool CanDisplayAttachmentCategory(string category_name)
136 {
137 //super
138 if (!super.CanDisplayAttachmentCategory(category_name))
139 return false;
140 //
141
142 category_name.ToLower();
143 if (category_name.Contains("engine"))
144 {
145 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
146 return false;
147 }
148
149 return true;
150 }
151
152 override bool CanDisplayCargo()
153 {
154 if ( !super.CanDisplayCargo() )
155 return false;
156
157 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
158 return false;
159
160 return true;
161 }
162
163 override int GetCarDoorsState( string slotType )
164 {
165 CarDoor carDoor;
166
167 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
168 if (!carDoor)
169 {
170 return CarDoorState.DOORS_MISSING;
171 }
172
173 switch (slotType)
174 {
175 case "CivSedanDriverDoors":
176 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
177 break;
178
179 case "CivSedanCoDriverDoors":
180 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
181 break;
182
183 case "CivSedanCargo1Doors":
184 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
185 break;
186
187 case "CivSedanCargo2Doors":
188 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
189 break;
190
191 case "CivSedanTrunk":
192 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
193 break;
194
195 case "CivSedanHood":
196 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
197 break;
198 }
199
200 return CarDoorState.DOORS_MISSING;
201 }
202
203
204 override bool CrewCanGetThrough( int posIdx )
205 {
206 switch( posIdx )
207 {
208 case 0:
209 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
210 return false;
211
212 return true;
213 break;
214
215 case 1:
216 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
217 return false;
218
219 return true;
220 break;
221
222 case 2:
223 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
224 return false;
225
226 return true;
227 break;
228
229 case 3:
230 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
231 return false;
232
233 return true;
234 break;
235 }
236
237 return false;
238 }
239
240 override string GetDoorSelectionNameFromSeatPos(int posIdx)
241 {
242 switch( posIdx )
243 {
244 case 0:
245 return "doors_driver";
246 break;
247 case 1:
248 return "doors_codriver";
249 break;
250 case 2:
251 return "doors_cargo1";
252 break;
253 case 3:
254 return "doors_cargo2";
255 break;
256 }
257
258 return super.GetDoorSelectionNameFromSeatPos(posIdx);
259 }
260
261 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
262 {
263 switch( posIdx )
264 {
265 case 0:
266 return "CivSedanDriverDoors";
267 break;
268 case 1:
269 return "CivSedanCoDriverDoors";
270 break;
271 case 2:
272 return "CivSedanCargo1Doors";
273 break;
274 case 3:
275 return "CivSedanCargo2Doors";
276 break;
277 }
278
279 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
280 }
281
282 // 0 full ambient and engine sound
283 // 1 zero ambient and engine sound
284 override float OnSound(CarSoundCtrl ctrl, float oldValue)
285 {
286 switch (ctrl)
287 {
288 case CarSoundCtrl.DOORS:
289 float newValue = 0;
290 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
291 {
292 newValue += 0.25;
293 }
294
295 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
296 {
297 newValue += 0.25;
298 }
299
300 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
301 {
302 newValue += 0.25;
303 }
304
305 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
306 {
307 newValue += 0.25;
308 }
309
310 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
311 {
312 newValue -= 0.6;
313 }
314
315 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
316 {
317 newValue -= 0.6;
318 }
319
320 return Math.Clamp(newValue, 0, 1);
321 break;
322 }
323
324 return super.OnSound(ctrl, oldValue);
325 }
326
327 override string GetAnimSourceFromSelection(string selection)
328 {
329 switch (selection)
330 {
331 case "doors_driver":
332 return "DoorsDriver";
333 case "doors_codriver":
334 return "DoorsCoDriver";
335 case "doors_cargo1":
336 return "DoorsCargo1";
337 case "doors_cargo2":
338 return "DoorsCargo2";
339 case "doors_hood":
340 return "DoorsHood";
341 case "doors_trunk":
342 return "DoorsTrunk";
343 }
344
345 return "";
346 }
347
348 override bool IsVitalTruckBattery()
349 {
350 return false;
351 }
352
353 override bool IsVitalGlowPlug()
354 {
355 return false;
356 }
357
358 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
359 {
360 switch (currentSeat)
361 {
362 case 0:
363 return nextSeat == 1;
364
365 case 1:
366 return nextSeat == 0;
367
368 case 2:
369 return nextSeat == 3;
370
371 case 3:
372 return nextSeat == 2;
373 }
374
375 return false;
376 }
377
378 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
379 {
380 switch (pCurrentSeat)
381 {
382 case 0:
383 return pDoorsSelection == "DoorsDriver";
384
385 case 1:
386 return pDoorsSelection == "DoorsCoDriver";
387
388 case 2:
389 return pDoorsSelection == "DoorsCargo1";
390
391 case 3:
392 return pDoorsSelection == "DoorsCargo2";
393 }
394
395 return false;
396 }
397
398 override void OnDebugSpawn()
399 {
403
404 GetInventory().CreateInInventory("CivSedanWheel");
405 GetInventory().CreateInInventory("CivSedanWheel");
406 GetInventory().CreateInInventory("CivSedanWheel");
407 GetInventory().CreateInInventory("CivSedanWheel");
408
409 GetInventory().CreateInInventory("CivSedanDoors_Driver");
410 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
411 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
412 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
413 GetInventory().CreateInInventory("CivSedanHood");
414 GetInventory().CreateInInventory("CivSedanTrunk");
415
416 //-----IN CAR CARGO
417 GetInventory().CreateInInventory("CivSedanWheel");
418 GetInventory().CreateInInventory("CivSedanWheel");
419 }
420
422 {
423 return 1.5;
424 }
425}
426
427class CivilianSedan_Wine extends CivilianSedan
428{
429 override void OnDebugSpawn()
435 GetInventory().CreateInInventory("CivSedanWheel");
436 GetInventory().CreateInInventory("CivSedanWheel");
437 GetInventory().CreateInInventory("CivSedanWheel");
438 GetInventory().CreateInInventory("CivSedanWheel");
439
440 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
441 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
442 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
443 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
444 GetInventory().CreateInInventory("CivSedanHood_Wine");
445 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
446
447 //-----IN CAR CARGO
448 GetInventory().CreateInInventory("CivSedanWheel");
449 GetInventory().CreateInInventory("CivSedanWheel");
450 }
451}
452
453class CivilianSedan_Black extends CivilianSedan
454{
455 override void OnDebugSpawn()
456 {
460
461 GetInventory().CreateInInventory("CivSedanWheel");
462 GetInventory().CreateInInventory("CivSedanWheel");
463 GetInventory().CreateInInventory("CivSedanWheel");
464 GetInventory().CreateInInventory("CivSedanWheel");
465
466 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
467 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
468 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
469 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
470 GetInventory().CreateInInventory("CivSedanHood_Black");
471 GetInventory().CreateInInventory("CivSedanTrunk_Black");
472
473 //-----IN CAR CARGO
474 GetInventory().CreateInInventory("CivSedanWheel");
475 GetInventory().CreateInInventory("CivSedanWheel");
476 }
477}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
void SpawnUniversalParts()
Определения CarScript.c:2801
CarDoorState TranslateAnimationPhaseToCarDoorState(string animation)
Определения CarScript.c:2513
CarDoorState
Определения CarScript.c:2
void SpawnAdditionalItems()
Определения CarScript.c:2839
string m_EngineStartOK
Sounds.
Определения CarScript.c:207
string m_CarDoorCloseSound
Определения CarScript.c:214
string m_EngineStartBattery
Определения CarScript.c:208
string m_EngineStartPlug
Определения CarScript.c:209
string m_EngineStartFuel
Определения CarScript.c:210
string m_CarHornShortSoundName
Определения CarScript.c:218
void FillUpCarFluids()
Определения CarScript.c:2869
string m_CarHornLongSoundName
Определения CarScript.c:219
string m_EngineStopFuel
Определения CarScript.c:211
string m_CarDoorOpenSound
Определения CarScript.c:213
override int GetCarDoorsState(string slotType)
Определения CivilianSedan.c:590
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения InventoryItem.c:496
Определения CarRearLightBase.c:2
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения CivilianSedan.c:284
void CivilianSedan()
Определения CivilianSedan.c:7
override float GetTransportCameraDistance()
Определения CivilianSedan.c:80
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения CivilianSedan.c:240
override int GetAnimInstance()
Определения CivilianSedan.c:75
override CarRearLightBase CreateRearLight()
Определения CivilianSedan.c:109
override void OnDebugSpawn()
Определения CivilianSedan.c:398
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения CivilianSedan.c:261
override CarLightBase CreateFrontLight()
Определения CivilianSedan.c:103
override bool IsVitalGlowPlug()
Определения CivilianSedan.c:353
override int GetCarDoorsState(string slotType)
Определения CivilianSedan.c:163
override bool IsVitalTruckBattery()
Определения CivilianSedan.c:348
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:5
override string GetAnimSourceFromSelection(string selection)
Определения CivilianSedan.c:327
override bool CanDisplayCargo()
Определения CivilianSedan.c:152
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения CivilianSedan.c:378
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения CivilianSedan.c:64
override void OnEngineStart()
Определения CivilianSedan.c:44
override bool CanReleaseAttachment(EntityAI attachment)
Определения CivilianSedan.c:114
override void EEInit()
Определения CivilianSedan.c:26
override bool CrewCanGetThrough(int posIdx)
Определения CivilianSedan.c:204
ref UniversalTemperatureSource m_UTSource
Определения CivilianSedan.c:3
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения CivilianSedan.c:358
bool CanManipulateSpareWheel(string slotSelectionName)
Определения CivilianSedan.c:130
override float GetPushForceCoefficientMultiplier()
Определения CivilianSedan.c:421
override void OnEngineStop()
Определения CivilianSedan.c:54
override bool CanDisplayAttachmentCategory(string category_name)
Определения CivilianSedan.c:135
override int GetSeatAnimationType(int posIdx)
Определения CivilianSedan.c:85
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения CivilianSedan.c:4
Определения CivilianSedan.c:2
override void OnDebugSpawn()
Определения CivilianSedan.c:455
Определения CivilianSedan.c:454
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения Building.c:6
Определения constants.c:659
Определения EnEntity.c:165
Определения EnMath.c:7
original Timer deletes m_params which is unwanted
Определения UniversalTemperatureSource.c:38
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native CGame GetGame()
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
Определения constants.c:806
const int STATE_RUINED
Определения constants.c:846
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.