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

◆ CanReachSeatFromSeat()

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

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

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