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

◆ CanReachSeatFromSeat()

override bool OnDebugSpawn::CanReachSeatFromSeat ( int currentSeat,
int nextSeat )
protected

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

832 : CarScript
833{
837
838 void Offroad_02()
839 {
840 //m_dmgContactCoef = 0.0365;
841
842 m_EngineStartOK = "Offroad_02_engine_start_SoundSet";
843 m_EngineStartBattery = "Offroad_02_engine_failed_start_battery_SoundSet";
844 m_EngineStartPlug = "Offroad_02_engine_failed_start_sparkplugs_SoundSet";
845 m_EngineStartFuel = "Offroad_02_engine_failed_start_fuel_SoundSet";
846 m_EngineStop = "Offroad_02_engine_stop_SoundSet";
847 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
848
849 m_CarDoorOpenSound = "offroad_02_door_open_SoundSet";
850 m_CarDoorCloseSound = "offroad_02_door_close_SoundSet";
851
852 m_LightsComponent.RegisterLight("Front", new VehicleLightData(new Offroad_02LightProfileFront()));
853 m_LightsComponent.RegisterLight("Rear", new VehicleLightData(new Offroad_02LightProfileRear()));
854
855 m_LightsComponent.RegisterSelection("BrakesOn", {
856 new VehicleLightSelectionData(SELECTION_ID_TAIL_LIGHT_L, "brakeReflectorMatOn"),
857 new VehicleLightSelectionData(SELECTION_ID_TAIL_LIGHT_R, "brakeReflectorMatOn"),
858 });
859 m_LightsComponent.RegisterSelection("BrakesOff", {
860 new VehicleLightSelectionData(SELECTION_ID_TAIL_LIGHT_L, "brakeReflectorMatOff"),
861 new VehicleLightSelectionData(SELECTION_ID_TAIL_LIGHT_R, "brakeReflectorMatOff"),
862 });
863
864 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "Offroad_02_Horn_Short_SoundSet");
865 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "Offroad_02_Horn_SoundSet");
866
867 SetEnginePos("0 0.7 1.7");
868
870 m_CarHornShortSoundName = "Offroad_02_Horn_Short_SoundSet";
871 m_CarHornLongSoundName = "Offroad_02_Horn_SoundSet";
872 }
873
874 void ~Offroad_02()
875 {
876 m_UTSource = null;
877 m_UTSSettings = null;
878 m_UTSLEngine = null;
879 }
880
881 override void EEInit()
882 {
883 super.EEInit();
884
885 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
886 {
888 m_UTSSettings.m_ManualUpdate = true;
890 m_UTSSettings.m_TemperatureCap = 0;
891 m_UTSSettings.m_RangeFull = 0.5;
892 m_UTSSettings.m_RangeMax = 2;
893
896 }
897 }
898
899 override bool HasGangedTailAndBrakeLights()
900 {
901 return true;
902 }
903
904 override bool NeedElectricitySourceDevice()
905 {
906 return true;
907 }
908
910 {
911 super.GetElectricitySourceDevice();
912
913 return GetInventory().FindAttachment(CarBattery.SLOT_ID);
914 }
915
916 override string GetElectricitySourceDeviceType()
917 {
918 return "CarBattery";
919 }
920
921 override void OnEngineStart()
922 {
923 super.OnEngineStart();
924
925 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
926 {
927 if (m_UTSource)
928 m_UTSource.SetDefferedActive(true, 20.0);
929 }
930 }
931
932 override void OnEngineStop()
933 {
934 super.OnEngineStop();
935
936 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
937 {
938 if (m_UTSource)
939 m_UTSource.SetDefferedActive(false, 10.0);
940 }
941 }
942
943 override void EOnPostSimulate(IEntity other, float timeSlice)
944 {
945 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
946 {
947 if (m_UTSource && m_UTSource.IsActive())
948 {
950 }
951 }
952 }
953
954 override int GetAnimInstance()
955 {
956 return VehicleAnimInstances.HMMWV;
957 }
958
959 override float GetTransportCameraDistance()
960 {
961 return 5.1;
962 }
963
964 override float GetWeightCoef()
965 {
966 return 1.5;
967 }
968
969 override int GetSeatAnimationType(int posIdx)
970 {
971 switch (posIdx)
972 {
973 case 0:
974 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
975 case 1:
976 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
977 case 2:
978 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
979 case 3:
980 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
981 }
982
983 return 0;
984 }
985
986 override bool CanReleaseAttachment( EntityAI attachment )
987 {
988 if (!super.CanReleaseAttachment(attachment))
989 {
990 return false;
991 }
992
993 string attType = attachment.GetType();
994 switch (attType)
995 {
996 case "CarBattery":
997 if (GetCarDoorsState("Offroad_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
998 {
999 return false;
1000 }
1001 break;
1002
1003 case "GlowPlug":
1004 if (GetCarDoorsState("Offroad_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
1005 {
1006 return false;
1007 }
1008 break;
1009 }
1010
1011 return true;
1012 }
1013
1014 override protected bool CanManipulateSpareWheel(string slotSelectionName)
1015 {
1016 return GetCarDoorsState("Offroad_02_Trunk") != CarDoorState.DOORS_CLOSED;
1017 }
1018
1019 override bool CanDisplayAttachmentCategory(string category_name)
1020 {
1021 if ( !super.CanDisplayAttachmentCategory(category_name))
1022 {
1023 return false;
1024 }
1025
1026 category_name.ToLower();
1027 if (category_name.Contains("engine"))
1028 {
1029 if (GetCarDoorsState("Offroad_02_Hood") == CarDoorState.DOORS_CLOSED)
1030 {
1031 return false;
1032 }
1033 }
1034
1035 return true;
1036 }
1037
1038 override bool CanDisplayCargo()
1039 {
1040 if ( !super.CanDisplayCargo() )
1041 return false;
1042
1043 if ( GetCarDoorsState("Offroad_02_Trunk") == CarDoorState.DOORS_CLOSED )
1044 return false;
1045
1046 return true;
1047 }
1048
1049 override int GetCarDoorsState(string slotType)
1050 {
1051 CarDoor carDoor;
1052
1053 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
1054 if (!carDoor)
1055 {
1056 return CarDoorState.DOORS_MISSING;
1057 }
1058
1059 switch (slotType)
1060 {
1061 case "Offroad_02_Door_1_1":
1062 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1063
1064 case "Offroad_02_Door_2_1":
1065 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1066
1067 case "Offroad_02_Door_1_2":
1068 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
1069
1070 case "Offroad_02_Door_2_2":
1071 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
1072
1073 case "Offroad_02_Hood":
1074 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1075
1076 case "Offroad_02_Trunk":
1077 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1078 }
1079
1080 return CarDoorState.DOORS_MISSING;
1081 }
1082
1083
1084 override bool CrewCanGetThrough( int posIdx )
1085 {
1086 switch( posIdx )
1087 {
1088 case 0:
1089 if ( GetCarDoorsState("Offroad_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
1090 return false;
1091
1092 return true;
1093 break;
1094
1095 case 1:
1096 if ( GetCarDoorsState("Offroad_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
1097 return false;
1098
1099 return true;
1100 break;
1101
1102 case 2:
1103 if ( GetCarDoorsState("Offroad_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
1104 return false;
1105
1106 return true;
1107 break;
1108
1109 case 3:
1110 if ( GetCarDoorsState("Offroad_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
1111 return false;
1112
1113 return true;
1114 break;
1115 }
1116
1117 return false;
1118 }
1119
1120 override string GetDoorSelectionNameFromSeatPos(int posIdx)
1121 {
1122 switch( posIdx )
1123 {
1124 case 0:
1125 return "doors_driver";
1126 break;
1127 case 1:
1128 return "doors_codriver";
1129 break;
1130 case 2:
1131 return "doors_cargo1";
1132 break;
1133 case 3:
1134 return "doors_cargo2";
1135 break;
1136 }
1137
1138 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1139 }
1140
1141 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
1142 {
1143 switch (posIdx)
1144 {
1145 case 0:
1146 return "Offroad_02_Door_1_1";
1147 case 1:
1148 return "Offroad_02_Door_2_1";
1149 case 2:
1150 return "Offroad_02_Door_1_2";
1151 case 3:
1152 return "Offroad_02_Door_2_2";
1153 }
1154
1155 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1156 }
1157
1158 override float OnSound(CarSoundCtrl ctrl, float oldValue)
1159 {
1160 switch ( ctrl )
1161 {
1162 case CarSoundCtrl.DOORS:
1163 float newValue = 0;
1164 if (GetCarDoorsState("Offroad_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
1165 {
1166 newValue += 0.25;
1167 }
1168
1169 if (GetCarDoorsState("Offroad_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
1170 {
1171 newValue += 0.25;
1172 }
1173
1174 if (GetCarDoorsState("Offroad_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
1175 {
1176 newValue += 0.25;
1177 }
1178
1179 if (GetCarDoorsState("Offroad_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
1180 {
1181 newValue += 0.25;
1182 }
1183
1184 return Math.Clamp(newValue, 0, 1);
1185 break;
1186 }
1187
1188 return super.OnSound(ctrl, oldValue);
1189 }
1190
1191 override string GetAnimSourceFromSelection(string selection)
1192 {
1193 switch (selection)
1194 {
1195 case "doors_driver":
1196 return "DoorsDriver";
1197 case "doors_codriver":
1198 return "DoorsCoDriver";
1199 case "doors_cargo1":
1200 return "DoorsCargo1";
1201 case "doors_cargo2":
1202 return "DoorsCargo2";
1203 case "doors_hood":
1204 return "DoorsHood";
1205 case "doors_trunk":
1206 return "DoorsTrunk";
1207 }
1208
1209 return "";
1210 }
1211
1212 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1213 {
1214 switch (currentSeat)
1215 {
1216 case 0:
1217 return nextSeat == 1;
1218 case 1:
1219 return nextSeat == 0;
1220 case 2:
1221 return nextSeat == 3;
1222 case 3:
1223 return nextSeat == 2;
1224 }
1225
1226 return false;
1227 }
1228
1229 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
1230 {
1231 switch (pCurrentSeat)
1232 {
1233 case 0:
1234 return pDoorsSelection == "DoorsDriver";
1235 case 1:
1236 return pDoorsSelection == "DoorsCoDriver";
1237 case 2:
1238 return pDoorsSelection == "DoorsCargo1";
1239 case 3:
1240 return pDoorsSelection == "DoorsCargo2";
1241 }
1242
1243 return false;
1244 }
1245
1246 override bool IsVitalSparkPlug()
1247 {
1248 return false;
1249 }
1250
1251 override bool IsVitalRadiator()
1252 {
1253 return false;
1254 }
1255
1256 override void OnDebugSpawn()
1257 {
1259 SpawnAdditionalItems();
1260 FillUpCarFluids();
1261
1262 GameInventory inventory = GetInventory();
1263 inventory.CreateInInventory("Offroad_02_Wheel");
1264 inventory.CreateInInventory("Offroad_02_Wheel");
1265 inventory.CreateInInventory("Offroad_02_Wheel");
1266 inventory.CreateInInventory("Offroad_02_Wheel");
1267
1268 inventory.CreateInInventory("Offroad_02_Door_1_1");
1269 inventory.CreateInInventory("Offroad_02_Door_1_2");
1270 inventory.CreateInInventory("Offroad_02_Door_2_1");
1271 inventory.CreateInInventory("Offroad_02_Door_2_2");
1272 inventory.CreateInInventory("Offroad_02_Hood");
1273 inventory.CreateInInventory("Offroad_02_Trunk");
1274
1275 //-----IN CAR CARGO
1276 inventory.CreateInInventory("Offroad_02_Wheel");
1277 inventory.CreateInInventory("Offroad_02_Wheel");
1278 }
1279}
1280
1281
1282class Offroad_02_Beige : Offroad_02
1283{
1284 override void OnDebugSpawn()
1285 {
1287 SpawnAdditionalItems();
1288 FillUpCarFluids();
1289
1290 GetInventory().CreateInInventory("Offroad_02_Wheel");
1291 GetInventory().CreateInInventory("Offroad_02_Wheel");
1292 GetInventory().CreateInInventory("Offroad_02_Wheel");
1293 GetInventory().CreateInInventory("Offroad_02_Wheel");
1294
1295 GetInventory().CreateInInventory("Offroad_02_Door_1_1_Beige");
1296 GetInventory().CreateInInventory("Offroad_02_Door_1_2_Beige");
1297 GetInventory().CreateInInventory("Offroad_02_Door_2_1_Beige");
1298 GetInventory().CreateInInventory("Offroad_02_Door_2_2_Beige");
1299 GetInventory().CreateInInventory("Offroad_02_Trunk_Beige");
1300 GetInventory().CreateInInventory("Offroad_02_Hood_Beige");
1301
1302 //-----IN CAR CARGO
1303 GetInventory().CreateInInventory("Offroad_02_Wheel");
1304 GetInventory().CreateInInventory("Offroad_02_Wheel");
1305 }
1306}
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
Offroad_02LightProfileFront VehicleLightProfileFront Offroad_02LightProfileRear()
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
void VehicleLightData(VehicleLightProfileBase profile)
Определения VehicleLightsComponent.c:21
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override bool IsVitalRadiator()
void ~Offroad_02()
override bool IsVitalSparkPlug()
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()
override float GetTransportCameraDistance()
override void EEInit()
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanDisplayCargo()
Offroad_02 CarScript OnDebugSpawn()
override EntityAI GetElectricitySourceDevice()
override void OnEngineStart()
override bool HasGangedTailAndBrakeLights()
override int GetAnimInstance()
override bool CrewCanGetThrough(int posIdx)
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
override bool NeedElectricitySourceDevice()
void Offroad_02()
override float GetWeightCoef()
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()
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.