798{
802
804 {
805 m_dmgContactCoef = 0.0790;
806
807 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
808 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
809 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
810 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
811 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
812 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
813
814 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
815 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
816
817 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
818 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
819
820 SetEnginePos("0 0.7 -1.7");
821 }
822
824 {
825 super.EEInit();
826
828 {
835
838 }
839 }
840
842 {
843 super.OnEngineStart();
844
846 {
848 }
849 }
850
852 {
853 super.OnEngineStop();
854
856 {
858 }
859 }
860
862 {
864 {
866 {
868 }
869 }
870 }
871
873 {
875 }
876
878 {
879 switch (posIdx)
880 {
881 case 0:
883 case 1:
885 case 2:
887 case 3:
889 }
890
891 return 0;
892 }
893
894
896 {
898 }
899
900
902 {
904 }
905
907 {
908 if (!super.CanReleaseAttachment(attachment))
909 {
910 return false;
911 }
912
913 string attType = attachment.GetType();
914 switch (attType)
915 {
916 case "CarBattery":
918 {
919 return false;
920 }
921 break;
922
923 case "SparkPlug":
925 {
926 return false;
927 }
928 break;
929
930 case "CarRadiator":
932 {
933 return false;
934 }
935 break;
936 }
937
938 return true;
939 }
940
942 {
944 }
945
947 {
948 if ( !super.CanDisplayAttachmentCategory(category_name))
949 {
950 return false;
951 }
952
954 if (category_name.
Contains(
"engine"))
955 {
957 {
958 return false;
959 }
960 }
961
962 if (category_name.
Contains(
"trunk"))
963 {
965 {
966 return false;
967 }
968 }
969
970 return true;
971 }
972
974 {
975 if ( !super.CanDisplayCargo() )
976 return false;
977
979 return false;
980
981 return true;
982 }
983
985 {
987
988 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
989 if (!carDoor)
990 {
992 }
993
994 switch (slotType)
995 {
996 case "Sedan_02_Door_1_1":
997 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
998
999 case "Sedan_02_Door_2_1":
1000 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1001
1002 case "Sedan_02_Door_1_2":
1003 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
1004
1005 case "Sedan_02_Door_2_2":
1006 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
1007
1008 case "Sedan_02_Hood":
1009 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1010
1011 case "Sedan_02_Trunk":
1012 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1013 }
1014
1016 }
1017
1018
1020 {
1021 switch( posIdx )
1022 {
1023 case 0:
1025 return false;
1026
1027 return true;
1028 break;
1029
1030 case 1:
1032 return false;
1033
1034 return true;
1035 break;
1036
1037 case 2:
1039 return false;
1040
1041 return true;
1042 break;
1043
1044 case 3:
1046 return false;
1047
1048 return true;
1049 break;
1050 }
1051
1052 return false;
1053 }
1054
1056 {
1057 switch( posIdx )
1058 {
1059 case 0:
1060 return "doors_driver";
1061 break;
1062 case 1:
1063 return "doors_codriver";
1064 break;
1065 case 2:
1066 return "doors_cargo1";
1067 break;
1068 case 3:
1069 return "doors_cargo2";
1070 break;
1071 }
1072
1073 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1074 }
1075
1077 {
1078 switch( posIdx )
1079 {
1080 case 0:
1081 return "Sedan_02_Door_1_1";
1082 break;
1083 case 1:
1084 return "Sedan_02_Door_2_1";
1085 break;
1086 case 2:
1087 return "Sedan_02_Door_1_2";
1088 break;
1089 case 3:
1090 return "Sedan_02_Door_2_2";
1091 break;
1092 }
1093
1094 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1095 }
1096
1098 {
1099 switch ( ctrl )
1100 {
1102 float newValue = 0;
1104 {
1105 newValue += 0.25;
1106 }
1107
1109 {
1110 newValue += 0.25;
1111 }
1112
1114 {
1115 newValue += 0.25;
1116 }
1117
1119 {
1120 newValue += 0.25;
1121 }
1122
1124 break;
1125 }
1126
1127 return super.OnSound(ctrl, oldValue);
1128 }
1129
1131 {
1132 switch( selection )
1133 {
1134 case "doors_driver":
1135 return "DoorsDriver";
1136 case "doors_codriver":
1137 return "DoorsCoDriver";
1138 case "doors_cargo1":
1139 return "DoorsCargo1";
1140 case "doors_cargo2":
1141 return "DoorsCargo2";
1142 case "doors_hood":
1143 return "DoorsHood";
1144 case "doors_trunk":
1145 return "DoorsTrunk";
1146 }
1147
1148 return "";
1149 }
1150
1151
1153 {
1154 return false;
1155 }
1156
1158 {
1159 return false;
1160 }
1161
1163 {
1164 switch (currentSeat)
1165 {
1166 case 0:
1167 return nextSeat == 1;
1168
1169 case 1:
1170 return nextSeat == 0;
1171
1172 case 2:
1173 return nextSeat == 3;
1174
1175 case 3:
1176 return nextSeat == 2;
1177 }
1178
1179 return false;
1180 }
1181
1183 {
1184 switch (pCurrentSeat)
1185 {
1186 case 0:
1187 return pDoorsSelection == "DoorsDriver";
1188
1189 case 1:
1190 return pDoorsSelection == "DoorsCoDriver";
1191
1192 case 2:
1193 return pDoorsSelection == "DoorsCargo1";
1194
1195 case 3:
1196 return pDoorsSelection == "DoorsCargo2";
1197 }
1198
1199 return false;
1200 }
1201
1203 {
1204 SpawnUniversalParts();
1205 SpawnAdditionalItems();
1206 FillUpCarFluids();
1207
1208 GetInventory().CreateInInventory("Sedan_02_Wheel");
1209 GetInventory().CreateInInventory("Sedan_02_Wheel");
1210 GetInventory().CreateInInventory("Sedan_02_Wheel");
1211 GetInventory().CreateInInventory("Sedan_02_Wheel");
1212 GetInventory().CreateInInventory("Sedan_02_Wheel");
1213
1214 GetInventory().CreateInInventory("Sedan_02_Door_1_1");
1215 GetInventory().CreateInInventory("Sedan_02_Door_1_2");
1216 GetInventory().CreateInInventory("Sedan_02_Door_2_1");
1217 GetInventory().CreateInInventory("Sedan_02_Door_2_2");
1218 GetInventory().CreateInInventory("Sedan_02_Hood");
1219 GetInventory().CreateInInventory("Sedan_02_Trunk");
1220
1221
1222 GetInventory().CreateInInventory("Sedan_02_Wheel");
1223 GetInventory().CreateInInventory("Sedan_02_Wheel");
1224 }
1225}
1226
1228{
1230 {
1231 SpawnUniversalParts();
1232 SpawnAdditionalItems();
1233 FillUpCarFluids();
1234
1235 GetInventory().CreateInInventory("Sedan_02_Wheel");
1236 GetInventory().CreateInInventory("Sedan_02_Wheel");
1237 GetInventory().CreateInInventory("Sedan_02_Wheel");
1238 GetInventory().CreateInInventory("Sedan_02_Wheel");
1239
1240 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Red");
1241 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Red");
1242 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Red");
1243 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Red");
1244 GetInventory().CreateInInventory("Sedan_02_Hood_Red");
1245 GetInventory().CreateInInventory("Sedan_02_Trunk_Red");
1246
1247
1248 GetInventory().CreateInInventory("Sedan_02_Wheel");
1249 GetInventory().CreateInInventory("Sedan_02_Wheel");
1250 }
1251}
1252
1253class Sedan_02_Grey
extends Sedan_02
1254{
1256 {
1257 SpawnUniversalParts();
1258 SpawnAdditionalItems();
1259 FillUpCarFluids();
1260
1261 GetInventory().CreateInInventory("Sedan_02_Wheel");
1262 GetInventory().CreateInInventory("Sedan_02_Wheel");
1263 GetInventory().CreateInInventory("Sedan_02_Wheel");
1264 GetInventory().CreateInInventory("Sedan_02_Wheel");
1265
1266 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Grey");
1267 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Grey");
1268 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Grey");
1269 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Grey");
1270 GetInventory().CreateInInventory("Sedan_02_Hood_Grey");
1271 GetInventory().CreateInInventory("Sedan_02_Trunk_Grey");
1272
1273
1274 GetInventory().CreateInInventory("Sedan_02_Wheel");
1275 GetInventory().CreateInInventory("Sedan_02_Wheel");
1276 }
1277}
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.
override void OnDebugSpawn()
original Timer deletes m_params which is unwanted
DayZPlayerConstants
defined in C++
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
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.