DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
Hatchback_02.c
См. документацию.
2{
6
8 {
9 //m_dmgContactCoef = 0.070;
10
11 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
12 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
13 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
14 m_EngineStartFuel = "Hatchback_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 = "Hatchback_02_Horn_Short_SoundSet";
21 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
22
23 SetEnginePos("0 0.7 1.4");
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.GOLF;
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 CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02RearLight));
101 }
102
103 // Override for car-specific light type
105 {
106 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02FrontLight));
107 }
108
109 override bool CanReleaseAttachment(EntityAI attachment)
110 {
111 if (!super.CanReleaseAttachment(attachment))
112 {
113 return false;
114 }
115
116 if (EngineIsOn() || GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED)
117 {
118 string attType = attachment.GetType();
119 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
120 {
121 return false;
122 }
123 }
124
125 return true;
126 }
127
128 override protected bool CanManipulateSpareWheel(string slotSelectionName)
129 {
130 return GetCarDoorsState("Hatchback_02_Trunk") != CarDoorState.DOORS_CLOSED;
131 }
132
133 override bool CanDisplayAttachmentCategory( string category_name )
134 {
135 //super
136 if ( !super.CanDisplayAttachmentCategory( category_name ) )
137 return false;
138 //
139
140 category_name.ToLower();
141 if ( category_name.Contains("engine") )
142 {
143 if ( GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED )
144 return false;
145 }
146
147 return true;
148 }
149
150 override bool CanDisplayCargo()
151 {
152 if ( !super.CanDisplayCargo() )
153 return false;
154
155 if ( GetCarDoorsState("Hatchback_02_Trunk") == CarDoorState.DOORS_CLOSED )
156 return false;
157
158 return true;
159 }
160
161 override int GetCarDoorsState(string slotType)
162 {
163 CarDoor carDoor;
164
165 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
166 if (!carDoor)
167 {
168 return CarDoorState.DOORS_MISSING;
169 }
170
171 switch (slotType)
172 {
173 case "Hatchback_02_Door_1_1":
174 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
175
176 case "Hatchback_02_Door_2_1":
177 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
178
179 case "Hatchback_02_Door_1_2":
180 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
181
182 case "Hatchback_02_Door_2_2":
183 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
184
185 case "Hatchback_02_Hood":
186 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
187
188 case "Hatchback_02_Trunk":
189 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
190 }
191
192 return CarDoorState.DOORS_MISSING;
193 }
194
195
196 override bool CrewCanGetThrough(int posIdx)
197 {
198 switch (posIdx)
199 {
200 case 0:
201 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
202 {
203 return false;
204 }
205
206 return true;
207
208 case 1:
209 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
210 {
211 return false;
212 }
213
214 return true;
215
216 case 2:
217 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
218 {
219 return false;
220 }
221
222 return true;
223
224 case 3:
225 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
226 {
227 return false;
228 }
229
230 return true;
231 }
232
233 return false;
234 }
235
236 override string GetDoorSelectionNameFromSeatPos(int posIdx)
237 {
238 switch( posIdx )
239 {
240 case 0:
241 return "doors_driver";
242 break;
243 case 1:
244 return "doors_codriver";
245 break;
246 case 2:
247 return "doors_cargo1";
248 break;
249 case 3:
250 return "doors_cargo2";
251 break;
252 }
253
254 return super.GetDoorSelectionNameFromSeatPos(posIdx);
255 }
256
257 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
258 {
259 switch( posIdx )
260 {
261 case 0:
262 return "Hatchback_02_Door_1_1";
263 break;
264 case 1:
265 return "Hatchback_02_Door_2_1";
266 break;
267 case 2:
268 return "Hatchback_02_Door_1_2";
269 break;
270 case 3:
271 return "Hatchback_02_Door_2_2";
272 break;
273 }
274
275 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
276 }
277
278 override float OnSound(CarSoundCtrl ctrl, float oldValue)
279 {
280 switch (ctrl)
281 {
282 case CarSoundCtrl.DOORS:
283 float newValue = 0;
284 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
285 {
286 newValue += 0.25;
287 }
288
289 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
290 {
291 newValue += 0.25;
292 }
293
294 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
295 {
296 newValue += 0.25;
297 }
298
299 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
300 {
301 newValue += 0.25;
302 }
303
304 return Math.Clamp(newValue, 0, 1);
305 break;
306 }
307
308 return super.OnSound(ctrl, oldValue);
309 }
310
311 override string GetAnimSourceFromSelection( string selection )
312 {
313 switch( selection )
314 {
315 case "doors_driver":
316 return "DoorsDriver";
317 case "doors_codriver":
318 return "DoorsCoDriver";
319 case "doors_cargo1":
320 return "DoorsCargo1";
321 case "doors_cargo2":
322 return "DoorsCargo2";
323 case "doors_hood":
324 return "DoorsHood";
325 case "doors_trunk":
326 return "DoorsTrunk";
327 }
328
329 return "";
330 }
331
332
333 override bool IsVitalTruckBattery()
334 {
335 return false;
336 }
337
338 override bool IsVitalGlowPlug()
339 {
340 return false;
341 }
342
343 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
344 {
345 switch (currentSeat)
346 {
347 case 0:
348 return nextSeat == 1;
349 case 1:
350 return nextSeat == 0;
351 case 2:
352 return nextSeat == 3;
353 case 3:
354 return nextSeat == 2;
355 }
356
357 return false;
358 }
359
360 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
361 {
362 switch (pCurrentSeat)
363 {
364 case 0:
365 return pDoorsSelection == "DoorsDriver";
366 case 1:
367 return pDoorsSelection == "DoorsCoDriver";
368 case 2:
369 return pDoorsSelection == "DoorsCargo1";
370 case 3:
371 return pDoorsSelection == "DoorsCargo2";
372 }
373
374 return false;
375 }
376
377 override void OnDebugSpawn()
378 {
382
383 GetInventory().CreateInInventory("Hatchback_02_Wheel");
384 GetInventory().CreateInInventory("Hatchback_02_Wheel");
385 GetInventory().CreateInInventory("Hatchback_02_Wheel");
386 GetInventory().CreateInInventory("Hatchback_02_Wheel");
387
388 GetInventory().CreateInInventory("Hatchback_02_Door_1_1");
389 GetInventory().CreateInInventory("Hatchback_02_Door_1_2");
390 GetInventory().CreateInInventory("Hatchback_02_Door_2_1");
391 GetInventory().CreateInInventory("Hatchback_02_Door_2_2");
392 GetInventory().CreateInInventory("Hatchback_02_Hood");
393 GetInventory().CreateInInventory("Hatchback_02_Trunk");
394
395 //-----IN CAR CARGO
396 GetInventory().CreateInInventory("Hatchback_02_Wheel");
397 GetInventory().CreateInInventory("Hatchback_02_Wheel");
398 }
399}
400
401class Hatchback_02_Black extends Hatchback_02
402{
403 override void OnDebugSpawn()
409 GetInventory().CreateInInventory("Hatchback_02_Wheel");
410 GetInventory().CreateInInventory("Hatchback_02_Wheel");
411 GetInventory().CreateInInventory("Hatchback_02_Wheel");
412 GetInventory().CreateInInventory("Hatchback_02_Wheel");
413
414 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Black");
415 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Black");
416 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Black");
417 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Black");
418 GetInventory().CreateInInventory("Hatchback_02_Hood_Black");
419 GetInventory().CreateInInventory("Hatchback_02_Trunk_Black");
420
421 //-----IN CAR CARGO
422 GetInventory().CreateInInventory("Hatchback_02_Wheel");
423 GetInventory().CreateInInventory("Hatchback_02_Wheel");
424 }
425};
426
427class Hatchback_02_Blue extends Hatchback_02
428{
429 override void OnDebugSpawn()
430 {
434
435 GetInventory().CreateInInventory("Hatchback_02_Wheel");
436 GetInventory().CreateInInventory("Hatchback_02_Wheel");
437 GetInventory().CreateInInventory("Hatchback_02_Wheel");
438 GetInventory().CreateInInventory("Hatchback_02_Wheel");
439
440 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Blue");
441 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Blue");
442 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Blue");
443 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Blue");
444 GetInventory().CreateInInventory("Hatchback_02_Hood_Blue");
445 GetInventory().CreateInInventory("Hatchback_02_Trunk_Blue");
446
447 //-----IN CAR CARGO
448 GetInventory().CreateInInventory("Hatchback_02_Wheel");
449 GetInventory().CreateInInventory("Hatchback_02_Wheel");
450 }
451};
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
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)
Определения Hatchback_02.c:562
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения InventoryItem.c:496
Определения CarRearLightBase.c:2
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Hatchback_02.c:278
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:236
override int GetAnimInstance()
Определения Hatchback_02.c:75
override CarRearLightBase CreateRearLight()
Определения Hatchback_02.c:98
override void OnDebugSpawn()
Определения Hatchback_02.c:377
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:257
override CarLightBase CreateFrontLight()
Определения Hatchback_02.c:104
override bool IsVitalGlowPlug()
Определения Hatchback_02.c:338
override int GetCarDoorsState(string slotType)
Определения Hatchback_02.c:161
override bool IsVitalTruckBattery()
Определения Hatchback_02.c:333
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:5
override string GetAnimSourceFromSelection(string selection)
Определения Hatchback_02.c:311
override bool CanDisplayCargo()
Определения Hatchback_02.c:150
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Hatchback_02.c:360
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Hatchback_02.c:64
override void OnEngineStart()
Определения Hatchback_02.c:44
override bool CanReleaseAttachment(EntityAI attachment)
Определения Hatchback_02.c:109
override void EEInit()
Определения Hatchback_02.c:26
override bool CrewCanGetThrough(int posIdx)
Определения Hatchback_02.c:196
void Hatchback_02()
Определения Hatchback_02.c:7
ref UniversalTemperatureSource m_UTSource
Определения CivilianSedan.c:3
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Hatchback_02.c:343
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Hatchback_02.c:128
override void OnEngineStop()
Определения Hatchback_02.c:54
override bool CanDisplayAttachmentCategory(string category_name)
Определения Hatchback_02.c:133
override int GetSeatAnimationType(int posIdx)
Определения Hatchback_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
override void OnDebugSpawn()
Определения Hatchback_02.c:429
Определения Hatchback_02.c:428
Определения 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
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.