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

◆ CanReleaseAttachment()

override bool OnDebugSpawn::CanReleaseAttachment ( EntityAI attachment)
protected

См. определение в файле Vehicles/InheritedCars/OffroadHatchback.c строка 627

627 : CarScript
628{
632
633 void OffroadHatchback()
634 {
635 //m_dmgContactCoef = 0.075;
636
637 m_EngineStartOK = "offroad_engine_start_SoundSet";
638 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
639 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
640 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
641 m_EngineStop = "offroad_engine_stop_SoundSet";
642 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
643
644 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
645 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
646 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
647 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
648
651
652 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "Offroad_Horn_Short_SoundSet");
653 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "Offroad_Horn_SoundSet");
654
655 SetEnginePos("0 0.7 1.2");
656
658 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
659 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
660 }
661
662 void ~OffroadHatchback()
663 {
664 m_UTSource = null;
665 m_UTSSettings = null;
666 m_UTSLEngine = null;
667 }
668
669 override void EEInit()
670 {
671 super.EEInit();
672
673 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
674 {
676 m_UTSSettings.m_ManualUpdate = true;
678 m_UTSSettings.m_TemperatureCap = 0;
679 m_UTSSettings.m_RangeFull = 0.5;
680 m_UTSSettings.m_RangeMax = 2;
681
684 }
685 }
686
687 override bool NeedElectricitySourceDevice()
688 {
689 return true;
690 }
691
693 {
694 super.GetElectricitySourceDevice();
695
696 return GetInventory().FindAttachment(CarBattery.SLOT_ID);
697 }
698
699 override string GetElectricitySourceDeviceType()
700 {
701 return "CarBattery";
702 }
703
704 override void OnEngineStart()
705 {
706 super.OnEngineStart();
707
708 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
709 {
710 if (m_UTSource)
711 m_UTSource.SetDefferedActive(true, 20.0);
712 }
713 }
714
715 override void OnEngineStop()
716 {
717 super.OnEngineStop();
718
719 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
720 {
721 if (m_UTSource)
722 m_UTSource.SetDefferedActive(false, 10.0);
723 }
724 }
725
726 override void EOnPostSimulate(IEntity other, float timeSlice)
727 {
728 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
729 {
730 if (m_UTSource && m_UTSource.IsActive())
731 {
733 }
734 }
735 }
736
737 override int GetAnimInstance()
738 {
739 return VehicleAnimInstances.HATCHBACK;
740 }
741
742 override float GetTransportCameraDistance()
743 {
744 return 3.5;
745 }
746
747 override int GetSeatAnimationType( int posIdx )
748 {
749 switch (posIdx)
750 {
751 case 0:
752 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
753 case 1:
754 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
755 case 2:
756 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
757 case 3:
758 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
759 }
760
761 return 0;
762
763 }
764
765 override bool CanReleaseAttachment(EntityAI attachment)
766 {
767 if (!super.CanReleaseAttachment(attachment))
768 {
769 return false;
770 }
771
772 if (EngineIsOn() || GetCarDoorsState("NivaHood") == CarDoorState.DOORS_CLOSED)
773 {
774 string attType = attachment.GetType();
775 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
776 {
777 return false;
778 }
779 }
780
781 return true;
782 }
783
784 override protected bool CanManipulateSpareWheel(string slotSelectionName)
785 {
786 return GetCarDoorsState("NivaHood") != CarDoorState.DOORS_CLOSED;
787 }
788
789 override bool CanDisplayAttachmentCategory( string category_name )
790 {
791 if (!super.CanDisplayAttachmentCategory(category_name))
792 {
793 return false;
794 }
795
796 category_name.ToLower();
797 if (category_name.Contains("engine"))
798 {
799 if (GetCarDoorsState("NivaHood") == CarDoorState.DOORS_CLOSED)
800 {
801 return false;
802 }
803 }
804
805 return true;
806 }
807
808 override bool CanDisplayCargo()
809 {
810 if (!super.CanDisplayCargo())
811 {
812 return false;
813 }
814
815 if (GetCarDoorsState("NivaTrunk") == CarDoorState.DOORS_CLOSED)
816 {
817 return false;
818 }
819
820 return true;
821 }
822
823 override int GetCarDoorsState(string slotType)
824 {
825 CarDoor carDoor;
826
827 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
828 if (!carDoor)
829 {
830 return CarDoorState.DOORS_MISSING;
831 }
832
833 switch (slotType)
834 {
835 case "NivaDriverDoors":
836 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
837
838 case "NivaCoDriverDoors":
839 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
840
841 case "NivaHood":
842 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
843
844 case "NivaTrunk":
845 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
846 }
847
848 return CarDoorState.DOORS_MISSING;
849 }
850
851 override bool CrewCanGetThrough(int posIdx)
852 {
853 CarDoor carDoor;
854 switch (posIdx)
855 {
856 case 0:
857 if (GetCarDoorsState("NivaDriverDoors") == CarDoorState.DOORS_CLOSED)
858 return false;
859 else if (GetAnimationPhase("SeatDriver") > 0.5)
860 return false;
861
862 return true;
863
864 case 1:
865 if (GetCarDoorsState("NivaCoDriverDoors") == CarDoorState.DOORS_CLOSED)
866 return false;
867 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
868 return false;
869
870 return true;
871
872 case 2:
873 if (GetCarDoorsState("NivaDriverDoors") == CarDoorState.DOORS_CLOSED)
874 return false;
875 else if (GetAnimationPhase("SeatDriver") <= 0.5)
876 return false;
877
878 return true;
879
880 case 3:
881 if (GetCarDoorsState("NivaCoDriverDoors") == CarDoorState.DOORS_CLOSED)
882 return false;
883 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
884 return false;
885
886 return true;
887 }
888
889 return false;
890 }
891
892 override string GetDoorSelectionNameFromSeatPos(int posIdx)
893 {
894 switch (posIdx)
895 {
896 case 0:
897 case 2:
898 return "doors_driver";
899 case 1:
900 case 3:
901 return "doors_codriver";
902 }
903
904 return super.GetDoorSelectionNameFromSeatPos(posIdx);
905 }
906
907 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
908 {
909 switch (posIdx)
910 {
911 case 0:
912 case 2:
913 return "NivaDriverDoors";
914 case 1:
915 case 3:
916 return "NivaCoDriverDoors";
917 }
918
919 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
920 }
921
922 // 0 full ambient and engine sound
923 // 1 zero ambient and engine sound
924 override float OnSound(CarSoundCtrl ctrl, float oldValue)
925 {
926 float tempCap = 0.0;
927
928 switch (ctrl)
929 {
930 case CarSoundCtrl.DOORS:
931 float newValue = 0;
932 if (GetCarDoorsState("NivaDriverDoors") == CarDoorState.DOORS_CLOSED)
933 {
934 newValue += 0.5;
935 }
936
937 if (GetCarDoorsState("NivaCoDriverDoors") == CarDoorState.DOORS_CLOSED)
938 {
939 newValue += 0.5;
940 }
941
942 if (GetCarDoorsState("NivaTrunk") == CarDoorState.DOORS_CLOSED)
943 {
944 newValue += 0.3;
945 }
946
947 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
948 {
949 newValue -= 0.6;
950 }
951
952 if (GetHealthLevel("WindowLR") == GameConstants.STATE_RUINED)
953 {
954 newValue -= 0.2;
955 }
956
957 if (GetHealthLevel("WindowRR") == GameConstants.STATE_RUINED)
958 {
959 newValue -= 0.2;
960 }
961
962 return Math.Clamp(newValue, 0, 1);
963 break;
964 }
965
966 return super.OnSound(ctrl, oldValue);
967 }
968
969 override string GetAnimSourceFromSelection( string selection )
970 {
971 switch (selection)
972 {
973 case "doors_driver":
974 return "DoorsDriver";
975 case "doors_codriver":
976 return "DoorsCoDriver";
977 case "doors_hood":
978 return "DoorsHood";
979 case "doors_trunk":
980 return "DoorsTrunk";
981 case "seatback_driver":
982 return "SeatDriver";
983 case "seatback_codriver":
984 return "SeatCoDriver";
985 }
986
987 return "";
988 }
989
990 override string GetDoorConditionPointFromSelection(string selection)
991 {
992 switch (selection)
993 {
994 case "seat_driver":
995 case "seatback_driver":
996 case "seat_cargo1":
997 return "seat_con_1_1";
998 case "seat_codriver":
999 case "seatback_codriver":
1000 case "seat_cargo2":
1001 return "seat_con_2_1";
1002 }
1003
1004 return "";
1005 }
1006
1007 override int GetCrewIndex(string selection)
1008 {
1009 switch (selection)
1010 {
1011 case "seatback_driver":
1012 return 0;
1013 case "seatback_codriver":
1014 return 1;
1015 }
1016
1017 return -1;
1018 }
1019
1020 override bool IsVitalGlowPlug()
1021 {
1022 return false;
1023 }
1024
1025 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1026 {
1027 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1028 return false;
1029
1030 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1031 return false;
1032
1033 switch (currentSeat)
1034 {
1035 case 0:
1036 return nextSeat == 1;
1037
1038 case 1:
1039 return nextSeat == 0;
1040
1041 case 2:
1042 return nextSeat == 3;
1043
1044 case 3:
1045 return nextSeat == 2;
1046 }
1047
1048 return false;
1049 }
1050
1051 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
1052 {
1053 switch (pCurrentSeat)
1054 {
1055 case 0:
1056 return pDoorsSelection == "DoorsDriver";
1057
1058 case 1:
1059 return pDoorsSelection == "DoorsCoDriver";
1060
1061 case 2:
1062 return pDoorsSelection == "DoorsDriver";
1063
1064 case 3:
1065 return pDoorsSelection == "DoorsCoDriver";
1066 }
1067
1068 return false;
1069 }
1070
1071 override int GetSeatIndexFromDoor( string pDoorSelection )
1072 {
1073 switch (pDoorSelection)
1074 {
1075 case "DoorsDriver":
1076 return 0;
1077 case "DoorsCoDriver":
1078 return 1;
1079 }
1080
1081 return -1;
1082 }
1083
1084 override void SetActions()
1085 {
1086 super.SetActions();
1087
1089 }
1090
1091 override void OnDebugSpawn()
1092 {
1094 SpawnAdditionalItems();
1095 FillUpCarFluids();
1096
1097 GameInventory inventory = GetInventory();
1098 inventory.CreateInInventory("HatchbackWheel");
1099 inventory.CreateInInventory("HatchbackWheel");
1100 inventory.CreateInInventory("HatchbackWheel" );
1101 inventory.CreateInInventory("HatchbackWheel");
1102
1103 inventory.CreateInInventory("HatchbackDoors_Driver");
1104 inventory.CreateInInventory("HatchbackDoors_CoDriver");
1105 inventory.CreateInInventory("HatchbackHood");
1106 inventory.CreateInInventory("HatchbackTrunk");
1107
1108 //-----IN CAR CARGO
1109 inventory.CreateInInventory("HatchbackWheel");
1110 inventory.CreateInInventory("HatchbackWheel");
1111 }
1112}
1113
1114class OffroadHatchback_White : OffroadHatchback
1115{
1116 override void OnDebugSpawn()
1117 {
1119 SpawnAdditionalItems();
1120 FillUpCarFluids();
1121
1122 GameInventory inventory = GetInventory();
1123 inventory.CreateInInventory("HatchbackWheel");
1124 inventory.CreateInInventory("HatchbackWheel");
1125 inventory.CreateInInventory("HatchbackWheel");
1126 inventory.CreateInInventory("HatchbackWheel");
1127
1128 inventory.CreateInInventory("HatchbackDoors_Driver_White");
1129 inventory.CreateInInventory("HatchbackDoors_CoDriver_White");
1130 inventory.CreateInInventory("HatchbackHood_White");
1131 inventory.CreateInInventory("HatchbackTrunk_White");
1132
1133
1134 //-----IN CAR CARGO
1135 inventory.CreateInInventory("HatchbackWheel");
1136 inventory.CreateInInventory("HatchbackWheel");
1137 }
1138}
1139
1141{
1142 override void OnDebugSpawn()
1143 {
1145 SpawnAdditionalItems();
1146 FillUpCarFluids();
1147
1148 GameInventory inventory = GetInventory();
1149 inventory.CreateInInventory("HatchbackWheel");
1150 inventory.CreateInInventory("HatchbackWheel");
1151 inventory.CreateInInventory("HatchbackWheel");
1152 inventory.CreateInInventory("HatchbackWheel");
1153
1154 inventory.CreateInInventory("HatchbackDoors_Driver_Blue");
1155 inventory.CreateInInventory("HatchbackDoors_CoDriver_Blue");
1156 inventory.CreateInInventory("HatchbackHood_Blue");
1157 inventory.CreateInInventory("HatchbackTrunk_Blue");
1158
1159 //-----IN CAR CARGO
1160 inventory.CreateInInventory("HatchbackWheel");
1161 inventory.CreateInInventory("HatchbackWheel");
1162 }
1163}
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
CarDoorState
Определения CarScript.c:2
DayZGame g_Game
Определения DayZGame.c:4074
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:222
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:221
proto native void SetEnginePos(vector pos)
Override the position of engine (model space)
proto native bool EngineIsOn()
Returns true when engine is running, false otherwise.
void SpawnUniversalParts()
Определения MotorbikeScript.c:1425
string m_EngineStartOK
Определения MotorbikeScript.c:89
string m_EngineStartBattery
Определения MotorbikeScript.c:90
string m_EngineStartPlug
Определения MotorbikeScript.c:91
string m_EngineStartFuel
Определения MotorbikeScript.c:92
ref VehicleHornComponent m_HornComponent
Определения MotorbikeScript.c:75
string m_EngineStopFuel
Определения MotorbikeScript.c:94
ref VehicleLightsComponent m_LightsComponent
Определения MotorbikeScript.c:74
string m_EngineStop
Определения MotorbikeScript.c:93
OffroadHatchbackLightProfileFront VehicleLightProfileFront OffroadHatchbackLightProfileRear()
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
void VehicleLightData(VehicleLightProfileBase profile)
Определения VehicleLightsComponent.c:21
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override void SetActions()
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
override string GetDoorConditionPointFromSelection(string selection)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStop()
override float GetTransportCameraDistance()
override void EEInit()
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanDisplayCargo()
override EntityAI GetElectricitySourceDevice()
void ~OffroadHatchback()
override void OnEngineStart()
override int GetAnimInstance()
override bool CrewCanGetThrough(int posIdx)
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
OffroadHatchback CarScript OnDebugSpawn()
override bool IsVitalGlowPlug()
override bool NeedElectricitySourceDevice()
override int GetSeatIndexFromDoor(string pDoorSelection)
override string GetElectricitySourceDeviceType()
void OffroadHatchback()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
override int GetCrewIndex(string selection)
override bool CanDisplayAttachmentCategory(string category_name)
static int SLOT_ID
Определения CarBattery.c:3
Определения CarBattery.c:2
Определения Truck_02.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()
original Timer deletes m_params which is unwanted
Определения UniversalTemperatureSource.c:39
const int LONG
Определения VehicleHornComponent.c:5
const int SHORT
Определения VehicleHornComponent.c:4
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:856
const int STATE_RUINED
Определения 3_Game/DayZ/constants.c:909
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.