785{
789
791 {
792 m_dmgContactCoef = 0.0790;
793
794 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
795 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
796 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
797 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
798 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
799 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
800
801 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
802 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
803
804 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
805 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
806
807 SetEnginePos("0 0.7 -1.7");
808 }
809
811 {
815 }
816
818 {
819 super.EEInit();
820
822 {
829
832 }
833 }
834
836 {
837 super.OnEngineStart();
838
840 {
843 }
844 }
845
847 {
848 super.OnEngineStop();
849
851 {
854 }
855 }
856
858 {
860 {
862 {
864 }
865 }
866 }
867
869 {
871 }
872
874 {
875 switch (posIdx)
876 {
877 case 0:
879 case 1:
881 case 2:
883 case 3:
885 }
886
887 return 0;
888 }
889
890
892 {
894 }
895
896
898 {
900 }
901
903 {
904 if (!super.CanReleaseAttachment(attachment))
905 {
906 return false;
907 }
908
909 string attType = attachment.GetType();
910 switch (attType)
911 {
912 case "CarBattery":
914 {
915 return false;
916 }
917 break;
918
919 case "SparkPlug":
921 {
922 return false;
923 }
924 break;
925
926 case "CarRadiator":
928 {
929 return false;
930 }
931 break;
932 }
933
934 return true;
935 }
936
938 {
940 }
941
943 {
944 if ( !super.CanDisplayAttachmentCategory(category_name))
945 {
946 return false;
947 }
948
950 if (category_name.
Contains(
"engine"))
951 {
953 {
954 return false;
955 }
956 }
957
958 if (category_name.
Contains(
"trunk"))
959 {
961 {
962 return false;
963 }
964 }
965
966 return true;
967 }
968
970 {
971 if ( !super.CanDisplayCargo() )
972 return false;
973
975 return false;
976
977 return true;
978 }
979
981 {
983
984 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
985 if (!carDoor)
986 {
988 }
989
990 switch (slotType)
991 {
992 case "Sedan_02_Door_1_1":
993 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
994
995 case "Sedan_02_Door_2_1":
996 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
997
998 case "Sedan_02_Door_1_2":
999 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
1000
1001 case "Sedan_02_Door_2_2":
1002 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
1003
1004 case "Sedan_02_Hood":
1005 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1006
1007 case "Sedan_02_Trunk":
1008 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1009 }
1010
1012 }
1013
1014
1016 {
1017 switch( posIdx )
1018 {
1019 case 0:
1021 return false;
1022
1023 return true;
1024 break;
1025
1026 case 1:
1028 return false;
1029
1030 return true;
1031 break;
1032
1033 case 2:
1035 return false;
1036
1037 return true;
1038 break;
1039
1040 case 3:
1042 return false;
1043
1044 return true;
1045 break;
1046 }
1047
1048 return false;
1049 }
1050
1052 {
1053 switch( posIdx )
1054 {
1055 case 0:
1056 return "doors_driver";
1057 break;
1058 case 1:
1059 return "doors_codriver";
1060 break;
1061 case 2:
1062 return "doors_cargo1";
1063 break;
1064 case 3:
1065 return "doors_cargo2";
1066 break;
1067 }
1068
1069 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1070 }
1071
1073 {
1074 switch( posIdx )
1075 {
1076 case 0:
1077 return "Sedan_02_Door_1_1";
1078 break;
1079 case 1:
1080 return "Sedan_02_Door_2_1";
1081 break;
1082 case 2:
1083 return "Sedan_02_Door_1_2";
1084 break;
1085 case 3:
1086 return "Sedan_02_Door_2_2";
1087 break;
1088 }
1089
1090 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1091 }
1092
1094 {
1095 switch ( ctrl )
1096 {
1098 float newValue = 0;
1100 {
1101 newValue += 0.25;
1102 }
1103
1105 {
1106 newValue += 0.25;
1107 }
1108
1110 {
1111 newValue += 0.25;
1112 }
1113
1115 {
1116 newValue += 0.25;
1117 }
1118
1120 break;
1121 }
1122
1123 return super.OnSound(ctrl, oldValue);
1124 }
1125
1127 {
1128 switch( selection )
1129 {
1130 case "doors_driver":
1131 return "DoorsDriver";
1132 case "doors_codriver":
1133 return "DoorsCoDriver";
1134 case "doors_cargo1":
1135 return "DoorsCargo1";
1136 case "doors_cargo2":
1137 return "DoorsCargo2";
1138 case "doors_hood":
1139 return "DoorsHood";
1140 case "doors_trunk":
1141 return "DoorsTrunk";
1142 }
1143
1144 return "";
1145 }
1146
1147
1149 {
1150 return false;
1151 }
1152
1154 {
1155 return false;
1156 }
1157
1159 {
1160 switch (currentSeat)
1161 {
1162 case 0:
1163 return nextSeat == 1;
1164
1165 case 1:
1166 return nextSeat == 0;
1167
1168 case 2:
1169 return nextSeat == 3;
1170
1171 case 3:
1172 return nextSeat == 2;
1173 }
1174
1175 return false;
1176 }
1177
1179 {
1180 switch (pCurrentSeat)
1181 {
1182 case 0:
1183 return pDoorsSelection == "DoorsDriver";
1184
1185 case 1:
1186 return pDoorsSelection == "DoorsCoDriver";
1187
1188 case 2:
1189 return pDoorsSelection == "DoorsCargo1";
1190
1191 case 3:
1192 return pDoorsSelection == "DoorsCargo2";
1193 }
1194
1195 return false;
1196 }
1197
1199 {
1200 SpawnUniversalParts();
1201 SpawnAdditionalItems();
1202 FillUpCarFluids();
1203
1210
1217
1218
1221 }
1222}
1223
1225{
1227 {
1228 SpawnUniversalParts();
1229 SpawnAdditionalItems();
1230 FillUpCarFluids();
1231
1232 GameInventory inventory = GetInventory();
1237
1244
1245
1248 }
1249}
1250
1251class Sedan_02_Grey
extends Sedan_02
1252{
1254 {
1255 SpawnUniversalParts();
1256 SpawnAdditionalItems();
1257 FillUpCarFluids();
1258
1259 GameInventory inventory = GetInventory();
1264
1271
1272
1275 }
1276}
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.