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

◆ CanReleaseAttachment()

override bool OnDebugSpawn::CanReleaseAttachment ( EntityAI attachment)
protected

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

606 : CarScript
607{
611
612 void Offroad_02()
613 {
614 //m_dmgContactCoef = 0.0365;
615
616 m_EngineStartOK = "Offroad_02_engine_start_SoundSet";
617 m_EngineStartBattery = "Offroad_02_engine_failed_start_battery_SoundSet";
618 m_EngineStartPlug = "Offroad_02_engine_failed_start_sparkplugs_SoundSet";
619 m_EngineStartFuel = "Offroad_02_engine_failed_start_fuel_SoundSet";
620 m_EngineStop = "Offroad_02_engine_stop_SoundSet";
621 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
622
623 m_CarDoorOpenSound = "offroad_02_door_open_SoundSet";
624 m_CarDoorCloseSound = "offroad_02_door_close_SoundSet";
625
626 m_LightsComponent.RegisterLight("Front", new VehicleLightData(new Offroad_02LightProfileFront()));
627 m_LightsComponent.RegisterLight("Rear", new VehicleLightData(new Offroad_02LightProfileRear()));
628
629 m_LightsComponent.RegisterSelection("BrakesOn", {
630 new VehicleLightSelectionData(SELECTION_ID_TAIL_LIGHT_L, "brakeReflectorMatOn"),
631 new VehicleLightSelectionData(SELECTION_ID_TAIL_LIGHT_R, "brakeReflectorMatOn"),
632 });
633 m_LightsComponent.RegisterSelection("BrakesOff", {
634 new VehicleLightSelectionData(SELECTION_ID_TAIL_LIGHT_L, "brakeReflectorMatOff"),
635 new VehicleLightSelectionData(SELECTION_ID_TAIL_LIGHT_R, "brakeReflectorMatOff"),
636 });
637
638 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "Offroad_02_Horn_Short_SoundSet");
639 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "Offroad_02_Horn_SoundSet");
640
641 SetEnginePos("0 0.7 1.7");
642
644 m_CarHornShortSoundName = "Offroad_02_Horn_Short_SoundSet";
645 m_CarHornLongSoundName = "Offroad_02_Horn_SoundSet";
646 }
647
648 void ~Offroad_02()
649 {
650 m_UTSource = null;
651 m_UTSSettings = null;
652 m_UTSLEngine = null;
653 }
654
655 override void EEInit()
656 {
657 super.EEInit();
658
659 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
660 {
662 m_UTSSettings.m_ManualUpdate = true;
664 m_UTSSettings.m_TemperatureCap = 0;
665 m_UTSSettings.m_RangeFull = 0.5;
666 m_UTSSettings.m_RangeMax = 2;
667
670 }
671 }
672
673 override bool HasGangedTailAndBrakeLights()
674 {
675 return true;
676 }
677
678 override bool NeedElectricitySourceDevice()
679 {
680 return true;
681 }
682
684 {
685 super.GetElectricitySourceDevice();
686
687 return GetInventory().FindAttachment(CarBattery.SLOT_ID);
688 }
689
690 override string GetElectricitySourceDeviceType()
691 {
692 return "CarBattery";
693 }
694
695 override void OnEngineStart()
696 {
697 super.OnEngineStart();
698
699 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
700 {
701 if (m_UTSource)
702 m_UTSource.SetDefferedActive(true, 20.0);
703 }
704 }
705
706 override void OnEngineStop()
707 {
708 super.OnEngineStop();
709
710 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
711 {
712 if (m_UTSource)
713 m_UTSource.SetDefferedActive(false, 10.0);
714 }
715 }
716
717 override void EOnPostSimulate(IEntity other, float timeSlice)
718 {
719 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
720 {
721 if (m_UTSource && m_UTSource.IsActive())
722 {
724 }
725 }
726 }
727
728 override int GetAnimInstance()
729 {
730 return VehicleAnimInstances.HMMWV;
731 }
732
733 override float GetTransportCameraDistance()
734 {
735 return 5.1;
736 }
737
738 override float GetWeightCoef()
739 {
740 return 1.5;
741 }
742
743 override int GetSeatAnimationType(int posIdx)
744 {
745 switch (posIdx)
746 {
747 case 0:
748 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
749 case 1:
750 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
751 case 2:
752 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
753 case 3:
754 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
755 }
756
757 return 0;
758 }
759
760 override bool CanReleaseAttachment( EntityAI attachment )
761 {
762 if (!super.CanReleaseAttachment(attachment))
763 {
764 return false;
765 }
766
767 string attType = attachment.GetType();
768 switch (attType)
769 {
770 case "CarBattery":
771 if (GetCarDoorsState("Offroad_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
772 {
773 return false;
774 }
775 break;
776
777 case "GlowPlug":
778 if (GetCarDoorsState("Offroad_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
779 {
780 return false;
781 }
782 break;
783 }
784
785 return true;
786 }
787
788 override protected bool CanManipulateSpareWheel(string slotSelectionName)
789 {
790 return GetCarDoorsState("Offroad_02_Trunk") != CarDoorState.DOORS_CLOSED;
791 }
792
793 override bool CanDisplayAttachmentCategory(string category_name)
794 {
795 if ( !super.CanDisplayAttachmentCategory(category_name))
796 {
797 return false;
798 }
799
800 category_name.ToLower();
801 if (category_name.Contains("engine"))
802 {
803 if (GetCarDoorsState("Offroad_02_Hood") == CarDoorState.DOORS_CLOSED)
804 {
805 return false;
806 }
807 }
808
809 return true;
810 }
811
812 override bool CanDisplayCargo()
813 {
814 if ( !super.CanDisplayCargo() )
815 return false;
816
817 if ( GetCarDoorsState("Offroad_02_Trunk") == CarDoorState.DOORS_CLOSED )
818 return false;
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 "Offroad_02_Door_1_1":
836 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
837
838 case "Offroad_02_Door_2_1":
839 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
840
841 case "Offroad_02_Door_1_2":
842 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
843
844 case "Offroad_02_Door_2_2":
845 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
846
847 case "Offroad_02_Hood":
848 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
849
850 case "Offroad_02_Trunk":
851 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
852 }
853
854 return CarDoorState.DOORS_MISSING;
855 }
856
857
858 override bool CrewCanGetThrough( int posIdx )
859 {
860 switch( posIdx )
861 {
862 case 0:
863 if ( GetCarDoorsState("Offroad_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
864 return false;
865
866 return true;
867 break;
868
869 case 1:
870 if ( GetCarDoorsState("Offroad_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
871 return false;
872
873 return true;
874 break;
875
876 case 2:
877 if ( GetCarDoorsState("Offroad_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
878 return false;
879
880 return true;
881 break;
882
883 case 3:
884 if ( GetCarDoorsState("Offroad_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
885 return false;
886
887 return true;
888 break;
889 }
890
891 return false;
892 }
893
894 override string GetDoorSelectionNameFromSeatPos(int posIdx)
895 {
896 switch( posIdx )
897 {
898 case 0:
899 return "doors_driver";
900 break;
901 case 1:
902 return "doors_codriver";
903 break;
904 case 2:
905 return "doors_cargo1";
906 break;
907 case 3:
908 return "doors_cargo2";
909 break;
910 }
911
912 return super.GetDoorSelectionNameFromSeatPos(posIdx);
913 }
914
915 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
916 {
917 switch (posIdx)
918 {
919 case 0:
920 return "Offroad_02_Door_1_1";
921 case 1:
922 return "Offroad_02_Door_2_1";
923 case 2:
924 return "Offroad_02_Door_1_2";
925 case 3:
926 return "Offroad_02_Door_2_2";
927 }
928
929 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
930 }
931
932 override float OnSound(CarSoundCtrl ctrl, float oldValue)
933 {
934 switch ( ctrl )
935 {
936 case CarSoundCtrl.DOORS:
937 float newValue = 0;
938 if (GetCarDoorsState("Offroad_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
939 {
940 newValue += 0.25;
941 }
942
943 if (GetCarDoorsState("Offroad_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
944 {
945 newValue += 0.25;
946 }
947
948 if (GetCarDoorsState("Offroad_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
949 {
950 newValue += 0.25;
951 }
952
953 if (GetCarDoorsState("Offroad_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
954 {
955 newValue += 0.25;
956 }
957
958 return Math.Clamp(newValue, 0, 1);
959 break;
960 }
961
962 return super.OnSound(ctrl, oldValue);
963 }
964
965 override string GetAnimSourceFromSelection(string selection)
966 {
967 switch (selection)
968 {
969 case "doors_driver":
970 return "DoorsDriver";
971 case "doors_codriver":
972 return "DoorsCoDriver";
973 case "doors_cargo1":
974 return "DoorsCargo1";
975 case "doors_cargo2":
976 return "DoorsCargo2";
977 case "doors_hood":
978 return "DoorsHood";
979 case "doors_trunk":
980 return "DoorsTrunk";
981 }
982
983 return "";
984 }
985
986 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
987 {
988 switch (currentSeat)
989 {
990 case 0:
991 return nextSeat == 1;
992 case 1:
993 return nextSeat == 0;
994 case 2:
995 return nextSeat == 3;
996 case 3:
997 return nextSeat == 2;
998 }
999
1000 return false;
1001 }
1002
1003 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
1004 {
1005 switch (pCurrentSeat)
1006 {
1007 case 0:
1008 return pDoorsSelection == "DoorsDriver";
1009 case 1:
1010 return pDoorsSelection == "DoorsCoDriver";
1011 case 2:
1012 return pDoorsSelection == "DoorsCargo1";
1013 case 3:
1014 return pDoorsSelection == "DoorsCargo2";
1015 }
1016
1017 return false;
1018 }
1019
1020 override bool IsVitalSparkPlug()
1021 {
1022 return false;
1023 }
1024
1025 override bool IsVitalRadiator()
1026 {
1027 return false;
1028 }
1029
1030 override void OnDebugSpawn()
1031 {
1033 SpawnAdditionalItems();
1034 FillUpCarFluids();
1035
1036 GameInventory inventory = GetInventory();
1037 inventory.CreateInInventory("Offroad_02_Wheel");
1038 inventory.CreateInInventory("Offroad_02_Wheel");
1039 inventory.CreateInInventory("Offroad_02_Wheel");
1040 inventory.CreateInInventory("Offroad_02_Wheel");
1041
1042 inventory.CreateInInventory("Offroad_02_Door_1_1");
1043 inventory.CreateInInventory("Offroad_02_Door_1_2");
1044 inventory.CreateInInventory("Offroad_02_Door_2_1");
1045 inventory.CreateInInventory("Offroad_02_Door_2_2");
1046 inventory.CreateInInventory("Offroad_02_Hood");
1047 inventory.CreateInInventory("Offroad_02_Trunk");
1048
1049 //-----IN CAR CARGO
1050 inventory.CreateInInventory("Offroad_02_Wheel");
1051 inventory.CreateInInventory("Offroad_02_Wheel");
1052 }
1053}
1054
1055
1056class Offroad_02_Beige : Offroad_02
1057{
1058 override void OnDebugSpawn()
1059 {
1061 SpawnAdditionalItems();
1062 FillUpCarFluids();
1063
1064 GetInventory().CreateInInventory("Offroad_02_Wheel");
1065 GetInventory().CreateInInventory("Offroad_02_Wheel");
1066 GetInventory().CreateInInventory("Offroad_02_Wheel");
1067 GetInventory().CreateInInventory("Offroad_02_Wheel");
1068
1069 GetInventory().CreateInInventory("Offroad_02_Door_1_1_Beige");
1070 GetInventory().CreateInInventory("Offroad_02_Door_1_2_Beige");
1071 GetInventory().CreateInInventory("Offroad_02_Door_2_1_Beige");
1072 GetInventory().CreateInInventory("Offroad_02_Door_2_2_Beige");
1073 GetInventory().CreateInInventory("Offroad_02_Trunk_Beige");
1074 GetInventory().CreateInInventory("Offroad_02_Hood_Beige");
1075
1076 //-----IN CAR CARGO
1077 GetInventory().CreateInInventory("Offroad_02_Wheel");
1078 GetInventory().CreateInInventory("Offroad_02_Wheel");
1079 }
1080}
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
Offroad_02LightProfileFront VehicleLightProfileFront Offroad_02LightProfileRear()
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
void VehicleLightData(VehicleLightProfileBase profile)
Определения VehicleLightsComponent.c:21
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override bool IsVitalRadiator()
void ~Offroad_02()
override bool IsVitalSparkPlug()
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
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()
Offroad_02 CarScript OnDebugSpawn()
override EntityAI GetElectricitySourceDevice()
override void OnEngineStart()
override bool HasGangedTailAndBrakeLights()
override int GetAnimInstance()
override bool CrewCanGetThrough(int posIdx)
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
override bool NeedElectricitySourceDevice()
void Offroad_02()
override float GetWeightCoef()
override string GetElectricitySourceDeviceType()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
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
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.