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

◆ CanReachSeatFromSeat()

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

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

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