DayZ 1.28
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ CrewCanGetThrough()

override bool OnDebugSpawn::CrewCanGetThrough ( int posIdx)
protected

См. определение в файле Sedan_02.c строка 654

655{
659
660 void Sedan_02()
661 {
662 m_dmgContactCoef = 0.0790;
663
664 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
665 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
666 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
667 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
668 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
669 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
670
671 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
672 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
673
674 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
675 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
676
677 SetEnginePos("0 0.7 -1.7");
678 }
679
680 override void EEInit()
681 {
682 super.EEInit();
683
684 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
685 {
687 m_UTSSettings.m_ManualUpdate = true;
689 m_UTSSettings.m_TemperatureCap = 0;
690 m_UTSSettings.m_RangeFull = 0.5;
691 m_UTSSettings.m_RangeMax = 2;
692
695 }
696 }
697
698 override void OnEngineStart()
699 {
700 super.OnEngineStart();
701
702 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
703 {
704 m_UTSource.SetDefferedActive(true, 20.0);
705 }
706 }
707
708 override void OnEngineStop()
709 {
710 super.OnEngineStop();
711
712 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
713 {
714 m_UTSource.SetDefferedActive(false, 10.0);
715 }
716 }
717
718 override void EOnPostSimulate(IEntity other, float timeSlice)
719 {
720 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
721 {
722 if (m_UTSource.IsActive())
723 {
725 }
726 }
727 }
728
729 override int GetAnimInstance()
730 {
731 return VehicleAnimInstances.S120;
732 }
733
734 override int GetSeatAnimationType(int posIdx)
735 {
736 switch (posIdx)
737 {
738 case 0:
739 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
740 case 1:
741 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
742 case 2:
743 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
744 case 3:
745 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
746 }
747
748 return 0;
749 }
750
751 // Override for car-specific light type
753 {
754 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02FrontLight));
755 }
756
757 // Override for car-specific light type
759 {
760 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02RearLight));
761 }
762
763 override bool CanReleaseAttachment( EntityAI attachment )
764 {
765 if (!super.CanReleaseAttachment(attachment))
766 {
767 return false;
768 }
769
770 string attType = attachment.GetType();
771 switch (attType)
772 {
773 case "CarBattery":
774 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
775 {
776 return false;
777 }
778 break;
779
780 case "SparkPlug":
781 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
782 {
783 return false;
784 }
785 break;
786
787 case "CarRadiator":
788 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
789 {
790 return false;
791 }
792 break;
793 }
794
795 return true;
796 }
797
798 override protected bool CanManipulateSpareWheel(string slotSelectionName)
799 {
800 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
801 }
802
803 override bool CanDisplayAttachmentCategory(string category_name)
804 {
805 if ( !super.CanDisplayAttachmentCategory(category_name))
806 {
807 return false;
808 }
809
810 category_name.ToLower();
811 if (category_name.Contains("engine"))
812 {
813 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
814 {
815 return false;
816 }
817 }
818
819 if (category_name.Contains("trunk"))
820 {
821 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
822 {
823 return false;
824 }
825 }
826
827 return true;
828 }
829
830 override bool CanDisplayCargo()
831 {
832 if ( !super.CanDisplayCargo() )
833 return false;
834
835 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
836 return false;
837
838 return true;
839 }
840
841 override int GetCarDoorsState(string slotType)
842 {
843 CarDoor carDoor;
844
845 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
846 if (!carDoor)
847 {
848 return CarDoorState.DOORS_MISSING;
849 }
850
851 switch (slotType)
852 {
853 case "Sedan_02_Door_1_1":
854 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
855
856 case "Sedan_02_Door_2_1":
857 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
858
859 case "Sedan_02_Door_1_2":
860 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
861
862 case "Sedan_02_Door_2_2":
863 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
864
865 case "Sedan_02_Hood":
866 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
867
868 case "Sedan_02_Trunk":
869 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
870 }
871
872 return CarDoorState.DOORS_MISSING;
873 }
874
875
876 override bool CrewCanGetThrough( int posIdx )
877 {
878 switch( posIdx )
879 {
880 case 0:
881 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
882 return false;
883
884 return true;
885 break;
886
887 case 1:
888 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
889 return false;
890
891 return true;
892 break;
893
894 case 2:
895 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
896 return false;
897
898 return true;
899 break;
900
901 case 3:
902 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
903 return false;
904
905 return true;
906 break;
907 }
908
909 return false;
910 }
911
912 override string GetDoorSelectionNameFromSeatPos(int posIdx)
913 {
914 switch( posIdx )
915 {
916 case 0:
917 return "doors_driver";
918 break;
919 case 1:
920 return "doors_codriver";
921 break;
922 case 2:
923 return "doors_cargo1";
924 break;
925 case 3:
926 return "doors_cargo2";
927 break;
928 }
929
930 return super.GetDoorSelectionNameFromSeatPos(posIdx);
931 }
932
933 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
934 {
935 switch( posIdx )
936 {
937 case 0:
938 return "Sedan_02_Door_1_1";
939 break;
940 case 1:
941 return "Sedan_02_Door_2_1";
942 break;
943 case 2:
944 return "Sedan_02_Door_1_2";
945 break;
946 case 3:
947 return "Sedan_02_Door_2_2";
948 break;
949 }
950
951 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
952 }
953
954 override float OnSound(CarSoundCtrl ctrl, float oldValue)
955 {
956 switch ( ctrl )
957 {
958 case CarSoundCtrl.DOORS:
959 float newValue = 0;
960 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
961 {
962 newValue += 0.25;
963 }
964
965 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
966 {
967 newValue += 0.25;
968 }
969
970 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
971 {
972 newValue += 0.25;
973 }
974
975 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
976 {
977 newValue += 0.25;
978 }
979
980 return Math.Clamp(newValue, 0, 1);
981 break;
982 }
983
984 return super.OnSound(ctrl, oldValue);
985 }
986
987 override string GetAnimSourceFromSelection( string selection )
988 {
989 switch( selection )
990 {
991 case "doors_driver":
992 return "DoorsDriver";
993 case "doors_codriver":
994 return "DoorsCoDriver";
995 case "doors_cargo1":
996 return "DoorsCargo1";
997 case "doors_cargo2":
998 return "DoorsCargo2";
999 case "doors_hood":
1000 return "DoorsHood";
1001 case "doors_trunk":
1002 return "DoorsTrunk";
1003 }
1004
1005 return "";
1006 }
1007
1008
1009 override bool IsVitalTruckBattery()
1010 {
1011 return false;
1012 }
1013
1014 override bool IsVitalGlowPlug()
1015 {
1016 return false;
1017 }
1018
1019 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1020 {
1021 switch (currentSeat)
1022 {
1023 case 0:
1024 return nextSeat == 1;
1025
1026 case 1:
1027 return nextSeat == 0;
1028
1029 case 2:
1030 return nextSeat == 3;
1031
1032 case 3:
1033 return nextSeat == 2;
1034 }
1035
1036 return false;
1037 }
1038
1039 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
1040 {
1041 switch (pCurrentSeat)
1042 {
1043 case 0:
1044 return pDoorsSelection == "DoorsDriver";
1045
1046 case 1:
1047 return pDoorsSelection == "DoorsCoDriver";
1048
1049 case 2:
1050 return pDoorsSelection == "DoorsCargo1";
1051
1052 case 3:
1053 return pDoorsSelection == "DoorsCargo2";
1054 }
1055
1056 return false;
1057 }
1058
1059 override void OnDebugSpawn()
1060 {
1061 SpawnUniversalParts();
1062 SpawnAdditionalItems();
1063 FillUpCarFluids();
1064
1065 GetInventory().CreateInInventory("Sedan_02_Wheel");
1066 GetInventory().CreateInInventory("Sedan_02_Wheel");
1067 GetInventory().CreateInInventory("Sedan_02_Wheel");
1068 GetInventory().CreateInInventory("Sedan_02_Wheel");
1069 GetInventory().CreateInInventory("Sedan_02_Wheel");
1070
1071 GetInventory().CreateInInventory("Sedan_02_Door_1_1");
1072 GetInventory().CreateInInventory("Sedan_02_Door_1_2");
1073 GetInventory().CreateInInventory("Sedan_02_Door_2_1");
1074 GetInventory().CreateInInventory("Sedan_02_Door_2_2");
1075 GetInventory().CreateInInventory("Sedan_02_Hood");
1076 GetInventory().CreateInInventory("Sedan_02_Trunk");
1077
1078 //-----IN CAR CARGO
1079 GetInventory().CreateInInventory("Sedan_02_Wheel");
1080 GetInventory().CreateInInventory("Sedan_02_Wheel");
1081 }
1082}
1083
1084class Sedan_02_Red extends Sedan_02
1085{
1086 override void OnDebugSpawn()
1087 {
1088 SpawnUniversalParts();
1089 SpawnAdditionalItems();
1090 FillUpCarFluids();
1091
1092 GetInventory().CreateInInventory("Sedan_02_Wheel");
1093 GetInventory().CreateInInventory("Sedan_02_Wheel");
1094 GetInventory().CreateInInventory("Sedan_02_Wheel");
1095 GetInventory().CreateInInventory("Sedan_02_Wheel");
1096
1097 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Red");
1098 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Red");
1099 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Red");
1100 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Red");
1101 GetInventory().CreateInInventory("Sedan_02_Hood_Red");
1102 GetInventory().CreateInInventory("Sedan_02_Trunk_Red");
1103
1104 //-----IN CAR CARGO
1105 GetInventory().CreateInInventory("Sedan_02_Wheel");
1106 GetInventory().CreateInInventory("Sedan_02_Wheel");
1107 }
1108}
1109
1110class Sedan_02_Grey extends Sedan_02
1111{
1112 override void OnDebugSpawn()
1113 {
1114 SpawnUniversalParts();
1115 SpawnAdditionalItems();
1116 FillUpCarFluids();
1117
1118 GetInventory().CreateInInventory("Sedan_02_Wheel");
1119 GetInventory().CreateInInventory("Sedan_02_Wheel");
1120 GetInventory().CreateInInventory("Sedan_02_Wheel");
1121 GetInventory().CreateInInventory("Sedan_02_Wheel");
1122
1123 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Grey");
1124 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Grey");
1125 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Grey");
1126 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Grey");
1127 GetInventory().CreateInInventory("Sedan_02_Hood_Grey");
1128 GetInventory().CreateInInventory("Sedan_02_Trunk_Grey");
1129
1130 //-----IN CAR CARGO
1131 GetInventory().CreateInInventory("Sedan_02_Wheel");
1132 GetInventory().CreateInInventory("Sedan_02_Wheel");
1133 }
1134}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
CarDoorState
Определения CarScript.c:2
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:433
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:220
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:219
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Sedan_02.c:797
class Sedan_02 extends CarScript OnDebugSpawn()
Определения Sedan_02.c:433
override string GetAnimSourceFromSelection(string selection)
Определения Sedan_02.c:765
override int GetSeatAnimationType(int posIdx)
Определения Sedan_02.c:512
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Sedan_02.c:732
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Sedan_02.c:711
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Sedan_02.c:496
override void OnEngineStop()
Определения Sedan_02.c:486
override void EEInit()
Определения Sedan_02.c:458
override bool CanReleaseAttachment(EntityAI attachment)
Определения Sedan_02.c:541
override bool CanDisplayCargo()
Определения Sedan_02.c:608
override void OnEngineStart()
Определения Sedan_02.c:476
override CarLightBase CreateFrontLight()
Определения Sedan_02.c:530
override int GetAnimInstance()
Определения Sedan_02.c:507
override bool CrewCanGetThrough(int posIdx)
Определения Sedan_02.c:654
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Sedan_02.c:817
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Sedan_02.c:576
override bool IsVitalGlowPlug()
Определения Sedan_02.c:792
void Sedan_02()
Определения Sedan_02.c:438
override CarRearLightBase CreateRearLight()
Определения Sedan_02.c:536
override bool IsVitalTruckBattery()
Определения Sedan_02.c:787
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Sedan_02.c:690
override int GetCarDoorsState(string slotType)
Определения Sedan_02.c:619
override bool CanDisplayAttachmentCategory(string category_name)
Определения Sedan_02.c:581
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения EnEntity.c:165
Определения EnMath.c:7
override void OnDebugSpawn()
Определения Sedan_02.c:459
Определения Sedan_02.c:458
original Timer deletes m_params which is unwanted
Определения UniversalTemperatureSource.c:38
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
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
Определения 3_Game/constants.c:808
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.
Определения EnString.c:286
proto int ToLower()
Changes string to lowercase. Returns length.