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

◆ CrewCanGetThrough()

override bool OnDebugSpawn::CrewCanGetThrough ( int posIdx)
protected

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

691 : CarScript
692{
696
697 void Sedan_02()
698 {
699 m_dmgContactCoef = 0.0790;
700
701 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
702 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
703 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
704 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
705 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
706 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
707
708 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
709 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
710
711 m_LightsComponent.RegisterLight("Front", new VehicleLightData(new Sedan_02LightProfileFront()));
712 m_LightsComponent.RegisterLight("Rear", new VehicleLightData(new Sedan_02LightProfileRear()));
713
714 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "Sedan_02_Horn_Short_SoundSet");
715 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "Sedan_02_Horn_SoundSet");
716
717 SetEnginePos("0 0.7 -1.7");
718
720 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
721 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
722 }
723
724 void ~Sedan_02()
725 {
726 m_UTSource = null;
727 m_UTSSettings = null;
728 m_UTSLEngine = null;
729 }
730
731 override void EEInit()
732 {
733 super.EEInit();
734
735 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
736 {
738 m_UTSSettings.m_ManualUpdate = true;
740 m_UTSSettings.m_TemperatureCap = 0;
741 m_UTSSettings.m_RangeFull = 0.5;
742 m_UTSSettings.m_RangeMax = 2;
743
746 }
747 }
748
749 override bool NeedElectricitySourceDevice()
750 {
751 return true;
752 }
753
755 {
756 super.GetElectricitySourceDevice();
757
758 return GetInventory().FindAttachment(CarBattery.SLOT_ID);
759 }
760
761 override string GetElectricitySourceDeviceType()
762 {
763 return "CarBattery";
764 }
765
766 override void OnEngineStart()
767 {
768 super.OnEngineStart();
769
770 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
771 {
772 if (m_UTSource)
773 m_UTSource.SetDefferedActive(true, 20.0);
774 }
775 }
776
777 override void OnEngineStop()
778 {
779 super.OnEngineStop();
780
781 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
782 {
783 if (m_UTSource)
784 m_UTSource.SetDefferedActive(false, 10.0);
785 }
786 }
787
788 override void EOnPostSimulate(IEntity other, float timeSlice)
789 {
790 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
791 {
792 if (m_UTSource && m_UTSource.IsActive())
793 {
795 }
796 }
797 }
798
799 override int GetAnimInstance()
800 {
801 return VehicleAnimInstances.S120;
802 }
803
804 override int GetSeatAnimationType(int posIdx)
805 {
806 switch (posIdx)
807 {
808 case 0:
809 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
810 case 1:
811 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
812 case 2:
813 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
814 case 3:
815 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
816 }
817
818 return 0;
819 }
820
821 override bool CanReleaseAttachment( EntityAI attachment )
822 {
823 if (!super.CanReleaseAttachment(attachment))
824 {
825 return false;
826 }
827
828 string attType = attachment.GetType();
829 switch (attType)
830 {
831 case "CarBattery":
832 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
833 {
834 return false;
835 }
836 break;
837
838 case "SparkPlug":
839 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
840 {
841 return false;
842 }
843 break;
844
845 case "CarRadiator":
846 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
847 {
848 return false;
849 }
850 break;
851 }
852
853 return true;
854 }
855
856 override protected bool CanManipulateSpareWheel(string slotSelectionName)
857 {
858 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
859 }
860
861 override bool CanDisplayAttachmentCategory(string category_name)
862 {
863 if ( !super.CanDisplayAttachmentCategory(category_name))
864 {
865 return false;
866 }
867
868 category_name.ToLower();
869 if (category_name.Contains("engine"))
870 {
871 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
872 {
873 return false;
874 }
875 }
876
877 if (category_name.Contains("trunk"))
878 {
879 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
880 {
881 return false;
882 }
883 }
884
885 return true;
886 }
887
888 override bool CanDisplayCargo()
889 {
890 if ( !super.CanDisplayCargo() )
891 return false;
892
893 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
894 return false;
895
896 return true;
897 }
898
899 override int GetCarDoorsState(string slotType)
900 {
901 CarDoor carDoor;
902
903 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
904 if (!carDoor)
905 {
906 return CarDoorState.DOORS_MISSING;
907 }
908
909 switch (slotType)
910 {
911 case "Sedan_02_Door_1_1":
912 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
913
914 case "Sedan_02_Door_2_1":
915 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
916
917 case "Sedan_02_Door_1_2":
918 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
919
920 case "Sedan_02_Door_2_2":
921 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
922
923 case "Sedan_02_Hood":
924 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
925
926 case "Sedan_02_Trunk":
927 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
928 }
929
930 return CarDoorState.DOORS_MISSING;
931 }
932
933
934 override bool CrewCanGetThrough( int posIdx )
935 {
936 switch( posIdx )
937 {
938 case 0:
939 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
940 return false;
941
942 return true;
943 break;
944
945 case 1:
946 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
947 return false;
948
949 return true;
950 break;
951
952 case 2:
953 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
954 return false;
955
956 return true;
957 break;
958
959 case 3:
960 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
961 return false;
962
963 return true;
964 break;
965 }
966
967 return false;
968 }
969
970 override string GetDoorSelectionNameFromSeatPos(int posIdx)
971 {
972 switch( posIdx )
973 {
974 case 0:
975 return "doors_driver";
976 break;
977 case 1:
978 return "doors_codriver";
979 break;
980 case 2:
981 return "doors_cargo1";
982 break;
983 case 3:
984 return "doors_cargo2";
985 break;
986 }
987
988 return super.GetDoorSelectionNameFromSeatPos(posIdx);
989 }
990
991 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
992 {
993 switch( posIdx )
994 {
995 case 0:
996 return "Sedan_02_Door_1_1";
997 break;
998 case 1:
999 return "Sedan_02_Door_2_1";
1000 break;
1001 case 2:
1002 return "Sedan_02_Door_1_2";
1003 break;
1004 case 3:
1005 return "Sedan_02_Door_2_2";
1006 break;
1007 }
1008
1009 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1010 }
1011
1012 override float OnSound(CarSoundCtrl ctrl, float oldValue)
1013 {
1014 switch ( ctrl )
1015 {
1016 case CarSoundCtrl.DOORS:
1017 float newValue = 0;
1018 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
1019 {
1020 newValue += 0.25;
1021 }
1022
1023 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
1024 {
1025 newValue += 0.25;
1026 }
1027
1028 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
1029 {
1030 newValue += 0.25;
1031 }
1032
1033 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
1034 {
1035 newValue += 0.25;
1036 }
1037
1038 return Math.Clamp(newValue, 0, 1);
1039 break;
1040 }
1041
1042 return super.OnSound(ctrl, oldValue);
1043 }
1044
1045 override string GetAnimSourceFromSelection( string selection )
1046 {
1047 switch( selection )
1048 {
1049 case "doors_driver":
1050 return "DoorsDriver";
1051 case "doors_codriver":
1052 return "DoorsCoDriver";
1053 case "doors_cargo1":
1054 return "DoorsCargo1";
1055 case "doors_cargo2":
1056 return "DoorsCargo2";
1057 case "doors_hood":
1058 return "DoorsHood";
1059 case "doors_trunk":
1060 return "DoorsTrunk";
1061 }
1062
1063 return "";
1064 }
1065
1066 override bool IsVitalGlowPlug()
1067 {
1068 return false;
1069 }
1070
1071 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1072 {
1073 switch (currentSeat)
1074 {
1075 case 0:
1076 return nextSeat == 1;
1077
1078 case 1:
1079 return nextSeat == 0;
1080
1081 case 2:
1082 return nextSeat == 3;
1083
1084 case 3:
1085 return nextSeat == 2;
1086 }
1087
1088 return false;
1089 }
1090
1091 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
1092 {
1093 switch (pCurrentSeat)
1094 {
1095 case 0:
1096 return pDoorsSelection == "DoorsDriver";
1097
1098 case 1:
1099 return pDoorsSelection == "DoorsCoDriver";
1100
1101 case 2:
1102 return pDoorsSelection == "DoorsCargo1";
1103
1104 case 3:
1105 return pDoorsSelection == "DoorsCargo2";
1106 }
1107
1108 return false;
1109 }
1110
1111 override void OnDebugSpawn()
1112 {
1114 SpawnAdditionalItems();
1115 FillUpCarFluids();
1116
1117 GameInventory inventory = GetInventory();
1118 inventory.CreateInInventory("Sedan_02_Wheel");
1119 inventory.CreateInInventory("Sedan_02_Wheel");
1120 inventory.CreateInInventory("Sedan_02_Wheel");
1121 inventory.CreateInInventory("Sedan_02_Wheel");
1122 inventory.CreateInInventory("Sedan_02_Wheel");
1123
1124 inventory.CreateInInventory("Sedan_02_Door_1_1");
1125 inventory.CreateInInventory("Sedan_02_Door_1_2");
1126 inventory.CreateInInventory("Sedan_02_Door_2_1");
1127 inventory.CreateInInventory("Sedan_02_Door_2_2");
1128 inventory.CreateInInventory("Sedan_02_Hood");
1129 inventory.CreateInInventory("Sedan_02_Trunk");
1130
1131 //-----IN CAR CARGO
1132 inventory.CreateInInventory("Sedan_02_Wheel");
1133 inventory.CreateInInventory("Sedan_02_Wheel");
1134 }
1135}
1136
1137class Sedan_02_Red : Sedan_02
1138{
1139 override void OnDebugSpawn()
1140 {
1142 SpawnAdditionalItems();
1143 FillUpCarFluids();
1144
1145 GameInventory inventory = GetInventory();
1146 inventory.CreateInInventory("Sedan_02_Wheel");
1147 inventory.CreateInInventory("Sedan_02_Wheel");
1148 inventory.CreateInInventory("Sedan_02_Wheel");
1149 inventory.CreateInInventory("Sedan_02_Wheel");
1150
1151 inventory.CreateInInventory("Sedan_02_Door_1_1_Red");
1152 inventory.CreateInInventory("Sedan_02_Door_1_2_Red");
1153 inventory.CreateInInventory("Sedan_02_Door_2_1_Red");
1154 inventory.CreateInInventory("Sedan_02_Door_2_2_Red");
1155 inventory.CreateInInventory("Sedan_02_Hood_Red");
1156 inventory.CreateInInventory("Sedan_02_Trunk_Red");
1157
1158 //-----IN CAR CARGO
1159 inventory.CreateInInventory("Sedan_02_Wheel");
1160 inventory.CreateInInventory("Sedan_02_Wheel");
1161 }
1162}
1163
1164class Sedan_02_Grey : Sedan_02
1165{
1166 override void OnDebugSpawn()
1167 {
1169 SpawnAdditionalItems();
1170 FillUpCarFluids();
1171
1172 GameInventory inventory = GetInventory();
1173 inventory.CreateInInventory("Sedan_02_Wheel");
1174 inventory.CreateInInventory("Sedan_02_Wheel");
1175 inventory.CreateInInventory("Sedan_02_Wheel");
1176 inventory.CreateInInventory("Sedan_02_Wheel");
1177
1178 inventory.CreateInInventory("Sedan_02_Door_1_1_Grey");
1179 inventory.CreateInInventory("Sedan_02_Door_1_2_Grey");
1180 inventory.CreateInInventory("Sedan_02_Door_2_1_Grey");
1181 inventory.CreateInInventory("Sedan_02_Door_2_2_Grey");
1182 inventory.CreateInInventory("Sedan_02_Hood_Grey");
1183 inventory.CreateInInventory("Sedan_02_Trunk_Grey");
1184
1185 //-----IN CAR CARGO
1186 inventory.CreateInInventory("Sedan_02_Wheel");
1187 inventory.CreateInInventory("Sedan_02_Wheel");
1188 }
1189}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
CarDoorState
Определения CarScript.c:2
DayZGame g_Game
Определения DayZGame.c:4074
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:222
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:221
proto native void SetEnginePos(vector pos)
Override the position of engine (model space)
proto native bool EngineIsOn()
Returns true when engine is running, false otherwise.
void SpawnUniversalParts()
Определения MotorbikeScript.c:1425
string m_EngineStartOK
Определения MotorbikeScript.c:89
string m_EngineStartBattery
Определения MotorbikeScript.c:90
string m_EngineStartPlug
Определения MotorbikeScript.c:91
string m_EngineStartFuel
Определения MotorbikeScript.c:92
ref VehicleHornComponent m_HornComponent
Определения MotorbikeScript.c:75
string m_EngineStopFuel
Определения MotorbikeScript.c:94
ref VehicleLightsComponent m_LightsComponent
Определения MotorbikeScript.c:74
string m_EngineStop
Определения MotorbikeScript.c:93
Sedan_02LightProfileFront VehicleLightProfileFront Sedan_02LightProfileRear()
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
void VehicleLightData(VehicleLightProfileBase profile)
Определения VehicleLightsComponent.c:21
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
void ~Sedan_02()
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStop()
override void EEInit()
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanDisplayCargo()
override EntityAI GetElectricitySourceDevice()
Sedan_02 CarScript OnDebugSpawn()
override void OnEngineStart()
override int GetAnimInstance()
override bool CrewCanGetThrough(int posIdx)
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
override bool IsVitalGlowPlug()
override bool NeedElectricitySourceDevice()
void Sedan_02()
override string GetElectricitySourceDeviceType()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
override bool CanDisplayAttachmentCategory(string category_name)
static int SLOT_ID
Определения CarBattery.c:3
Определения CarBattery.c:2
Определения Truck_02.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
EntityAI CreateInInventory(string type)
creates entity somewhere in inventory
script counterpart to engine's class Inventory
Определения EnEntity.c:165
Определения EnMath.c:7
override void OnDebugSpawn()
override void OnDebugSpawn()
original Timer deletes m_params which is unwanted
Определения UniversalTemperatureSource.c:39
const int LONG
Определения VehicleHornComponent.c:5
const int SHORT
Определения VehicleHornComponent.c:4
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
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/DayZ/constants.c:856
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.