614{
618
620 {
621 m_dmgContactCoef = 0.0790;
622
629
630 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
631 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
632
635
638
640
642 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
643 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
644 }
645
647 {
651 }
652
654 {
655 super.EEInit();
656
658 {
665
668 }
669 }
670
672 {
673 return true;
674 }
675
677 {
678 super.GetElectricitySourceDevice();
679
681 }
682
684 {
685 return "CarBattery";
686 }
687
689 {
690 super.OnEngineStart();
691
693 {
696 }
697 }
698
700 {
701 super.OnEngineStop();
702
704 {
707 }
708 }
709
711 {
713 {
715 {
717 }
718 }
719 }
720
722 {
724 }
725
727 {
728 switch (posIdx)
729 {
730 case 0:
732 case 1:
734 case 2:
736 case 3:
738 }
739
740 return 0;
741 }
742
744 {
745 if (!super.CanReleaseAttachment(attachment))
746 {
747 return false;
748 }
749
750 string attType = attachment.GetType();
751 switch (attType)
752 {
753 case "CarBattery":
755 {
756 return false;
757 }
758 break;
759
760 case "SparkPlug":
762 {
763 return false;
764 }
765 break;
766
767 case "CarRadiator":
769 {
770 return false;
771 }
772 break;
773 }
774
775 return true;
776 }
777
779 {
781 }
782
784 {
785 if ( !super.CanDisplayAttachmentCategory(category_name))
786 {
787 return false;
788 }
789
791 if (category_name.
Contains(
"engine"))
792 {
794 {
795 return false;
796 }
797 }
798
799 if (category_name.
Contains(
"trunk"))
800 {
802 {
803 return false;
804 }
805 }
806
807 return true;
808 }
809
811 {
812 if ( !super.CanDisplayCargo() )
813 return false;
814
816 return false;
817
818 return true;
819 }
820
822 {
824
825 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
826 if (!carDoor)
827 {
829 }
830
831 switch (slotType)
832 {
833 case "Sedan_02_Door_1_1":
834 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
835
836 case "Sedan_02_Door_2_1":
837 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
838
839 case "Sedan_02_Door_1_2":
840 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
841
842 case "Sedan_02_Door_2_2":
843 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
844
845 case "Sedan_02_Hood":
846 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
847
848 case "Sedan_02_Trunk":
849 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
850 }
851
853 }
854
855
857 {
858 switch( posIdx )
859 {
860 case 0:
862 return false;
863
864 return true;
865 break;
866
867 case 1:
869 return false;
870
871 return true;
872 break;
873
874 case 2:
876 return false;
877
878 return true;
879 break;
880
881 case 3:
883 return false;
884
885 return true;
886 break;
887 }
888
889 return false;
890 }
891
893 {
894 switch( posIdx )
895 {
896 case 0:
897 return "doors_driver";
898 break;
899 case 1:
900 return "doors_codriver";
901 break;
902 case 2:
903 return "doors_cargo1";
904 break;
905 case 3:
906 return "doors_cargo2";
907 break;
908 }
909
910 return super.GetDoorSelectionNameFromSeatPos(posIdx);
911 }
912
914 {
915 switch( posIdx )
916 {
917 case 0:
918 return "Sedan_02_Door_1_1";
919 break;
920 case 1:
921 return "Sedan_02_Door_2_1";
922 break;
923 case 2:
924 return "Sedan_02_Door_1_2";
925 break;
926 case 3:
927 return "Sedan_02_Door_2_2";
928 break;
929 }
930
931 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
932 }
933
935 {
936 switch ( ctrl )
937 {
939 float newValue = 0;
941 {
942 newValue += 0.25;
943 }
944
946 {
947 newValue += 0.25;
948 }
949
951 {
952 newValue += 0.25;
953 }
954
956 {
957 newValue += 0.25;
958 }
959
961 break;
962 }
963
964 return super.OnSound(ctrl, oldValue);
965 }
966
968 {
969 switch( selection )
970 {
971 case "doors_driver":
972 return "DoorsDriver";
973 case "doors_codriver":
974 return "DoorsCoDriver";
975 case "doors_cargo1":
976 return "DoorsCargo1";
977 case "doors_cargo2":
978 return "DoorsCargo2";
979 case "doors_hood":
980 return "DoorsHood";
981 case "doors_trunk":
982 return "DoorsTrunk";
983 }
984
985 return "";
986 }
987
989 {
990 return false;
991 }
992
994 {
995 switch (currentSeat)
996 {
997 case 0:
998 return nextSeat == 1;
999
1000 case 1:
1001 return nextSeat == 0;
1002
1003 case 2:
1004 return nextSeat == 3;
1005
1006 case 3:
1007 return nextSeat == 2;
1008 }
1009
1010 return false;
1011 }
1012
1014 {
1015 switch (pCurrentSeat)
1016 {
1017 case 0:
1018 return pDoorsSelection == "DoorsDriver";
1019
1020 case 1:
1021 return pDoorsSelection == "DoorsCoDriver";
1022
1023 case 2:
1024 return pDoorsSelection == "DoorsCargo1";
1025
1026 case 3:
1027 return pDoorsSelection == "DoorsCargo2";
1028 }
1029
1030 return false;
1031 }
1032
1034 {
1036 SpawnAdditionalItems();
1037 FillUpCarFluids();
1038
1045
1052
1053
1056 }
1057}
1058
1060{
1062 {
1064 SpawnAdditionalItems();
1065 FillUpCarFluids();
1066
1067 GameInventory inventory = GetInventory();
1072
1079
1080
1083 }
1084}
1085
1087{
1089 {
1091 SpawnAdditionalItems();
1092 FillUpCarFluids();
1093
1094 GameInventory inventory = GetInventory();
1099
1106
1107
1110 }
1111}
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.