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

◆ CanReleaseAttachment()

override bool OnDebugSpawn::CanReleaseAttachment ( EntityAI attachment)
protected

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

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