DayZ 1.27
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_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 = "Sedan_02_Horn_Short_SoundSet";
21 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
22
23 SetEnginePos("0 0.7 -1.7");
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.S120;
78 }
79
80 override int GetSeatAnimationType(int posIdx)
81 {
82 switch (posIdx)
83 {
84 case 0:
85 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
86 case 1:
87 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
88 case 2:
89 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
90 case 3:
91 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
92 }
93
94 return 0;
95 }
96
97 // Override for car-specific light type
99 {
100 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02FrontLight));
101 }
102
103 // Override for car-specific light type
105 {
106 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02RearLight));
107 }
108
109 override bool CanReleaseAttachment( EntityAI attachment )
110 {
111 if (!super.CanReleaseAttachment(attachment))
112 {
113 return false;
114 }
115
116 string attType = attachment.GetType();
117 switch (attType)
118 {
119 case "CarBattery":
120 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
121 {
122 return false;
123 }
124 break;
125
126 case "SparkPlug":
127 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
128 {
129 return false;
130 }
131 break;
132
133 case "CarRadiator":
134 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
135 {
136 return false;
137 }
138 break;
139 }
140
141 return true;
142 }
143
144 override protected bool CanManipulateSpareWheel(string slotSelectionName)
145 {
146 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
147 }
148
149 override bool CanDisplayAttachmentCategory(string category_name)
150 {
151 if ( !super.CanDisplayAttachmentCategory(category_name))
152 {
153 return false;
154 }
155
156 category_name.ToLower();
157 if (category_name.Contains("engine"))
158 {
159 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
160 {
161 return false;
162 }
163 }
164
165 if (category_name.Contains("trunk"))
166 {
167 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
168 {
169 return false;
170 }
171 }
172
173 return true;
174 }
175
176 override bool CanDisplayCargo()
177 {
178 if ( !super.CanDisplayCargo() )
179 return false;
180
181 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
182 return false;
183
184 return true;
185 }
186
187 override int GetCarDoorsState(string slotType)
188 {
189 CarDoor carDoor;
190
191 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
192 if (!carDoor)
193 {
194 return CarDoorState.DOORS_MISSING;
195 }
196
197 switch (slotType)
198 {
199 case "Sedan_02_Door_1_1":
200 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
201
202 case "Sedan_02_Door_2_1":
203 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
204
205 case "Sedan_02_Door_1_2":
206 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
207
208 case "Sedan_02_Door_2_2":
209 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
210
211 case "Sedan_02_Hood":
212 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
213
214 case "Sedan_02_Trunk":
215 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
216 }
217
218 return CarDoorState.DOORS_MISSING;
219 }
220
221
222 override bool CrewCanGetThrough( int posIdx )
223 {
224 switch( posIdx )
225 {
226 case 0:
227 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
228 return false;
229
230 return true;
231 break;
232
233 case 1:
234 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
235 return false;
236
237 return true;
238 break;
239
240 case 2:
241 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
242 return false;
243
244 return true;
245 break;
246
247 case 3:
248 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
249 return false;
250
251 return true;
252 break;
253 }
254
255 return false;
256 }
257
258 override string GetDoorSelectionNameFromSeatPos(int posIdx)
259 {
260 switch( posIdx )
261 {
262 case 0:
263 return "doors_driver";
264 break;
265 case 1:
266 return "doors_codriver";
267 break;
268 case 2:
269 return "doors_cargo1";
270 break;
271 case 3:
272 return "doors_cargo2";
273 break;
274 }
275
276 return super.GetDoorSelectionNameFromSeatPos(posIdx);
277 }
278
279 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
280 {
281 switch( posIdx )
282 {
283 case 0:
284 return "Sedan_02_Door_1_1";
285 break;
286 case 1:
287 return "Sedan_02_Door_2_1";
288 break;
289 case 2:
290 return "Sedan_02_Door_1_2";
291 break;
292 case 3:
293 return "Sedan_02_Door_2_2";
294 break;
295 }
296
297 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
298 }
299
300 override float OnSound(CarSoundCtrl ctrl, float oldValue)
301 {
302 switch ( ctrl )
303 {
304 case CarSoundCtrl.DOORS:
305 float newValue = 0;
306 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
307 {
308 newValue += 0.25;
309 }
310
311 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
312 {
313 newValue += 0.25;
314 }
315
316 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
317 {
318 newValue += 0.25;
319 }
320
321 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
322 {
323 newValue += 0.25;
324 }
325
326 return Math.Clamp(newValue, 0, 1);
327 break;
328 }
329
330 return super.OnSound(ctrl, oldValue);
331 }
332
333 override string GetAnimSourceFromSelection( string selection )
334 {
335 switch( selection )
336 {
337 case "doors_driver":
338 return "DoorsDriver";
339 case "doors_codriver":
340 return "DoorsCoDriver";
341 case "doors_cargo1":
342 return "DoorsCargo1";
343 case "doors_cargo2":
344 return "DoorsCargo2";
345 case "doors_hood":
346 return "DoorsHood";
347 case "doors_trunk":
348 return "DoorsTrunk";
349 }
350
351 return "";
352 }
353
354
355 override bool IsVitalTruckBattery()
356 {
357 return false;
358 }
359
360 override bool IsVitalGlowPlug()
361 {
362 return false;
363 }
364
365 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
366 {
367 switch (currentSeat)
368 {
369 case 0:
370 return nextSeat == 1;
371
372 case 1:
373 return nextSeat == 0;
374
375 case 2:
376 return nextSeat == 3;
377
378 case 3:
379 return nextSeat == 2;
380 }
381
382 return false;
383 }
384
385 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
386 {
387 switch (pCurrentSeat)
388 {
389 case 0:
390 return pDoorsSelection == "DoorsDriver";
391
392 case 1:
393 return pDoorsSelection == "DoorsCoDriver";
394
395 case 2:
396 return pDoorsSelection == "DoorsCargo1";
397
398 case 3:
399 return pDoorsSelection == "DoorsCargo2";
400 }
401
402 return false;
403 }
404
405 override void OnDebugSpawn()
406 {
410
411 GetInventory().CreateInInventory("Sedan_02_Wheel");
412 GetInventory().CreateInInventory("Sedan_02_Wheel");
413 GetInventory().CreateInInventory("Sedan_02_Wheel");
414 GetInventory().CreateInInventory("Sedan_02_Wheel");
415 GetInventory().CreateInInventory("Sedan_02_Wheel");
416
417 GetInventory().CreateInInventory("Sedan_02_Door_1_1");
418 GetInventory().CreateInInventory("Sedan_02_Door_1_2");
419 GetInventory().CreateInInventory("Sedan_02_Door_2_1");
420 GetInventory().CreateInInventory("Sedan_02_Door_2_2");
421 GetInventory().CreateInInventory("Sedan_02_Hood");
422 GetInventory().CreateInInventory("Sedan_02_Trunk");
423
424 //-----IN CAR CARGO
425 GetInventory().CreateInInventory("Sedan_02_Wheel");
426 GetInventory().CreateInInventory("Sedan_02_Wheel");
427 }
428}
429
430class Sedan_02_Red extends Sedan_02
431{
432 override void OnDebugSpawn()
438 GetInventory().CreateInInventory("Sedan_02_Wheel");
439 GetInventory().CreateInInventory("Sedan_02_Wheel");
440 GetInventory().CreateInInventory("Sedan_02_Wheel");
441 GetInventory().CreateInInventory("Sedan_02_Wheel");
442
443 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Red");
444 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Red");
445 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Red");
446 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Red");
447 GetInventory().CreateInInventory("Sedan_02_Hood_Red");
448 GetInventory().CreateInInventory("Sedan_02_Trunk_Red");
449
450 //-----IN CAR CARGO
451 GetInventory().CreateInInventory("Sedan_02_Wheel");
452 GetInventory().CreateInInventory("Sedan_02_Wheel");
453 }
454}
455
456class Sedan_02_Grey extends Sedan_02
457{
458 override void OnDebugSpawn()
459 {
463
464 GetInventory().CreateInInventory("Sedan_02_Wheel");
465 GetInventory().CreateInInventory("Sedan_02_Wheel");
466 GetInventory().CreateInInventory("Sedan_02_Wheel");
467 GetInventory().CreateInInventory("Sedan_02_Wheel");
468
469 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Grey");
470 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Grey");
471 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Grey");
472 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Grey");
473 GetInventory().CreateInInventory("Sedan_02_Hood_Grey");
474 GetInventory().CreateInInventory("Sedan_02_Trunk_Grey");
475
476 //-----IN CAR CARGO
477 GetInventory().CreateInInventory("Sedan_02_Wheel");
478 GetInventory().CreateInInventory("Sedan_02_Wheel");
479 }
480}
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
float m_dmgContactCoef
Определения CarScript.c:161
string m_CarDoorOpenSound
Определения CarScript.c:213
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:432
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:220
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:219
override int GetCarDoorsState(string slotType)
Определения Sedan_02.c:617
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения InventoryItem.c:496
Определения CarRearLightBase.c:2
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Sedan_02.c:300
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Sedan_02.c:258
override int GetAnimInstance()
Определения Sedan_02.c:75
override CarRearLightBase CreateRearLight()
Определения Sedan_02.c:104
override void OnDebugSpawn()
Определения Sedan_02.c:405
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Sedan_02.c:279
override CarLightBase CreateFrontLight()
Определения Sedan_02.c:98
override bool IsVitalGlowPlug()
Определения Sedan_02.c:360
override int GetCarDoorsState(string slotType)
Определения Sedan_02.c:187
override bool IsVitalTruckBattery()
Определения Sedan_02.c:355
void Sedan_02()
Определения Sedan_02.c:7
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:5
override string GetAnimSourceFromSelection(string selection)
Определения Sedan_02.c:333
override bool CanDisplayCargo()
Определения Sedan_02.c:176
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Sedan_02.c:385
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Sedan_02.c:64
override void OnEngineStart()
Определения Sedan_02.c:44
override bool CanReleaseAttachment(EntityAI attachment)
Определения Sedan_02.c:109
override void EEInit()
Определения Sedan_02.c:26
override bool CrewCanGetThrough(int posIdx)
Определения Sedan_02.c:222
ref UniversalTemperatureSource m_UTSource
Определения CivilianSedan.c:3
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Sedan_02.c:365
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Sedan_02.c:144
override void OnEngineStop()
Определения Sedan_02.c:54
override bool CanDisplayAttachmentCategory(string category_name)
Определения Sedan_02.c:149
override int GetSeatAnimationType(int posIdx)
Определения Sedan_02.c:80
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения CivilianSedan.c:4
Определения CivilianSedan.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения Building.c:6
Определения constants.c:659
Определения EnEntity.c:165
Определения EnMath.c:7
override void OnDebugSpawn()
Определения Sedan_02.c:458
Определения Sedan_02.c:457
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
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.