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

◆ CanReleaseAttachment()

override bool OnDebugSpawn::CanReleaseAttachment ( EntityAI attachment)
protected

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

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