DayZ 1.28
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_EngineStop = "Hatchback_02_engine_stop_SoundSet";
16 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
17
18 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
19 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
20
21 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
22 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
23
24 SetEnginePos("0 0.7 1.4");
25 }
26
27 override void EEInit()
28 {
29 super.EEInit();
30
31 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
32 {
34 m_UTSSettings.m_ManualUpdate = true;
36 m_UTSSettings.m_TemperatureCap = 0;
37 m_UTSSettings.m_RangeFull = 0.5;
38 m_UTSSettings.m_RangeMax = 2;
39
42 }
43 }
44
45 override void OnEngineStart()
46 {
47 super.OnEngineStart();
48
49 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
50 {
51 m_UTSource.SetDefferedActive(true, 20.0);
52 }
53 }
54
55 override void OnEngineStop()
56 {
57 super.OnEngineStop();
58
59 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
60 {
61 m_UTSource.SetDefferedActive(false, 10.0);
62 }
63 }
64
65 override void EOnPostSimulate(IEntity other, float timeSlice)
66 {
67 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
68 {
69 if (m_UTSource.IsActive())
70 {
72 }
73 }
74 }
75
76 override int GetAnimInstance()
77 {
78 return VehicleAnimInstances.GOLF;
79 }
80
81 override int GetSeatAnimationType(int posIdx)
82 {
83 switch (posIdx)
84 {
85 case 0:
86 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
87 case 1:
88 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
89 case 2:
90 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
91 case 3:
92 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
93 }
94
95 return 0;
96 }
97
98 // Override for car-specific light type
100 {
101 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02RearLight));
102 }
103
104 // Override for car-specific light type
106 {
107 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02FrontLight));
108 }
109
110 override bool CanReleaseAttachment(EntityAI attachment)
111 {
112 if (!super.CanReleaseAttachment(attachment))
113 {
114 return false;
115 }
116
117 if (EngineIsOn() || GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED)
118 {
119 string attType = attachment.GetType();
120 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
121 {
122 return false;
123 }
124 }
125
126 return true;
127 }
128
129 override protected bool CanManipulateSpareWheel(string slotSelectionName)
130 {
131 return GetCarDoorsState("Hatchback_02_Trunk") != CarDoorState.DOORS_CLOSED;
132 }
133
134 override bool CanDisplayAttachmentCategory( string category_name )
135 {
136 //super
137 if ( !super.CanDisplayAttachmentCategory( category_name ) )
138 return false;
139 //
140
141 category_name.ToLower();
142 if ( category_name.Contains("engine") )
143 {
144 if ( GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED )
145 return false;
146 }
147
148 return true;
149 }
150
151 override bool CanDisplayCargo()
152 {
153 if ( !super.CanDisplayCargo() )
154 return false;
155
156 if ( GetCarDoorsState("Hatchback_02_Trunk") == CarDoorState.DOORS_CLOSED )
157 return false;
158
159 return true;
160 }
161
162 override int GetCarDoorsState(string slotType)
163 {
164 CarDoor carDoor;
165
166 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
167 if (!carDoor)
168 {
169 return CarDoorState.DOORS_MISSING;
170 }
171
172 switch (slotType)
173 {
174 case "Hatchback_02_Door_1_1":
175 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
176
177 case "Hatchback_02_Door_2_1":
178 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
179
180 case "Hatchback_02_Door_1_2":
181 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
182
183 case "Hatchback_02_Door_2_2":
184 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
185
186 case "Hatchback_02_Hood":
187 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
188
189 case "Hatchback_02_Trunk":
190 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
191 }
192
193 return CarDoorState.DOORS_MISSING;
194 }
195
196
197 override bool CrewCanGetThrough(int posIdx)
198 {
199 switch (posIdx)
200 {
201 case 0:
202 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
203 {
204 return false;
205 }
206
207 return true;
208
209 case 1:
210 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
211 {
212 return false;
213 }
214
215 return true;
216
217 case 2:
218 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
219 {
220 return false;
221 }
222
223 return true;
224
225 case 3:
226 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
227 {
228 return false;
229 }
230
231 return true;
232 }
233
234 return false;
235 }
236
237 override string GetDoorSelectionNameFromSeatPos(int posIdx)
238 {
239 switch( posIdx )
240 {
241 case 0:
242 return "doors_driver";
243 break;
244 case 1:
245 return "doors_codriver";
246 break;
247 case 2:
248 return "doors_cargo1";
249 break;
250 case 3:
251 return "doors_cargo2";
252 break;
253 }
254
255 return super.GetDoorSelectionNameFromSeatPos(posIdx);
256 }
257
258 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
259 {
260 switch( posIdx )
261 {
262 case 0:
263 return "Hatchback_02_Door_1_1";
264 break;
265 case 1:
266 return "Hatchback_02_Door_2_1";
267 break;
268 case 2:
269 return "Hatchback_02_Door_1_2";
270 break;
271 case 3:
272 return "Hatchback_02_Door_2_2";
273 break;
274 }
275
276 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
277 }
278
279 override float OnSound(CarSoundCtrl ctrl, float oldValue)
280 {
281 switch (ctrl)
282 {
283 case CarSoundCtrl.DOORS:
284 float newValue = 0;
285 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
286 {
287 newValue += 0.25;
288 }
289
290 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
291 {
292 newValue += 0.25;
293 }
294
295 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
296 {
297 newValue += 0.25;
298 }
299
300 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
301 {
302 newValue += 0.25;
303 }
304
305 return Math.Clamp(newValue, 0, 1);
306 break;
307 }
308
309 return super.OnSound(ctrl, oldValue);
310 }
311
312 override string GetAnimSourceFromSelection( string selection )
313 {
314 switch( selection )
315 {
316 case "doors_driver":
317 return "DoorsDriver";
318 case "doors_codriver":
319 return "DoorsCoDriver";
320 case "doors_cargo1":
321 return "DoorsCargo1";
322 case "doors_cargo2":
323 return "DoorsCargo2";
324 case "doors_hood":
325 return "DoorsHood";
326 case "doors_trunk":
327 return "DoorsTrunk";
328 }
329
330 return "";
331 }
332
333
334 override bool IsVitalTruckBattery()
335 {
336 return false;
337 }
338
339 override bool IsVitalGlowPlug()
340 {
341 return false;
342 }
343
344 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
345 {
346 switch (currentSeat)
347 {
348 case 0:
349 return nextSeat == 1;
350 case 1:
351 return nextSeat == 0;
352 case 2:
353 return nextSeat == 3;
354 case 3:
355 return nextSeat == 2;
356 }
357
358 return false;
359 }
360
361 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
362 {
363 switch (pCurrentSeat)
364 {
365 case 0:
366 return pDoorsSelection == "DoorsDriver";
367 case 1:
368 return pDoorsSelection == "DoorsCoDriver";
369 case 2:
370 return pDoorsSelection == "DoorsCargo1";
371 case 3:
372 return pDoorsSelection == "DoorsCargo2";
373 }
374
375 return false;
376 }
377
378 override void OnDebugSpawn()
379 {
380 SpawnUniversalParts();
381 SpawnAdditionalItems();
382 FillUpCarFluids();
383
384 GetInventory().CreateInInventory("Hatchback_02_Wheel");
385 GetInventory().CreateInInventory("Hatchback_02_Wheel");
386 GetInventory().CreateInInventory("Hatchback_02_Wheel");
387 GetInventory().CreateInInventory("Hatchback_02_Wheel");
388
389 GetInventory().CreateInInventory("Hatchback_02_Door_1_1");
390 GetInventory().CreateInInventory("Hatchback_02_Door_1_2");
391 GetInventory().CreateInInventory("Hatchback_02_Door_2_1");
392 GetInventory().CreateInInventory("Hatchback_02_Door_2_2");
393 GetInventory().CreateInInventory("Hatchback_02_Hood");
394 GetInventory().CreateInInventory("Hatchback_02_Trunk");
395
396 //-----IN CAR CARGO
397 GetInventory().CreateInInventory("Hatchback_02_Wheel");
398 GetInventory().CreateInInventory("Hatchback_02_Wheel");
399 }
400}
401
402class Hatchback_02_Black extends Hatchback_02
403{
404 override void OnDebugSpawn()
406 SpawnUniversalParts();
407 SpawnAdditionalItems();
408 FillUpCarFluids();
410 GetInventory().CreateInInventory("Hatchback_02_Wheel");
411 GetInventory().CreateInInventory("Hatchback_02_Wheel");
412 GetInventory().CreateInInventory("Hatchback_02_Wheel");
413 GetInventory().CreateInInventory("Hatchback_02_Wheel");
414
415 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Black");
416 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Black");
417 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Black");
418 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Black");
419 GetInventory().CreateInInventory("Hatchback_02_Hood_Black");
420 GetInventory().CreateInInventory("Hatchback_02_Trunk_Black");
421
422 //-----IN CAR CARGO
423 GetInventory().CreateInInventory("Hatchback_02_Wheel");
424 GetInventory().CreateInInventory("Hatchback_02_Wheel");
425 }
426};
427
428class Hatchback_02_Blue extends Hatchback_02
430 override void OnDebugSpawn()
431 {
432 SpawnUniversalParts();
433 SpawnAdditionalItems();
434 FillUpCarFluids();
435
436 GetInventory().CreateInInventory("Hatchback_02_Wheel");
437 GetInventory().CreateInInventory("Hatchback_02_Wheel");
438 GetInventory().CreateInInventory("Hatchback_02_Wheel");
439 GetInventory().CreateInInventory("Hatchback_02_Wheel");
440
441 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Blue");
442 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Blue");
443 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Blue");
444 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Blue");
445 GetInventory().CreateInInventory("Hatchback_02_Hood_Blue");
446 GetInventory().CreateInInventory("Hatchback_02_Trunk_Blue");
448 //-----IN CAR CARGO
449 GetInventory().CreateInInventory("Hatchback_02_Wheel");
450 GetInventory().CreateInInventory("Hatchback_02_Wheel");
451 }
452};
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
CarDoorState
Определения CarScript.c:2
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:433
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:220
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:219
override int GetCarDoorsState(string slotType)
Определения Hatchback_02.c:564
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.c:2
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Hatchback_02.c:279
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:237
override int GetAnimInstance()
Определения Hatchback_02.c:76
override CarRearLightBase CreateRearLight()
Определения Hatchback_02.c:99
override void OnDebugSpawn()
Определения Hatchback_02.c:378
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:258
override CarLightBase CreateFrontLight()
Определения Hatchback_02.c:105
override bool IsVitalGlowPlug()
Определения Hatchback_02.c:339
override int GetCarDoorsState(string slotType)
Определения Hatchback_02.c:162
override bool IsVitalTruckBattery()
Определения Hatchback_02.c:334
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:5
override string GetAnimSourceFromSelection(string selection)
Определения Hatchback_02.c:312
override bool CanDisplayCargo()
Определения Hatchback_02.c:151
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Hatchback_02.c:361
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Hatchback_02.c:65
override void OnEngineStart()
Определения Hatchback_02.c:45
override bool CanReleaseAttachment(EntityAI attachment)
Определения Hatchback_02.c:110
override void EEInit()
Определения Hatchback_02.c:27
override bool CrewCanGetThrough(int posIdx)
Определения Hatchback_02.c:197
void Hatchback_02()
Определения Hatchback_02.c:7
ref UniversalTemperatureSource m_UTSource
Определения CivilianSedan.c:3
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Hatchback_02.c:344
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Hatchback_02.c:129
override void OnEngineStop()
Определения Hatchback_02.c:55
override bool CanDisplayAttachmentCategory(string category_name)
Определения Hatchback_02.c:134
override int GetSeatAnimationType(int posIdx)
Определения Hatchback_02.c:81
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения CivilianSedan.c:4
Определения CivilianSedan.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
override void OnDebugSpawn()
Определения Hatchback_02.c:430
Определения Hatchback_02.c:429
Определения 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
Определения 3_Game/constants.c:808
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.