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

◆ CanReachSeatFromSeat()

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

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

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