8enum CarHeadlightBulbsState
24enum CarEngineSoundState
44enum EVehicleDebugOutputType
48 DAMAGE_CONSIDERED = 2,
56 static ref array<ref CrashDebugData> m_CrashData =
new array<ref CrashDebugData>;
57 static ref CrashDebugData m_CrashDataPoint;
59 static void SendData(PlayerBase player)
67 GetGame().
RPCSingleParam(player,
ERPCs.DIAG_VEHICLES_DUMP_CRASH_DATA_CONTENTS,
new Param1<array<ref CrashDebugData>>(m_CrashData),
true, player.GetIdentity());
71 static void DumpDataArray(array<ref CrashDebugData> dataArray)
73 Print(
"Vehicle; DamageType; Damage; Zone; Momentum; Momentum Prev; Momentum Delta; Speedometer; SpeedWorld; SpeedWorld Prev; SpeedWorld Delta; Velocity; Velocity Prev; Velocity Dot; TimeStamp (ms); CrewDamageBase; ShockTemp; DMGHealth; DMGShock");
74 foreach (CrashDebugData data:dataArray)
80 static void DumpData(CrashDebugData data)
82 string output = data.m_VehicleType+
";"+data.m_DamageType+
";"+data.m_Damage+
";"+data.m_Zone+
";"+data.m_MomentumCurr+
";"+data.m_MomentumPrev+
";"+data.m_MomentumDelta+
";"+data.m_Speedometer;
83 output +=
";"+data.m_SpeedWorld+
";"+data.m_SpeedWorldPrev+
";"+data.m_SpeedWorldDelta+
";"+data.m_VelocityCur;
84 output +=
";"+data.m_VelocityPrev+
";"+data.m_VelocityDot+
";"+data.m_Time+
";"+data.m_CrewDamageBase+
";"+data.m_ShockTemp+
";"+data.m_DMGHealth+
";"+data.m_DMGShock;
94 float m_MomentumDelta;
97 float m_SpeedWorldPrev;
98 float m_SpeedWorldDelta;
100 vector m_VelocityPrev;
103 float m_CrewDamageBase;
116 void CarContactData(vector _localPos, IEntity _other,
float _impulse)
118 localPos = _localPos;
135 #ifdef DIAG_DEVELOPER
136 static EVehicleDebugOutputType DEBUG_OUTPUT_TYPE;
137 bool m_ContactCalled;
275 private const int DEBUG_MESSAGE_CLEAN_TIME_SECONDS = 10;
276 private float m_DebugMessageCleanTime;
277 private string m_DebugContactDamageMessage;
311 RegisterNetSyncVariableBool(
"m_HeadlightsOn");
312 RegisterNetSyncVariableBool(
"m_BrakesArePressed");
313 RegisterNetSyncVariableBool(
"m_ForceUpdateLights");
314 RegisterNetSyncVariableBoolSignal(
"m_PlayCrashSoundLight");
315 RegisterNetSyncVariableBoolSignal(
"m_PlayCrashSoundHeavy");
316 RegisterNetSyncVariableInt(
"m_CarHornState", ECarHornState.OFF, ECarHornState.LONG);
317 RegisterNetSyncVariableInt(
"m_CarEngineSoundState", CarEngineSoundState.NONE, CarEngineSoundState.STOP_NO_FUEL);
319 if ( MemoryPointExists(
"ptcExhaust_end") )
322 if ( MemoryPointExists(
"ptcExhaust_start") )
324 vector exhaustStart = GetMemoryPointPos(
"ptcExhaust_start");
340 if ( MemoryPointExists(
"ptcEnginePos") )
345 if ( MemoryPointExists(
"ptcCoolantPos") )
350 if ( MemoryPointExists(
"drown_engine") )
355 if ( MemoryPointExists(
"dmgZone_engine") )
360 if ( MemoryPointExists(
"dmgZone_front") )
361 m_frontPos = GetMemoryPointPos(
"dmgZone_front");
365 if ( MemoryPointExists(
"dmgZone_back") )
366 m_backPos = GetMemoryPointPos(
"dmgZone_back");
370 if ( MemoryPointExists(
"dmgZone_fender_1_1") )
375 if ( MemoryPointExists(
"dmgZone_fender_1_2") )
380 if ( MemoryPointExists(
"dmgZone_fender_2_1") )
385 if ( MemoryPointExists(
"dmgZone_fender_2_2") )
390 if (!
GetGame().IsDedicatedServer())
418 #ifdef DIAG_DEVELOPER
420 override void FixEntity()
427 for (
int i = 5; i > 0; i--)
429 if (!
GetGame().IsMultiplayer())
445 return "VehicleTypeCar";
495 super.EEHitBy(damageResult, damageType, source,
component, dmgZone, ammo, modelPos, speedCoef);
570 super.GetDebugActions(outputList);
578 if (super.OnAction(action_id, player, ctx))
633 super.OnVariablesSynchronized();
664 super.EEItemAttached(item, slot_name);
668 case "Reflector_1_1":
671 SetHealth(
"Reflector_1_1",
"Health", item.GetHealth());
674 case "Reflector_2_1":
677 SetHealth(
"Reflector_2_1",
"Health", item.GetHealth());
716 EntityAI bulb_L = FindAttachmentBySlotName(
"Reflector_1_1");
717 EntityAI bulb_R = FindAttachmentBySlotName(
"Reflector_2_1");
719 if (bulb_L && !bulb_L.IsRuined() && bulb_R && !bulb_R.IsRuined())
723 else if (bulb_L && !bulb_L.IsRuined())
727 else if (bulb_R && !bulb_R.IsRuined())
731 else if ((!bulb_L || bulb_L.IsRuined()) && (!bulb_R || bulb_R.IsRuined()))
760 if (
GetGame().IsServer() && EngineIsOn())
771 if (m_DamageZoneMap.Contains(
"Radiator"))
773 SetHealth(
"Radiator",
"Health", 0);
790 super.OnAttachmentRuined(attachment);
798 if (!super.CanReceiveAttachment(attachment, slotId))
802 attachment.GetInventory().GetCurrentInventoryLocation(attachmentInventoryLocation);
803 if (attachmentInventoryLocation.
GetParent() == null)
808 if (attachment && attachment.Type().IsInherited(
CarWheel))
810 string slotSelectionName;
813 switch (slotSelectionName)
815 case "wheel_spare_1":
816 case "wheel_spare_2":
827 if (!super.CanReleaseAttachment(attachment))
837 if (attachment && attachment.Type().IsInherited(
CarWheel))
840 attachment.GetInventory().GetCurrentInventoryLocation(attachmentInventoryLocation);
842 string slotSelectionName;
845 switch (slotSelectionName)
847 case "wheel_spare_1":
848 case "wheel_spare_2":
871 #ifdef DIAG_DEVELOPER
872 if (DEBUG_OUTPUT_TYPE & EVehicleDebugOutputType.CONTACT)
877 Debug.
Log(
"--------------------------------------------------------------------");
878 m_ContactCalled =
false;
888 m_DebugMessageCleanTime += timeSlice;
889 if (m_DebugMessageCleanTime >= DEBUG_MESSAGE_CLEAN_TIME_SECONDS)
891 m_DebugMessageCleanTime = 0;
892 m_DebugContactDamageMessage =
"";
904 if (
GetGame().IsServer() && EngineIsOn())
933 if ( EngineGetRPM() >= EngineGetRPMRedline() )
935 if (EngineGetRPM() > EngineGetRPMMax())
936 AddHealth(
"Engine",
"Health", -GetMaxHealth(
"Engine",
"") * 0.05 );
940 SetEngineZoneReceivedHit(
true);
944 SetEngineZoneReceivedHit(
false);
968 if ( GetFluidFraction(
CarFluid.COOLANT ) < 0.5 && GetFluidFraction(
CarFluid.COOLANT ) >= 0 )
971 AddHealth(
"Engine",
"Health", -dmg );
972 SetEngineZoneReceivedHit(
true);
978 if (!
GetGame().IsDedicatedServer())
997 if (GetFluidFraction(
CarFluid.COOLANT) > 0)
1013 if ( !
GetGame().IsDedicatedServer() )
1032 if ( !
GetGame().IsDedicatedServer() )
1035 for (
int i = 0; i < WheelCount(); i++)
1039 bool haveParticle =
false;
1041 if (WheelHasContact(i))
1044 float wheelSpeed = WheelGetAngularVelocity(i) * wheel.GetRadius();
1046 vector wheelPos = WheelGetContactPosition(i);
1050 transform[2] = WheelGetDirection(i);
1052 transform[0] = transform[2] * transform[1];
1056 float bodySpeed = wheelVel[2];
1058 bool applyEffect =
false;
1059 if ((wheelSpeed > 0 && bodySpeed > 0) || (wheelSpeed < 0 && bodySpeed < 0))
1070 haveParticle =
true;
1074 wheelPos = WorldToModel(wheelPos);
1097 if (eff && eff.IsPlaying())
1121 equippedClothes.Insert(
ClothingBase.Cast(player.GetItemOnSlot(
"LEGS")));
1122 equippedClothes.Insert(
ClothingBase.Cast(player.GetItemOnSlot(
"BACK")));
1123 equippedClothes.Insert(
ClothingBase.Cast(player.GetItemOnSlot(
"VEST")));
1124 equippedClothes.Insert(
ClothingBase.Cast(player.GetItemOnSlot(
"HeadGear")));
1125 equippedClothes.Insert(
ClothingBase.Cast(player.GetItemOnSlot(
"Mask")));
1126 equippedClothes.Insert(
ClothingBase.Cast(player.GetItemOnSlot(
"BODY")));
1127 equippedClothes.Insert(
ClothingBase.Cast(player.GetItemOnSlot(
"FEET")));
1128 equippedClothes.Insert(
ClothingBase.Cast(player.GetItemOnSlot(
"GLOVES")));
1146 player.GiveShock(-shockTaken);
1150 player.m_BleedingManagerServer.AttemptAddBleedingSourceBySelection(
PlayerBase.m_BleedingSourcesLow[randNum]);
1155 player.GiveShock(-shockTaken);
1159 player.m_BleedingManagerServer.AttemptAddBleedingSourceBySelection(
PlayerBase.m_BleedingSourcesUp[randNum]);
1164 player.m_BleedingManagerServer.AttemptAddBleedingSourceBySelection(
"Head");
1167 player.GiveShock(-shockTaken);
1179 cloth.DecreaseHealth(dmgTaken,
false);
1182 vector posMS = gotActionData.m_Player.WorldToModel(gotActionData.m_Player.GetPosition());
1183 gotActionData.m_Player.DamageAllLegs(dmgTaken);
1186 healthCoef =
Math.
Clamp(healthCoef, 0.0, 1.0);
1187 gotActionData.m_Player.ProcessDirectDamage(
DamageType.CUSTOM, gotActionData.m_Player,
"",
"FallDamageHealth", posMS, healthCoef);
1223 if ( battery.GetCompEM().GetEnergy() <= 0 )
1238 SetEngineZoneReceivedHit(
true);
1248 float brake_coef = GetBrake();
1249 if ( brake_coef > 0 )
1277 super.EEKilled(killer);
1286 #ifdef DIAG_DEVELOPER
1287 m_ContactCalled =
true;
1288 if (DEBUG_OUTPUT_TYPE & EVehicleDebugOutputType.CONTACT)
1290 string output =
"Zone: " + zoneName +
" | Impulse:" + data.
Impulse;
1305 ccd.Insert(
new CarContactData(localPos, other, momentumDelta));
1316 if (contactZonesCount == 0)
1320 for (
int i = 0; i < contactZonesCount; ++i)
1328 #ifdef DIAG_DEVELOPER
1329 CrashDebugData.m_CrashDataPoint =
new CrashDebugData();
1330 CrashDebugData.m_CrashDataPoint.m_VehicleType =
GetDisplayName();
1331 CrashDebugData.m_CrashDataPoint.m_Damage = dmg;
1332 CrashDebugData.m_CrashDataPoint.m_Zone = zoneName;
1333 CrashDebugData.m_CrashDataPoint.m_MomentumCurr = GetMomentum();
1335 CrashDebugData.m_CrashDataPoint.m_MomentumDelta = data[0].impulse;
1336 CrashDebugData.m_CrashDataPoint.m_SpeedWorld =
GetVelocity(
this).
Length() * 3.6;
1337 CrashDebugData.m_CrashDataPoint.m_SpeedWorldPrev =
m_VelocityPrevTick.Length() * 3.6;
1339 CrashDebugData.m_CrashDataPoint.m_VelocityCur =
GetVelocity(
this);
1346 if (DEBUG_OUTPUT_TYPE & EVehicleDebugOutputType.DAMAGE_CONSIDERED)
1348 Debug.
Log(
"--------------------------------------------------");
1351 Debug.
Log(
"zoneName : "+ zoneName);
1352 Debug.
Log(
"momentumCurr : "+ GetMomentum());
1354 Debug.
Log(
"momentumDelta : "+ data[0].impulse);
1362 Debug.
Log(
"--------------------------------------------------");
1369 #ifdef DIAG_DEVELOPER
1370 CrashDebugData.m_CrashData.Insert(CrashDebugData.m_CrashDataPoint);
1371 CrashDebugData.m_CrashDataPoint.m_Speedometer = GetSpeedometer();
1376 #ifdef DIAG_DEVELOPER
1377 CrashDebugData.m_CrashDataPoint.m_DamageType =
"Small";
1378 if (DEBUG_OUTPUT_TYPE & EVehicleDebugOutputType.DAMAGE_APPLIED)
1386 #ifdef DIAG_DEVELOPER
1387 CrashDebugData.m_CrashDataPoint.m_DamageType =
"Big";
1388 if (DEBUG_OUTPUT_TYPE & EVehicleDebugOutputType.DAMAGE_APPLIED)
1397 m_DebugContactDamageMessage +=
string.
Format(
"%1: %2\n", zoneName, dmg);
1400 ProcessDirectDamage(
DamageType.CUSTOM, null, zoneName,
"EnviroDmg",
"0 0 0", dmg, pddfFlags);
1405 if (targetEntity && targetEntity.IsTree())
1422 for (
int c = 0; c < CrewSize(); ++c )
1424 Human crew = CrewMember( c );
1433 #ifdef DIAG_DEVELOPER
1434 CrashDebugData.m_CrashDataPoint.m_CrewDamageBase = dmg;
1435 CrashDebugData.m_CrashDataPoint.m_DMGHealth = -100;
1436 if (DEBUG_OUTPUT_TYPE & EVehicleDebugOutputType.DAMAGE_APPLIED)
1438 Debug.
Log(
"--------------------------------------------------");
1440 Debug.
Log(
"Crew DMG Base: " + dmg);
1441 Debug.
Log(
"--------------------------------------------------");
1445 player.SetHealth(0.0);
1451 float shock =
Math.
Lerp( 50, 150, shockTemp );
1452 float hp =
Math.
Lerp( 2, 100, shockTemp );
1454 #ifdef DIAG_DEVELOPER
1455 CrashDebugData.m_CrashDataPoint.m_CrewDamageBase = dmg;
1456 CrashDebugData.m_CrashDataPoint.m_ShockTemp = shockTemp;
1457 CrashDebugData.m_CrashDataPoint.m_DMGHealth = hp;
1458 CrashDebugData.m_CrashDataPoint.m_DMGShock = shock;
1459 if (DEBUG_OUTPUT_TYPE & EVehicleDebugOutputType.DAMAGE_APPLIED)
1461 Debug.
Log(
"--------------------------------------------------");
1462 Debug.
Log(
"Crew DMG Base: " + dmg);
1463 Debug.
Log(
"Crew shockTemp: " + shockTemp);
1464 Debug.
Log(
"Crew DMG Health: " + hp);
1465 Debug.
Log(
"Crew DMG Shock: " + shock);
1466 Debug.
Log(
"--------------------------------------------------");
1470 player.AddHealth(
"",
"Shock", -shock );
1471 player.AddHealth(
"",
"Health", -hp );
1510 case "doorscodriver":
1533 case "seatcodriver":
1552 case ECarHornState.SHORT:
1555 case ECarHornState.LONG:
1575 case CarEngineSoundState.STARTING:
1579 case CarEngineSoundState.START_OK:
1583 if (!player.IsCameraInsideVehicle())
1601 case CarEngineSoundState.START_NO_FUEL:
1606 case CarEngineSoundState.START_NO_BATTERY:
1607 sound =
SEffectManager.
PlaySound(
"offroad_engine_failed_start_battery_SoundSet", ModelToWorld(GetEnginePos()));
1611 case CarEngineSoundState.START_NO_SPARKPLUG:
1612 sound =
SEffectManager.
PlaySound(
"offroad_engine_failed_start_sparkplugs_SoundSet", ModelToWorld(GetEnginePos()));
1616 case CarEngineSoundState.STOP_OK:
1617 case CarEngineSoundState.STOP_NO_FUEL:
1621 if (!player.IsCameraInsideVehicle())
1649 foreach (
int unconsciousCrewMemberIndex : m_UnconsciousCrewMemberIndices)
1657 m_UnconsciousCrewMemberIndices.RemoveItem(unconsciousCrewMemberIndex);
1663 foreach (
int deadCrewMemberIndex : m_DeadCrewMemberIndices)
1671 m_DeadCrewMemberIndices.RemoveItem(deadCrewMemberIndex);
1731 item = FindAttachmentBySlotName(
"SparkPlug");
1732 if (!item || (item && item.IsRuined()))
1741 item = FindAttachmentBySlotName(
"GlowPlug");
1742 if (!item || (item && item.IsRuined()))
1749 if (GetFluidFraction(
CarFluid.FUEL) <= 0)
1763 if (GetFluidFraction(
CarFluid.FUEL) <= 0)
1775 item = FindAttachmentBySlotName(
"SparkPlug");
1776 if (!item || (item && item.IsRuined()))
1782 item = FindAttachmentBySlotName(
"GlowPlug");
1783 if (!item || (item && item.IsRuined()))
1800 if (
GetGame().IsServer() && battery)
1817 SetEngineZoneReceivedHit(
false);
1874 case CarHeadlightBulbsState.LEFT:
1878 case CarHeadlightBulbsState.RIGHT:
1882 case CarHeadlightBulbsState.BOTH:
1886 vector local_pos_middle = (local_pos_left + local_pos_right) * 0.5;
1887 m_Headlight.AttachOnObject(
this, local_pos_middle);
1908 case CarGear.REVERSE:
1930 m_RearLight.AttachOnObject(
this, localPos,
"180 0 0");
1939 case CarRearLightType.BRAKES_ONLY:
1942 case CarRearLightType.REVERSE_ONLY:
1949 case CarRearLightType.BRAKES_AND_REVERSE:
1978 gear = GearboxGetMode();
1993 case CarHeadlightBulbsState.LEFT:
1997 case CarHeadlightBulbsState.RIGHT:
2001 case CarHeadlightBulbsState.BOTH:
2024 case CarGear.REVERSE:
2046 case CarRearLightType.BRAKES_ONLY:
2050 case CarRearLightType.REVERSE_ONLY:
2062 case CarRearLightType.BRAKES_AND_REVERSE:
2110 string material = ConfigGetString(
"frontReflectorMatOn");
2120 string material = ConfigGetString(
"frontReflectorMatOn");
2130 string material = ConfigGetString(
"frontReflectorMatOff");
2140 string material = ConfigGetString(
"frontReflectorMatOff");
2150 string material = ConfigGetString(
"ReverseReflectorMatOn");
2161 string material = ConfigGetString(
"ReverseReflectorMatOff");
2172 string material = ConfigGetString(
"brakeReflectorMatOn");
2183 string material = ConfigGetString(
"brakeReflectorMatOff");
2194 string material = ConfigGetString(
"TailReflectorMatOn");
2195 string materialOff = ConfigGetString(
"TailReflectorMatOff");
2197 if (material && materialOff)
2219 string material = ConfigGetString(
"TailReflectorMatOff");
2230 string material = ConfigGetString(
"dashboardMatOn");
2240 string material = ConfigGetString(
"dashboardMatOff");
2265 EntityAI item = FindAttachmentBySlotName(itemName);
2269 else if ( item.IsRuined() )
2281 Leak(fluid, ammount);
2286 Leak(fluid, ammount);
2291 Leak(fluid, ammount);
2391 return "seat_con_1_1";
2393 case "seat_codriver":
2394 return "seat_con_2_1";
2397 return "seat_con_1_2";
2400 return "seat_con_2_2";
2425 if (conPointName.
Length() > 0)
2427 if ( MemoryPointExists(conPointName) )
2429 vector conPointMS = GetMemoryPointPos(conPointName);
2430 vector conPointWS = ModelToWorld(conPointMS);
2488 return GetSpeedometerAbsolute() > 3.5;
2493 return GetHandbrake() > 0.0;
2515 if (GetAnimationPhase(animation) > 0.5)
2537 return "carradiator";
2547 return "carradiator";
2563 if (!m_InputActionMap)
2620 Debug.
ActionLog(action.ToString() +
" -> " + ai,
this.ToString() ,
"n/a",
"Add action" );
2622 action_array.Insert(action);
2628 ActionBase action = player.GetActionManager().GetAction(actionName);
2634 action_array.RemoveItem(action);
2645 super.EEHealthLevelChanged(oldLevel,newLevel,zone);
2662 case "WindowFrontLeft":
2663 case "WindowFrontRight":
2682 float maxVolume = GetFluidCapacity(
CarFluid.FUEL );
2731 return ItemBase.Cast(FindAttachmentBySlotName(
"CarBattery"));
2735 return ItemBase.Cast(FindAttachmentBySlotName(
"TruckBattery"));
2761 if (pState != ECarHornState.OFF)
2765 float noiseMultiplier = 1.0;
2766 if (pState == ECarHornState.LONG)
2767 noiseMultiplier = 2.0;
2789 string debug_output = super.GetDebugText();
2792 debug_output += m_DebugContactDamageMessage +
"\n";
2794 debug_output +=
"Entity momentum: " + GetMomentum();
2795 debug_output +=
"\nIsEngineON: " + EngineIsOn();
2797 return debug_output;
2803 GetInventory().CreateInInventory(
"HeadlightH7");
2804 GetInventory().CreateInInventory(
"HeadlightH7");
2805 GetInventory().CreateInInventory(
"HeadlightH7");
2806 GetInventory().CreateInInventory(
"HeadlightH7");
2810 GetInventory().CreateInInventory(
"CarBattery");
2811 GetInventory().CreateInInventory(
"CarBattery");
2816 GetInventory().CreateInInventory(
"TruckBattery");
2817 GetInventory().CreateInInventory(
"TruckBattery");
2822 GetInventory().CreateInInventory(
"CarRadiator");
2823 GetInventory().CreateInInventory(
"CarRadiator");
2828 GetInventory().CreateInInventory(
"SparkPlug");
2829 GetInventory().CreateInInventory(
"SparkPlug");
2834 GetInventory().CreateInInventory(
"GlowPlug");
2835 GetInventory().CreateInInventory(
"GlowPlug");
2841 GetInventory().CreateInInventory(
"Wrench");
2842 GetInventory().CreateInInventory(
"LugWrench");
2843 GetInventory().CreateInInventory(
"Screwdriver");
2844 GetInventory().CreateInInventory(
"EpoxyPutty");
2846 GetInventory().CreateInInventory(
"CanisterGasoline");
2850 ent = GetInventory().CreateInInventory(
"CanisterGasoline");
2856 ent = GetInventory().CreateInInventory(
"Blowtorch");
2859 ent.GetInventory().CreateInInventory(
"LargeGasCanister");
2862 ent = GetInventory().CreateInInventory(
"Blowtorch");
2865 ent.GetInventory().CreateInInventory(
"LargeGasCanister");
Param4< int, int, string, int > TSelectableActionInfoWithColor
eBleedingSourceType GetType()
CarHornActionData ActionData ActionCarHornShort()
void ActionManagerBase(PlayerBase player)
map< typename, ref array< ActionBase_Basic > > TInputActionMap
ref NoiseParams m_NoisePar
ActionPushCarCB ActionPushObjectCB ActionPushCar()
void AddAction(typename actionName)
void RemoveAction(typename actionName)
TInputActionMap m_InputActionMap
class PASBroadcaster extends AdvancedCommunication IsInventoryVisible
override void GetActions(typename action_input_type, out array< ActionBase_Basic > actions)
override void OnVariablesSynchronized()
override void EEItemDetached(EntityAI item, string slot_name)
override void EEItemAttached(EntityAI item, string slot_name)
enum EBoatEffects STOP_OK
enum EBoatEffects START_NO_FUEL
enum EBoatEffects START_OK
CarAutomaticGearboxMode
Enumerated automatic gearbox modes. (native, do not change or extend)
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
CarFluid
Type of vehicle's fluid. (native, do not change or extend)
CarGearboxType
Enumerated gearbox types. (native, do not change or extend)
void CreateCarDestroyedEffect()
void SetEngineStarted(bool started)
static const int SELECTION_ID_TAIL_LIGHT_R
void SpawnUniversalParts()
string m_CarSeatShiftInSound
void ReverseLightsShineOn()
enum CarDoorState START_NO_BATTERY
void OnVehicleJumpOutServer(GetOutTransportActionData gotActionData)
void SetCarEngineSoundState(CarEngineSoundState pState)
vector m_VelocityPrevTick
CarDoorState TranslateAnimationPhaseToCarDoorState(string animation)
float GetEnviroHeatComfortOverride()
DEPRECATED.
void SpawnAdditionalItems()
void BrakeLightsShineOff()
float GetActionDistanceBrakes()
ref EffVehicleSmoke m_coolantFx
Particles.
string m_EngineStartOK
Sounds.
void PlayCrashHeavySound()
static string m_RightHeadlightPoint
enum CarDoorState m_CarTypeActionsMap
ref array< ref EffWheelSmoke > m_WheelSmokeFx
override int Get3rdPersonCameraType()
camera type
float GetBatteryRuntimeConsumption()
float GetBatteryConsumption()
void UpdateLightsServer(int newGear=-1)
void BrakeLightsShineOn()
void CheckVitalItem(bool isVital, string itemName)
static string m_DrownEnginePoint
void ReverseLightsShineOff()
override bool OnBeforeEngineStart()
void GenerateCarHornAINoise(int pState)
string m_CarDoorCloseSound
ref EffectSound m_WindowLarge
static string m_LeftHeadlightPoint
void RightFrontLightShineOn()
void ForceUpdateLightsStart()
void PlayCrashLightSound()
static string m_ReverseLightPoint
void DamageCrew(float dmg)
Responsible for damaging crew in a car crash.
static const int SELECTION_ID_BRAKE_LIGHT_R
void ForceUpdateLightsEnd()
void CleanupSound(EffectSound sound)
ref EffectSound m_WindowSmall
static const int SELECTION_ID_REVERSE_LIGHT_L
string m_EngineStartBattery
ref EffVehicleSmoke m_engineFx
float m_BatteryEnergyStartMin
static string m_LeftHeadlightTargetPoint
int m_CarEngineSoundState
float m_EnviroHeatComfortOverride
bool GetCrashHeavySound()
string GetActionCompNameCoolant()
void CheckContactCache()
Responsible for damaging the car according to contact events from OnContact.
static float DROWN_ENGINE_DAMAGE
float m_BatteryContinuousConsume
string GetActionCompNameBrakes()
int m_CarEngineLastSoundState
ref EffectSound m_PreStartSound
bool m_PlayCrashSoundLight
ref EffectSound m_CrashSoundHeavy
void SetCarHornState(int pState)
static const int SELECTION_ID_BRAKE_LIGHT_L
override void OnFluidChanged(CarFluid fluid, float newValue, float oldValue)
override vector GetDefaultHitPosition()
void HandleCarHornSound(ECarHornState pState)
void UpdateLightsClient(int newGear=-1)
override void HandleByCrewMemberState(ECrewMemberState state)
vector Get_1_2PointPosWS()
override bool DetectFlipped(VehicleFlippedContext ctx)
void PlaySoundEx(string soundset, EffectSound sound, out bool soundbool)
void LeakFluid(CarFluid fluid)
string m_CarHornShortSoundName
NoiseSystem m_NoiseSystem
static const int SELECTION_ID_FRONT_LIGHT_R
vector Get_2_2PointPosWS()
void BrakeAndReverseRearLight()
void UpdateLights(int new_gear=-1)
static float DROWN_ENGINE_THRESHOLD
static const int SELECTION_ID_FRONT_LIGHT_L
static string m_RightHeadlightTargetPoint
vector Get_1_1PointPosWS()
const float BATTERY_UPDATE_DELAY
enum CarDoorState STARTING
ref array< int > m_WheelSmokePtcFx
override void OnGearChanged(int newGear, int oldGear)
override string GetVehicleType()
float GetActionDistanceOil()
string GetActionCompNameOil()
float GetActionDistanceCoolant()
static const string MEMORY_POINT_NAME_CAR_HORN
vector GetEnginePointPosWS()
vector GetCoolantPtcPosWS()
static const int SELECTION_ID_TAIL_LIGHT_L
vector GetFrontPointPosWS()
void ToggleHeadlights()
Switches headlights on/off, including the illumination of the control panel and synchronizes this cha...
enum CarDoorState REVERSE_ONLY
float GetBatteryRechargeRate()
float m_FuelAmmount
keeps ammount of each fluid
void LeftFrontLightShineOn()
void HandleDoorsSound(string animSource, float phase)
override bool CanReachSeatFromDoors(string pSeatSelection, vector pFromPos, float pDistance=1.0)
void LeftFrontLightShineOff()
string m_CarHornLongSoundName
override void OnContact(string zoneName, vector localPos, IEntity other, Contact data)
WARNING: Can be called very frequently in one frame, use with caution.
ref EffVehicleSmoke m_exhaustFx
vector GetBackPointPosWS()
CarRearLightBase m_RearLight
enum CarDoorState BRAKES_ONLY
ref EffectSound m_CrashSoundLight
bool CheckOperationalState()
bool OnBeforeSwitchLights(bool toOn)
void SynchCrashHeavySound(bool play)
void RightFrontLightShineOff()
ref EffectSound m_CarHornSoundEffect
void TailLightsShineOff()
void UpdateHeadlightState()
void SynchCrashLightSound(bool play)
bool GetCrashLightSound()
vector Get_2_1PointPosWS()
override float GetLiquidThroughputCoef()
string m_CarSeatShiftOutSound
static const int SELECTION_ID_DASHBOARD_LIGHT
void HandleSeatAdjustmentSound(string animSource, float phase)
void HandleEngineSound(CarEngineSoundState state)
void CarPartsHealthCheck()
enum CarDoorState START_NO_SPARKPLUG
static const int SELECTION_ID_REVERSE_LIGHT_R
bool m_PlayCrashSoundHeavy
bool IsScriptedLightsOn()
Propper way to get if light is swiched on. Use instead of IsLightsOn().
string m_CarDoorOpenSound
static vector m_DrownEnginePos
ref CarContactCache m_ContactCache
class EconomyOutputStrings OFF
override void EEDelete(EntityAI parent)
DamageType
exposed from C++ (do not change)
override void EEKilled(Object killer)
override bool CanPutIntoHands(EntityAI parent)
override void OnAttachmentRuined(EntityAI attachment)
class BoxCollidingParams component
ComponentInfo for BoxCollidingResult.
override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
override bool CanReceiveAttachment(EntityAI attachment, int slotId)
override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
override void EEOnCECreate()
Called when entity is being created as new by CE/ Debug.
override void EEHitBy(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
static string GetDisplayName(int liquid_type)
class NoiseSystem NoiseParams()
const int LOW_SPEED_VALUE
const int HEALTH_HIGH_SPEED_VALUE
const int HIGH_SPEED_VALUE
const int HEALTH_LOW_SPEED_VALUE
proto native NoiseSystem GetNoiseSystem()
proto native void RPCSingleParam(Object target, int rpc_type, Param param, bool guaranteed, PlayerIdentity recipient=null)
see CGame.RPC
override ScriptCallQueue GetCallQueue(int call_category)
proto float SurfaceGetType(float x, float z, out string type)
Returns: Y position the surface was found.
proto int GetTime()
returns mission time in milliseconds
override float OnSound(CarSoundCtrl ctrl, float oldValue)
override bool IsVitalEngineBelt()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCrewIndex(string selection)
override CarRearLightBase CreateRearLight()
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override string GetDoorConditionPointFromSelection(string selection)
override CarLightBase CreateFrontLight()
override bool IsVitalGlowPlug()
override int GetCarDoorsState(string slotType)
override bool IsVitalTruckBattery()
override void OnAnimationPhaseStarted(string animSource, float phase)
override string GetAnimSourceFromSelection(string selection)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStart()
override bool CanReleaseAttachment(EntityAI attachment)
override void SetActions()
override bool IsVitalRadiator()
override bool IsVitalCarBattery()
override bool IsVitalSparkPlug()
bool CanManipulateSpareWheel(string slotSelectionName)
override float GetPushForceCoefficientMultiplier()
override void OnEngineStop()
Super root of all classes in Enforce script.
static const int DAYZCAMERA_3RD_VEHICLE
generic vehicle 3rd person
static void LogError(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
Prints debug message as error message.
static void Log(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
Prints debug message with normal prio.
static void ActionLog(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
const float WHEEL_SMOKE_THRESHOLD
void SetSurface(string surface)
override void Stop()
Stops all elements this effect consists of.
override void Start()
Plays all elements this effect consists of.
override void SetCurrentLocalPosition(vector pos, bool updateCached=true)
Set the current local position of the managed Particle.
override void SetAutodestroy(bool auto_destroy)
Sets whether Effect automatically cleans up when it stops.
void SetSoundWaveKind(WaveKind wave_kind)
Set WaveKind for the sound.
bool IsSoundPlaying()
Get whether EffectSound is currently playing.
bool SoundPlay()
Plays sound.
Wrapper class for managing sound through SEffectManager.
proto native EntityAI GetParent()
returns parent of current inventory location
proto native int GetSlot()
returns slot id if current type is Attachment
static proto bool GetSelectionForSlotId(int slot_Id, out string selection)
provides access to slot configuration
static bool IsActionLogEnable()
static float GetNoiseReduction(Weather weather)
static EffectSound PlaySoundCachedParams(string sound_set, vector position, float play_fade_in=0, float stop_fade_out=0, bool loop=false)
Create and play an EffectSound, using or creating cached SoundParams.
static int PlayOnObject(notnull Effect eff, Object obj, vector local_pos="0 0 0", vector local_ori="0 0 0", bool force_rotation_relative_to_world=false)
Play an Effect.
static int CreateParticleServer(vector pos, EffecterParameters parameters)
returns unique effecter ID
static void Stop(int effect_id)
Stops the Effect.
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.
static bool IsEffectExist(int effect_id)
Checks whether an Effect ID is registered in SEffectManager.
static EffectSound CreateSound(string sound_set, vector position, float play_fade_in=0, float stop_fade_out=0, bool loop=false, bool enviroment=false)
Create an EffectSound.
static void DestroyEffect(Effect effect)
Unregisters, stops and frees the Effect.
Manager class for managing Effect (EffectParticle, EffectSound)
proto void CallLater(func fn, int delay=0, bool repeat=false, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
adds call into the queue with given parameters and arguments (arguments are held in memory until the ...
static int GetWheelParticleID(string surface_name)
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native float Length()
Returns length of vector (magnitude)
static float Dot(vector v1, vector v2)
Returns Dot product of vector v1 and vector v2.
static vector Direction(vector p1, vector p2)
Returns direction vector from point p1 to point p2.
proto vector InvMultiply3(vector mat[3])
Invert-transforms vector.
static proto native float Distance(vector v1, vector v2)
Returns the distance between tips of two 3D vectors.
DayZPlayerConstants
defined in C++
Serializer ParamsReadContext
proto native CGame GetGame()
const int CARS_FLUIDS_TICK
proto void Print(void var)
Prints content of variable to console/log.
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
EntityEvent
Entity events for event-mask, or throwing event from code.
const float DAMAGE_RUINED_VALUE
const float DAMAGE_DAMAGED_VALUE
const float LIQUID_THROUGHPUT_CAR_DEFAULT
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static proto float Lerp(float a, float b, float time)
Linearly interpolates between 'a' and 'b' given 'time'.
static proto int AbsInt(int i)
Returns absolute value.
static proto float RandomFloat(float min, float max)
Returns a random float number between and min[inclusive] and max[exclusive].
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'.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].
static proto float AbsFloat(float f)
Returns absolute value.
static int RandomIntInclusive(int min, int max)
Returns a random int number between and min [inclusive] and max [inclusive].
proto native vector dBodyGetVelocityAt(notnull IEntity body, vector globalpos)
proto native vector GetVelocity(notnull IEntity ent)
Returns linear velocity.
proto native float dBodyGetMass(notnull IEntity ent)
const int SAT_DEBUG_ACTION
class JsonUndergroundAreaTriggerData GetPosition
proto native int Length()
Returns length of string.
static proto string Format(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
Gets n-th character from string.
const float VEHICLE_FLIP_ANGLE_TOLERANCE
const bool VEHICLE_FLIP_WHEELS_LIMITED
Angle of the vehicle from the normal of the surface under the vehicle.