612{
616
618 {
619
620
621 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
622 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
623 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
624 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
625 m_EngineStop = "CivilianSedan_engine_stop_SoundSet";
626 m_EngineStopFuel = "CivilianSedan_engine_stop_fuel_SoundSet";
627
628 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
629 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
630
631 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
632 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
633
634 SetEnginePos("0 0.7 1.6");
635 }
636
638 {
642 }
643
645 {
646 super.EEInit();
647
649 {
656
659 }
660 }
661
663 {
664 super.OnEngineStart();
665
667 {
670 }
671 }
672
674 {
675 super.OnEngineStop();
676
678 {
681 }
682 }
683
685 {
687 {
689 {
691 }
692 }
693 }
694
696 {
698 }
699
701 {
702 return 4.5;
703 }
704
706 {
707 switch (posIdx)
708 {
709 case 0:
711 case 1:
713 case 2:
715 case 3:
717 }
718
719 return 0;
720 }
721
722
724 {
726 }
727
728
730 {
732 }
733
735 {
736 if( !super.CanReleaseAttachment( attachment ) )
737 return false;
738
739 string attType = attachment.GetType();
740
742 {
743 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
744 return false;
745 }
746
747 return true;
748 }
749
751 {
753 }
754
756 {
757
758 if (!super.CanDisplayAttachmentCategory(category_name))
759 return false;
760
761
763 if (category_name.
Contains(
"engine"))
764 {
766 return false;
767 }
768
769 return true;
770 }
771
773 {
774 if ( !super.CanDisplayCargo() )
775 return false;
776
778 return false;
779
780 return true;
781 }
782
784 {
786
787 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
788 if (!carDoor)
789 {
791 }
792
793 switch (slotType)
794 {
795 case "CivSedanDriverDoors":
796 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
797 break;
798
799 case "CivSedanCoDriverDoors":
800 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
801 break;
802
803 case "CivSedanCargo1Doors":
804 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
805 break;
806
807 case "CivSedanCargo2Doors":
808 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
809 break;
810
811 case "CivSedanTrunk":
812 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
813 break;
814
815 case "CivSedanHood":
816 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
817 break;
818 }
819
821 }
822
823
825 {
826 switch( posIdx )
827 {
828 case 0:
830 return false;
831
832 return true;
833 break;
834
835 case 1:
837 return false;
838
839 return true;
840 break;
841
842 case 2:
844 return false;
845
846 return true;
847 break;
848
849 case 3:
851 return false;
852
853 return true;
854 break;
855 }
856
857 return false;
858 }
859
861 {
862 switch( posIdx )
863 {
864 case 0:
865 return "doors_driver";
866 break;
867 case 1:
868 return "doors_codriver";
869 break;
870 case 2:
871 return "doors_cargo1";
872 break;
873 case 3:
874 return "doors_cargo2";
875 break;
876 }
877
878 return super.GetDoorSelectionNameFromSeatPos(posIdx);
879 }
880
882 {
883 switch( posIdx )
884 {
885 case 0:
886 return "CivSedanDriverDoors";
887 break;
888 case 1:
889 return "CivSedanCoDriverDoors";
890 break;
891 case 2:
892 return "CivSedanCargo1Doors";
893 break;
894 case 3:
895 return "CivSedanCargo2Doors";
896 break;
897 }
898
899 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
900 }
901
902
903
905 {
906 switch (ctrl)
907 {
909 float newValue = 0;
911 {
912 newValue += 0.25;
913 }
914
916 {
917 newValue += 0.25;
918 }
919
921 {
922 newValue += 0.25;
923 }
924
926 {
927 newValue += 0.25;
928 }
929
931 {
932 newValue -= 0.6;
933 }
934
936 {
937 newValue -= 0.6;
938 }
939
941 break;
942 }
943
944 return super.OnSound(ctrl, oldValue);
945 }
946
948 {
949 switch (selection)
950 {
951 case "doors_driver":
952 return "DoorsDriver";
953 case "doors_codriver":
954 return "DoorsCoDriver";
955 case "doors_cargo1":
956 return "DoorsCargo1";
957 case "doors_cargo2":
958 return "DoorsCargo2";
959 case "doors_hood":
960 return "DoorsHood";
961 case "doors_trunk":
962 return "DoorsTrunk";
963 }
964
965 return "";
966 }
967
969 {
970 return false;
971 }
972
974 {
975 return false;
976 }
977
979 {
980 switch (currentSeat)
981 {
982 case 0:
983 return nextSeat == 1;
984
985 case 1:
986 return nextSeat == 0;
987
988 case 2:
989 return nextSeat == 3;
990
991 case 3:
992 return nextSeat == 2;
993 }
994
995 return false;
996 }
997
999 {
1000 switch (pCurrentSeat)
1001 {
1002 case 0:
1003 return pDoorsSelection == "DoorsDriver";
1004
1005 case 1:
1006 return pDoorsSelection == "DoorsCoDriver";
1007
1008 case 2:
1009 return pDoorsSelection == "DoorsCargo1";
1010
1011 case 3:
1012 return pDoorsSelection == "DoorsCargo2";
1013 }
1014
1015 return false;
1016 }
1017
1019 {
1020 SpawnUniversalParts();
1021 SpawnAdditionalItems();
1022 FillUpCarFluids();
1023
1029
1036
1037
1040 }
1041
1043 {
1044 return 1.5;
1045 }
1046}
1047
1049{
1051 {
1052 SpawnUniversalParts();
1053 SpawnAdditionalItems();
1054 FillUpCarFluids();
1055
1056 GameInventory inventory = GetInventory();
1061
1068
1069
1072 }
1073}
1074
1076{
1078 {
1079 SpawnUniversalParts();
1080 SpawnAdditionalItems();
1081 FillUpCarFluids();
1082
1083 GameInventory inventory = GetInventory();
1088
1095
1096
1099 }
1100}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
override float GetPushForceCoefficientMultiplier()
class CivilianSedan extends CarScript OnDebugSpawn()
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()
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
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()
override bool IsVitalTruckBattery()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
override bool CanDisplayAttachmentCategory(string category_name)
ref UniversalTemperatureSourceSettings m_UTSSettings
ref UniversalTemperatureSource m_UTSource
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
override void OnDebugSpawn()
Super root of all classes in Enforce script.
EntityAI CreateInInventory(string type)
creates entity somewhere in inventory
script counterpart to engine's class Inventory
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.