797{
801
803 {
804
805
806 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
807 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
808 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
809 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
810 m_EngineStop = "CivilianSedan_engine_stop_SoundSet";
811 m_EngineStopFuel = "CivilianSedan_engine_stop_fuel_SoundSet";
812
813 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
814 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
815
816 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
817 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
818
819 SetEnginePos("0 0.7 1.6");
820 }
821
823 {
827 }
828
830 {
831 super.EEInit();
832
834 {
841
844 }
845 }
846
848 {
849 super.OnEngineStart();
850
852 {
855 }
856 }
857
859 {
860 super.OnEngineStop();
861
863 {
866 }
867 }
868
870 {
872 {
874 {
876 }
877 }
878 }
879
881 {
883 }
884
886 {
887 return 4.5;
888 }
889
891 {
892 switch (posIdx)
893 {
894 case 0:
896 case 1:
898 case 2:
900 case 3:
902 }
903
904 return 0;
905 }
906
907
909 {
911 }
912
913
915 {
917 }
918
920 {
921 if( !super.CanReleaseAttachment( attachment ) )
922 return false;
923
924 string attType = attachment.GetType();
925
927 {
928 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
929 return false;
930 }
931
932 return true;
933 }
934
936 {
938 }
939
941 {
942
943 if (!super.CanDisplayAttachmentCategory(category_name))
944 return false;
945
946
948 if (category_name.
Contains(
"engine"))
949 {
951 return false;
952 }
953
954 return true;
955 }
956
958 {
959 if ( !super.CanDisplayCargo() )
960 return false;
961
963 return false;
964
965 return true;
966 }
967
969 {
971
972 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
973 if (!carDoor)
974 {
976 }
977
978 switch (slotType)
979 {
980 case "CivSedanDriverDoors":
981 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
982 break;
983
984 case "CivSedanCoDriverDoors":
985 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
986 break;
987
988 case "CivSedanCargo1Doors":
989 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
990 break;
991
992 case "CivSedanCargo2Doors":
993 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
994 break;
995
996 case "CivSedanTrunk":
997 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
998 break;
999
1000 case "CivSedanHood":
1001 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1002 break;
1003 }
1004
1006 }
1007
1008
1010 {
1011 switch( posIdx )
1012 {
1013 case 0:
1015 return false;
1016
1017 return true;
1018 break;
1019
1020 case 1:
1022 return false;
1023
1024 return true;
1025 break;
1026
1027 case 2:
1029 return false;
1030
1031 return true;
1032 break;
1033
1034 case 3:
1036 return false;
1037
1038 return true;
1039 break;
1040 }
1041
1042 return false;
1043 }
1044
1046 {
1047 switch( posIdx )
1048 {
1049 case 0:
1050 return "doors_driver";
1051 break;
1052 case 1:
1053 return "doors_codriver";
1054 break;
1055 case 2:
1056 return "doors_cargo1";
1057 break;
1058 case 3:
1059 return "doors_cargo2";
1060 break;
1061 }
1062
1063 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1064 }
1065
1067 {
1068 switch( posIdx )
1069 {
1070 case 0:
1071 return "CivSedanDriverDoors";
1072 break;
1073 case 1:
1074 return "CivSedanCoDriverDoors";
1075 break;
1076 case 2:
1077 return "CivSedanCargo1Doors";
1078 break;
1079 case 3:
1080 return "CivSedanCargo2Doors";
1081 break;
1082 }
1083
1084 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1085 }
1086
1087
1088
1090 {
1091 switch (ctrl)
1092 {
1094 float newValue = 0;
1096 {
1097 newValue += 0.25;
1098 }
1099
1101 {
1102 newValue += 0.25;
1103 }
1104
1106 {
1107 newValue += 0.25;
1108 }
1109
1111 {
1112 newValue += 0.25;
1113 }
1114
1116 {
1117 newValue -= 0.6;
1118 }
1119
1121 {
1122 newValue -= 0.6;
1123 }
1124
1126 break;
1127 }
1128
1129 return super.OnSound(ctrl, oldValue);
1130 }
1131
1133 {
1134 switch (selection)
1135 {
1136 case "doors_driver":
1137 return "DoorsDriver";
1138 case "doors_codriver":
1139 return "DoorsCoDriver";
1140 case "doors_cargo1":
1141 return "DoorsCargo1";
1142 case "doors_cargo2":
1143 return "DoorsCargo2";
1144 case "doors_hood":
1145 return "DoorsHood";
1146 case "doors_trunk":
1147 return "DoorsTrunk";
1148 }
1149
1150 return "";
1151 }
1152
1154 {
1155 return false;
1156 }
1157
1159 {
1160 return false;
1161 }
1162
1164 {
1165 switch (currentSeat)
1166 {
1167 case 0:
1168 return nextSeat == 1;
1169
1170 case 1:
1171 return nextSeat == 0;
1172
1173 case 2:
1174 return nextSeat == 3;
1175
1176 case 3:
1177 return nextSeat == 2;
1178 }
1179
1180 return false;
1181 }
1182
1184 {
1185 switch (pCurrentSeat)
1186 {
1187 case 0:
1188 return pDoorsSelection == "DoorsDriver";
1189
1190 case 1:
1191 return pDoorsSelection == "DoorsCoDriver";
1192
1193 case 2:
1194 return pDoorsSelection == "DoorsCargo1";
1195
1196 case 3:
1197 return pDoorsSelection == "DoorsCargo2";
1198 }
1199
1200 return false;
1201 }
1202
1204 {
1205 SpawnUniversalParts();
1206 SpawnAdditionalItems();
1207 FillUpCarFluids();
1208
1214
1221
1222
1225 }
1226
1228 {
1229 return 1.5;
1230 }
1231}
1232
1234{
1236 {
1237 SpawnUniversalParts();
1238 SpawnAdditionalItems();
1239 FillUpCarFluids();
1240
1241 GameInventory inventory = GetInventory();
1246
1253
1254
1257 }
1258}
1259
1261{
1263 {
1264 SpawnUniversalParts();
1265 SpawnAdditionalItems();
1266 FillUpCarFluids();
1267
1268 GameInventory inventory = GetInventory();
1273
1280
1281
1284 }
1285}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
override float GetPushForceCoefficientMultiplier()
class CivilianSedan extends CarScript OnDebugSpawn()
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
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()
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override float GetTransportCameraDistance()
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)
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
override void OnDebugSpawn()
Super root of all classes in Enforce script.
EntityAI CreateInInventory(string type)
creates entity somewhere in inventory
script counterpart to engine's class Inventory
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.