DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
Vehicles/InheritedCars/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_LightsComponent.RegisterLight("Front", new VehicleLightData(new Hatchback_02LightProfileFront()));
22 m_LightsComponent.RegisterLight("Rear", new VehicleLightData(new Hatchback_02LightProfileRear()));
23
24 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "Hatchback_02_Horn_Short_SoundSet");
25 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "Hatchback_02_Horn_SoundSet");
26
27 SetEnginePos("0 0.7 1.4");
28
30 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
31 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
32 }
33
35 {
36 m_UTSource = null;
37 m_UTSSettings = null;
38 m_UTSLEngine = null;
39 }
40
41 override void EEInit()
42 {
43 super.EEInit();
44
45 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
46 {
48 m_UTSSettings.m_ManualUpdate = true;
50 m_UTSSettings.m_TemperatureCap = 0;
51 m_UTSSettings.m_RangeFull = 0.5;
52 m_UTSSettings.m_RangeMax = 2;
53
56 }
57 }
58
60 {
61 return true;
62 }
63
65 {
66 super.GetElectricitySourceDevice();
67
68 return GetInventory().FindAttachment(CarBattery.SLOT_ID);
69 }
70
72 {
73 return "CarBattery";
74 }
75
76 override void OnEngineStart()
77 {
78 super.OnEngineStart();
79
80 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
81 {
82 if (m_UTSource)
83 m_UTSource.SetDefferedActive(true, 20.0);
84 }
85 }
86
87 override void OnEngineStop()
88 {
89 super.OnEngineStop();
90
91 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
92 {
93 if (m_UTSource)
94 m_UTSource.SetDefferedActive(false, 10.0);
95 }
96 }
97
98 override void EOnPostSimulate(IEntity other, float timeSlice)
99 {
100 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
101 {
102 if (m_UTSource && m_UTSource.IsActive())
103 {
105 }
106 }
107 }
108
109 override int GetAnimInstance()
110 {
111 return VehicleAnimInstances.GOLF;
112 }
113
114 override int GetSeatAnimationType(int posIdx)
115 {
116 switch (posIdx)
117 {
118 case 0:
119 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
120 case 1:
121 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
122 case 2:
123 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
124 case 3:
125 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
126 }
127
128 return 0;
129 }
130
131 override bool CanReleaseAttachment(EntityAI attachment)
132 {
133 if (!super.CanReleaseAttachment(attachment))
134 {
135 return false;
136 }
137
138 if (EngineIsOn() || GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED)
139 {
140 string attType = attachment.GetType();
141 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
142 {
143 return false;
144 }
145 }
146
147 return true;
148 }
149
150 override protected bool CanManipulateSpareWheel(string slotSelectionName)
151 {
152 return GetCarDoorsState("Hatchback_02_Trunk") != CarDoorState.DOORS_CLOSED;
153 }
154
155 override bool CanDisplayAttachmentCategory( string category_name )
156 {
157 //super
158 if ( !super.CanDisplayAttachmentCategory( category_name ) )
159 return false;
160 //
161
162 category_name.ToLower();
163 if ( category_name.Contains("engine") )
164 {
165 if ( GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED )
166 return false;
167 }
168
169 return true;
170 }
171
172 override bool CanDisplayCargo()
173 {
174 if ( !super.CanDisplayCargo() )
175 return false;
176
177 if ( GetCarDoorsState("Hatchback_02_Trunk") == CarDoorState.DOORS_CLOSED )
178 return false;
179
180 return true;
181 }
182
183 override int GetCarDoorsState(string slotType)
184 {
185 CarDoor carDoor;
186
187 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
188 if (!carDoor)
189 {
190 return CarDoorState.DOORS_MISSING;
191 }
192
193 switch (slotType)
194 {
195 case "Hatchback_02_Door_1_1":
196 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
197
198 case "Hatchback_02_Door_2_1":
199 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
200
201 case "Hatchback_02_Door_1_2":
202 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
203
204 case "Hatchback_02_Door_2_2":
205 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
206
207 case "Hatchback_02_Hood":
208 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
209
210 case "Hatchback_02_Trunk":
211 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
212 }
213
214 return CarDoorState.DOORS_MISSING;
215 }
216
217
218 override bool CrewCanGetThrough(int posIdx)
219 {
220 switch (posIdx)
221 {
222 case 0:
223 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
224 {
225 return false;
226 }
227
228 return true;
229
230 case 1:
231 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
232 {
233 return false;
234 }
235
236 return true;
237
238 case 2:
239 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
240 {
241 return false;
242 }
243
244 return true;
245
246 case 3:
247 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
248 {
249 return false;
250 }
251
252 return true;
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 "Hatchback_02_Door_1_1";
285 break;
286 case 1:
287 return "Hatchback_02_Door_2_1";
288 break;
289 case 2:
290 return "Hatchback_02_Door_1_2";
291 break;
292 case 3:
293 return "Hatchback_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("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
307 {
308 newValue += 0.25;
309 }
310
311 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
312 {
313 newValue += 0.25;
314 }
315
316 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
317 {
318 newValue += 0.25;
319 }
320
321 if (GetCarDoorsState("Hatchback_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 override bool IsVitalGlowPlug()
355 {
356 return false;
357 }
358
359 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
360 {
361 switch (currentSeat)
362 {
363 case 0:
364 return nextSeat == 1;
365 case 1:
366 return nextSeat == 0;
367 case 2:
368 return nextSeat == 3;
369 case 3:
370 return nextSeat == 2;
371 }
372
373 return false;
374 }
375
376 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
377 {
378 switch (pCurrentSeat)
379 {
380 case 0:
381 return pDoorsSelection == "DoorsDriver";
382 case 1:
383 return pDoorsSelection == "DoorsCoDriver";
384 case 2:
385 return pDoorsSelection == "DoorsCargo1";
386 case 3:
387 return pDoorsSelection == "DoorsCargo2";
388 }
389
390 return false;
391 }
392
393 override void OnDebugSpawn()
394 {
396 SpawnAdditionalItems();
397 FillUpCarFluids();
398
399 GameInventory inventory = GetInventory();
400 inventory.CreateInInventory("Hatchback_02_Wheel");
401 inventory.CreateInInventory("Hatchback_02_Wheel");
402 inventory.CreateInInventory("Hatchback_02_Wheel");
403 inventory.CreateInInventory("Hatchback_02_Wheel");
404
405 inventory.CreateInInventory("Hatchback_02_Door_1_1");
406 inventory.CreateInInventory("Hatchback_02_Door_1_2");
407 inventory.CreateInInventory("Hatchback_02_Door_2_1");
408 inventory.CreateInInventory("Hatchback_02_Door_2_2");
409 inventory.CreateInInventory("Hatchback_02_Hood");
410 inventory.CreateInInventory("Hatchback_02_Trunk");
411
412 //-----IN CAR CARGO
413 inventory.CreateInInventory("Hatchback_02_Wheel");
414 inventory.CreateInInventory("Hatchback_02_Wheel");
415 }
416}
417
418class Hatchback_02_Black : Hatchback_02
419{
420 override void OnDebugSpawn()
423 SpawnAdditionalItems();
424 FillUpCarFluids();
426 GameInventory inventory = GetInventory();
427 inventory.CreateInInventory("Hatchback_02_Wheel");
428 inventory.CreateInInventory("Hatchback_02_Wheel");
429 inventory.CreateInInventory("Hatchback_02_Wheel");
430 inventory.CreateInInventory("Hatchback_02_Wheel");
431
432 inventory.CreateInInventory("Hatchback_02_Door_1_1_Black");
433 inventory.CreateInInventory("Hatchback_02_Door_1_2_Black");
434 inventory.CreateInInventory("Hatchback_02_Door_2_1_Black");
435 inventory.CreateInInventory("Hatchback_02_Door_2_2_Black");
436 inventory.CreateInInventory("Hatchback_02_Hood_Black");
437 inventory.CreateInInventory("Hatchback_02_Trunk_Black");
438
439 //-----IN CAR CARGO
440 inventory.CreateInInventory("Hatchback_02_Wheel");
441 inventory.CreateInInventory("Hatchback_02_Wheel");
442 }
443}
444
446{
447 override void OnDebugSpawn()
448 {
450 SpawnAdditionalItems();
451 FillUpCarFluids();
453 GameInventory inventory = GetInventory();
454 inventory.CreateInInventory("Hatchback_02_Wheel");
455 inventory.CreateInInventory("Hatchback_02_Wheel");
456 inventory.CreateInInventory("Hatchback_02_Wheel");
457 inventory.CreateInInventory("Hatchback_02_Wheel");
458
459 inventory.CreateInInventory("Hatchback_02_Door_1_1_Blue");
460 inventory.CreateInInventory("Hatchback_02_Door_1_2_Blue");
461 inventory.CreateInInventory("Hatchback_02_Door_2_1_Blue");
462 inventory.CreateInInventory("Hatchback_02_Door_2_2_Blue");
463 inventory.CreateInInventory("Hatchback_02_Hood_Blue");
464 inventory.CreateInInventory("Hatchback_02_Trunk_Blue");
465
466 //-----IN CAR CARGO
467 inventory.CreateInInventory("Hatchback_02_Wheel");
468 inventory.CreateInInventory("Hatchback_02_Wheel");
469 }
470}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
CarDoorState
Определения CarScript.c:2
DayZGame g_Game
Определения DayZGame.c:4074
proto native void SetEnginePos(vector pos)
Override the position of engine (model space)
proto native bool EngineIsOn()
Returns true when engine is running, false otherwise.
void SpawnUniversalParts()
Определения MotorbikeScript.c:1425
string m_EngineStartOK
Определения MotorbikeScript.c:89
string m_EngineStartBattery
Определения MotorbikeScript.c:90
string m_EngineStartPlug
Определения MotorbikeScript.c:91
string m_EngineStartFuel
Определения MotorbikeScript.c:92
ref VehicleHornComponent m_HornComponent
Определения MotorbikeScript.c:75
string m_EngineStopFuel
Определения MotorbikeScript.c:94
ref VehicleLightsComponent m_LightsComponent
Определения MotorbikeScript.c:74
string m_EngineStop
Определения MotorbikeScript.c:93
Hatchback_02LightProfileFront VehicleLightProfileFront Hatchback_02LightProfileRear()
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
void VehicleLightData(VehicleLightProfileBase profile)
Определения VehicleLightsComponent.c:21
static int SLOT_ID
Определения CarBattery.c:3
Определения CarBattery.c:2
Определения Truck_02.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()
override bool CanDisplayAttachmentCategory(string category_name)
override void EOnPostSimulate(IEntity other, float timeSlice)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
override int GetCarDoorsState(string slotType)
override void OnDebugSpawn()
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override void OnEngineStart()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override void OnEngineStop()
ref UniversalTemperatureSource m_UTSource
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override bool CrewCanGetThrough(int posIdx)
override bool CanDisplayCargo()
override bool NeedElectricitySourceDevice()
override bool CanReleaseAttachment(EntityAI attachment)
override bool IsVitalGlowPlug()
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
override int GetAnimInstance()
override int GetSeatAnimationType(int posIdx)
override void EEInit()
override string GetElectricitySourceDeviceType()
override string GetAnimSourceFromSelection(string selection)
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
ref UniversalTemperatureSourceSettings m_UTSSettings
override EntityAI GetElectricitySourceDevice()
Определения EnEntity.c:165
Определения EnMath.c:7
original Timer deletes m_params which is unwanted
Определения UniversalTemperatureSource.c:39
const int LONG
Определения VehicleHornComponent.c:5
const int SHORT
Определения VehicleHornComponent.c:4
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:856
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.