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

◆ CanReachSeatFromSeat()

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

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

786{
790
791 void CivilianSedan()
792 {
793 //m_dmgContactCoef = 0.065;
794
795 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
796 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
797 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
798 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
799 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
800
801 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
802 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
803
804 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
805 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
806
807 SetEnginePos("0 0.7 1.6");
808 }
809
810 override void EEInit()
811 {
812 super.EEInit();
813
814 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
815 {
817 m_UTSSettings.m_ManualUpdate = true;
819 m_UTSSettings.m_TemperatureCap = 0;
820 m_UTSSettings.m_RangeFull = 0.5;
821 m_UTSSettings.m_RangeMax = 2;
822
825 }
826 }
827
828 override void OnEngineStart()
829 {
830 super.OnEngineStart();
831
832 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
833 {
834 m_UTSource.SetDefferedActive(true, 20.0);
835 }
836 }
837
838 override void OnEngineStop()
839 {
840 super.OnEngineStop();
841
842 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
843 {
844 m_UTSource.SetDefferedActive(false, 10.0);
845 }
846 }
847
848 override void EOnPostSimulate(IEntity other, float timeSlice)
849 {
850 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
851 {
852 if (m_UTSource.IsActive())
853 {
855 }
856 }
857 }
858
859 override int GetAnimInstance()
860 {
861 return VehicleAnimInstances.SEDAN;
862 }
863
864 override float GetTransportCameraDistance()
865 {
866 return 4.5;
867 }
868
869 override int GetSeatAnimationType(int posIdx)
870 {
871 switch (posIdx)
872 {
873 case 0:
874 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
875 case 1:
876 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
877 case 2:
878 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
879 case 3:
880 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
881 }
882
883 return 0;
884 }
885
886 // Override for car-specific light type
888 {
889 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
890 }
891
892 // Override for car-specific light type
894 {
895 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
896 }
897
898 override bool CanReleaseAttachment( EntityAI attachment )
899 {
900 if( !super.CanReleaseAttachment( attachment ) )
901 return false;
902
903 string attType = attachment.GetType();
904
905 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
906 {
907 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
908 return false;
909 }
910
911 return true;
912 }
913
914 override protected bool CanManipulateSpareWheel(string slotSelectionName)
915 {
916 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
917 }
918
919 override bool CanDisplayAttachmentCategory(string category_name)
920 {
921 //super
922 if (!super.CanDisplayAttachmentCategory(category_name))
923 return false;
924 //
925
926 category_name.ToLower();
927 if (category_name.Contains("engine"))
928 {
929 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
930 return false;
931 }
932
933 return true;
934 }
935
936 override bool CanDisplayCargo()
937 {
938 if ( !super.CanDisplayCargo() )
939 return false;
940
941 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
942 return false;
943
944 return true;
945 }
946
947 override int GetCarDoorsState( string slotType )
948 {
949 CarDoor carDoor;
950
951 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
952 if (!carDoor)
953 {
954 return CarDoorState.DOORS_MISSING;
955 }
956
957 switch (slotType)
958 {
959 case "CivSedanDriverDoors":
960 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
961 break;
962
963 case "CivSedanCoDriverDoors":
964 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
965 break;
966
967 case "CivSedanCargo1Doors":
968 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
969 break;
970
971 case "CivSedanCargo2Doors":
972 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
973 break;
974
975 case "CivSedanTrunk":
976 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
977 break;
978
979 case "CivSedanHood":
980 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
981 break;
982 }
983
984 return CarDoorState.DOORS_MISSING;
985 }
986
987
988 override bool CrewCanGetThrough( int posIdx )
989 {
990 switch( posIdx )
991 {
992 case 0:
993 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
994 return false;
995
996 return true;
997 break;
998
999 case 1:
1000 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
1001 return false;
1002
1003 return true;
1004 break;
1005
1006 case 2:
1007 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
1008 return false;
1009
1010 return true;
1011 break;
1012
1013 case 3:
1014 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
1015 return false;
1016
1017 return true;
1018 break;
1019 }
1020
1021 return false;
1022 }
1023
1024 override string GetDoorSelectionNameFromSeatPos(int posIdx)
1025 {
1026 switch( posIdx )
1027 {
1028 case 0:
1029 return "doors_driver";
1030 break;
1031 case 1:
1032 return "doors_codriver";
1033 break;
1034 case 2:
1035 return "doors_cargo1";
1036 break;
1037 case 3:
1038 return "doors_cargo2";
1039 break;
1040 }
1041
1042 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1043 }
1044
1045 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
1046 {
1047 switch( posIdx )
1048 {
1049 case 0:
1050 return "CivSedanDriverDoors";
1051 break;
1052 case 1:
1053 return "CivSedanCoDriverDoors";
1054 break;
1055 case 2:
1056 return "CivSedanCargo1Doors";
1057 break;
1058 case 3:
1059 return "CivSedanCargo2Doors";
1060 break;
1061 }
1062
1063 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1064 }
1065
1066 // 0 full ambient and engine sound
1067 // 1 zero ambient and engine sound
1068 override float OnSound(CarSoundCtrl ctrl, float oldValue)
1069 {
1070 switch (ctrl)
1071 {
1072 case CarSoundCtrl.DOORS:
1073 float newValue = 0;
1074 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
1075 {
1076 newValue += 0.25;
1077 }
1078
1079 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
1080 {
1081 newValue += 0.25;
1082 }
1083
1084 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
1085 {
1086 newValue += 0.25;
1087 }
1088
1089 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
1090 {
1091 newValue += 0.25;
1092 }
1093
1094 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
1095 {
1096 newValue -= 0.6;
1097 }
1098
1099 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
1100 {
1101 newValue -= 0.6;
1102 }
1103
1104 return Math.Clamp(newValue, 0, 1);
1105 break;
1106 }
1107
1108 return super.OnSound(ctrl, oldValue);
1109 }
1110
1111 override string GetAnimSourceFromSelection(string selection)
1112 {
1113 switch (selection)
1114 {
1115 case "doors_driver":
1116 return "DoorsDriver";
1117 case "doors_codriver":
1118 return "DoorsCoDriver";
1119 case "doors_cargo1":
1120 return "DoorsCargo1";
1121 case "doors_cargo2":
1122 return "DoorsCargo2";
1123 case "doors_hood":
1124 return "DoorsHood";
1125 case "doors_trunk":
1126 return "DoorsTrunk";
1127 }
1128
1129 return "";
1130 }
1131
1132 override bool IsVitalTruckBattery()
1133 {
1134 return false;
1135 }
1136
1137 override bool IsVitalGlowPlug()
1138 {
1139 return false;
1140 }
1141
1142 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1143 {
1144 switch (currentSeat)
1145 {
1146 case 0:
1147 return nextSeat == 1;
1148
1149 case 1:
1150 return nextSeat == 0;
1151
1152 case 2:
1153 return nextSeat == 3;
1154
1155 case 3:
1156 return nextSeat == 2;
1157 }
1158
1159 return false;
1160 }
1161
1162 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
1163 {
1164 switch (pCurrentSeat)
1165 {
1166 case 0:
1167 return pDoorsSelection == "DoorsDriver";
1168
1169 case 1:
1170 return pDoorsSelection == "DoorsCoDriver";
1171
1172 case 2:
1173 return pDoorsSelection == "DoorsCargo1";
1174
1175 case 3:
1176 return pDoorsSelection == "DoorsCargo2";
1177 }
1178
1179 return false;
1180 }
1181
1182 override void OnDebugSpawn()
1183 {
1187
1188 GetInventory().CreateInInventory("CivSedanWheel");
1189 GetInventory().CreateInInventory("CivSedanWheel");
1190 GetInventory().CreateInInventory("CivSedanWheel");
1191 GetInventory().CreateInInventory("CivSedanWheel");
1192
1193 GetInventory().CreateInInventory("CivSedanDoors_Driver");
1194 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
1195 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
1196 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
1197 GetInventory().CreateInInventory("CivSedanHood");
1198 GetInventory().CreateInInventory("CivSedanTrunk");
1199
1200 //-----IN CAR CARGO
1201 GetInventory().CreateInInventory("CivSedanWheel");
1202 GetInventory().CreateInInventory("CivSedanWheel");
1203 }
1204
1205 override float GetPushForceCoefficientMultiplier()
1206 {
1207 return 1.5;
1208 }
1209}
1210
1211class CivilianSedan_Wine extends CivilianSedan
1212{
1213 override void OnDebugSpawn()
1214 {
1218
1219 GetInventory().CreateInInventory("CivSedanWheel");
1220 GetInventory().CreateInInventory("CivSedanWheel");
1221 GetInventory().CreateInInventory("CivSedanWheel");
1222 GetInventory().CreateInInventory("CivSedanWheel");
1223
1224 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
1225 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
1226 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
1227 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
1228 GetInventory().CreateInInventory("CivSedanHood_Wine");
1229 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
1230
1231 //-----IN CAR CARGO
1232 GetInventory().CreateInInventory("CivSedanWheel");
1233 GetInventory().CreateInInventory("CivSedanWheel");
1234 }
1235}
1236
1237class CivilianSedan_Black extends CivilianSedan
1238{
1239 override void OnDebugSpawn()
1240 {
1244
1245 GetInventory().CreateInInventory("CivSedanWheel");
1246 GetInventory().CreateInInventory("CivSedanWheel");
1247 GetInventory().CreateInInventory("CivSedanWheel");
1248 GetInventory().CreateInInventory("CivSedanWheel");
1249
1250 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1251 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1252 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1253 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1254 GetInventory().CreateInInventory("CivSedanHood_Black");
1255 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1256
1257 //-----IN CAR CARGO
1258 GetInventory().CreateInInventory("CivSedanWheel");
1259 GetInventory().CreateInInventory("CivSedanWheel");
1260 }
1261}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
void SpawnUniversalParts()
Определения CarScript.c:2801
CarDoorState TranslateAnimationPhaseToCarDoorState(string animation)
Определения CarScript.c:2513
CarDoorState
Определения CarScript.c:2
void SpawnAdditionalItems()
Определения CarScript.c:2839
string m_EngineStartOK
Sounds.
Определения CarScript.c:207
string m_CarDoorCloseSound
Определения CarScript.c:214
string m_EngineStartBattery
Определения CarScript.c:208
string m_EngineStartPlug
Определения CarScript.c:209
string m_EngineStartFuel
Определения CarScript.c:210
string m_CarHornShortSoundName
Определения CarScript.c:218
void FillUpCarFluids()
Определения CarScript.c:2869
string m_CarHornLongSoundName
Определения CarScript.c:219
string m_EngineStopFuel
Определения CarScript.c:211
string m_CarDoorOpenSound
Определения CarScript.c:213
override float GetPushForceCoefficientMultiplier()
Определения CivilianSedan.c:848
class CivilianSedan extends CarScript OnDebugSpawn()
Определения CivilianSedan.c:429
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения CivilianSedan.c:785
override string GetAnimSourceFromSelection(string selection)
Определения CivilianSedan.c:754
override int GetSeatAnimationType(int posIdx)
Определения CivilianSedan.c:512
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения CivilianSedan.c:711
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения CivilianSedan.c:688
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения CivilianSedan.c:491
override void OnEngineStop()
Определения CivilianSedan.c:481
void CivilianSedan()
Определения CivilianSedan.c:434
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:432
override float GetTransportCameraDistance()
Определения CivilianSedan.c:507
override void EEInit()
Определения CivilianSedan.c:453
override bool CanReleaseAttachment(EntityAI attachment)
Определения CivilianSedan.c:541
override bool CanDisplayCargo()
Определения CivilianSedan.c:579
override void OnEngineStart()
Определения CivilianSedan.c:471
override CarLightBase CreateFrontLight()
Определения CivilianSedan.c:530
override int GetAnimInstance()
Определения CivilianSedan.c:502
override bool CrewCanGetThrough(int posIdx)
Определения CivilianSedan.c:631
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения CivilianSedan.c:805
bool CanManipulateSpareWheel(string slotSelectionName)
Определения CivilianSedan.c:557
override bool IsVitalGlowPlug()
Определения CivilianSedan.c:780
override CarRearLightBase CreateRearLight()
Определения CivilianSedan.c:536
override bool IsVitalTruckBattery()
Определения CivilianSedan.c:775
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения CivilianSedan.c:667
override int GetCarDoorsState(string slotType)
Определения CivilianSedan.c:590
override bool CanDisplayAttachmentCategory(string category_name)
Определения CivilianSedan.c:562
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:220
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:219
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения InventoryItem.c:496
Определения CarRearLightBase.c:2
override void OnDebugSpawn()
Определения CivilianSedan.c:455
Определения CivilianSedan.c:454
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения Building.c:6
Определения constants.c:659
Определения EnEntity.c:165
Определения EnMath.c:7
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
Определения constants.c:806
const int STATE_RUINED
Определения constants.c:846
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.