793{
797
799 {
800 m_dmgContactCoef = 0.0790;
801
802 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
803 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
804 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
805 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
806 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
807 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
808
809 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
810 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
811
812 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
813 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
814
815 SetEnginePos("0 0.7 -1.7");
816 }
817
819 {
820 super.EEInit();
821
823 {
830
833 }
834 }
835
837 {
838 super.OnEngineStart();
839
841 {
843 }
844 }
845
847 {
848 super.OnEngineStop();
849
851 {
853 }
854 }
855
857 {
859 {
861 {
863 }
864 }
865 }
866
868 {
870 }
871
873 {
874 switch (posIdx)
875 {
876 case 0:
878 case 1:
880 case 2:
882 case 3:
884 }
885
886 return 0;
887 }
888
889
891 {
893 }
894
895
897 {
899 }
900
902 {
903 if (!super.CanReleaseAttachment(attachment))
904 {
905 return false;
906 }
907
908 string attType = attachment.GetType();
909 switch (attType)
910 {
911 case "CarBattery":
913 {
914 return false;
915 }
916 break;
917
918 case "SparkPlug":
920 {
921 return false;
922 }
923 break;
924
925 case "CarRadiator":
927 {
928 return false;
929 }
930 break;
931 }
932
933 return true;
934 }
935
937 {
939 }
940
942 {
943 if ( !super.CanDisplayAttachmentCategory(category_name))
944 {
945 return false;
946 }
947
949 if (category_name.
Contains(
"engine"))
950 {
952 {
953 return false;
954 }
955 }
956
957 if (category_name.
Contains(
"trunk"))
958 {
960 {
961 return false;
962 }
963 }
964
965 return true;
966 }
967
969 {
970 if ( !super.CanDisplayCargo() )
971 return false;
972
974 return false;
975
976 return true;
977 }
978
980 {
982
983 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
984 if (!carDoor)
985 {
987 }
988
989 switch (slotType)
990 {
991 case "Sedan_02_Door_1_1":
992 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
993
994 case "Sedan_02_Door_2_1":
995 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
996
997 case "Sedan_02_Door_1_2":
998 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
999
1000 case "Sedan_02_Door_2_2":
1001 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
1002
1003 case "Sedan_02_Hood":
1004 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1005
1006 case "Sedan_02_Trunk":
1007 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1008 }
1009
1011 }
1012
1013
1015 {
1016 switch( posIdx )
1017 {
1018 case 0:
1020 return false;
1021
1022 return true;
1023 break;
1024
1025 case 1:
1027 return false;
1028
1029 return true;
1030 break;
1031
1032 case 2:
1034 return false;
1035
1036 return true;
1037 break;
1038
1039 case 3:
1041 return false;
1042
1043 return true;
1044 break;
1045 }
1046
1047 return false;
1048 }
1049
1051 {
1052 switch( posIdx )
1053 {
1054 case 0:
1055 return "doors_driver";
1056 break;
1057 case 1:
1058 return "doors_codriver";
1059 break;
1060 case 2:
1061 return "doors_cargo1";
1062 break;
1063 case 3:
1064 return "doors_cargo2";
1065 break;
1066 }
1067
1068 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1069 }
1070
1072 {
1073 switch( posIdx )
1074 {
1075 case 0:
1076 return "Sedan_02_Door_1_1";
1077 break;
1078 case 1:
1079 return "Sedan_02_Door_2_1";
1080 break;
1081 case 2:
1082 return "Sedan_02_Door_1_2";
1083 break;
1084 case 3:
1085 return "Sedan_02_Door_2_2";
1086 break;
1087 }
1088
1089 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1090 }
1091
1093 {
1094 switch ( ctrl )
1095 {
1097 float newValue = 0;
1099 {
1100 newValue += 0.25;
1101 }
1102
1104 {
1105 newValue += 0.25;
1106 }
1107
1109 {
1110 newValue += 0.25;
1111 }
1112
1114 {
1115 newValue += 0.25;
1116 }
1117
1119 break;
1120 }
1121
1122 return super.OnSound(ctrl, oldValue);
1123 }
1124
1126 {
1127 switch( selection )
1128 {
1129 case "doors_driver":
1130 return "DoorsDriver";
1131 case "doors_codriver":
1132 return "DoorsCoDriver";
1133 case "doors_cargo1":
1134 return "DoorsCargo1";
1135 case "doors_cargo2":
1136 return "DoorsCargo2";
1137 case "doors_hood":
1138 return "DoorsHood";
1139 case "doors_trunk":
1140 return "DoorsTrunk";
1141 }
1142
1143 return "";
1144 }
1145
1146
1148 {
1149 return false;
1150 }
1151
1153 {
1154 return false;
1155 }
1156
1158 {
1159 switch (currentSeat)
1160 {
1161 case 0:
1162 return nextSeat == 1;
1163
1164 case 1:
1165 return nextSeat == 0;
1166
1167 case 2:
1168 return nextSeat == 3;
1169
1170 case 3:
1171 return nextSeat == 2;
1172 }
1173
1174 return false;
1175 }
1176
1178 {
1179 switch (pCurrentSeat)
1180 {
1181 case 0:
1182 return pDoorsSelection == "DoorsDriver";
1183
1184 case 1:
1185 return pDoorsSelection == "DoorsCoDriver";
1186
1187 case 2:
1188 return pDoorsSelection == "DoorsCargo1";
1189
1190 case 3:
1191 return pDoorsSelection == "DoorsCargo2";
1192 }
1193
1194 return false;
1195 }
1196
1198 {
1199 SpawnUniversalParts();
1200 SpawnAdditionalItems();
1201 FillUpCarFluids();
1202
1203 GetInventory().CreateInInventory("Sedan_02_Wheel");
1204 GetInventory().CreateInInventory("Sedan_02_Wheel");
1205 GetInventory().CreateInInventory("Sedan_02_Wheel");
1206 GetInventory().CreateInInventory("Sedan_02_Wheel");
1207 GetInventory().CreateInInventory("Sedan_02_Wheel");
1208
1209 GetInventory().CreateInInventory("Sedan_02_Door_1_1");
1210 GetInventory().CreateInInventory("Sedan_02_Door_1_2");
1211 GetInventory().CreateInInventory("Sedan_02_Door_2_1");
1212 GetInventory().CreateInInventory("Sedan_02_Door_2_2");
1213 GetInventory().CreateInInventory("Sedan_02_Hood");
1214 GetInventory().CreateInInventory("Sedan_02_Trunk");
1215
1216
1217 GetInventory().CreateInInventory("Sedan_02_Wheel");
1218 GetInventory().CreateInInventory("Sedan_02_Wheel");
1219 }
1220}
1221
1223{
1225 {
1226 SpawnUniversalParts();
1227 SpawnAdditionalItems();
1228 FillUpCarFluids();
1229
1230 GetInventory().CreateInInventory("Sedan_02_Wheel");
1231 GetInventory().CreateInInventory("Sedan_02_Wheel");
1232 GetInventory().CreateInInventory("Sedan_02_Wheel");
1233 GetInventory().CreateInInventory("Sedan_02_Wheel");
1234
1235 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Red");
1236 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Red");
1237 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Red");
1238 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Red");
1239 GetInventory().CreateInInventory("Sedan_02_Hood_Red");
1240 GetInventory().CreateInInventory("Sedan_02_Trunk_Red");
1241
1242
1243 GetInventory().CreateInInventory("Sedan_02_Wheel");
1244 GetInventory().CreateInInventory("Sedan_02_Wheel");
1245 }
1246}
1247
1248class Sedan_02_Grey
extends Sedan_02
1249{
1251 {
1252 SpawnUniversalParts();
1253 SpawnAdditionalItems();
1254 FillUpCarFluids();
1255
1256 GetInventory().CreateInInventory("Sedan_02_Wheel");
1257 GetInventory().CreateInInventory("Sedan_02_Wheel");
1258 GetInventory().CreateInInventory("Sedan_02_Wheel");
1259 GetInventory().CreateInInventory("Sedan_02_Wheel");
1260
1261 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Grey");
1262 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Grey");
1263 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Grey");
1264 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Grey");
1265 GetInventory().CreateInInventory("Sedan_02_Hood_Grey");
1266 GetInventory().CreateInInventory("Sedan_02_Trunk_Grey");
1267
1268
1269 GetInventory().CreateInInventory("Sedan_02_Wheel");
1270 GetInventory().CreateInInventory("Sedan_02_Wheel");
1271 }
1272}
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.