693{
697
699 {
700
701
702 m_EngineStartOK = "offroad_engine_start_SoundSet";
703 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
704 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
705 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
706 m_EngineStop = "offroad_engine_stop_SoundSet";
707 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
708
709 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
710 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
711 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
712 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
713
714 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
715 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
716
717 SetEnginePos("0 0.7 1.2");
718 }
719
721 {
725 }
726
728 {
729 super.EEInit();
730
732 {
739
742 }
743 }
744
746 {
747 super.OnEngineStart();
748
750 {
753 }
754 }
755
757 {
758 super.OnEngineStop();
759
761 {
764 }
765 }
766
768 {
770 {
772 {
774 }
775 }
776 }
777
779 {
781 }
782
784 {
785 return 3.5;
786 }
787
789 {
790 switch (posIdx)
791 {
792 case 0:
794 case 1:
796 case 2:
798 case 3:
800 }
801
802 return 0;
803
804 }
805
806
808 {
810 }
811
813 {
815 }
816
818 {
819 if (!super.CanReleaseAttachment(attachment))
820 {
821 return false;
822 }
823
825 {
826 string attType = attachment.GetType();
827 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
828 {
829 return false;
830 }
831 }
832
833 return true;
834 }
835
837 {
839 }
840
842 {
843 if (!super.CanDisplayAttachmentCategory(category_name))
844 {
845 return false;
846 }
847
849 if (category_name.
Contains(
"engine"))
850 {
852 {
853 return false;
854 }
855 }
856
857 return true;
858 }
859
861 {
862 if (!super.CanDisplayCargo())
863 {
864 return false;
865 }
866
868 {
869 return false;
870 }
871
872 return true;
873 }
874
876 {
878
879 Class.
CastTo(carDoor, FindAttachmentBySlotName(slotType));
880 if (!carDoor)
881 {
883 }
884
885 switch (slotType)
886 {
887 case "NivaDriverDoors":
888 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
889
890 case "NivaCoDriverDoors":
891 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
892
893 case "NivaHood":
894 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
895
896 case "NivaTrunk":
897 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
898 }
899
901 }
902
904 {
906 switch (posIdx)
907 {
908 case 0:
910 return false;
911 else if (GetAnimationPhase("SeatDriver") > 0.5)
912 return false;
913
914 return true;
915
916 case 1:
918 return false;
919 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
920 return false;
921
922 return true;
923
924 case 2:
926 return false;
927 else if (GetAnimationPhase("SeatDriver") <= 0.5)
928 return false;
929
930 return true;
931
932 case 3:
934 return false;
935 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
936 return false;
937
938 return true;
939 }
940
941 return false;
942 }
943
945 {
946 switch (posIdx)
947 {
948 case 0:
949 case 2:
950 return "doors_driver";
951 case 1:
952 case 3:
953 return "doors_codriver";
954 }
955
956 return super.GetDoorSelectionNameFromSeatPos(posIdx);
957 }
958
960 {
961 switch (posIdx)
962 {
963 case 0:
964 case 2:
965 return "NivaDriverDoors";
966 case 1:
967 case 3:
968 return "NivaCoDriverDoors";
969 }
970
971 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
972 }
973
974
975
977 {
978 float tempCap = 0.0;
979
980 switch (ctrl)
981 {
983 float newValue = 0;
985 {
986 newValue += 0.5;
987 }
988
990 {
991 newValue += 0.5;
992 }
993
995 {
996 newValue += 0.3;
997 }
998
1000 {
1001 newValue -= 0.6;
1002 }
1003
1005 {
1006 newValue -= 0.2;
1007 }
1008
1010 {
1011 newValue -= 0.2;
1012 }
1013
1015 break;
1016 }
1017
1018 return super.OnSound(ctrl, oldValue);
1019 }
1020
1022 {
1023 switch (selection)
1024 {
1025 case "doors_driver":
1026 return "DoorsDriver";
1027 case "doors_codriver":
1028 return "DoorsCoDriver";
1029 case "doors_hood":
1030 return "DoorsHood";
1031 case "doors_trunk":
1032 return "DoorsTrunk";
1033 case "seatback_driver":
1034 return "SeatDriver";
1035 case "seatback_codriver":
1036 return "SeatCoDriver";
1037 }
1038
1039 return "";
1040 }
1041
1043 {
1044 switch (selection)
1045 {
1046 case "seat_driver":
1047 case "seatback_driver":
1048 case "seat_cargo1":
1049 return "seat_con_1_1";
1050 case "seat_codriver":
1051 case "seatback_codriver":
1052 case "seat_cargo2":
1053 return "seat_con_2_1";
1054 }
1055
1056 return "";
1057 }
1058
1060 {
1061 switch (selection)
1062 {
1063 case "seatback_driver":
1064 return 0;
1065 case "seatback_codriver":
1066 return 1;
1067 }
1068
1069 return -1;
1070 }
1071
1073 {
1074 return false;
1075 }
1076
1078 {
1079 return false;
1080 }
1081
1083 {
1084 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1085 return false;
1086
1087 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1088 return false;
1089
1090 switch (currentSeat)
1091 {
1092 case 0:
1093 return nextSeat == 1;
1094
1095 case 1:
1096 return nextSeat == 0;
1097
1098 case 2:
1099 return nextSeat == 3;
1100
1101 case 3:
1102 return nextSeat == 2;
1103 }
1104
1105 return false;
1106 }
1107
1109 {
1110 switch (pCurrentSeat)
1111 {
1112 case 0:
1113 return pDoorsSelection == "DoorsDriver";
1114
1115 case 1:
1116 return pDoorsSelection == "DoorsCoDriver";
1117
1118 case 2:
1119 return pDoorsSelection == "DoorsDriver";
1120
1121 case 3:
1122 return pDoorsSelection == "DoorsCoDriver";
1123 }
1124
1125 return false;
1126 }
1127
1129 {
1130 switch (pDoorSelection)
1131 {
1132 case "DoorsDriver":
1133 return 0;
1134 case "DoorsCoDriver":
1135 return 1;
1136 }
1137
1138 return -1;
1139 }
1140
1142 {
1143 super.SetActions();
1144
1146 }
1147
1149 {
1150 SpawnUniversalParts();
1151 SpawnAdditionalItems();
1152 FillUpCarFluids();
1153
1159
1164
1165
1168 }
1169}
1170
1172{
1174 {
1175 SpawnUniversalParts();
1176 SpawnAdditionalItems();
1177 FillUpCarFluids();
1178
1179 GameInventory inventory = GetInventory();
1184
1189
1190
1193 }
1194}
1195
1197{
1199 {
1200 SpawnUniversalParts();
1201 SpawnAdditionalItems();
1202 FillUpCarFluids();
1203
1204 GameInventory inventory = GetInventory();
1209
1214
1215
1218 }
1219}
void AddAction(typename actionName)
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 void SetActions()
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
override string GetDoorConditionPointFromSelection(string selection)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStop()
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()
class OffroadHatchback extends CarScript OnDebugSpawn()
override int GetSeatIndexFromDoor(string pDoorSelection)
override bool IsVitalTruckBattery()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
override int GetCrewIndex(string selection)
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.