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

◆ CanReachDoorsFromSeat()

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

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

818{
822
823 void Sedan_02()
824 {
825 m_dmgContactCoef = 0.0790;
826
827 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
828 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
829 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
830 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
831 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
832 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
833
834 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
835 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
836
837 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
838 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
839
840 SetEnginePos("0 0.7 -1.7");
841 }
842
843 override void EEInit()
844 {
845 super.EEInit();
846
847 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
848 {
850 m_UTSSettings.m_ManualUpdate = true;
852 m_UTSSettings.m_TemperatureCap = 0;
853 m_UTSSettings.m_RangeFull = 0.5;
854 m_UTSSettings.m_RangeMax = 2;
855
858 }
859 }
860
861 override void OnEngineStart()
862 {
863 super.OnEngineStart();
864
865 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
866 {
867 m_UTSource.SetDefferedActive(true, 20.0);
868 }
869 }
870
871 override void OnEngineStop()
872 {
873 super.OnEngineStop();
874
875 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
876 {
877 m_UTSource.SetDefferedActive(false, 10.0);
878 }
879 }
880
881 override void EOnPostSimulate(IEntity other, float timeSlice)
882 {
883 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
884 {
885 if (m_UTSource.IsActive())
886 {
888 }
889 }
890 }
891
892 override int GetAnimInstance()
893 {
894 return VehicleAnimInstances.S120;
895 }
896
897 override int GetSeatAnimationType(int posIdx)
898 {
899 switch (posIdx)
900 {
901 case 0:
902 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
903 case 1:
904 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
905 case 2:
906 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
907 case 3:
908 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
909 }
910
911 return 0;
912 }
913
914 // Override for car-specific light type
916 {
917 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02FrontLight));
918 }
919
920 // Override for car-specific light type
922 {
923 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02RearLight));
924 }
925
926 override bool CanReleaseAttachment( EntityAI attachment )
927 {
928 if (!super.CanReleaseAttachment(attachment))
929 {
930 return false;
931 }
932
933 string attType = attachment.GetType();
934 switch (attType)
935 {
936 case "CarBattery":
937 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
938 {
939 return false;
940 }
941 break;
942
943 case "SparkPlug":
944 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
945 {
946 return false;
947 }
948 break;
949
950 case "CarRadiator":
951 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
952 {
953 return false;
954 }
955 break;
956 }
957
958 return true;
959 }
960
961 override protected bool CanManipulateSpareWheel(string slotSelectionName)
962 {
963 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
964 }
965
966 override bool CanDisplayAttachmentCategory(string category_name)
967 {
968 if ( !super.CanDisplayAttachmentCategory(category_name))
969 {
970 return false;
971 }
972
973 category_name.ToLower();
974 if (category_name.Contains("engine"))
975 {
976 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
977 {
978 return false;
979 }
980 }
981
982 if (category_name.Contains("trunk"))
983 {
984 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
985 {
986 return false;
987 }
988 }
989
990 return true;
991 }
992
993 override bool CanDisplayCargo()
994 {
995 if ( !super.CanDisplayCargo() )
996 return false;
997
998 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
999 return false;
1000
1001 return true;
1002 }
1003
1004 override int GetCarDoorsState(string slotType)
1005 {
1006 CarDoor carDoor;
1007
1008 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
1009 if (!carDoor)
1010 {
1011 return CarDoorState.DOORS_MISSING;
1012 }
1013
1014 switch (slotType)
1015 {
1016 case "Sedan_02_Door_1_1":
1017 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
1018
1019 case "Sedan_02_Door_2_1":
1020 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
1021
1022 case "Sedan_02_Door_1_2":
1023 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
1024
1025 case "Sedan_02_Door_2_2":
1026 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
1027
1028 case "Sedan_02_Hood":
1029 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1030
1031 case "Sedan_02_Trunk":
1032 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1033 }
1034
1035 return CarDoorState.DOORS_MISSING;
1036 }
1037
1038
1039 override bool CrewCanGetThrough( int posIdx )
1040 {
1041 switch( posIdx )
1042 {
1043 case 0:
1044 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
1045 return false;
1046
1047 return true;
1048 break;
1049
1050 case 1:
1051 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
1052 return false;
1053
1054 return true;
1055 break;
1056
1057 case 2:
1058 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
1059 return false;
1060
1061 return true;
1062 break;
1063
1064 case 3:
1065 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
1066 return false;
1067
1068 return true;
1069 break;
1070 }
1071
1072 return false;
1073 }
1074
1075 override string GetDoorSelectionNameFromSeatPos(int posIdx)
1076 {
1077 switch( posIdx )
1078 {
1079 case 0:
1080 return "doors_driver";
1081 break;
1082 case 1:
1083 return "doors_codriver";
1084 break;
1085 case 2:
1086 return "doors_cargo1";
1087 break;
1088 case 3:
1089 return "doors_cargo2";
1090 break;
1091 }
1092
1093 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1094 }
1095
1096 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
1097 {
1098 switch( posIdx )
1099 {
1100 case 0:
1101 return "Sedan_02_Door_1_1";
1102 break;
1103 case 1:
1104 return "Sedan_02_Door_2_1";
1105 break;
1106 case 2:
1107 return "Sedan_02_Door_1_2";
1108 break;
1109 case 3:
1110 return "Sedan_02_Door_2_2";
1111 break;
1112 }
1113
1114 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1115 }
1116
1117 override float OnSound(CarSoundCtrl ctrl, float oldValue)
1118 {
1119 switch ( ctrl )
1120 {
1121 case CarSoundCtrl.DOORS:
1122 float newValue = 0;
1123 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
1124 {
1125 newValue += 0.25;
1126 }
1127
1128 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
1129 {
1130 newValue += 0.25;
1131 }
1132
1133 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
1134 {
1135 newValue += 0.25;
1136 }
1137
1138 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
1139 {
1140 newValue += 0.25;
1141 }
1142
1143 return Math.Clamp(newValue, 0, 1);
1144 break;
1145 }
1146
1147 return super.OnSound(ctrl, oldValue);
1148 }
1149
1150 override string GetAnimSourceFromSelection( string selection )
1151 {
1152 switch( selection )
1153 {
1154 case "doors_driver":
1155 return "DoorsDriver";
1156 case "doors_codriver":
1157 return "DoorsCoDriver";
1158 case "doors_cargo1":
1159 return "DoorsCargo1";
1160 case "doors_cargo2":
1161 return "DoorsCargo2";
1162 case "doors_hood":
1163 return "DoorsHood";
1164 case "doors_trunk":
1165 return "DoorsTrunk";
1166 }
1167
1168 return "";
1169 }
1170
1171
1172 override bool IsVitalTruckBattery()
1173 {
1174 return false;
1175 }
1176
1177 override bool IsVitalGlowPlug()
1178 {
1179 return false;
1180 }
1181
1182 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1183 {
1184 switch (currentSeat)
1185 {
1186 case 0:
1187 return nextSeat == 1;
1188
1189 case 1:
1190 return nextSeat == 0;
1191
1192 case 2:
1193 return nextSeat == 3;
1194
1195 case 3:
1196 return nextSeat == 2;
1197 }
1198
1199 return false;
1200 }
1201
1202 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
1203 {
1204 switch (pCurrentSeat)
1205 {
1206 case 0:
1207 return pDoorsSelection == "DoorsDriver";
1208
1209 case 1:
1210 return pDoorsSelection == "DoorsCoDriver";
1211
1212 case 2:
1213 return pDoorsSelection == "DoorsCargo1";
1214
1215 case 3:
1216 return pDoorsSelection == "DoorsCargo2";
1217 }
1218
1219 return false;
1220 }
1221
1222 override void OnDebugSpawn()
1223 {
1224 SpawnUniversalParts();
1225 SpawnAdditionalItems();
1226 FillUpCarFluids();
1227
1228 GetInventory().CreateInInventory("Sedan_02_Wheel");
1229 GetInventory().CreateInInventory("Sedan_02_Wheel");
1230 GetInventory().CreateInInventory("Sedan_02_Wheel");
1231 GetInventory().CreateInInventory("Sedan_02_Wheel");
1232 GetInventory().CreateInInventory("Sedan_02_Wheel");
1233
1234 GetInventory().CreateInInventory("Sedan_02_Door_1_1");
1235 GetInventory().CreateInInventory("Sedan_02_Door_1_2");
1236 GetInventory().CreateInInventory("Sedan_02_Door_2_1");
1237 GetInventory().CreateInInventory("Sedan_02_Door_2_2");
1238 GetInventory().CreateInInventory("Sedan_02_Hood");
1239 GetInventory().CreateInInventory("Sedan_02_Trunk");
1240
1241 //-----IN CAR CARGO
1242 GetInventory().CreateInInventory("Sedan_02_Wheel");
1243 GetInventory().CreateInInventory("Sedan_02_Wheel");
1244 }
1245}
1246
1247class Sedan_02_Red extends Sedan_02
1248{
1249 override void OnDebugSpawn()
1250 {
1251 SpawnUniversalParts();
1252 SpawnAdditionalItems();
1253 FillUpCarFluids();
1254
1255 GetInventory().CreateInInventory("Sedan_02_Wheel");
1256 GetInventory().CreateInInventory("Sedan_02_Wheel");
1257 GetInventory().CreateInInventory("Sedan_02_Wheel");
1258 GetInventory().CreateInInventory("Sedan_02_Wheel");
1259
1260 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Red");
1261 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Red");
1262 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Red");
1263 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Red");
1264 GetInventory().CreateInInventory("Sedan_02_Hood_Red");
1265 GetInventory().CreateInInventory("Sedan_02_Trunk_Red");
1266
1267 //-----IN CAR CARGO
1268 GetInventory().CreateInInventory("Sedan_02_Wheel");
1269 GetInventory().CreateInInventory("Sedan_02_Wheel");
1270 }
1271}
1272
1273class Sedan_02_Grey extends Sedan_02
1274{
1275 override void OnDebugSpawn()
1276 {
1277 SpawnUniversalParts();
1278 SpawnAdditionalItems();
1279 FillUpCarFluids();
1280
1281 GetInventory().CreateInInventory("Sedan_02_Wheel");
1282 GetInventory().CreateInInventory("Sedan_02_Wheel");
1283 GetInventory().CreateInInventory("Sedan_02_Wheel");
1284 GetInventory().CreateInInventory("Sedan_02_Wheel");
1285
1286 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Grey");
1287 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Grey");
1288 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Grey");
1289 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Grey");
1290 GetInventory().CreateInInventory("Sedan_02_Hood_Grey");
1291 GetInventory().CreateInInventory("Sedan_02_Trunk_Grey");
1292
1293 //-----IN CAR CARGO
1294 GetInventory().CreateInInventory("Sedan_02_Wheel");
1295 GetInventory().CreateInInventory("Sedan_02_Wheel");
1296 }
1297}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
CarDoorState
Определения CarScript.c:2
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:433
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:220
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:219
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Sedan_02.c:797
class Sedan_02 extends CarScript OnDebugSpawn()
Определения Sedan_02.c:433
override string GetAnimSourceFromSelection(string selection)
Определения Sedan_02.c:765
override int GetSeatAnimationType(int posIdx)
Определения Sedan_02.c:512
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Sedan_02.c:732
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Sedan_02.c:711
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Sedan_02.c:496
override void OnEngineStop()
Определения Sedan_02.c:486
override void EEInit()
Определения Sedan_02.c:458
override bool CanReleaseAttachment(EntityAI attachment)
Определения Sedan_02.c:541
override bool CanDisplayCargo()
Определения Sedan_02.c:608
override void OnEngineStart()
Определения Sedan_02.c:476
override CarLightBase CreateFrontLight()
Определения Sedan_02.c:530
override int GetAnimInstance()
Определения Sedan_02.c:507
override bool CrewCanGetThrough(int posIdx)
Определения Sedan_02.c:654
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Sedan_02.c:817
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Sedan_02.c:576
override bool IsVitalGlowPlug()
Определения Sedan_02.c:792
void Sedan_02()
Определения Sedan_02.c:438
override CarRearLightBase CreateRearLight()
Определения Sedan_02.c:536
override bool IsVitalTruckBattery()
Определения Sedan_02.c:787
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Sedan_02.c:690
override int GetCarDoorsState(string slotType)
Определения Sedan_02.c:619
override bool CanDisplayAttachmentCategory(string category_name)
Определения Sedan_02.c:581
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения EnEntity.c:165
Определения EnMath.c:7
override void OnDebugSpawn()
Определения Sedan_02.c:459
Определения Sedan_02.c:458
original Timer deletes m_params which is unwanted
Определения UniversalTemperatureSource.c:38
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native CGame GetGame()
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/constants.c:808
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.