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

◆ CanDisplayAttachmentCategory()

override bool OnDebugSpawn::CanDisplayAttachmentCategory ( string category_name)
protected

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

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