620{
624
626 {
627 m_dmgContactCoef = 0.0790;
628
629 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
630 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
631 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
632 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
633 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
634 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
635
636 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
637 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
638
639 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
640 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
641
642 SetEnginePos("0 0.7 -1.7");
643 }
644
646 {
647 super.EEInit();
648
650 {
657
660 }
661 }
662
664 {
665 super.OnEngineStart();
666
668 {
670 }
671 }
672
674 {
675 super.OnEngineStop();
676
678 {
680 }
681 }
682
684 {
686 {
688 {
690 }
691 }
692 }
693
695 {
697 }
698
700 {
701 switch (posIdx)
702 {
703 case 0:
705 case 1:
707 case 2:
709 case 3:
711 }
712
713 return 0;
714 }
715
716
718 {
720 }
721
722
724 {
726 }
727
729 {
730 if (!super.CanReleaseAttachment(attachment))
731 {
732 return false;
733 }
734
735 string attType = attachment.GetType();
736 switch (attType)
737 {
738 case "CarBattery":
740 {
741 return false;
742 }
743 break;
744
745 case "SparkPlug":
747 {
748 return false;
749 }
750 break;
751
752 case "CarRadiator":
754 {
755 return false;
756 }
757 break;
758 }
759
760 return true;
761 }
762
764 {
766 }
767
769 {
770 if ( !super.CanDisplayAttachmentCategory(category_name))
771 {
772 return false;
773 }
774
776 if (category_name.
Contains(
"engine"))
777 {
779 {
780 return false;
781 }
782 }
783
784 if (category_name.
Contains(
"trunk"))
785 {
787 {
788 return false;
789 }
790 }
791
792 return true;
793 }
794
796 {
797 if ( !super.CanDisplayCargo() )
798 return false;
799
801 return false;
802
803 return true;
804 }
805
807 {
809
810 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
811 if (!carDoor)
812 {
814 }
815
816 switch (slotType)
817 {
818 case "Sedan_02_Door_1_1":
819 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
820
821 case "Sedan_02_Door_2_1":
822 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
823
824 case "Sedan_02_Door_1_2":
825 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
826
827 case "Sedan_02_Door_2_2":
828 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
829
830 case "Sedan_02_Hood":
831 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
832
833 case "Sedan_02_Trunk":
834 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
835 }
836
838 }
839
840
842 {
843 switch( posIdx )
844 {
845 case 0:
847 return false;
848
849 return true;
850 break;
851
852 case 1:
854 return false;
855
856 return true;
857 break;
858
859 case 2:
861 return false;
862
863 return true;
864 break;
865
866 case 3:
868 return false;
869
870 return true;
871 break;
872 }
873
874 return false;
875 }
876
878 {
879 switch( posIdx )
880 {
881 case 0:
882 return "doors_driver";
883 break;
884 case 1:
885 return "doors_codriver";
886 break;
887 case 2:
888 return "doors_cargo1";
889 break;
890 case 3:
891 return "doors_cargo2";
892 break;
893 }
894
895 return super.GetDoorSelectionNameFromSeatPos(posIdx);
896 }
897
899 {
900 switch( posIdx )
901 {
902 case 0:
903 return "Sedan_02_Door_1_1";
904 break;
905 case 1:
906 return "Sedan_02_Door_2_1";
907 break;
908 case 2:
909 return "Sedan_02_Door_1_2";
910 break;
911 case 3:
912 return "Sedan_02_Door_2_2";
913 break;
914 }
915
916 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
917 }
918
920 {
921 switch ( ctrl )
922 {
924 float newValue = 0;
926 {
927 newValue += 0.25;
928 }
929
931 {
932 newValue += 0.25;
933 }
934
936 {
937 newValue += 0.25;
938 }
939
941 {
942 newValue += 0.25;
943 }
944
946 break;
947 }
948
949 return super.OnSound(ctrl, oldValue);
950 }
951
953 {
954 switch( selection )
955 {
956 case "doors_driver":
957 return "DoorsDriver";
958 case "doors_codriver":
959 return "DoorsCoDriver";
960 case "doors_cargo1":
961 return "DoorsCargo1";
962 case "doors_cargo2":
963 return "DoorsCargo2";
964 case "doors_hood":
965 return "DoorsHood";
966 case "doors_trunk":
967 return "DoorsTrunk";
968 }
969
970 return "";
971 }
972
973
975 {
976 return false;
977 }
978
980 {
981 return false;
982 }
983
985 {
986 switch (currentSeat)
987 {
988 case 0:
989 return nextSeat == 1;
990
991 case 1:
992 return nextSeat == 0;
993
994 case 2:
995 return nextSeat == 3;
996
997 case 3:
998 return nextSeat == 2;
999 }
1000
1001 return false;
1002 }
1003
1005 {
1006 switch (pCurrentSeat)
1007 {
1008 case 0:
1009 return pDoorsSelection == "DoorsDriver";
1010
1011 case 1:
1012 return pDoorsSelection == "DoorsCoDriver";
1013
1014 case 2:
1015 return pDoorsSelection == "DoorsCargo1";
1016
1017 case 3:
1018 return pDoorsSelection == "DoorsCargo2";
1019 }
1020
1021 return false;
1022 }
1023
1025 {
1026 SpawnUniversalParts();
1027 SpawnAdditionalItems();
1028 FillUpCarFluids();
1029
1030 GetInventory().CreateInInventory("Sedan_02_Wheel");
1031 GetInventory().CreateInInventory("Sedan_02_Wheel");
1032 GetInventory().CreateInInventory("Sedan_02_Wheel");
1033 GetInventory().CreateInInventory("Sedan_02_Wheel");
1034 GetInventory().CreateInInventory("Sedan_02_Wheel");
1035
1036 GetInventory().CreateInInventory("Sedan_02_Door_1_1");
1037 GetInventory().CreateInInventory("Sedan_02_Door_1_2");
1038 GetInventory().CreateInInventory("Sedan_02_Door_2_1");
1039 GetInventory().CreateInInventory("Sedan_02_Door_2_2");
1040 GetInventory().CreateInInventory("Sedan_02_Hood");
1041 GetInventory().CreateInInventory("Sedan_02_Trunk");
1042
1043
1044 GetInventory().CreateInInventory("Sedan_02_Wheel");
1045 GetInventory().CreateInInventory("Sedan_02_Wheel");
1046 }
1047}
1048
1050{
1052 {
1053 SpawnUniversalParts();
1054 SpawnAdditionalItems();
1055 FillUpCarFluids();
1056
1057 GetInventory().CreateInInventory("Sedan_02_Wheel");
1058 GetInventory().CreateInInventory("Sedan_02_Wheel");
1059 GetInventory().CreateInInventory("Sedan_02_Wheel");
1060 GetInventory().CreateInInventory("Sedan_02_Wheel");
1061
1062 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Red");
1063 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Red");
1064 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Red");
1065 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Red");
1066 GetInventory().CreateInInventory("Sedan_02_Hood_Red");
1067 GetInventory().CreateInInventory("Sedan_02_Trunk_Red");
1068
1069
1070 GetInventory().CreateInInventory("Sedan_02_Wheel");
1071 GetInventory().CreateInInventory("Sedan_02_Wheel");
1072 }
1073}
1074
1075class Sedan_02_Grey
extends Sedan_02
1076{
1078 {
1079 SpawnUniversalParts();
1080 SpawnAdditionalItems();
1081 FillUpCarFluids();
1082
1083 GetInventory().CreateInInventory("Sedan_02_Wheel");
1084 GetInventory().CreateInInventory("Sedan_02_Wheel");
1085 GetInventory().CreateInInventory("Sedan_02_Wheel");
1086 GetInventory().CreateInInventory("Sedan_02_Wheel");
1087
1088 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Grey");
1089 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Grey");
1090 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Grey");
1091 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Grey");
1092 GetInventory().CreateInInventory("Sedan_02_Hood_Grey");
1093 GetInventory().CreateInInventory("Sedan_02_Trunk_Grey");
1094
1095
1096 GetInventory().CreateInInventory("Sedan_02_Wheel");
1097 GetInventory().CreateInInventory("Sedan_02_Wheel");
1098 }
1099}
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.