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

◆ CrewCanGetThrough()

override bool OnDebugSpawn::CrewCanGetThrough ( int posIdx)
protected

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

713 : CarScript
714{
718
719 void OffroadHatchback()
720 {
721 //m_dmgContactCoef = 0.075;
722
723 m_EngineStartOK = "offroad_engine_start_SoundSet";
724 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
725 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
726 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
727 m_EngineStop = "offroad_engine_stop_SoundSet";
728 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
729
730 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
731 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
732 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
733 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
734
737
738 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "Offroad_Horn_Short_SoundSet");
739 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "Offroad_Horn_SoundSet");
740
741 SetEnginePos("0 0.7 1.2");
742
744 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
745 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
746 }
747
748 void ~OffroadHatchback()
749 {
750 m_UTSource = null;
751 m_UTSSettings = null;
752 m_UTSLEngine = null;
753 }
754
755 override void EEInit()
756 {
757 super.EEInit();
758
759 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
760 {
762 m_UTSSettings.m_ManualUpdate = true;
764 m_UTSSettings.m_TemperatureCap = 0;
765 m_UTSSettings.m_RangeFull = 0.5;
766 m_UTSSettings.m_RangeMax = 2;
767
770 }
771 }
772
773 override bool NeedElectricitySourceDevice()
774 {
775 return true;
776 }
777
779 {
780 super.GetElectricitySourceDevice();
781
782 return GetInventory().FindAttachment(CarBattery.SLOT_ID);
783 }
784
785 override string GetElectricitySourceDeviceType()
786 {
787 return "CarBattery";
788 }
789
790 override void OnEngineStart()
791 {
792 super.OnEngineStart();
793
794 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
795 {
796 if (m_UTSource)
797 m_UTSource.SetDefferedActive(true, 20.0);
798 }
799 }
800
801 override void OnEngineStop()
802 {
803 super.OnEngineStop();
804
805 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
806 {
807 if (m_UTSource)
808 m_UTSource.SetDefferedActive(false, 10.0);
809 }
810 }
811
812 override void EOnPostSimulate(IEntity other, float timeSlice)
813 {
814 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
815 {
816 if (m_UTSource && m_UTSource.IsActive())
817 {
819 }
820 }
821 }
822
823 override int GetAnimInstance()
824 {
825 return VehicleAnimInstances.HATCHBACK;
826 }
827
828 override float GetTransportCameraDistance()
829 {
830 return 3.5;
831 }
832
833 override int GetSeatAnimationType( int posIdx )
834 {
835 switch (posIdx)
836 {
837 case 0:
838 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
839 case 1:
840 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
841 case 2:
842 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
843 case 3:
844 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
845 }
846
847 return 0;
848
849 }
850
851 override bool CanReleaseAttachment(EntityAI attachment)
852 {
853 if (!super.CanReleaseAttachment(attachment))
854 {
855 return false;
856 }
857
858 if (EngineIsOn() || GetCarDoorsState("NivaHood") == CarDoorState.DOORS_CLOSED)
859 {
860 string attType = attachment.GetType();
861 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
862 {
863 return false;
864 }
865 }
866
867 return true;
868 }
869
870 override protected bool CanManipulateSpareWheel(string slotSelectionName)
871 {
872 return GetCarDoorsState("NivaHood") != CarDoorState.DOORS_CLOSED;
873 }
874
875 override bool CanDisplayAttachmentCategory( string category_name )
876 {
877 if (!super.CanDisplayAttachmentCategory(category_name))
878 {
879 return false;
880 }
881
882 category_name.ToLower();
883 if (category_name.Contains("engine"))
884 {
885 if (GetCarDoorsState("NivaHood") == CarDoorState.DOORS_CLOSED)
886 {
887 return false;
888 }
889 }
890
891 return true;
892 }
893
894 override bool CanDisplayCargo()
895 {
896 if (!super.CanDisplayCargo())
897 {
898 return false;
899 }
900
901 if (GetCarDoorsState("NivaTrunk") == CarDoorState.DOORS_CLOSED)
902 {
903 return false;
904 }
905
906 return true;
907 }
908
909 override int GetCarDoorsState(string slotType)
910 {
911 CarDoor carDoor;
912
913 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
914 if (!carDoor)
915 {
916 return CarDoorState.DOORS_MISSING;
917 }
918
919 switch (slotType)
920 {
921 case "NivaDriverDoors":
922 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
923
924 case "NivaCoDriverDoors":
925 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
926
927 case "NivaHood":
928 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
929
930 case "NivaTrunk":
931 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
932 }
933
934 return CarDoorState.DOORS_MISSING;
935 }
936
937 override bool CrewCanGetThrough(int posIdx)
938 {
939 CarDoor carDoor;
940 switch (posIdx)
941 {
942 case 0:
943 if (GetCarDoorsState("NivaDriverDoors") == CarDoorState.DOORS_CLOSED)
944 return false;
945 else if (GetAnimationPhase("SeatDriver") > 0.5)
946 return false;
947
948 return true;
949
950 case 1:
951 if (GetCarDoorsState("NivaCoDriverDoors") == CarDoorState.DOORS_CLOSED)
952 return false;
953 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
954 return false;
955
956 return true;
957
958 case 2:
959 if (GetCarDoorsState("NivaDriverDoors") == CarDoorState.DOORS_CLOSED)
960 return false;
961 else if (GetAnimationPhase("SeatDriver") <= 0.5)
962 return false;
963
964 return true;
965
966 case 3:
967 if (GetCarDoorsState("NivaCoDriverDoors") == CarDoorState.DOORS_CLOSED)
968 return false;
969 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
970 return false;
971
972 return true;
973 }
974
975 return false;
976 }
977
978 override string GetDoorSelectionNameFromSeatPos(int posIdx)
979 {
980 switch (posIdx)
981 {
982 case 0:
983 case 2:
984 return "doors_driver";
985 case 1:
986 case 3:
987 return "doors_codriver";
988 }
989
990 return super.GetDoorSelectionNameFromSeatPos(posIdx);
991 }
992
993 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
994 {
995 switch (posIdx)
996 {
997 case 0:
998 case 2:
999 return "NivaDriverDoors";
1000 case 1:
1001 case 3:
1002 return "NivaCoDriverDoors";
1003 }
1004
1005 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1006 }
1007
1008 // 0 full ambient and engine sound
1009 // 1 zero ambient and engine sound
1010 override float OnSound(CarSoundCtrl ctrl, float oldValue)
1011 {
1012 float tempCap = 0.0;
1013
1014 switch (ctrl)
1015 {
1016 case CarSoundCtrl.DOORS:
1017 float newValue = 0;
1018 if (GetCarDoorsState("NivaDriverDoors") == CarDoorState.DOORS_CLOSED)
1019 {
1020 newValue += 0.5;
1021 }
1022
1023 if (GetCarDoorsState("NivaCoDriverDoors") == CarDoorState.DOORS_CLOSED)
1024 {
1025 newValue += 0.5;
1026 }
1027
1028 if (GetCarDoorsState("NivaTrunk") == CarDoorState.DOORS_CLOSED)
1029 {
1030 newValue += 0.3;
1031 }
1032
1033 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
1034 {
1035 newValue -= 0.6;
1036 }
1037
1038 if (GetHealthLevel("WindowLR") == GameConstants.STATE_RUINED)
1039 {
1040 newValue -= 0.2;
1041 }
1042
1043 if (GetHealthLevel("WindowRR") == GameConstants.STATE_RUINED)
1044 {
1045 newValue -= 0.2;
1046 }
1047
1048 return Math.Clamp(newValue, 0, 1);
1049 break;
1050 }
1051
1052 return super.OnSound(ctrl, oldValue);
1053 }
1054
1055 override string GetAnimSourceFromSelection( string selection )
1056 {
1057 switch (selection)
1058 {
1059 case "doors_driver":
1060 return "DoorsDriver";
1061 case "doors_codriver":
1062 return "DoorsCoDriver";
1063 case "doors_hood":
1064 return "DoorsHood";
1065 case "doors_trunk":
1066 return "DoorsTrunk";
1067 case "seatback_driver":
1068 return "SeatDriver";
1069 case "seatback_codriver":
1070 return "SeatCoDriver";
1071 }
1072
1073 return "";
1074 }
1075
1076 override string GetDoorConditionPointFromSelection(string selection)
1077 {
1078 switch (selection)
1079 {
1080 case "seat_driver":
1081 case "seatback_driver":
1082 case "seat_cargo1":
1083 return "seat_con_1_1";
1084 case "seat_codriver":
1085 case "seatback_codriver":
1086 case "seat_cargo2":
1087 return "seat_con_2_1";
1088 }
1089
1090 return "";
1091 }
1092
1093 override int GetCrewIndex(string selection)
1094 {
1095 switch (selection)
1096 {
1097 case "seatback_driver":
1098 return 0;
1099 case "seatback_codriver":
1100 return 1;
1101 }
1102
1103 return -1;
1104 }
1105
1106 override bool IsVitalGlowPlug()
1107 {
1108 return false;
1109 }
1110
1111 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1112 {
1113 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1114 return false;
1115
1116 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1117 return false;
1118
1119 switch (currentSeat)
1120 {
1121 case 0:
1122 return nextSeat == 1;
1123
1124 case 1:
1125 return nextSeat == 0;
1126
1127 case 2:
1128 return nextSeat == 3;
1129
1130 case 3:
1131 return nextSeat == 2;
1132 }
1133
1134 return false;
1135 }
1136
1137 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
1138 {
1139 switch (pCurrentSeat)
1140 {
1141 case 0:
1142 return pDoorsSelection == "DoorsDriver";
1143
1144 case 1:
1145 return pDoorsSelection == "DoorsCoDriver";
1146
1147 case 2:
1148 return pDoorsSelection == "DoorsDriver";
1149
1150 case 3:
1151 return pDoorsSelection == "DoorsCoDriver";
1152 }
1153
1154 return false;
1155 }
1156
1157 override int GetSeatIndexFromDoor( string pDoorSelection )
1158 {
1159 switch (pDoorSelection)
1160 {
1161 case "DoorsDriver":
1162 return 0;
1163 case "DoorsCoDriver":
1164 return 1;
1165 }
1166
1167 return -1;
1168 }
1169
1170 override void SetActions()
1171 {
1172 super.SetActions();
1173
1175 }
1176
1177 override void OnDebugSpawn()
1178 {
1180 SpawnAdditionalItems();
1181 FillUpCarFluids();
1182
1183 GameInventory inventory = GetInventory();
1184 inventory.CreateInInventory("HatchbackWheel");
1185 inventory.CreateInInventory("HatchbackWheel");
1186 inventory.CreateInInventory("HatchbackWheel" );
1187 inventory.CreateInInventory("HatchbackWheel");
1188
1189 inventory.CreateInInventory("HatchbackDoors_Driver");
1190 inventory.CreateInInventory("HatchbackDoors_CoDriver");
1191 inventory.CreateInInventory("HatchbackHood");
1192 inventory.CreateInInventory("HatchbackTrunk");
1193
1194 //-----IN CAR CARGO
1195 inventory.CreateInInventory("HatchbackWheel");
1196 inventory.CreateInInventory("HatchbackWheel");
1197 }
1198}
1199
1200class OffroadHatchback_White : OffroadHatchback
1201{
1202 override void OnDebugSpawn()
1203 {
1205 SpawnAdditionalItems();
1206 FillUpCarFluids();
1207
1208 GameInventory inventory = GetInventory();
1209 inventory.CreateInInventory("HatchbackWheel");
1210 inventory.CreateInInventory("HatchbackWheel");
1211 inventory.CreateInInventory("HatchbackWheel");
1212 inventory.CreateInInventory("HatchbackWheel");
1213
1214 inventory.CreateInInventory("HatchbackDoors_Driver_White");
1215 inventory.CreateInInventory("HatchbackDoors_CoDriver_White");
1216 inventory.CreateInInventory("HatchbackHood_White");
1217 inventory.CreateInInventory("HatchbackTrunk_White");
1218
1219
1220 //-----IN CAR CARGO
1221 inventory.CreateInInventory("HatchbackWheel");
1222 inventory.CreateInInventory("HatchbackWheel");
1223 }
1224}
1225
1227{
1228 override void OnDebugSpawn()
1229 {
1231 SpawnAdditionalItems();
1232 FillUpCarFluids();
1233
1234 GameInventory inventory = GetInventory();
1235 inventory.CreateInInventory("HatchbackWheel");
1236 inventory.CreateInInventory("HatchbackWheel");
1237 inventory.CreateInInventory("HatchbackWheel");
1238 inventory.CreateInInventory("HatchbackWheel");
1239
1240 inventory.CreateInInventory("HatchbackDoors_Driver_Blue");
1241 inventory.CreateInInventory("HatchbackDoors_CoDriver_Blue");
1242 inventory.CreateInInventory("HatchbackHood_Blue");
1243 inventory.CreateInInventory("HatchbackTrunk_Blue");
1244
1245 //-----IN CAR CARGO
1246 inventory.CreateInInventory("HatchbackWheel");
1247 inventory.CreateInInventory("HatchbackWheel");
1248 }
1249}
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
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
OffroadHatchbackLightProfileFront VehicleLightProfileFront OffroadHatchbackLightProfileRear()
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
void VehicleLightData(VehicleLightProfileBase profile)
Определения VehicleLightsComponent.c:21
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override void SetActions()
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
override string GetDoorConditionPointFromSelection(string selection)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStop()
override float GetTransportCameraDistance()
override void EEInit()
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanDisplayCargo()
override EntityAI GetElectricitySourceDevice()
void ~OffroadHatchback()
override void OnEngineStart()
override int GetAnimInstance()
override bool CrewCanGetThrough(int posIdx)
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
OffroadHatchback CarScript OnDebugSpawn()
override bool IsVitalGlowPlug()
override bool NeedElectricitySourceDevice()
override int GetSeatIndexFromDoor(string pDoorSelection)
override string GetElectricitySourceDeviceType()
void OffroadHatchback()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
override int GetCrewIndex(string selection)
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()
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
const int STATE_RUINED
Определения 3_Game/DayZ/constants.c:909
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.