DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
Vehicles/InheritedCars/CivilianSedan.c
См. документацию.
2{
6
8 {
9 //m_dmgContactCoef = 0.065;
10
11 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
12 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
13 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
14 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
15 m_EngineStop = "CivilianSedan_engine_stop_SoundSet";
16 m_EngineStopFuel = "CivilianSedan_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 CivilianSedanLightProfileFront()));
23
24 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "CivilianSedan_Horn_Short_SoundSet");
25 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "CivilianSedan_Horn_SoundSet");
26
27 SetEnginePos("0 0.7 1.6");
28
30 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
31 m_CarHornLongSoundName = "CivilianSedan_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.SEDAN;
112 }
113
115 {
116 return 4.5;
117 }
118
119 override int GetSeatAnimationType(int posIdx)
120 {
121 switch (posIdx)
122 {
123 case 0:
124 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
125 case 1:
126 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
127 case 2:
128 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
129 case 3:
130 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
131 }
132
133 return 0;
134 }
135
136 override bool CanReleaseAttachment( EntityAI attachment )
137 {
138 if( !super.CanReleaseAttachment( attachment ) )
139 return false;
140
141 string attType = attachment.GetType();
142
143 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
144 {
145 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
146 return false;
147 }
148
149 return true;
150 }
151
152 override protected bool CanManipulateSpareWheel(string slotSelectionName)
153 {
154 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
155 }
156
157 override bool CanDisplayAttachmentCategory(string category_name)
158 {
159 //super
160 if (!super.CanDisplayAttachmentCategory(category_name))
161 return false;
162 //
163
164 category_name.ToLower();
165 if (category_name.Contains("engine"))
166 {
167 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
168 return false;
169 }
170
171 return true;
172 }
173
174 override bool CanDisplayCargo()
175 {
176 if ( !super.CanDisplayCargo() )
177 return false;
178
179 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
180 return false;
181
182 return true;
183 }
184
185 override int GetCarDoorsState( string slotType )
186 {
187 CarDoor carDoor;
188
189 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
190 if (!carDoor)
191 {
192 return CarDoorState.DOORS_MISSING;
193 }
194
195 switch (slotType)
196 {
197 case "CivSedanDriverDoors":
198 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
199 break;
200
201 case "CivSedanCoDriverDoors":
202 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
203 break;
204
205 case "CivSedanCargo1Doors":
206 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
207 break;
208
209 case "CivSedanCargo2Doors":
210 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
211 break;
212
213 case "CivSedanTrunk":
214 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
215 break;
216
217 case "CivSedanHood":
218 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
219 break;
220 }
221
222 return CarDoorState.DOORS_MISSING;
223 }
224
225
226 override bool CrewCanGetThrough( int posIdx )
227 {
228 switch( posIdx )
229 {
230 case 0:
231 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
232 return false;
233
234 return true;
235 break;
236
237 case 1:
238 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
239 return false;
240
241 return true;
242 break;
243
244 case 2:
245 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
246 return false;
247
248 return true;
249 break;
250
251 case 3:
252 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
253 return false;
254
255 return true;
256 break;
257 }
258
259 return false;
260 }
261
262 override string GetDoorSelectionNameFromSeatPos(int posIdx)
263 {
264 switch( posIdx )
265 {
266 case 0:
267 return "doors_driver";
268 break;
269 case 1:
270 return "doors_codriver";
271 break;
272 case 2:
273 return "doors_cargo1";
274 break;
275 case 3:
276 return "doors_cargo2";
277 break;
278 }
279
280 return super.GetDoorSelectionNameFromSeatPos(posIdx);
281 }
282
283 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
284 {
285 switch( posIdx )
286 {
287 case 0:
288 return "CivSedanDriverDoors";
289 break;
290 case 1:
291 return "CivSedanCoDriverDoors";
292 break;
293 case 2:
294 return "CivSedanCargo1Doors";
295 break;
296 case 3:
297 return "CivSedanCargo2Doors";
298 break;
299 }
300
301 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
302 }
303
304 // 0 full ambient and engine sound
305 // 1 zero ambient and engine sound
306 override float OnSound(CarSoundCtrl ctrl, float oldValue)
307 {
308 switch (ctrl)
309 {
310 case CarSoundCtrl.DOORS:
311 float newValue = 0;
312 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
313 {
314 newValue += 0.25;
315 }
316
317 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
318 {
319 newValue += 0.25;
320 }
321
322 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
323 {
324 newValue += 0.25;
325 }
326
327 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
328 {
329 newValue += 0.25;
330 }
331
332 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
333 {
334 newValue -= 0.6;
335 }
336
337 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
338 {
339 newValue -= 0.6;
340 }
341
342 return Math.Clamp(newValue, 0, 1);
343 break;
344 }
345
346 return super.OnSound(ctrl, oldValue);
347 }
348
349 override string GetAnimSourceFromSelection(string selection)
350 {
351 switch (selection)
352 {
353 case "doors_driver":
354 return "DoorsDriver";
355 case "doors_codriver":
356 return "DoorsCoDriver";
357 case "doors_cargo1":
358 return "DoorsCargo1";
359 case "doors_cargo2":
360 return "DoorsCargo2";
361 case "doors_hood":
362 return "DoorsHood";
363 case "doors_trunk":
364 return "DoorsTrunk";
365 }
366
367 return "";
368 }
369
370 override bool IsVitalGlowPlug()
371 {
372 return false;
373 }
374
375 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
376 {
377 switch (currentSeat)
378 {
379 case 0:
380 return nextSeat == 1;
381
382 case 1:
383 return nextSeat == 0;
384
385 case 2:
386 return nextSeat == 3;
387
388 case 3:
389 return nextSeat == 2;
390 }
391
392 return false;
393 }
394
395 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
396 {
397 switch (pCurrentSeat)
398 {
399 case 0:
400 return pDoorsSelection == "DoorsDriver";
401
402 case 1:
403 return pDoorsSelection == "DoorsCoDriver";
404
405 case 2:
406 return pDoorsSelection == "DoorsCargo1";
407
408 case 3:
409 return pDoorsSelection == "DoorsCargo2";
410 }
411
412 return false;
413 }
414
415 override void OnDebugSpawn()
416 {
418 SpawnAdditionalItems();
419 FillUpCarFluids();
420
421 GameInventory inventory = GetInventory();
422 inventory.CreateInInventory("CivSedanWheel");
423 inventory.CreateInInventory("CivSedanWheel");
424 inventory.CreateInInventory("CivSedanWheel");
425 inventory.CreateInInventory("CivSedanWheel");
426
427 inventory.CreateInInventory("CivSedanDoors_Driver");
428 inventory.CreateInInventory("CivSedanDoors_CoDriver");
429 inventory.CreateInInventory("CivSedanDoors_BackLeft");
430 inventory.CreateInInventory("CivSedanDoors_BackRight");
431 inventory.CreateInInventory("CivSedanHood");
432 inventory.CreateInInventory("CivSedanTrunk");
433
434 //-----IN CAR CARGO
435 inventory.CreateInInventory("CivSedanWheel");
436 inventory.CreateInInventory("CivSedanWheel");
437 }
438
440 {
441 return 1.5;
442 }
443}
444
445class CivilianSedan_Wine : CivilianSedan
446{
447 override void OnDebugSpawn()
450 SpawnAdditionalItems();
451 FillUpCarFluids();
453 GameInventory inventory = GetInventory();
454 inventory.CreateInInventory("CivSedanWheel");
455 inventory.CreateInInventory("CivSedanWheel");
456 inventory.CreateInInventory("CivSedanWheel");
457 inventory.CreateInInventory("CivSedanWheel");
458
459 inventory.CreateInInventory("CivSedanDoors_Driver_Wine");
460 inventory.CreateInInventory("CivSedanDoors_CoDriver_Wine");
461 inventory.CreateInInventory("CivSedanDoors_BackLeft_Wine");
462 inventory.CreateInInventory("CivSedanDoors_BackRight_Wine");
463 inventory.CreateInInventory("CivSedanHood_Wine");
464 inventory.CreateInInventory("CivSedanTrunk_Wine");
465
466 //-----IN CAR CARGO
467 inventory.CreateInInventory("CivSedanWheel");
468 inventory.CreateInInventory("CivSedanWheel");
469 }
470}
471
473{
474 override void OnDebugSpawn()
475 {
477 SpawnAdditionalItems();
478 FillUpCarFluids();
480 GameInventory inventory = GetInventory();
481 inventory.CreateInInventory("CivSedanWheel");
482 inventory.CreateInInventory("CivSedanWheel");
483 inventory.CreateInInventory("CivSedanWheel");
484 inventory.CreateInInventory("CivSedanWheel");
485
486 inventory.CreateInInventory("CivSedanDoors_Driver_Black");
487 inventory.CreateInInventory("CivSedanDoors_CoDriver_Black");
488 inventory.CreateInInventory("CivSedanDoors_BackLeft_Black");
489 inventory.CreateInInventory("CivSedanDoors_BackRight_Black");
490 inventory.CreateInInventory("CivSedanHood_Black");
491 inventory.CreateInInventory("CivSedanTrunk_Black");
492
493 //-----IN CAR CARGO
494 inventory.CreateInInventory("CivSedanWheel");
495 inventory.CreateInInventory("CivSedanWheel");
496 }
497}
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
CivilianSedanLightProfileFront VehicleLightProfileFront CivilianSedanLightProfileRear()
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
override void OnDebugSpawn()
bool CanManipulateSpareWheel(string slotSelectionName)
override bool CanDisplayAttachmentCategory(string category_name)
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
override EntityAI GetElectricitySourceDevice()
ref UniversalTemperatureSource m_UTSource
override string GetAnimSourceFromSelection(string selection)
override bool IsVitalGlowPlug()
override float OnSound(CarSoundCtrl ctrl, float oldValue)
override void OnDebugSpawn()
override int GetCarDoorsState(string slotType)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStart()
override float GetPushForceCoefficientMultiplier()
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override bool NeedElectricitySourceDevice()
override int GetSeatAnimationType(int posIdx)
override bool CanReleaseAttachment(EntityAI attachment)
override float GetTransportCameraDistance()
override int GetAnimInstance()
override void OnEngineStop()
override void EEInit()
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override string GetElectricitySourceDeviceType()
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override bool CanDisplayCargo()
override bool CrewCanGetThrough(int posIdx)
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
Определения 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
const int STATE_RUINED
Определения 3_Game/DayZ/constants.c:909
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.