DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
Truck_01_Base.c
См. документацию.
1class Truck_01_Base extends CarScript
2{
3 protected ref UniversalTemperatureSource m_UTSource;
4 protected ref UniversalTemperatureSourceSettings m_UTSSettings;
6
8 {
9 //m_dmgContactCoef = 0.018;
10 m_enginePtcPos = "0 1.346 2.205";
11
12 m_EngineStartOK = "Truck_01_engine_start_SoundSet";
13 m_EngineStartBattery = "Truck_01_engine_failed_start_battery_SoundSet";
14 m_EngineStartPlug = "Truck_01_engine_failed_start_sparkplugs_SoundSet";
15 m_EngineStartFuel = "Truck_01_engine_failed_start_fuel_SoundSet";
16 m_EngineStopFuel = "Truck_01_engine_stop_fuel_SoundSet";
17
18 m_CarDoorOpenSound = "Truck_01_door_open_SoundSet";
19 m_CarDoorCloseSound = "Truck_01_door_close_SoundSet";
20
21 m_CarHornShortSoundName = "Truck_01_Horn_Short_SoundSet";
22 m_CarHornLongSoundName = "Truck_01_Horn_SoundSet";
23
24 SetEnginePos("0 1.4 2.25");
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
77 {
78 return 6.5;
79 }
80
82 {
83 return "0 3.2 0";
84 }
85
86 override int GetAnimInstance()
87 {
88 return VehicleAnimInstances.V3S;
89 }
90
91 override int GetSeatAnimationType(int posIdx)
92 {
93 switch (posIdx)
94 {
95 case 0:
96 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
97 case 1:
98 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
99 }
100
101 return 0;
102 }
103
104 // Override for car-specific light type
106 {
107 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Truck_01FrontLight));
108 }
109
110 // Override for car-specific light type
112 {
113 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Truck_01RearLight));
114 }
115
116 override bool CanReleaseAttachment(EntityAI attachment)
117 {
118 if (!super.CanReleaseAttachment(attachment))
119 {
120 return false;
121 }
122
123 if (EngineIsOn() && attachment.GetType() == "TruckBattery")
124 {
125 return false;
126 }
127
128 return true;
129 }
130
131 override protected bool CanManipulateSpareWheel(string slotSelectionName)
132 {
133 if (slotSelectionName == "wheel_spare_1")
134 {
135 return GetAnimationPhase("wheelSidePlate1") == 1.0);
136 }
137
138 if (slotSelectionName == "wheel_spare_2")
139 {
140 return GetAnimationPhase("wheelSidePlate2") == 1.0);
141 }
142
143 return super.CanManipulateSpareWheel(slotSelectionName);
144 }
145
146 override bool CrewCanGetThrough( int posIdx )
147 {
148 CarDoor carDoor;
149 switch( posIdx )
150 {
151 case 0:
152 if ( GetCarDoorsState("Truck_01_Door_1_1") == CarDoorState.DOORS_CLOSED )
153 return false;
154
155 return true;
156
157 case 1:
158 if ( GetCarDoorsState("Truck_01_Door_2_1") == CarDoorState.DOORS_CLOSED )
159 return false;
160
161 return true;
162 }
163
164 return false;
165 }
166
167 override string GetDoorSelectionNameFromSeatPos(int posIdx)
168 {
169 switch( posIdx )
170 {
171 case 0:
172 return "doors_driver";
173 break;
174 case 1:
175 return "doors_codriver";
176 break;
177 }
178
179 return super.GetDoorSelectionNameFromSeatPos(posIdx);
180 }
181
182 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
183 {
184 switch( posIdx )
185 {
186 case 0:
187 return "Truck_01_Door_1_1";
188 break;
189 case 1:
190 return "Truck_01_Door_2_1";
191 break;
192 }
193
194 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
195 }
196
197 override float OnSound(CarSoundCtrl ctrl, float oldValue)
198 {
199 switch (ctrl)
200 {
201 case CarSoundCtrl.DOORS:
202 float newValue = 0;
203
204 //-----
205 if (GetCarDoorsState("Truck_01_Door_1_1") == CarDoorState.DOORS_CLOSED)
206 {
207 newValue += 0.4;
208 }
209
210 if (GetCarDoorsState("Truck_01_Door_2_1") == CarDoorState.DOORS_CLOSED)
211 {
212 newValue += 0.4;
213 }
214
215 return Math.Clamp(newValue, 0, 1);
216 break;
217 }
218
219 return super.OnSound(ctrl, oldValue);
220 }
221
222 override void OnAnimationPhaseStarted(string animSource, float phase)
223 {
224 super.OnAnimationPhaseStarted(animSource, phase);
225
226 #ifndef SERVER
227 switch (animSource)
228 {
229 case "wheelsideplate1":
230 case "wheelsideplate2":
231 EffectSound sound;
232 if (phase == 0)
233 {
234 sound = SEffectManager.PlaySound("Truck_01_Gear_Open_Side_Plate_SoundSet", GetPosition(), 0.1, 0.1);
235 }
236 else
237 {
238 sound = SEffectManager.PlaySound("Truck_01_Gear_Close_Side_Plate_SoundSet", GetPosition(), 0.1, 0.1);
239 }
240
241 if (sound)
242 {
243 sound.SetAutodestroy(true);
244 }
245 break;
246 }
247 #endif
248 }
249
250 override int GetCarDoorsState( string slotType )
251 {
252 CarDoor carDoor;
253 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
254 if (!carDoor)
255 {
256 return CarDoorState.DOORS_MISSING;
257 }
258
259 switch (slotType)
260 {
261 case "Truck_01_Door_1_1":
262 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
263 case "Truck_01_Door_2_1":
264 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
265 case "Truck_01_Hood":
266 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
267 }
268
269 return CarDoorState.DOORS_MISSING;
270 }
271
272 override string GetAnimSourceFromSelection( string selection )
273 {
274 switch( selection )
275 {
276 case "doors_driver":
277 return "DoorsDriver";
278 case "doors_codriver":
279 return "DoorsCoDriver";
280 case "doors_hood":
281 return "DoorsHood";
282 case "doors_trunk":
283 return "DoorsTrunk";
284 case "wheelsideplate1":
285 return "WheelSidePlate1";
286 case "wheelsideplate2":
287 return "WheelSidePlate2";
288 }
289
290 return "";
291 }
292
293 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
294 {
295 switch (currentSeat)
296 {
297 case 0:
298 return nextSeat == 1;
299 case 1:
300 return nextSeat == 0;
301 }
302
303 return false;
304 }
305
306 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
307 {
308 switch (pCurrentSeat)
309 {
310 case 0:
311 return pDoorsSelection == "DoorsDriver";
312
313 case 1:
314 return pDoorsSelection == "DoorsCoDriver";
315 }
316
317 return false;
318 }
319
320 override int GetSeatIndexFromDoor( string pDoorSelection )
321 {
322 switch (pDoorSelection)
323 {
324 case "DoorsDriver":
325 return 0;
326
327 case "DoorsCoDriver":
328 return 1;
329 }
330
331 return -1;
332 }
333
334
335 override bool IsVitalCarBattery()
336 {
337 return false;
338 }
339
340 override bool IsVitalSparkPlug()
341 {
342 return false;
343 }
344
345 override bool IsVitalGlowPlug()
346 {
347 return false;
348 }
349
350 override bool IsVitalEngineBelt()
351 {
352 return false;
353 }
354
355 override bool IsVitalRadiator()
356 {
357 return false;
358 }
359
371
372 override void OnDebugSpawn()
373 {
377
378 GetInventory().CreateInInventory("Truck_01_Wheel");
379 GetInventory().CreateInInventory("Truck_01_Wheel");
380
381 GetInventory().CreateInInventory("Truck_01_WheelDouble");
382 GetInventory().CreateInInventory("Truck_01_WheelDouble");
383 GetInventory().CreateInInventory("Truck_01_WheelDouble");
384 GetInventory().CreateInInventory("Truck_01_WheelDouble");
385
386 GetInventory().CreateInInventory("Truck_01_Door_1_1");
387 GetInventory().CreateInInventory("Truck_01_Door_2_1");
388 GetInventory().CreateInInventory("Truck_01_Hood");
389
390 //-----IN CAR CARGO
391 GetInventory().CreateInInventory("Truck_01_Wheel");
392 GetInventory().CreateInInventory("Truck_01_Wheel");
393 GetInventory().CreateInInventory("Truck_01_WheelDouble");
394 GetInventory().CreateInInventory("Truck_01_WheelDouble");
395 }
396};
ActionDetachFromTarget_SpecificSlot_WoodenPlanks ActionDetachFromTarget_SpecificSlot ActionDetachFromTarget_SpecificSlot_MetalSheets()
Определения ActionDetachFromTarget.c:223
ActionDetachFromTarget_SpecificSlotsCategory_Barrel ActionDetachFromTarget_SpecificSlotsCategory ActionDetachFromTarget_SpecificSlotsCategory_WoodenCrate()
Определения ActionDetachFromTarget.c:239
ActionDetachFromTarget_SpecificSlotsCategory ActionDetachFromTarget ActionDetachFromTarget_SpecificSlot_WoodenLogs()
Определения ActionDetachFromTarget.c:207
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
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
int GetCarDoorsState(string slotType)
Определения CarScript.c:2508
vector m_enginePtcPos
Определения CarScript.c:195
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)
Определения Truck_01_Base.c:197
override bool IsVitalEngineBelt()
Определения Truck_01_Base.c:350
override float GetTransportCameraDistance()
Определения Truck_01_Base.c:76
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Truck_01_Base.c:167
override int GetAnimInstance()
Определения Truck_01_Base.c:86
void Truck_01_Base()
Определения Truck_01_Base.c:7
override CarRearLightBase CreateRearLight()
Определения Truck_01_Base.c:111
override void OnDebugSpawn()
Определения Truck_01_Base.c:372
override int GetSeatIndexFromDoor(string pDoorSelection)
Определения Truck_01_Base.c:320
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Truck_01_Base.c:182
override CarLightBase CreateFrontLight()
Определения Truck_01_Base.c:105
override bool IsVitalGlowPlug()
Определения Truck_01_Base.c:345
override int GetCarDoorsState(string slotType)
Определения Truck_01_Base.c:250
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:5
override void OnAnimationPhaseStarted(string animSource, float phase)
Определения Truck_01_Base.c:222
override string GetAnimSourceFromSelection(string selection)
Определения Truck_01_Base.c:272
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Truck_01_Base.c:306
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Truck_01_Base.c:65
override void OnEngineStart()
Определения Truck_01_Base.c:45
override bool CanReleaseAttachment(EntityAI attachment)
Определения Truck_01_Base.c:116
override void SetActions()
Определения Truck_01_Base.c:360
override void EEInit()
Определения Truck_01_Base.c:27
override bool IsVitalRadiator()
Определения Truck_01_Base.c:355
override bool CrewCanGetThrough(int posIdx)
Определения Truck_01_Base.c:146
override bool IsVitalCarBattery()
Определения Truck_01_Base.c:335
ref UniversalTemperatureSource m_UTSource
Определения CivilianSedan.c:3
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Truck_01_Base.c:293
override bool IsVitalSparkPlug()
Определения Truck_01_Base.c:340
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Truck_01_Base.c:131
override void OnEngineStop()
Определения Truck_01_Base.c:55
override vector GetTransportCameraOffset()
Определения Truck_01_Base.c:81
override int GetSeatAnimationType(int posIdx)
Определения Truck_01_Base.c:91
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения CivilianSedan.c:4
Определения CivilianSedan.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
override void SetAutodestroy(bool auto_destroy)
Sets whether Effect automatically cleans up when it stops.
Определения EffectSound.c:603
Wrapper class for managing sound through SEffectManager.
Определения EffectSound.c:5
Определения Building.c:6
Определения constants.c:659
Определения EnEntity.c:165
Определения EnMath.c:7
static EffectSound PlaySound(string sound_set, vector position, float play_fade_in=0, float stop_fade_out=0, bool loop=false)
Create and play an EffectSound.
Определения EffectManager.c:169
Manager class for managing Effect (EffectParticle, EffectSound)
Определения EffectManager.c:6
Определения Truck_01_Chassis.c:1
original Timer deletes m_params which is unwanted
Определения UniversalTemperatureSource.c:38
Определения EnConvert.c:106
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'.
class JsonUndergroundAreaTriggerData GetPosition
Определения UndergroundAreaLoader.c:9