837{
841
843 {
844 m_dmgContactCoef = 0.0790;
845
846 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
847 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
848 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
849 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
850 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
851 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
852
853 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
854 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
855
856 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
857 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
858
859 SetEnginePos("0 0.7 -1.7");
860 }
861
863 {
867 }
868
870 {
871 super.EEInit();
872
874 {
881
884 }
885 }
886
888 {
889 super.OnEngineStart();
890
892 {
895 }
896 }
897
899 {
900 super.OnEngineStop();
901
903 {
906 }
907 }
908
910 {
912 {
914 {
916 }
917 }
918 }
919
921 {
923 }
924
926 {
927 switch (posIdx)
928 {
929 case 0:
931 case 1:
933 case 2:
935 case 3:
937 }
938
939 return 0;
940 }
941
942
944 {
946 }
947
948
950 {
952 }
953
955 {
956 if (!super.CanReleaseAttachment(attachment))
957 {
958 return false;
959 }
960
961 string attType = attachment.GetType();
962 switch (attType)
963 {
964 case "CarBattery":
966 {
967 return false;
968 }
969 break;
970
971 case "SparkPlug":
973 {
974 return false;
975 }
976 break;
977
978 case "CarRadiator":
980 {
981 return false;
982 }
983 break;
984 }
985
986 return true;
987 }
988
990 {
992 }
993
995 {
996 if ( !super.CanDisplayAttachmentCategory(category_name))
997 {
998 return false;
999 }
1000
1002 if (category_name.
Contains(
"engine"))
1003 {
1005 {
1006 return false;
1007 }
1008 }
1009
1010 if (category_name.
Contains(
"trunk"))
1011 {
1013 {
1014 return false;
1015 }
1016 }
1017
1018 return true;
1019 }
1020
1022 {
1023 if ( !super.CanDisplayCargo() )
1024 return false;
1025
1027 return false;
1028
1029 return true;
1030 }
1031
1033 {
1035
1036 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
1037 if (!carDoor)
1038 {
1040 }
1041
1042 switch (slotType)
1043 {
1044 case "Sedan_02_Door_1_1":
1045 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1046
1047 case "Sedan_02_Door_2_1":
1048 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1049
1050 case "Sedan_02_Door_1_2":
1051 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
1052
1053 case "Sedan_02_Door_2_2":
1054 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
1055
1056 case "Sedan_02_Hood":
1057 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1058
1059 case "Sedan_02_Trunk":
1060 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1061 }
1062
1064 }
1065
1066
1068 {
1069 switch( posIdx )
1070 {
1071 case 0:
1073 return false;
1074
1075 return true;
1076 break;
1077
1078 case 1:
1080 return false;
1081
1082 return true;
1083 break;
1084
1085 case 2:
1087 return false;
1088
1089 return true;
1090 break;
1091
1092 case 3:
1094 return false;
1095
1096 return true;
1097 break;
1098 }
1099
1100 return false;
1101 }
1102
1104 {
1105 switch( posIdx )
1106 {
1107 case 0:
1108 return "doors_driver";
1109 break;
1110 case 1:
1111 return "doors_codriver";
1112 break;
1113 case 2:
1114 return "doors_cargo1";
1115 break;
1116 case 3:
1117 return "doors_cargo2";
1118 break;
1119 }
1120
1121 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1122 }
1123
1125 {
1126 switch( posIdx )
1127 {
1128 case 0:
1129 return "Sedan_02_Door_1_1";
1130 break;
1131 case 1:
1132 return "Sedan_02_Door_2_1";
1133 break;
1134 case 2:
1135 return "Sedan_02_Door_1_2";
1136 break;
1137 case 3:
1138 return "Sedan_02_Door_2_2";
1139 break;
1140 }
1141
1142 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1143 }
1144
1146 {
1147 switch ( ctrl )
1148 {
1150 float newValue = 0;
1152 {
1153 newValue += 0.25;
1154 }
1155
1157 {
1158 newValue += 0.25;
1159 }
1160
1162 {
1163 newValue += 0.25;
1164 }
1165
1167 {
1168 newValue += 0.25;
1169 }
1170
1172 break;
1173 }
1174
1175 return super.OnSound(ctrl, oldValue);
1176 }
1177
1179 {
1180 switch( selection )
1181 {
1182 case "doors_driver":
1183 return "DoorsDriver";
1184 case "doors_codriver":
1185 return "DoorsCoDriver";
1186 case "doors_cargo1":
1187 return "DoorsCargo1";
1188 case "doors_cargo2":
1189 return "DoorsCargo2";
1190 case "doors_hood":
1191 return "DoorsHood";
1192 case "doors_trunk":
1193 return "DoorsTrunk";
1194 }
1195
1196 return "";
1197 }
1198
1199
1201 {
1202 return false;
1203 }
1204
1206 {
1207 return false;
1208 }
1209
1211 {
1212 switch (currentSeat)
1213 {
1214 case 0:
1215 return nextSeat == 1;
1216
1217 case 1:
1218 return nextSeat == 0;
1219
1220 case 2:
1221 return nextSeat == 3;
1222
1223 case 3:
1224 return nextSeat == 2;
1225 }
1226
1227 return false;
1228 }
1229
1231 {
1232 switch (pCurrentSeat)
1233 {
1234 case 0:
1235 return pDoorsSelection == "DoorsDriver";
1236
1237 case 1:
1238 return pDoorsSelection == "DoorsCoDriver";
1239
1240 case 2:
1241 return pDoorsSelection == "DoorsCargo1";
1242
1243 case 3:
1244 return pDoorsSelection == "DoorsCargo2";
1245 }
1246
1247 return false;
1248 }
1249
1251 {
1252 SpawnUniversalParts();
1253 SpawnAdditionalItems();
1254 FillUpCarFluids();
1255
1262
1269
1270
1273 }
1274}
1275
1277{
1279 {
1280 SpawnUniversalParts();
1281 SpawnAdditionalItems();
1282 FillUpCarFluids();
1283
1284 GameInventory inventory = GetInventory();
1289
1296
1297
1300 }
1301}
1302
1303class Sedan_02_Grey
extends Sedan_02
1304{
1306 {
1307 SpawnUniversalParts();
1308 SpawnAdditionalItems();
1309 FillUpCarFluids();
1310
1311 GameInventory inventory = GetInventory();
1316
1323
1324
1327 }
1328}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
class Sedan_02 extends CarScript OnDebugSpawn()
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStop()
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanDisplayCargo()
override void OnEngineStart()
override CarLightBase CreateFrontLight()
override int GetAnimInstance()
override bool CrewCanGetThrough(int posIdx)
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
override bool IsVitalGlowPlug()
override CarRearLightBase CreateRearLight()
override bool IsVitalTruckBattery()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
override bool CanDisplayAttachmentCategory(string category_name)
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
Super root of all classes in Enforce script.
EntityAI CreateInInventory(string type)
creates entity somewhere in inventory
script counterpart to engine's class Inventory
override void OnDebugSpawn()
original Timer deletes m_params which is unwanted
DayZPlayerConstants
defined in C++
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
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.
proto int ToLower()
Changes string to lowercase. Returns length.