609{
613
615 {
616 m_dmgContactCoef = 0.0790;
617
618 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
619 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
620 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
621 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
622 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
623 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
624
625 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
626 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
627
628 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
629 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
630
631 SetEnginePos("0 0.7 -1.7");
632 }
633
635 {
636 super.EEInit();
637
639 {
646
649 }
650 }
651
653 {
654 super.OnEngineStart();
655
657 {
659 }
660 }
661
663 {
664 super.OnEngineStop();
665
667 {
669 }
670 }
671
673 {
675 {
677 {
679 }
680 }
681 }
682
684 {
686 }
687
689 {
690 switch (posIdx)
691 {
692 case 0:
694 case 1:
696 case 2:
698 case 3:
700 }
701
702 return 0;
703 }
704
705
707 {
709 }
710
711
713 {
715 }
716
718 {
719 if (!super.CanReleaseAttachment(attachment))
720 {
721 return false;
722 }
723
724 string attType = attachment.GetType();
725 switch (attType)
726 {
727 case "CarBattery":
729 {
730 return false;
731 }
732 break;
733
734 case "SparkPlug":
736 {
737 return false;
738 }
739 break;
740
741 case "CarRadiator":
743 {
744 return false;
745 }
746 break;
747 }
748
749 return true;
750 }
751
753 {
755 }
756
758 {
759 if ( !super.CanDisplayAttachmentCategory(category_name))
760 {
761 return false;
762 }
763
765 if (category_name.
Contains(
"engine"))
766 {
768 {
769 return false;
770 }
771 }
772
773 if (category_name.
Contains(
"trunk"))
774 {
776 {
777 return false;
778 }
779 }
780
781 return true;
782 }
783
785 {
786 if ( !super.CanDisplayCargo() )
787 return false;
788
790 return false;
791
792 return true;
793 }
794
796 {
798
799 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
800 if (!carDoor)
801 {
803 }
804
805 switch (slotType)
806 {
807 case "Sedan_02_Door_1_1":
808 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
809
810 case "Sedan_02_Door_2_1":
811 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
812
813 case "Sedan_02_Door_1_2":
814 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
815
816 case "Sedan_02_Door_2_2":
817 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
818
819 case "Sedan_02_Hood":
820 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
821
822 case "Sedan_02_Trunk":
823 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
824 }
825
827 }
828
829
831 {
832 switch( posIdx )
833 {
834 case 0:
836 return false;
837
838 return true;
839 break;
840
841 case 1:
843 return false;
844
845 return true;
846 break;
847
848 case 2:
850 return false;
851
852 return true;
853 break;
854
855 case 3:
857 return false;
858
859 return true;
860 break;
861 }
862
863 return false;
864 }
865
867 {
868 switch( posIdx )
869 {
870 case 0:
871 return "doors_driver";
872 break;
873 case 1:
874 return "doors_codriver";
875 break;
876 case 2:
877 return "doors_cargo1";
878 break;
879 case 3:
880 return "doors_cargo2";
881 break;
882 }
883
884 return super.GetDoorSelectionNameFromSeatPos(posIdx);
885 }
886
888 {
889 switch( posIdx )
890 {
891 case 0:
892 return "Sedan_02_Door_1_1";
893 break;
894 case 1:
895 return "Sedan_02_Door_2_1";
896 break;
897 case 2:
898 return "Sedan_02_Door_1_2";
899 break;
900 case 3:
901 return "Sedan_02_Door_2_2";
902 break;
903 }
904
905 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
906 }
907
909 {
910 switch ( ctrl )
911 {
913 float newValue = 0;
915 {
916 newValue += 0.25;
917 }
918
920 {
921 newValue += 0.25;
922 }
923
925 {
926 newValue += 0.25;
927 }
928
930 {
931 newValue += 0.25;
932 }
933
935 break;
936 }
937
938 return super.OnSound(ctrl, oldValue);
939 }
940
942 {
943 switch( selection )
944 {
945 case "doors_driver":
946 return "DoorsDriver";
947 case "doors_codriver":
948 return "DoorsCoDriver";
949 case "doors_cargo1":
950 return "DoorsCargo1";
951 case "doors_cargo2":
952 return "DoorsCargo2";
953 case "doors_hood":
954 return "DoorsHood";
955 case "doors_trunk":
956 return "DoorsTrunk";
957 }
958
959 return "";
960 }
961
962
964 {
965 return false;
966 }
967
969 {
970 return false;
971 }
972
974 {
975 switch (currentSeat)
976 {
977 case 0:
978 return nextSeat == 1;
979
980 case 1:
981 return nextSeat == 0;
982
983 case 2:
984 return nextSeat == 3;
985
986 case 3:
987 return nextSeat == 2;
988 }
989
990 return false;
991 }
992
994 {
995 switch (pCurrentSeat)
996 {
997 case 0:
998 return pDoorsSelection == "DoorsDriver";
999
1000 case 1:
1001 return pDoorsSelection == "DoorsCoDriver";
1002
1003 case 2:
1004 return pDoorsSelection == "DoorsCargo1";
1005
1006 case 3:
1007 return pDoorsSelection == "DoorsCargo2";
1008 }
1009
1010 return false;
1011 }
1012
1014 {
1015 SpawnUniversalParts();
1016 SpawnAdditionalItems();
1017 FillUpCarFluids();
1018
1019 GetInventory().CreateInInventory("Sedan_02_Wheel");
1020 GetInventory().CreateInInventory("Sedan_02_Wheel");
1021 GetInventory().CreateInInventory("Sedan_02_Wheel");
1022 GetInventory().CreateInInventory("Sedan_02_Wheel");
1023 GetInventory().CreateInInventory("Sedan_02_Wheel");
1024
1025 GetInventory().CreateInInventory("Sedan_02_Door_1_1");
1026 GetInventory().CreateInInventory("Sedan_02_Door_1_2");
1027 GetInventory().CreateInInventory("Sedan_02_Door_2_1");
1028 GetInventory().CreateInInventory("Sedan_02_Door_2_2");
1029 GetInventory().CreateInInventory("Sedan_02_Hood");
1030 GetInventory().CreateInInventory("Sedan_02_Trunk");
1031
1032
1033 GetInventory().CreateInInventory("Sedan_02_Wheel");
1034 GetInventory().CreateInInventory("Sedan_02_Wheel");
1035 }
1036}
1037
1039{
1041 {
1042 SpawnUniversalParts();
1043 SpawnAdditionalItems();
1044 FillUpCarFluids();
1045
1046 GetInventory().CreateInInventory("Sedan_02_Wheel");
1047 GetInventory().CreateInInventory("Sedan_02_Wheel");
1048 GetInventory().CreateInInventory("Sedan_02_Wheel");
1049 GetInventory().CreateInInventory("Sedan_02_Wheel");
1050
1051 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Red");
1052 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Red");
1053 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Red");
1054 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Red");
1055 GetInventory().CreateInInventory("Sedan_02_Hood_Red");
1056 GetInventory().CreateInInventory("Sedan_02_Trunk_Red");
1057
1058
1059 GetInventory().CreateInInventory("Sedan_02_Wheel");
1060 GetInventory().CreateInInventory("Sedan_02_Wheel");
1061 }
1062}
1063
1064class Sedan_02_Grey
extends Sedan_02
1065{
1067 {
1068 SpawnUniversalParts();
1069 SpawnAdditionalItems();
1070 FillUpCarFluids();
1071
1072 GetInventory().CreateInInventory("Sedan_02_Wheel");
1073 GetInventory().CreateInInventory("Sedan_02_Wheel");
1074 GetInventory().CreateInInventory("Sedan_02_Wheel");
1075 GetInventory().CreateInInventory("Sedan_02_Wheel");
1076
1077 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Grey");
1078 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Grey");
1079 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Grey");
1080 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Grey");
1081 GetInventory().CreateInInventory("Sedan_02_Hood_Grey");
1082 GetInventory().CreateInInventory("Sedan_02_Trunk_Grey");
1083
1084
1085 GetInventory().CreateInInventory("Sedan_02_Wheel");
1086 GetInventory().CreateInInventory("Sedan_02_Wheel");
1087 }
1088}
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.
override void OnDebugSpawn()
original Timer deletes m_params which is unwanted
DayZPlayerConstants
defined in C++
proto native CGame GetGame()
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.