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

◆ CanReachSeatFromSeat()

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

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

807{
811
812 void CivilianSedan()
813 {
814 //m_dmgContactCoef = 0.065;
815
816 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
817 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
818 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
819 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
820 m_EngineStop = "CivilianSedan_engine_stop_SoundSet";
821 m_EngineStopFuel = "CivilianSedan_engine_stop_fuel_SoundSet";
822
823 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
824 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
825
826 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
827 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
828
829 SetEnginePos("0 0.7 1.6");
830 }
831
832 void ~CivilianSedan()
833 {
834 m_UTSource = null;
835 m_UTSSettings = null;
836 m_UTSLEngine = null;
837 }
838
839 override void EEInit()
840 {
841 super.EEInit();
842
843 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
844 {
846 m_UTSSettings.m_ManualUpdate = true;
848 m_UTSSettings.m_TemperatureCap = 0;
849 m_UTSSettings.m_RangeFull = 0.5;
850 m_UTSSettings.m_RangeMax = 2;
851
854 }
855 }
856
857 override void OnEngineStart()
858 {
859 super.OnEngineStart();
860
861 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
862 {
863 if (m_UTSource)
864 m_UTSource.SetDefferedActive(true, 20.0);
865 }
866 }
867
868 override void OnEngineStop()
869 {
870 super.OnEngineStop();
871
872 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
873 {
874 if (m_UTSource)
875 m_UTSource.SetDefferedActive(false, 10.0);
876 }
877 }
878
879 override void EOnPostSimulate(IEntity other, float timeSlice)
880 {
881 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
882 {
883 if (m_UTSource && m_UTSource.IsActive())
884 {
886 }
887 }
888 }
889
890 override int GetAnimInstance()
891 {
892 return VehicleAnimInstances.SEDAN;
893 }
894
895 override float GetTransportCameraDistance()
896 {
897 return 4.5;
898 }
899
900 override int GetSeatAnimationType(int posIdx)
901 {
902 switch (posIdx)
903 {
904 case 0:
905 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
906 case 1:
907 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
908 case 2:
909 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
910 case 3:
911 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
912 }
913
914 return 0;
915 }
916
917 // Override for car-specific light type
919 {
920 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
921 }
922
923 // Override for car-specific light type
925 {
926 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
927 }
928
929 override bool CanReleaseAttachment( EntityAI attachment )
930 {
931 if( !super.CanReleaseAttachment( attachment ) )
932 return false;
933
934 string attType = attachment.GetType();
935
936 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
937 {
938 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
939 return false;
940 }
941
942 return true;
943 }
944
945 override protected bool CanManipulateSpareWheel(string slotSelectionName)
946 {
947 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
948 }
949
950 override bool CanDisplayAttachmentCategory(string category_name)
951 {
952 //super
953 if (!super.CanDisplayAttachmentCategory(category_name))
954 return false;
955 //
956
957 category_name.ToLower();
958 if (category_name.Contains("engine"))
959 {
960 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
961 return false;
962 }
963
964 return true;
965 }
966
967 override bool CanDisplayCargo()
968 {
969 if ( !super.CanDisplayCargo() )
970 return false;
971
972 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
973 return false;
974
975 return true;
976 }
977
978 override int GetCarDoorsState( string slotType )
979 {
980 CarDoor carDoor;
981
982 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
983 if (!carDoor)
984 {
985 return CarDoorState.DOORS_MISSING;
986 }
987
988 switch (slotType)
989 {
990 case "CivSedanDriverDoors":
991 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
992 break;
993
994 case "CivSedanCoDriverDoors":
995 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
996 break;
997
998 case "CivSedanCargo1Doors":
999 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
1000 break;
1001
1002 case "CivSedanCargo2Doors":
1003 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
1004 break;
1005
1006 case "CivSedanTrunk":
1007 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
1008 break;
1009
1010 case "CivSedanHood":
1011 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
1012 break;
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("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
1025 return false;
1026
1027 return true;
1028 break;
1029
1030 case 1:
1031 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
1032 return false;
1033
1034 return true;
1035 break;
1036
1037 case 2:
1038 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
1039 return false;
1040
1041 return true;
1042 break;
1043
1044 case 3:
1045 if ( GetCarDoorsState("CivSedanCargo2Doors") == 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 "CivSedanDriverDoors";
1082 break;
1083 case 1:
1084 return "CivSedanCoDriverDoors";
1085 break;
1086 case 2:
1087 return "CivSedanCargo1Doors";
1088 break;
1089 case 3:
1090 return "CivSedanCargo2Doors";
1091 break;
1092 }
1093
1094 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1095 }
1096
1097 // 0 full ambient and engine sound
1098 // 1 zero ambient and engine sound
1099 override float OnSound(CarSoundCtrl ctrl, float oldValue)
1100 {
1101 switch (ctrl)
1102 {
1103 case CarSoundCtrl.DOORS:
1104 float newValue = 0;
1105 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
1106 {
1107 newValue += 0.25;
1108 }
1109
1110 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
1111 {
1112 newValue += 0.25;
1113 }
1114
1115 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
1116 {
1117 newValue += 0.25;
1118 }
1119
1120 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
1121 {
1122 newValue += 0.25;
1123 }
1124
1125 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
1126 {
1127 newValue -= 0.6;
1128 }
1129
1130 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
1131 {
1132 newValue -= 0.6;
1133 }
1134
1135 return Math.Clamp(newValue, 0, 1);
1136 break;
1137 }
1138
1139 return super.OnSound(ctrl, oldValue);
1140 }
1141
1142 override string GetAnimSourceFromSelection(string selection)
1143 {
1144 switch (selection)
1145 {
1146 case "doors_driver":
1147 return "DoorsDriver";
1148 case "doors_codriver":
1149 return "DoorsCoDriver";
1150 case "doors_cargo1":
1151 return "DoorsCargo1";
1152 case "doors_cargo2":
1153 return "DoorsCargo2";
1154 case "doors_hood":
1155 return "DoorsHood";
1156 case "doors_trunk":
1157 return "DoorsTrunk";
1158 }
1159
1160 return "";
1161 }
1162
1163 override bool IsVitalTruckBattery()
1164 {
1165 return false;
1166 }
1167
1168 override bool IsVitalGlowPlug()
1169 {
1170 return false;
1171 }
1172
1173 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1174 {
1175 switch (currentSeat)
1176 {
1177 case 0:
1178 return nextSeat == 1;
1179
1180 case 1:
1181 return nextSeat == 0;
1182
1183 case 2:
1184 return nextSeat == 3;
1185
1186 case 3:
1187 return nextSeat == 2;
1188 }
1189
1190 return false;
1191 }
1192
1193 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
1194 {
1195 switch (pCurrentSeat)
1196 {
1197 case 0:
1198 return pDoorsSelection == "DoorsDriver";
1199
1200 case 1:
1201 return pDoorsSelection == "DoorsCoDriver";
1202
1203 case 2:
1204 return pDoorsSelection == "DoorsCargo1";
1205
1206 case 3:
1207 return pDoorsSelection == "DoorsCargo2";
1208 }
1209
1210 return false;
1211 }
1212
1213 override void OnDebugSpawn()
1214 {
1215 SpawnUniversalParts();
1216 SpawnAdditionalItems();
1217 FillUpCarFluids();
1218
1219 GameInventory inventory = GetInventory();
1220 inventory.CreateInInventory("CivSedanWheel");
1221 inventory.CreateInInventory("CivSedanWheel");
1222 inventory.CreateInInventory("CivSedanWheel");
1223 inventory.CreateInInventory("CivSedanWheel");
1224
1225 inventory.CreateInInventory("CivSedanDoors_Driver");
1226 inventory.CreateInInventory("CivSedanDoors_CoDriver");
1227 inventory.CreateInInventory("CivSedanDoors_BackLeft");
1228 inventory.CreateInInventory("CivSedanDoors_BackRight");
1229 inventory.CreateInInventory("CivSedanHood");
1230 inventory.CreateInInventory("CivSedanTrunk");
1231
1232 //-----IN CAR CARGO
1233 inventory.CreateInInventory("CivSedanWheel");
1234 inventory.CreateInInventory("CivSedanWheel");
1235 }
1236
1237 override float GetPushForceCoefficientMultiplier()
1238 {
1239 return 1.5;
1240 }
1241}
1242
1243class CivilianSedan_Wine extends CivilianSedan
1244{
1245 override void OnDebugSpawn()
1246 {
1247 SpawnUniversalParts();
1248 SpawnAdditionalItems();
1249 FillUpCarFluids();
1250
1251 GameInventory inventory = GetInventory();
1252 inventory.CreateInInventory("CivSedanWheel");
1253 inventory.CreateInInventory("CivSedanWheel");
1254 inventory.CreateInInventory("CivSedanWheel");
1255 inventory.CreateInInventory("CivSedanWheel");
1256
1257 inventory.CreateInInventory("CivSedanDoors_Driver_Wine");
1258 inventory.CreateInInventory("CivSedanDoors_CoDriver_Wine");
1259 inventory.CreateInInventory("CivSedanDoors_BackLeft_Wine");
1260 inventory.CreateInInventory("CivSedanDoors_BackRight_Wine");
1261 inventory.CreateInInventory("CivSedanHood_Wine");
1262 inventory.CreateInInventory("CivSedanTrunk_Wine");
1263
1264 //-----IN CAR CARGO
1265 inventory.CreateInInventory("CivSedanWheel");
1266 inventory.CreateInInventory("CivSedanWheel");
1267 }
1268}
1269
1270class CivilianSedan_Black extends CivilianSedan
1271{
1272 override void OnDebugSpawn()
1273 {
1274 SpawnUniversalParts();
1275 SpawnAdditionalItems();
1276 FillUpCarFluids();
1277
1278 GameInventory inventory = GetInventory();
1279 inventory.CreateInInventory("CivSedanWheel");
1280 inventory.CreateInInventory("CivSedanWheel");
1281 inventory.CreateInInventory("CivSedanWheel");
1282 inventory.CreateInInventory("CivSedanWheel");
1283
1284 inventory.CreateInInventory("CivSedanDoors_Driver_Black");
1285 inventory.CreateInInventory("CivSedanDoors_CoDriver_Black");
1286 inventory.CreateInInventory("CivSedanDoors_BackLeft_Black");
1287 inventory.CreateInInventory("CivSedanDoors_BackRight_Black");
1288 inventory.CreateInInventory("CivSedanHood_Black");
1289 inventory.CreateInInventory("CivSedanTrunk_Black");
1290
1291 //-----IN CAR CARGO
1292 inventory.CreateInInventory("CivSedanWheel");
1293 inventory.CreateInInventory("CivSedanWheel");
1294 }
1295}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
CarDoorState
Определения CarScript.c:2
override float GetPushForceCoefficientMultiplier()
Определения CivilianSedan.c:870
class CivilianSedan extends CarScript OnDebugSpawn()
Определения CivilianSedan.c:440
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения CivilianSedan.c:806
override string GetAnimSourceFromSelection(string selection)
Определения CivilianSedan.c:775
override int GetSeatAnimationType(int posIdx)
Определения CivilianSedan.c:533
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения CivilianSedan.c:732
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения CivilianSedan.c:709
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения CivilianSedan.c:512
override void OnEngineStop()
Определения CivilianSedan.c:501
void ~CivilianSedan()
Определения CivilianSedan.c:465
void CivilianSedan()
Определения CivilianSedan.c:445
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:443
override float GetTransportCameraDistance()
Определения CivilianSedan.c:528
override void EEInit()
Определения CivilianSedan.c:472
override bool CanReleaseAttachment(EntityAI attachment)
Определения CivilianSedan.c:562
override bool CanDisplayCargo()
Определения CivilianSedan.c:600
override void OnEngineStart()
Определения CivilianSedan.c:490
override CarLightBase CreateFrontLight()
Определения CivilianSedan.c:551
override int GetAnimInstance()
Определения CivilianSedan.c:523
override bool CrewCanGetThrough(int posIdx)
Определения CivilianSedan.c:652
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения CivilianSedan.c:826
bool CanManipulateSpareWheel(string slotSelectionName)
Определения CivilianSedan.c:578
override bool IsVitalGlowPlug()
Определения CivilianSedan.c:801
override CarRearLightBase CreateRearLight()
Определения CivilianSedan.c:557
override bool IsVitalTruckBattery()
Определения CivilianSedan.c:796
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения CivilianSedan.c:688
override int GetCarDoorsState(string slotType)
Определения CivilianSedan.c:611
override bool CanDisplayAttachmentCategory(string category_name)
Определения CivilianSedan.c:583
DayZGame g_Game
Определения DayZGame.c:3942
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:221
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:220
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.c:2
override void OnDebugSpawn()
Определения CivilianSedan.c:467
Определения CivilianSedan.c:466
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
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
const int STATE_RUINED
Определения 3_Game/DayZ/constants.c:851
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.