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

◆ CanReachSeatFromSeat()

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

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

747{
751
752 void Hatchback_02()
753 {
754 //m_dmgContactCoef = 0.070;
755
756 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
757 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
758 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
759 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
760 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
761 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
762
763 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
764 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
765
766 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
767 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
768
769 SetEnginePos("0 0.7 1.4");
770 }
771
772 override void EEInit()
773 {
774 super.EEInit();
775
776 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
777 {
779 m_UTSSettings.m_ManualUpdate = true;
781 m_UTSSettings.m_TemperatureCap = 0;
782 m_UTSSettings.m_RangeFull = 0.5;
783 m_UTSSettings.m_RangeMax = 2;
784
787 }
788 }
789
790 override void OnEngineStart()
791 {
792 super.OnEngineStart();
793
794 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
795 {
796 m_UTSource.SetDefferedActive(true, 20.0);
797 }
798 }
799
800 override void OnEngineStop()
801 {
802 super.OnEngineStop();
803
804 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
805 {
806 m_UTSource.SetDefferedActive(false, 10.0);
807 }
808 }
809
810 override void EOnPostSimulate(IEntity other, float timeSlice)
811 {
812 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
813 {
814 if (m_UTSource.IsActive())
815 {
817 }
818 }
819 }
820
821 override int GetAnimInstance()
822 {
823 return VehicleAnimInstances.GOLF;
824 }
825
826 override int GetSeatAnimationType(int posIdx)
827 {
828 switch (posIdx)
829 {
830 case 0:
831 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
832 case 1:
833 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
834 case 2:
835 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
836 case 3:
837 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
838 }
839
840 return 0;
841 }
842
843 // Override for car-specific light type
845 {
846 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02RearLight));
847 }
848
849 // Override for car-specific light type
851 {
852 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02FrontLight));
853 }
854
855 override bool CanReleaseAttachment(EntityAI attachment)
856 {
857 if (!super.CanReleaseAttachment(attachment))
858 {
859 return false;
860 }
861
862 if (EngineIsOn() || GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED)
863 {
864 string attType = attachment.GetType();
865 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
866 {
867 return false;
868 }
869 }
870
871 return true;
872 }
873
874 override protected bool CanManipulateSpareWheel(string slotSelectionName)
875 {
876 return GetCarDoorsState("Hatchback_02_Trunk") != CarDoorState.DOORS_CLOSED;
877 }
878
879 override bool CanDisplayAttachmentCategory( string category_name )
880 {
881 //super
882 if ( !super.CanDisplayAttachmentCategory( category_name ) )
883 return false;
884 //
885
886 category_name.ToLower();
887 if ( category_name.Contains("engine") )
888 {
889 if ( GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED )
890 return false;
891 }
892
893 return true;
894 }
895
896 override bool CanDisplayCargo()
897 {
898 if ( !super.CanDisplayCargo() )
899 return false;
900
901 if ( GetCarDoorsState("Hatchback_02_Trunk") == CarDoorState.DOORS_CLOSED )
902 return false;
903
904 return true;
905 }
906
907 override int GetCarDoorsState(string slotType)
908 {
909 CarDoor carDoor;
910
911 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
912 if (!carDoor)
913 {
914 return CarDoorState.DOORS_MISSING;
915 }
916
917 switch (slotType)
918 {
919 case "Hatchback_02_Door_1_1":
920 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
921
922 case "Hatchback_02_Door_2_1":
923 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
924
925 case "Hatchback_02_Door_1_2":
926 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
927
928 case "Hatchback_02_Door_2_2":
929 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
930
931 case "Hatchback_02_Hood":
932 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
933
934 case "Hatchback_02_Trunk":
935 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
936 }
937
938 return CarDoorState.DOORS_MISSING;
939 }
940
941
942 override bool CrewCanGetThrough(int posIdx)
943 {
944 switch (posIdx)
945 {
946 case 0:
947 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
948 {
949 return false;
950 }
951
952 return true;
953
954 case 1:
955 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
956 {
957 return false;
958 }
959
960 return true;
961
962 case 2:
963 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
964 {
965 return false;
966 }
967
968 return true;
969
970 case 3:
971 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
972 {
973 return false;
974 }
975
976 return true;
977 }
978
979 return false;
980 }
981
982 override string GetDoorSelectionNameFromSeatPos(int posIdx)
983 {
984 switch( posIdx )
985 {
986 case 0:
987 return "doors_driver";
988 break;
989 case 1:
990 return "doors_codriver";
991 break;
992 case 2:
993 return "doors_cargo1";
994 break;
995 case 3:
996 return "doors_cargo2";
997 break;
998 }
999
1000 return super.GetDoorSelectionNameFromSeatPos(posIdx);
1001 }
1002
1003 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
1004 {
1005 switch( posIdx )
1006 {
1007 case 0:
1008 return "Hatchback_02_Door_1_1";
1009 break;
1010 case 1:
1011 return "Hatchback_02_Door_2_1";
1012 break;
1013 case 2:
1014 return "Hatchback_02_Door_1_2";
1015 break;
1016 case 3:
1017 return "Hatchback_02_Door_2_2";
1018 break;
1019 }
1020
1021 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
1022 }
1023
1024 override float OnSound(CarSoundCtrl ctrl, float oldValue)
1025 {
1026 switch (ctrl)
1027 {
1028 case CarSoundCtrl.DOORS:
1029 float newValue = 0;
1030 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
1031 {
1032 newValue += 0.25;
1033 }
1034
1035 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
1036 {
1037 newValue += 0.25;
1038 }
1039
1040 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
1041 {
1042 newValue += 0.25;
1043 }
1044
1045 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
1046 {
1047 newValue += 0.25;
1048 }
1049
1050 return Math.Clamp(newValue, 0, 1);
1051 break;
1052 }
1053
1054 return super.OnSound(ctrl, oldValue);
1055 }
1056
1057 override string GetAnimSourceFromSelection( string selection )
1058 {
1059 switch( selection )
1060 {
1061 case "doors_driver":
1062 return "DoorsDriver";
1063 case "doors_codriver":
1064 return "DoorsCoDriver";
1065 case "doors_cargo1":
1066 return "DoorsCargo1";
1067 case "doors_cargo2":
1068 return "DoorsCargo2";
1069 case "doors_hood":
1070 return "DoorsHood";
1071 case "doors_trunk":
1072 return "DoorsTrunk";
1073 }
1074
1075 return "";
1076 }
1077
1078
1079 override bool IsVitalTruckBattery()
1080 {
1081 return false;
1082 }
1083
1084 override bool IsVitalGlowPlug()
1085 {
1086 return false;
1087 }
1088
1089 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1090 {
1091 switch (currentSeat)
1092 {
1093 case 0:
1094 return nextSeat == 1;
1095 case 1:
1096 return nextSeat == 0;
1097 case 2:
1098 return nextSeat == 3;
1099 case 3:
1100 return nextSeat == 2;
1101 }
1102
1103 return false;
1104 }
1105
1106 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
1107 {
1108 switch (pCurrentSeat)
1109 {
1110 case 0:
1111 return pDoorsSelection == "DoorsDriver";
1112 case 1:
1113 return pDoorsSelection == "DoorsCoDriver";
1114 case 2:
1115 return pDoorsSelection == "DoorsCargo1";
1116 case 3:
1117 return pDoorsSelection == "DoorsCargo2";
1118 }
1119
1120 return false;
1121 }
1122
1123 override void OnDebugSpawn()
1124 {
1125 SpawnUniversalParts();
1126 SpawnAdditionalItems();
1127 FillUpCarFluids();
1128
1129 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1130 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1131 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1132 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1133
1134 GetInventory().CreateInInventory("Hatchback_02_Door_1_1");
1135 GetInventory().CreateInInventory("Hatchback_02_Door_1_2");
1136 GetInventory().CreateInInventory("Hatchback_02_Door_2_1");
1137 GetInventory().CreateInInventory("Hatchback_02_Door_2_2");
1138 GetInventory().CreateInInventory("Hatchback_02_Hood");
1139 GetInventory().CreateInInventory("Hatchback_02_Trunk");
1140
1141 //-----IN CAR CARGO
1142 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1143 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1144 }
1145}
1146
1147class Hatchback_02_Black extends Hatchback_02
1148{
1149 override void OnDebugSpawn()
1150 {
1151 SpawnUniversalParts();
1152 SpawnAdditionalItems();
1153 FillUpCarFluids();
1154
1155 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1156 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1157 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1158 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1159
1160 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Black");
1161 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Black");
1162 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Black");
1163 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Black");
1164 GetInventory().CreateInInventory("Hatchback_02_Hood_Black");
1165 GetInventory().CreateInInventory("Hatchback_02_Trunk_Black");
1166
1167 //-----IN CAR CARGO
1168 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1169 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1170 }
1171};
1172
1173class Hatchback_02_Blue extends Hatchback_02
1174{
1175 override void OnDebugSpawn()
1176 {
1177 SpawnUniversalParts();
1178 SpawnAdditionalItems();
1179 FillUpCarFluids();
1180
1181 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1182 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1183 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1184 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1185
1186 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Blue");
1187 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Blue");
1188 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Blue");
1189 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Blue");
1190 GetInventory().CreateInInventory("Hatchback_02_Hood_Blue");
1191 GetInventory().CreateInInventory("Hatchback_02_Trunk_Blue");
1192
1193 //-----IN CAR CARGO
1194 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1195 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1196 }
1197}
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
class Hatchback_02_Blue extends Hatchback_02 OnDebugSpawn
Определения Hatchback_02.c:404
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Hatchback_02.c:746
override string GetAnimSourceFromSelection(string selection)
Определения Hatchback_02.c:714
override int GetSeatAnimationType(int posIdx)
Определения Hatchback_02.c:483
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Hatchback_02.c:681
void Hatchback_02()
Определения Hatchback_02.c:409
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:660
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Hatchback_02.c:467
override void OnEngineStop()
Определения Hatchback_02.c:457
override void EEInit()
Определения Hatchback_02.c:429
override bool CanReleaseAttachment(EntityAI attachment)
Определения Hatchback_02.c:512
override bool CanDisplayCargo()
Определения Hatchback_02.c:553
override void OnEngineStart()
Определения Hatchback_02.c:447
override CarLightBase CreateFrontLight()
Определения Hatchback_02.c:507
override int GetAnimInstance()
Определения Hatchback_02.c:478
override bool CrewCanGetThrough(int posIdx)
Определения Hatchback_02.c:599
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Hatchback_02.c:763
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Hatchback_02.c:531
override bool IsVitalGlowPlug()
Определения Hatchback_02.c:741
override CarRearLightBase CreateRearLight()
Определения Hatchback_02.c:501
override bool IsVitalTruckBattery()
Определения Hatchback_02.c:736
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:639
override int GetCarDoorsState(string slotType)
Определения Hatchback_02.c:564
override bool CanDisplayAttachmentCategory(string category_name)
Определения Hatchback_02.c:536
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
override void OnDebugSpawn()
Определения Hatchback_02.c:430
Определения Hatchback_02.c:429
Определения 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
Определения 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.