731{
735
737 {
738 m_dmgContactCoef = 0.0790;
739
740 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
741 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
742 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
743 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
744 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
745 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
746
747 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
748 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
749
750 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
751 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
752
753 SetEnginePos("0 0.7 -1.7");
754 }
755
757 {
761 }
762
764 {
765 super.EEInit();
766
768 {
775
778 }
779 }
780
782 {
783 super.OnEngineStart();
784
786 {
789 }
790 }
791
793 {
794 super.OnEngineStop();
795
797 {
800 }
801 }
802
804 {
806 {
808 {
810 }
811 }
812 }
813
815 {
817 }
818
820 {
821 switch (posIdx)
822 {
823 case 0:
825 case 1:
827 case 2:
829 case 3:
831 }
832
833 return 0;
834 }
835
836
838 {
840 }
841
842
844 {
846 }
847
849 {
850 if (!super.CanReleaseAttachment(attachment))
851 {
852 return false;
853 }
854
855 string attType = attachment.GetType();
856 switch (attType)
857 {
858 case "CarBattery":
860 {
861 return false;
862 }
863 break;
864
865 case "SparkPlug":
867 {
868 return false;
869 }
870 break;
871
872 case "CarRadiator":
874 {
875 return false;
876 }
877 break;
878 }
879
880 return true;
881 }
882
884 {
886 }
887
889 {
890 if ( !super.CanDisplayAttachmentCategory(category_name))
891 {
892 return false;
893 }
894
896 if (category_name.
Contains(
"engine"))
897 {
899 {
900 return false;
901 }
902 }
903
904 if (category_name.
Contains(
"trunk"))
905 {
907 {
908 return false;
909 }
910 }
911
912 return true;
913 }
914
916 {
917 if ( !super.CanDisplayCargo() )
918 return false;
919
921 return false;
922
923 return true;
924 }
925
927 {
929
930 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
931 if (!carDoor)
932 {
934 }
935
936 switch (slotType)
937 {
938 case "Sedan_02_Door_1_1":
939 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
940
941 case "Sedan_02_Door_2_1":
942 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
943
944 case "Sedan_02_Door_1_2":
945 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
946
947 case "Sedan_02_Door_2_2":
948 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
949
950 case "Sedan_02_Hood":
951 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
952
953 case "Sedan_02_Trunk":
954 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
955 }
956
958 }
959
960
962 {
963 switch( posIdx )
964 {
965 case 0:
967 return false;
968
969 return true;
970 break;
971
972 case 1:
974 return false;
975
976 return true;
977 break;
978
979 case 2:
981 return false;
982
983 return true;
984 break;
985
986 case 3:
988 return false;
989
990 return true;
991 break;
992 }
993
994 return false;
995 }
996
998 {
999 switch( posIdx )
1000 {
1001 case 0:
1002 return "doors_driver";
1003 break;
1004 case 1:
1005 return "doors_codriver";
1006 break;
1007 case 2:
1008 return "doors_cargo1";
1009 break;
1010 case 3:
1011 return "doors_cargo2";
1012 break;
1013 }
1014
1015 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1016 }
1017
1019 {
1020 switch( posIdx )
1021 {
1022 case 0:
1023 return "Sedan_02_Door_1_1";
1024 break;
1025 case 1:
1026 return "Sedan_02_Door_2_1";
1027 break;
1028 case 2:
1029 return "Sedan_02_Door_1_2";
1030 break;
1031 case 3:
1032 return "Sedan_02_Door_2_2";
1033 break;
1034 }
1035
1036 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1037 }
1038
1040 {
1041 switch ( ctrl )
1042 {
1044 float newValue = 0;
1046 {
1047 newValue += 0.25;
1048 }
1049
1051 {
1052 newValue += 0.25;
1053 }
1054
1056 {
1057 newValue += 0.25;
1058 }
1059
1061 {
1062 newValue += 0.25;
1063 }
1064
1066 break;
1067 }
1068
1069 return super.OnSound(ctrl, oldValue);
1070 }
1071
1073 {
1074 switch( selection )
1075 {
1076 case "doors_driver":
1077 return "DoorsDriver";
1078 case "doors_codriver":
1079 return "DoorsCoDriver";
1080 case "doors_cargo1":
1081 return "DoorsCargo1";
1082 case "doors_cargo2":
1083 return "DoorsCargo2";
1084 case "doors_hood":
1085 return "DoorsHood";
1086 case "doors_trunk":
1087 return "DoorsTrunk";
1088 }
1089
1090 return "";
1091 }
1092
1093
1095 {
1096 return false;
1097 }
1098
1100 {
1101 return false;
1102 }
1103
1105 {
1106 switch (currentSeat)
1107 {
1108 case 0:
1109 return nextSeat == 1;
1110
1111 case 1:
1112 return nextSeat == 0;
1113
1114 case 2:
1115 return nextSeat == 3;
1116
1117 case 3:
1118 return nextSeat == 2;
1119 }
1120
1121 return false;
1122 }
1123
1125 {
1126 switch (pCurrentSeat)
1127 {
1128 case 0:
1129 return pDoorsSelection == "DoorsDriver";
1130
1131 case 1:
1132 return pDoorsSelection == "DoorsCoDriver";
1133
1134 case 2:
1135 return pDoorsSelection == "DoorsCargo1";
1136
1137 case 3:
1138 return pDoorsSelection == "DoorsCargo2";
1139 }
1140
1141 return false;
1142 }
1143
1145 {
1146 SpawnUniversalParts();
1147 SpawnAdditionalItems();
1148 FillUpCarFluids();
1149
1156
1163
1164
1167 }
1168}
1169
1171{
1173 {
1174 SpawnUniversalParts();
1175 SpawnAdditionalItems();
1176 FillUpCarFluids();
1177
1178 GameInventory inventory = GetInventory();
1183
1190
1191
1194 }
1195}
1196
1197class Sedan_02_Grey
extends Sedan_02
1198{
1200 {
1201 SpawnUniversalParts();
1202 SpawnAdditionalItems();
1203 FillUpCarFluids();
1204
1205 GameInventory inventory = GetInventory();
1210
1217
1218
1221 }
1222}
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.