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

◆ CanReleaseAttachment()

override bool OnDebugSpawn::CanReleaseAttachment ( EntityAI attachment)
protected

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

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