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

◆ CanReachDoorsFromSeat()

override bool OnDebugSpawn::CanReachDoorsFromSeat ( string pDoorsSelection,
int pCurrentSeat )
protected

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

848 : CarScript
849{
853
854 void Sedan_02()
855 {
856 m_dmgContactCoef = 0.0790;
857
858 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
859 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
860 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
861 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
862 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
863 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
864
865 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
866 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
867
868 m_LightsComponent.RegisterLight("Front", new VehicleLightData(new Sedan_02LightProfileFront()));
869 m_LightsComponent.RegisterLight("Rear", new VehicleLightData(new Sedan_02LightProfileRear()));
870
871 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "Sedan_02_Horn_Short_SoundSet");
872 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "Sedan_02_Horn_SoundSet");
873
874 SetEnginePos("0 0.7 -1.7");
875
877 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
878 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
879 }
880
881 void ~Sedan_02()
882 {
883 m_UTSource = null;
884 m_UTSSettings = null;
885 m_UTSLEngine = null;
886 }
887
888 override void EEInit()
889 {
890 super.EEInit();
891
892 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
893 {
895 m_UTSSettings.m_ManualUpdate = true;
897 m_UTSSettings.m_TemperatureCap = 0;
898 m_UTSSettings.m_RangeFull = 0.5;
899 m_UTSSettings.m_RangeMax = 2;
900
903 }
904 }
905
906 override bool NeedElectricitySourceDevice()
907 {
908 return true;
909 }
910
912 {
913 super.GetElectricitySourceDevice();
914
915 return GetInventory().FindAttachment(CarBattery.SLOT_ID);
916 }
917
918 override string GetElectricitySourceDeviceType()
919 {
920 return "CarBattery";
921 }
922
923 override void OnEngineStart()
924 {
925 super.OnEngineStart();
926
927 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
928 {
929 if (m_UTSource)
930 m_UTSource.SetDefferedActive(true, 20.0);
931 }
932 }
933
934 override void OnEngineStop()
935 {
936 super.OnEngineStop();
937
938 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
939 {
940 if (m_UTSource)
941 m_UTSource.SetDefferedActive(false, 10.0);
942 }
943 }
944
945 override void EOnPostSimulate(IEntity other, float timeSlice)
946 {
947 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
948 {
949 if (m_UTSource && m_UTSource.IsActive())
950 {
952 }
953 }
954 }
955
956 override int GetAnimInstance()
957 {
958 return VehicleAnimInstances.S120;
959 }
960
961 override int GetSeatAnimationType(int posIdx)
962 {
963 switch (posIdx)
964 {
965 case 0:
966 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
967 case 1:
968 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
969 case 2:
970 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
971 case 3:
972 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
973 }
974
975 return 0;
976 }
977
978 override bool CanReleaseAttachment( EntityAI attachment )
979 {
980 if (!super.CanReleaseAttachment(attachment))
981 {
982 return false;
983 }
984
985 string attType = attachment.GetType();
986 switch (attType)
987 {
988 case "CarBattery":
989 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
990 {
991 return false;
992 }
993 break;
994
995 case "SparkPlug":
996 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
997 {
998 return false;
999 }
1000 break;
1001
1002 case "CarRadiator":
1003 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
1004 {
1005 return false;
1006 }
1007 break;
1008 }
1009
1010 return true;
1011 }
1012
1013 override protected bool CanManipulateSpareWheel(string slotSelectionName)
1014 {
1015 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
1016 }
1017
1018 override bool CanDisplayAttachmentCategory(string category_name)
1019 {
1020 if ( !super.CanDisplayAttachmentCategory(category_name))
1021 {
1022 return false;
1023 }
1024
1025 category_name.ToLower();
1026 if (category_name.Contains("engine"))
1027 {
1028 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
1029 {
1030 return false;
1031 }
1032 }
1033
1034 if (category_name.Contains("trunk"))
1035 {
1036 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
1037 {
1038 return false;
1039 }
1040 }
1041
1042 return true;
1043 }
1044
1045 override bool CanDisplayCargo()
1046 {
1047 if ( !super.CanDisplayCargo() )
1048 return false;
1049
1050 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
1051 return false;
1052
1053 return true;
1054 }
1055
1056 override int GetCarDoorsState(string slotType)
1057 {
1058 CarDoor carDoor;
1059
1060 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
1061 if (!carDoor)
1062 {
1063 return CarDoorState.DOORS_MISSING;
1064 }
1065
1066 switch (slotType)
1067 {
1068 case "Sedan_02_Door_1_1":
1069 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1070
1071 case "Sedan_02_Door_2_1":
1072 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1073
1074 case "Sedan_02_Door_1_2":
1075 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
1076
1077 case "Sedan_02_Door_2_2":
1078 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
1079
1080 case "Sedan_02_Hood":
1081 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1082
1083 case "Sedan_02_Trunk":
1084 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1085 }
1086
1087 return CarDoorState.DOORS_MISSING;
1088 }
1089
1090
1091 override bool CrewCanGetThrough( int posIdx )
1092 {
1093 switch( posIdx )
1094 {
1095 case 0:
1096 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
1097 return false;
1098
1099 return true;
1100 break;
1101
1102 case 1:
1103 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
1104 return false;
1105
1106 return true;
1107 break;
1108
1109 case 2:
1110 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
1111 return false;
1112
1113 return true;
1114 break;
1115
1116 case 3:
1117 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
1118 return false;
1119
1120 return true;
1121 break;
1122 }
1123
1124 return false;
1125 }
1126
1127 override string GetDoorSelectionNameFromSeatPos(int posIdx)
1128 {
1129 switch( posIdx )
1130 {
1131 case 0:
1132 return "doors_driver";
1133 break;
1134 case 1:
1135 return "doors_codriver";
1136 break;
1137 case 2:
1138 return "doors_cargo1";
1139 break;
1140 case 3:
1141 return "doors_cargo2";
1142 break;
1143 }
1144
1145 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1146 }
1147
1148 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
1149 {
1150 switch( posIdx )
1151 {
1152 case 0:
1153 return "Sedan_02_Door_1_1";
1154 break;
1155 case 1:
1156 return "Sedan_02_Door_2_1";
1157 break;
1158 case 2:
1159 return "Sedan_02_Door_1_2";
1160 break;
1161 case 3:
1162 return "Sedan_02_Door_2_2";
1163 break;
1164 }
1165
1166 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1167 }
1168
1169 override float OnSound(CarSoundCtrl ctrl, float oldValue)
1170 {
1171 switch ( ctrl )
1172 {
1173 case CarSoundCtrl.DOORS:
1174 float newValue = 0;
1175 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
1176 {
1177 newValue += 0.25;
1178 }
1179
1180 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
1181 {
1182 newValue += 0.25;
1183 }
1184
1185 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
1186 {
1187 newValue += 0.25;
1188 }
1189
1190 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
1191 {
1192 newValue += 0.25;
1193 }
1194
1195 return Math.Clamp(newValue, 0, 1);
1196 break;
1197 }
1198
1199 return super.OnSound(ctrl, oldValue);
1200 }
1201
1202 override string GetAnimSourceFromSelection( string selection )
1203 {
1204 switch( selection )
1205 {
1206 case "doors_driver":
1207 return "DoorsDriver";
1208 case "doors_codriver":
1209 return "DoorsCoDriver";
1210 case "doors_cargo1":
1211 return "DoorsCargo1";
1212 case "doors_cargo2":
1213 return "DoorsCargo2";
1214 case "doors_hood":
1215 return "DoorsHood";
1216 case "doors_trunk":
1217 return "DoorsTrunk";
1218 }
1219
1220 return "";
1221 }
1222
1223 override bool IsVitalGlowPlug()
1224 {
1225 return false;
1226 }
1227
1228 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1229 {
1230 switch (currentSeat)
1231 {
1232 case 0:
1233 return nextSeat == 1;
1234
1235 case 1:
1236 return nextSeat == 0;
1237
1238 case 2:
1239 return nextSeat == 3;
1240
1241 case 3:
1242 return nextSeat == 2;
1243 }
1244
1245 return false;
1246 }
1247
1248 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
1249 {
1250 switch (pCurrentSeat)
1251 {
1252 case 0:
1253 return pDoorsSelection == "DoorsDriver";
1254
1255 case 1:
1256 return pDoorsSelection == "DoorsCoDriver";
1257
1258 case 2:
1259 return pDoorsSelection == "DoorsCargo1";
1260
1261 case 3:
1262 return pDoorsSelection == "DoorsCargo2";
1263 }
1264
1265 return false;
1266 }
1267
1268 override void OnDebugSpawn()
1269 {
1271 SpawnAdditionalItems();
1272 FillUpCarFluids();
1273
1274 GameInventory inventory = GetInventory();
1275 inventory.CreateInInventory("Sedan_02_Wheel");
1276 inventory.CreateInInventory("Sedan_02_Wheel");
1277 inventory.CreateInInventory("Sedan_02_Wheel");
1278 inventory.CreateInInventory("Sedan_02_Wheel");
1279 inventory.CreateInInventory("Sedan_02_Wheel");
1280
1281 inventory.CreateInInventory("Sedan_02_Door_1_1");
1282 inventory.CreateInInventory("Sedan_02_Door_1_2");
1283 inventory.CreateInInventory("Sedan_02_Door_2_1");
1284 inventory.CreateInInventory("Sedan_02_Door_2_2");
1285 inventory.CreateInInventory("Sedan_02_Hood");
1286 inventory.CreateInInventory("Sedan_02_Trunk");
1287
1288 //-----IN CAR CARGO
1289 inventory.CreateInInventory("Sedan_02_Wheel");
1290 inventory.CreateInInventory("Sedan_02_Wheel");
1291 }
1292}
1293
1294class Sedan_02_Red : Sedan_02
1295{
1296 override void OnDebugSpawn()
1297 {
1299 SpawnAdditionalItems();
1300 FillUpCarFluids();
1301
1302 GameInventory inventory = GetInventory();
1303 inventory.CreateInInventory("Sedan_02_Wheel");
1304 inventory.CreateInInventory("Sedan_02_Wheel");
1305 inventory.CreateInInventory("Sedan_02_Wheel");
1306 inventory.CreateInInventory("Sedan_02_Wheel");
1307
1308 inventory.CreateInInventory("Sedan_02_Door_1_1_Red");
1309 inventory.CreateInInventory("Sedan_02_Door_1_2_Red");
1310 inventory.CreateInInventory("Sedan_02_Door_2_1_Red");
1311 inventory.CreateInInventory("Sedan_02_Door_2_2_Red");
1312 inventory.CreateInInventory("Sedan_02_Hood_Red");
1313 inventory.CreateInInventory("Sedan_02_Trunk_Red");
1314
1315 //-----IN CAR CARGO
1316 inventory.CreateInInventory("Sedan_02_Wheel");
1317 inventory.CreateInInventory("Sedan_02_Wheel");
1318 }
1319}
1320
1321class Sedan_02_Grey : Sedan_02
1322{
1323 override void OnDebugSpawn()
1324 {
1326 SpawnAdditionalItems();
1327 FillUpCarFluids();
1328
1329 GameInventory inventory = GetInventory();
1330 inventory.CreateInInventory("Sedan_02_Wheel");
1331 inventory.CreateInInventory("Sedan_02_Wheel");
1332 inventory.CreateInInventory("Sedan_02_Wheel");
1333 inventory.CreateInInventory("Sedan_02_Wheel");
1334
1335 inventory.CreateInInventory("Sedan_02_Door_1_1_Grey");
1336 inventory.CreateInInventory("Sedan_02_Door_1_2_Grey");
1337 inventory.CreateInInventory("Sedan_02_Door_2_1_Grey");
1338 inventory.CreateInInventory("Sedan_02_Door_2_2_Grey");
1339 inventory.CreateInInventory("Sedan_02_Hood_Grey");
1340 inventory.CreateInInventory("Sedan_02_Trunk_Grey");
1341
1342 //-----IN CAR CARGO
1343 inventory.CreateInInventory("Sedan_02_Wheel");
1344 inventory.CreateInInventory("Sedan_02_Wheel");
1345 }
1346}
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.