657{
661
663 {
664 m_dmgContactCoef = 0.0790;
665
672
673 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
674 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
675
678
681
683
685 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
686 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
687 }
688
690 {
694 }
695
697 {
698 super.EEInit();
699
701 {
708
711 }
712 }
713
715 {
716 return true;
717 }
718
720 {
721 super.GetElectricitySourceDevice();
722
724 }
725
727 {
728 return "CarBattery";
729 }
730
732 {
733 super.OnEngineStart();
734
736 {
739 }
740 }
741
743 {
744 super.OnEngineStop();
745
747 {
750 }
751 }
752
754 {
756 {
758 {
760 }
761 }
762 }
763
765 {
767 }
768
770 {
771 switch (posIdx)
772 {
773 case 0:
775 case 1:
777 case 2:
779 case 3:
781 }
782
783 return 0;
784 }
785
787 {
788 if (!super.CanReleaseAttachment(attachment))
789 {
790 return false;
791 }
792
793 string attType = attachment.GetType();
794 switch (attType)
795 {
796 case "CarBattery":
798 {
799 return false;
800 }
801 break;
802
803 case "SparkPlug":
805 {
806 return false;
807 }
808 break;
809
810 case "CarRadiator":
812 {
813 return false;
814 }
815 break;
816 }
817
818 return true;
819 }
820
822 {
824 }
825
827 {
828 if ( !super.CanDisplayAttachmentCategory(category_name))
829 {
830 return false;
831 }
832
834 if (category_name.
Contains(
"engine"))
835 {
837 {
838 return false;
839 }
840 }
841
842 if (category_name.
Contains(
"trunk"))
843 {
845 {
846 return false;
847 }
848 }
849
850 return true;
851 }
852
854 {
855 if ( !super.CanDisplayCargo() )
856 return false;
857
859 return false;
860
861 return true;
862 }
863
865 {
867
868 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
869 if (!carDoor)
870 {
872 }
873
874 switch (slotType)
875 {
876 case "Sedan_02_Door_1_1":
877 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
878
879 case "Sedan_02_Door_2_1":
880 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
881
882 case "Sedan_02_Door_1_2":
883 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
884
885 case "Sedan_02_Door_2_2":
886 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
887
888 case "Sedan_02_Hood":
889 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
890
891 case "Sedan_02_Trunk":
892 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
893 }
894
896 }
897
898
900 {
901 switch( posIdx )
902 {
903 case 0:
905 return false;
906
907 return true;
908 break;
909
910 case 1:
912 return false;
913
914 return true;
915 break;
916
917 case 2:
919 return false;
920
921 return true;
922 break;
923
924 case 3:
926 return false;
927
928 return true;
929 break;
930 }
931
932 return false;
933 }
934
936 {
937 switch( posIdx )
938 {
939 case 0:
940 return "doors_driver";
941 break;
942 case 1:
943 return "doors_codriver";
944 break;
945 case 2:
946 return "doors_cargo1";
947 break;
948 case 3:
949 return "doors_cargo2";
950 break;
951 }
952
953 return super.GetDoorSelectionNameFromSeatPos(posIdx);
954 }
955
957 {
958 switch( posIdx )
959 {
960 case 0:
961 return "Sedan_02_Door_1_1";
962 break;
963 case 1:
964 return "Sedan_02_Door_2_1";
965 break;
966 case 2:
967 return "Sedan_02_Door_1_2";
968 break;
969 case 3:
970 return "Sedan_02_Door_2_2";
971 break;
972 }
973
974 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
975 }
976
978 {
979 switch ( ctrl )
980 {
982 float newValue = 0;
984 {
985 newValue += 0.25;
986 }
987
989 {
990 newValue += 0.25;
991 }
992
994 {
995 newValue += 0.25;
996 }
997
999 {
1000 newValue += 0.25;
1001 }
1002
1004 break;
1005 }
1006
1007 return super.OnSound(ctrl, oldValue);
1008 }
1009
1011 {
1012 switch( selection )
1013 {
1014 case "doors_driver":
1015 return "DoorsDriver";
1016 case "doors_codriver":
1017 return "DoorsCoDriver";
1018 case "doors_cargo1":
1019 return "DoorsCargo1";
1020 case "doors_cargo2":
1021 return "DoorsCargo2";
1022 case "doors_hood":
1023 return "DoorsHood";
1024 case "doors_trunk":
1025 return "DoorsTrunk";
1026 }
1027
1028 return "";
1029 }
1030
1032 {
1033 return false;
1034 }
1035
1037 {
1038 switch (currentSeat)
1039 {
1040 case 0:
1041 return nextSeat == 1;
1042
1043 case 1:
1044 return nextSeat == 0;
1045
1046 case 2:
1047 return nextSeat == 3;
1048
1049 case 3:
1050 return nextSeat == 2;
1051 }
1052
1053 return false;
1054 }
1055
1057 {
1058 switch (pCurrentSeat)
1059 {
1060 case 0:
1061 return pDoorsSelection == "DoorsDriver";
1062
1063 case 1:
1064 return pDoorsSelection == "DoorsCoDriver";
1065
1066 case 2:
1067 return pDoorsSelection == "DoorsCargo1";
1068
1069 case 3:
1070 return pDoorsSelection == "DoorsCargo2";
1071 }
1072
1073 return false;
1074 }
1075
1077 {
1079 SpawnAdditionalItems();
1080 FillUpCarFluids();
1081
1088
1095
1096
1099 }
1100}
1101
1103{
1105 {
1107 SpawnAdditionalItems();
1108 FillUpCarFluids();
1109
1110 GameInventory inventory = GetInventory();
1115
1122
1123
1126 }
1127}
1128
1130{
1132 {
1134 SpawnAdditionalItems();
1135 FillUpCarFluids();
1136
1137 GameInventory inventory = GetInventory();
1142
1149
1150
1153 }
1154}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
proto native void SetEnginePos(vector pos)
Override the position of engine (model space)
proto native bool EngineIsOn()
Returns true when engine is running, false otherwise.
void SpawnUniversalParts()
string m_EngineStartBattery
ref VehicleHornComponent m_HornComponent
ref VehicleLightsComponent m_LightsComponent
void Sedan_02LightProfileFront()
Sedan_02LightProfileFront VehicleLightProfileFront Sedan_02LightProfileRear()
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
void VehicleLightData(VehicleLightProfileBase profile)
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
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()
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanDisplayCargo()
override EntityAI GetElectricitySourceDevice()
Sedan_02 CarScript OnDebugSpawn()
override void OnEngineStart()
override int GetAnimInstance()
override bool CrewCanGetThrough(int posIdx)
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
override bool IsVitalGlowPlug()
override bool NeedElectricitySourceDevice()
override string GetElectricitySourceDeviceType()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
override bool CanDisplayAttachmentCategory(string category_name)
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()
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.