DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
Offroad_02.c
См. документацию.
1class Offroad_02 extends CarScript
2{
3 protected ref UniversalTemperatureSource m_UTSource;
4 protected ref UniversalTemperatureSourceSettings m_UTSSettings;
6
7 void Offroad_02()
8 {
9 //m_dmgContactCoef = 0.0365;
10
11 m_EngineStartOK = "Offroad_02_engine_start_SoundSet";
12 m_EngineStartBattery = "Offroad_02_engine_failed_start_battery_SoundSet";
13 m_EngineStartPlug = "Offroad_02_engine_failed_start_sparkplugs_SoundSet";
14 m_EngineStartFuel = "Offroad_02_engine_failed_start_fuel_SoundSet";
15 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
16
17 m_CarDoorOpenSound = "offroad_02_door_open_SoundSet";
18 m_CarDoorCloseSound = "offroad_02_door_close_SoundSet";
19
20 m_CarHornShortSoundName = "Offroad_02_Horn_Short_SoundSet";
21 m_CarHornLongSoundName = "Offroad_02_Horn_SoundSet";
22
23 SetEnginePos("0 0.7 1.7");
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.HMMWV;
78 }
79
81 {
82 return 5.1;
83 }
84
85 override int GetSeatAnimationType(int posIdx)
86 {
87 switch (posIdx)
88 {
89 case 0:
90 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
91 case 1:
92 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
93 case 2:
94 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
95 case 3:
96 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
97 }
98
99 return 0;
100 }
101
102 // Override for car-specific light type
104 {
105 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Offroad_02FrontLight));
106 }
107
108 // Override for car-specific light type
110 {
111 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Offroad_02RearLight));
112 }
113
114 override bool CanReleaseAttachment( EntityAI attachment )
115 {
116 if (!super.CanReleaseAttachment(attachment))
117 {
118 return false;
119 }
120
121 string attType = attachment.GetType();
122 switch (attType)
123 {
124 case "CarBattery":
125 if (GetCarDoorsState("Offroad_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
126 {
127 return false;
128 }
129 break;
130
131 case "GlowPlug":
132 if (GetCarDoorsState("Offroad_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
133 {
134 return false;
135 }
136 break;
137 }
138
139 return true;
140 }
141
142 override protected bool CanManipulateSpareWheel(string slotSelectionName)
143 {
144 return GetCarDoorsState("Offroad_02_Trunk") != CarDoorState.DOORS_CLOSED;
145 }
146
147 override bool CanDisplayAttachmentCategory(string category_name)
148 {
149 if ( !super.CanDisplayAttachmentCategory(category_name))
150 {
151 return false;
152 }
153
154 category_name.ToLower();
155 if (category_name.Contains("engine"))
156 {
157 if (GetCarDoorsState("Offroad_02_Hood") == CarDoorState.DOORS_CLOSED)
158 {
159 return false;
160 }
161 }
162
163 return true;
164 }
165
166 override bool CanDisplayCargo()
167 {
168 if ( !super.CanDisplayCargo() )
169 return false;
170
171 if ( GetCarDoorsState("Offroad_02_Trunk") == CarDoorState.DOORS_CLOSED )
172 return false;
173
174 return true;
175 }
176
177 override int GetCarDoorsState(string slotType)
178 {
179 CarDoor carDoor;
180
181 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
182 if (!carDoor)
183 {
184 return CarDoorState.DOORS_MISSING;
185 }
186
187 switch (slotType)
188 {
189 case "Offroad_02_Door_1_1":
190 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
191
192 case "Offroad_02_Door_2_1":
193 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
194
195 case "Offroad_02_Door_1_2":
196 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
197
198 case "Offroad_02_Door_2_2":
199 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
200
201 case "Offroad_02_Hood":
202 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
203
204 case "Offroad_02_Trunk":
205 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
206 }
207
208 return CarDoorState.DOORS_MISSING;
209 }
210
211
212 override bool CrewCanGetThrough( int posIdx )
213 {
214 switch( posIdx )
215 {
216 case 0:
217 if ( GetCarDoorsState("Offroad_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
218 return false;
219
220 return true;
221 break;
222
223 case 1:
224 if ( GetCarDoorsState("Offroad_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
225 return false;
226
227 return true;
228 break;
229
230 case 2:
231 if ( GetCarDoorsState("Offroad_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
232 return false;
233
234 return true;
235 break;
236
237 case 3:
238 if ( GetCarDoorsState("Offroad_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
239 return false;
240
241 return true;
242 break;
243 }
244
245 return false;
246 }
247
248 override string GetDoorSelectionNameFromSeatPos(int posIdx)
249 {
250 switch( posIdx )
251 {
252 case 0:
253 return "doors_driver";
254 break;
255 case 1:
256 return "doors_codriver";
257 break;
258 case 2:
259 return "doors_cargo1";
260 break;
261 case 3:
262 return "doors_cargo2";
263 break;
264 }
265
266 return super.GetDoorSelectionNameFromSeatPos(posIdx);
267 }
268
269 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
270 {
271 switch (posIdx)
272 {
273 case 0:
274 return "Offroad_02_Door_1_1";
275 case 1:
276 return "Offroad_02_Door_2_1";
277 case 2:
278 return "Offroad_02_Door_1_2";
279 case 3:
280 return "Offroad_02_Door_2_2";
281 }
282
283 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
284 }
285
286 override float OnSound(CarSoundCtrl ctrl, float oldValue)
287 {
288 switch ( ctrl )
289 {
290 case CarSoundCtrl.DOORS:
291 float newValue = 0;
292 if (GetCarDoorsState("Offroad_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
293 {
294 newValue += 0.25;
295 }
296
297 if (GetCarDoorsState("Offroad_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
298 {
299 newValue += 0.25;
300 }
301
302 if (GetCarDoorsState("Offroad_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
303 {
304 newValue += 0.25;
305 }
306
307 if (GetCarDoorsState("Offroad_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
308 {
309 newValue += 0.25;
310 }
311
312 return Math.Clamp(newValue, 0, 1);
313 break;
314 }
315
316 return super.OnSound(ctrl, oldValue);
317 }
318
319 override string GetAnimSourceFromSelection(string selection)
320 {
321 switch (selection)
322 {
323 case "doors_driver":
324 return "DoorsDriver";
325 case "doors_codriver":
326 return "DoorsCoDriver";
327 case "doors_cargo1":
328 return "DoorsCargo1";
329 case "doors_cargo2":
330 return "DoorsCargo2";
331 case "doors_hood":
332 return "DoorsHood";
333 case "doors_trunk":
334 return "DoorsTrunk";
335 }
336
337 return "";
338 }
339
340 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
341 {
342 switch (currentSeat)
343 {
344 case 0:
345 return nextSeat == 1;
346 case 1:
347 return nextSeat == 0;
348 case 2:
349 return nextSeat == 3;
350 case 3:
351 return nextSeat == 2;
352 }
353
354 return false;
355 }
356
357 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
358 {
359 switch (pCurrentSeat)
360 {
361 case 0:
362 return pDoorsSelection == "DoorsDriver";
363 case 1:
364 return pDoorsSelection == "DoorsCoDriver";
365 case 2:
366 return pDoorsSelection == "DoorsCargo1";
367 case 3:
368 return pDoorsSelection == "DoorsCargo2";
369 }
370
371 return false;
372 }
373
374 override bool IsVitalTruckBattery()
375 {
376 return false;
377 }
378
379 override bool IsVitalSparkPlug()
380 {
381 return false;
382 }
383
384 override bool IsVitalRadiator()
385 {
386 return false;
387 }
388
389 override void OnDebugSpawn()
390 {
394
395 GetInventory().CreateInInventory("Offroad_02_Wheel");
396 GetInventory().CreateInInventory("Offroad_02_Wheel");
397 GetInventory().CreateInInventory("Offroad_02_Wheel");
398 GetInventory().CreateInInventory("Offroad_02_Wheel");
399
400 GetInventory().CreateInInventory("Offroad_02_Door_1_1");
401 GetInventory().CreateInInventory("Offroad_02_Door_1_2");
402 GetInventory().CreateInInventory("Offroad_02_Door_2_1");
403 GetInventory().CreateInInventory("Offroad_02_Door_2_2");
404 GetInventory().CreateInInventory("Offroad_02_Hood");
405 GetInventory().CreateInInventory("Offroad_02_Trunk");
406
407 //-----IN CAR CARGO
408 GetInventory().CreateInInventory("Offroad_02_Wheel");
409 GetInventory().CreateInInventory("Offroad_02_Wheel");
410 }
411}
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
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения InventoryItem.c:496
Определения CarRearLightBase.c:2
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Offroad_02.c:286
override float GetTransportCameraDistance()
Определения Offroad_02.c:80
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Offroad_02.c:248
override int GetAnimInstance()
Определения Offroad_02.c:75
override CarRearLightBase CreateRearLight()
Определения Offroad_02.c:109
override void OnDebugSpawn()
Определения Offroad_02.c:389
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Offroad_02.c:269
override CarLightBase CreateFrontLight()
Определения Offroad_02.c:103
override int GetCarDoorsState(string slotType)
Определения CivilianSedan.c:163
override bool IsVitalTruckBattery()
Определения Offroad_02.c:374
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:5
override string GetAnimSourceFromSelection(string selection)
Определения Offroad_02.c:319
override bool CanDisplayCargo()
Определения Offroad_02.c:166
void Offroad_02()
Определения Offroad_02.c:7
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Offroad_02.c:357
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Offroad_02.c:64
override void OnEngineStart()
Определения Offroad_02.c:44
override bool CanReleaseAttachment(EntityAI attachment)
Определения Offroad_02.c:114
override void EEInit()
Определения Offroad_02.c:26
override bool IsVitalRadiator()
Определения Offroad_02.c:384
override bool CrewCanGetThrough(int posIdx)
Определения Offroad_02.c:212
ref UniversalTemperatureSource m_UTSource
Определения CivilianSedan.c:3
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Offroad_02.c:340
override bool IsVitalSparkPlug()
Определения Offroad_02.c:379
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Offroad_02.c:142
override void OnEngineStop()
Определения Offroad_02.c:54
override bool CanDisplayAttachmentCategory(string category_name)
Определения Offroad_02.c:147
override int GetSeatAnimationType(int posIdx)
Определения Offroad_02.c:85
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
Определения 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.