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