556{
560
562 {
563 m_dmgContactCoef = 0.0790;
564
565 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
566 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
567 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
568 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
569 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
570 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
571
572 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
573 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
574
575 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
576 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
577
578 SetEnginePos("0 0.7 -1.7");
579 }
580
582 {
586 }
587
589 {
590 super.EEInit();
591
593 {
600
603 }
604 }
605
607 {
608 super.OnEngineStart();
609
611 {
614 }
615 }
616
618 {
619 super.OnEngineStop();
620
622 {
625 }
626 }
627
629 {
631 {
633 {
635 }
636 }
637 }
638
640 {
642 }
643
645 {
646 switch (posIdx)
647 {
648 case 0:
650 case 1:
652 case 2:
654 case 3:
656 }
657
658 return 0;
659 }
660
661
663 {
665 }
666
667
669 {
671 }
672
674 {
675 if (!super.CanReleaseAttachment(attachment))
676 {
677 return false;
678 }
679
680 string attType = attachment.GetType();
681 switch (attType)
682 {
683 case "CarBattery":
685 {
686 return false;
687 }
688 break;
689
690 case "SparkPlug":
692 {
693 return false;
694 }
695 break;
696
697 case "CarRadiator":
699 {
700 return false;
701 }
702 break;
703 }
704
705 return true;
706 }
707
709 {
711 }
712
714 {
715 if ( !super.CanDisplayAttachmentCategory(category_name))
716 {
717 return false;
718 }
719
721 if (category_name.
Contains(
"engine"))
722 {
724 {
725 return false;
726 }
727 }
728
729 if (category_name.
Contains(
"trunk"))
730 {
732 {
733 return false;
734 }
735 }
736
737 return true;
738 }
739
741 {
742 if ( !super.CanDisplayCargo() )
743 return false;
744
746 return false;
747
748 return true;
749 }
750
752 {
754
755 Class.
CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
756 if (!carDoor)
757 {
759 }
760
761 switch (slotType)
762 {
763 case "Sedan_02_Door_1_1":
764 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
765
766 case "Sedan_02_Door_2_1":
767 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
768
769 case "Sedan_02_Door_1_2":
770 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
771
772 case "Sedan_02_Door_2_2":
773 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
774
775 case "Sedan_02_Hood":
776 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
777
778 case "Sedan_02_Trunk":
779 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
780 }
781
783 }
784
785
787 {
788 switch( posIdx )
789 {
790 case 0:
792 return false;
793
794 return true;
795 break;
796
797 case 1:
799 return false;
800
801 return true;
802 break;
803
804 case 2:
806 return false;
807
808 return true;
809 break;
810
811 case 3:
813 return false;
814
815 return true;
816 break;
817 }
818
819 return false;
820 }
821
823 {
824 switch( posIdx )
825 {
826 case 0:
827 return "doors_driver";
828 break;
829 case 1:
830 return "doors_codriver";
831 break;
832 case 2:
833 return "doors_cargo1";
834 break;
835 case 3:
836 return "doors_cargo2";
837 break;
838 }
839
840 return super.GetDoorSelectionNameFromSeatPos(posIdx);
841 }
842
844 {
845 switch( posIdx )
846 {
847 case 0:
848 return "Sedan_02_Door_1_1";
849 break;
850 case 1:
851 return "Sedan_02_Door_2_1";
852 break;
853 case 2:
854 return "Sedan_02_Door_1_2";
855 break;
856 case 3:
857 return "Sedan_02_Door_2_2";
858 break;
859 }
860
861 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
862 }
863
865 {
866 switch ( ctrl )
867 {
869 float newValue = 0;
871 {
872 newValue += 0.25;
873 }
874
876 {
877 newValue += 0.25;
878 }
879
881 {
882 newValue += 0.25;
883 }
884
886 {
887 newValue += 0.25;
888 }
889
891 break;
892 }
893
894 return super.OnSound(ctrl, oldValue);
895 }
896
898 {
899 switch( selection )
900 {
901 case "doors_driver":
902 return "DoorsDriver";
903 case "doors_codriver":
904 return "DoorsCoDriver";
905 case "doors_cargo1":
906 return "DoorsCargo1";
907 case "doors_cargo2":
908 return "DoorsCargo2";
909 case "doors_hood":
910 return "DoorsHood";
911 case "doors_trunk":
912 return "DoorsTrunk";
913 }
914
915 return "";
916 }
917
918
920 {
921 return false;
922 }
923
925 {
926 return false;
927 }
928
930 {
931 switch (currentSeat)
932 {
933 case 0:
934 return nextSeat == 1;
935
936 case 1:
937 return nextSeat == 0;
938
939 case 2:
940 return nextSeat == 3;
941
942 case 3:
943 return nextSeat == 2;
944 }
945
946 return false;
947 }
948
950 {
951 switch (pCurrentSeat)
952 {
953 case 0:
954 return pDoorsSelection == "DoorsDriver";
955
956 case 1:
957 return pDoorsSelection == "DoorsCoDriver";
958
959 case 2:
960 return pDoorsSelection == "DoorsCargo1";
961
962 case 3:
963 return pDoorsSelection == "DoorsCargo2";
964 }
965
966 return false;
967 }
968
970 {
971 SpawnUniversalParts();
972 SpawnAdditionalItems();
973 FillUpCarFluids();
974
981
988
989
992 }
993}
994
996{
998 {
999 SpawnUniversalParts();
1000 SpawnAdditionalItems();
1001 FillUpCarFluids();
1002
1003 GameInventory inventory = GetInventory();
1008
1015
1016
1019 }
1020}
1021
1022class Sedan_02_Grey
extends Sedan_02
1023{
1025 {
1026 SpawnUniversalParts();
1027 SpawnAdditionalItems();
1028 FillUpCarFluids();
1029
1030 GameInventory inventory = GetInventory();
1035
1042
1043
1046 }
1047}
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.
EntityAI CreateInInventory(string type)
creates entity somewhere in inventory
script counterpart to engine's class Inventory
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.