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

◆ CanDisplayAttachmentCategory()

override bool OnDebugSpawn::CanDisplayAttachmentCategory ( string category_name)
protected

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

602 : CarScript
603{
607
608 void CivilianSedan()
609 {
610 //m_dmgContactCoef = 0.065;
611
612 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
613 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
614 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
615 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
616 m_EngineStop = "CivilianSedan_engine_stop_SoundSet";
617 m_EngineStopFuel = "CivilianSedan_engine_stop_fuel_SoundSet";
618
619 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
620 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
621
622 m_LightsComponent.RegisterLight("Front", new VehicleLightData(new CivilianSedanLightProfileFront()));
623 m_LightsComponent.RegisterLight("Rear", new VehicleLightData(new CivilianSedanLightProfileRear()));
624
625 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "CivilianSedan_Horn_Short_SoundSet");
626 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "CivilianSedan_Horn_SoundSet");
627
628 SetEnginePos("0 0.7 1.6");
629
631 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
632 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
633 }
634
635 void ~CivilianSedan()
636 {
637 m_UTSource = null;
638 m_UTSSettings = null;
639 m_UTSLEngine = null;
640 }
641
642 override void EEInit()
643 {
644 super.EEInit();
645
646 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
647 {
649 m_UTSSettings.m_ManualUpdate = true;
651 m_UTSSettings.m_TemperatureCap = 0;
652 m_UTSSettings.m_RangeFull = 0.5;
653 m_UTSSettings.m_RangeMax = 2;
654
657 }
658 }
659
660 override bool NeedElectricitySourceDevice()
661 {
662 return true;
663 }
664
666 {
667 super.GetElectricitySourceDevice();
668
669 return GetInventory().FindAttachment(CarBattery.SLOT_ID);
670 }
671
672 override string GetElectricitySourceDeviceType()
673 {
674 return "CarBattery";
675 }
676
677 override void OnEngineStart()
678 {
679 super.OnEngineStart();
680
681 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
682 {
683 if (m_UTSource)
684 m_UTSource.SetDefferedActive(true, 20.0);
685 }
686 }
687
688 override void OnEngineStop()
689 {
690 super.OnEngineStop();
691
692 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
693 {
694 if (m_UTSource)
695 m_UTSource.SetDefferedActive(false, 10.0);
696 }
697 }
698
699 override void EOnPostSimulate(IEntity other, float timeSlice)
700 {
701 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
702 {
703 if (m_UTSource && m_UTSource.IsActive())
704 {
706 }
707 }
708 }
709
710 override int GetAnimInstance()
711 {
712 return VehicleAnimInstances.SEDAN;
713 }
714
715 override float GetTransportCameraDistance()
716 {
717 return 4.5;
718 }
719
720 override int GetSeatAnimationType(int posIdx)
721 {
722 switch (posIdx)
723 {
724 case 0:
725 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
726 case 1:
727 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
728 case 2:
729 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
730 case 3:
731 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
732 }
733
734 return 0;
735 }
736
737 override bool CanReleaseAttachment( EntityAI attachment )
738 {
739 if( !super.CanReleaseAttachment( attachment ) )
740 return false;
741
742 string attType = attachment.GetType();
743
744 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
745 {
746 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
747 return false;
748 }
749
750 return true;
751 }
752
753 override protected bool CanManipulateSpareWheel(string slotSelectionName)
754 {
755 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
756 }
757
758 override bool CanDisplayAttachmentCategory(string category_name)
759 {
760 //super
761 if (!super.CanDisplayAttachmentCategory(category_name))
762 return false;
763 //
764
765 category_name.ToLower();
766 if (category_name.Contains("engine"))
767 {
768 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
769 return false;
770 }
771
772 return true;
773 }
774
775 override bool CanDisplayCargo()
776 {
777 if ( !super.CanDisplayCargo() )
778 return false;
779
780 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
781 return false;
782
783 return true;
784 }
785
786 override int GetCarDoorsState( string slotType )
787 {
788 CarDoor carDoor;
789
790 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
791 if (!carDoor)
792 {
793 return CarDoorState.DOORS_MISSING;
794 }
795
796 switch (slotType)
797 {
798 case "CivSedanDriverDoors":
799 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
800 break;
801
802 case "CivSedanCoDriverDoors":
803 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
804 break;
805
806 case "CivSedanCargo1Doors":
807 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
808 break;
809
810 case "CivSedanCargo2Doors":
811 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
812 break;
813
814 case "CivSedanTrunk":
815 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
816 break;
817
818 case "CivSedanHood":
819 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
820 break;
821 }
822
823 return CarDoorState.DOORS_MISSING;
824 }
825
826
827 override bool CrewCanGetThrough( int posIdx )
828 {
829 switch( posIdx )
830 {
831 case 0:
832 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
833 return false;
834
835 return true;
836 break;
837
838 case 1:
839 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
840 return false;
841
842 return true;
843 break;
844
845 case 2:
846 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
847 return false;
848
849 return true;
850 break;
851
852 case 3:
853 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
854 return false;
855
856 return true;
857 break;
858 }
859
860 return false;
861 }
862
863 override string GetDoorSelectionNameFromSeatPos(int posIdx)
864 {
865 switch( posIdx )
866 {
867 case 0:
868 return "doors_driver";
869 break;
870 case 1:
871 return "doors_codriver";
872 break;
873 case 2:
874 return "doors_cargo1";
875 break;
876 case 3:
877 return "doors_cargo2";
878 break;
879 }
880
881 return super.GetDoorSelectionNameFromSeatPos(posIdx);
882 }
883
884 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
885 {
886 switch( posIdx )
887 {
888 case 0:
889 return "CivSedanDriverDoors";
890 break;
891 case 1:
892 return "CivSedanCoDriverDoors";
893 break;
894 case 2:
895 return "CivSedanCargo1Doors";
896 break;
897 case 3:
898 return "CivSedanCargo2Doors";
899 break;
900 }
901
902 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
903 }
904
905 // 0 full ambient and engine sound
906 // 1 zero ambient and engine sound
907 override float OnSound(CarSoundCtrl ctrl, float oldValue)
908 {
909 switch (ctrl)
910 {
911 case CarSoundCtrl.DOORS:
912 float newValue = 0;
913 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
914 {
915 newValue += 0.25;
916 }
917
918 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
919 {
920 newValue += 0.25;
921 }
922
923 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
924 {
925 newValue += 0.25;
926 }
927
928 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
929 {
930 newValue += 0.25;
931 }
932
933 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
934 {
935 newValue -= 0.6;
936 }
937
938 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
939 {
940 newValue -= 0.6;
941 }
942
943 return Math.Clamp(newValue, 0, 1);
944 break;
945 }
946
947 return super.OnSound(ctrl, oldValue);
948 }
949
950 override string GetAnimSourceFromSelection(string selection)
951 {
952 switch (selection)
953 {
954 case "doors_driver":
955 return "DoorsDriver";
956 case "doors_codriver":
957 return "DoorsCoDriver";
958 case "doors_cargo1":
959 return "DoorsCargo1";
960 case "doors_cargo2":
961 return "DoorsCargo2";
962 case "doors_hood":
963 return "DoorsHood";
964 case "doors_trunk":
965 return "DoorsTrunk";
966 }
967
968 return "";
969 }
970
971 override bool IsVitalGlowPlug()
972 {
973 return false;
974 }
975
976 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
977 {
978 switch (currentSeat)
979 {
980 case 0:
981 return nextSeat == 1;
982
983 case 1:
984 return nextSeat == 0;
985
986 case 2:
987 return nextSeat == 3;
988
989 case 3:
990 return nextSeat == 2;
991 }
992
993 return false;
994 }
995
996 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
997 {
998 switch (pCurrentSeat)
999 {
1000 case 0:
1001 return pDoorsSelection == "DoorsDriver";
1002
1003 case 1:
1004 return pDoorsSelection == "DoorsCoDriver";
1005
1006 case 2:
1007 return pDoorsSelection == "DoorsCargo1";
1008
1009 case 3:
1010 return pDoorsSelection == "DoorsCargo2";
1011 }
1012
1013 return false;
1014 }
1015
1016 override void OnDebugSpawn()
1017 {
1019 SpawnAdditionalItems();
1020 FillUpCarFluids();
1021
1022 GameInventory inventory = GetInventory();
1023 inventory.CreateInInventory("CivSedanWheel");
1024 inventory.CreateInInventory("CivSedanWheel");
1025 inventory.CreateInInventory("CivSedanWheel");
1026 inventory.CreateInInventory("CivSedanWheel");
1027
1028 inventory.CreateInInventory("CivSedanDoors_Driver");
1029 inventory.CreateInInventory("CivSedanDoors_CoDriver");
1030 inventory.CreateInInventory("CivSedanDoors_BackLeft");
1031 inventory.CreateInInventory("CivSedanDoors_BackRight");
1032 inventory.CreateInInventory("CivSedanHood");
1033 inventory.CreateInInventory("CivSedanTrunk");
1034
1035 //-----IN CAR CARGO
1036 inventory.CreateInInventory("CivSedanWheel");
1037 inventory.CreateInInventory("CivSedanWheel");
1038 }
1039
1040 override float GetPushForceCoefficientMultiplier()
1041 {
1042 return 1.5;
1043 }
1044}
1045
1046class CivilianSedan_Wine : CivilianSedan
1047{
1048 override void OnDebugSpawn()
1049 {
1051 SpawnAdditionalItems();
1052 FillUpCarFluids();
1053
1054 GameInventory inventory = GetInventory();
1055 inventory.CreateInInventory("CivSedanWheel");
1056 inventory.CreateInInventory("CivSedanWheel");
1057 inventory.CreateInInventory("CivSedanWheel");
1058 inventory.CreateInInventory("CivSedanWheel");
1059
1060 inventory.CreateInInventory("CivSedanDoors_Driver_Wine");
1061 inventory.CreateInInventory("CivSedanDoors_CoDriver_Wine");
1062 inventory.CreateInInventory("CivSedanDoors_BackLeft_Wine");
1063 inventory.CreateInInventory("CivSedanDoors_BackRight_Wine");
1064 inventory.CreateInInventory("CivSedanHood_Wine");
1065 inventory.CreateInInventory("CivSedanTrunk_Wine");
1066
1067 //-----IN CAR CARGO
1068 inventory.CreateInInventory("CivSedanWheel");
1069 inventory.CreateInInventory("CivSedanWheel");
1070 }
1071}
1072
1074{
1075 override void OnDebugSpawn()
1076 {
1078 SpawnAdditionalItems();
1079 FillUpCarFluids();
1080
1081 GameInventory inventory = GetInventory();
1082 inventory.CreateInInventory("CivSedanWheel");
1083 inventory.CreateInInventory("CivSedanWheel");
1084 inventory.CreateInInventory("CivSedanWheel");
1085 inventory.CreateInInventory("CivSedanWheel");
1086
1087 inventory.CreateInInventory("CivSedanDoors_Driver_Black");
1088 inventory.CreateInInventory("CivSedanDoors_CoDriver_Black");
1089 inventory.CreateInInventory("CivSedanDoors_BackLeft_Black");
1090 inventory.CreateInInventory("CivSedanDoors_BackRight_Black");
1091 inventory.CreateInInventory("CivSedanHood_Black");
1092 inventory.CreateInInventory("CivSedanTrunk_Black");
1093
1094 //-----IN CAR CARGO
1095 inventory.CreateInInventory("CivSedanWheel");
1096 inventory.CreateInInventory("CivSedanWheel");
1097 }
1098}
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
CivilianSedanLightProfileFront VehicleLightProfileFront CivilianSedanLightProfileRear()
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
void VehicleLightData(VehicleLightProfileBase profile)
Определения VehicleLightsComponent.c:21
override float GetPushForceCoefficientMultiplier()
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()
void ~CivilianSedan()
void CivilianSedan()
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override float GetTransportCameraDistance()
override void EEInit()
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanDisplayCargo()
override EntityAI GetElectricitySourceDevice()
override void OnEngineStart()
override int GetAnimInstance()
override bool CrewCanGetThrough(int posIdx)
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
bool CanManipulateSpareWheel(string slotSelectionName)
override bool IsVitalGlowPlug()
override bool NeedElectricitySourceDevice()
override string GetElectricitySourceDeviceType()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
CivilianSedan CarScript OnDebugSpawn()
override bool CanDisplayAttachmentCategory(string category_name)
static int SLOT_ID
Определения CarBattery.c:3
Определения CarBattery.c:2
Определения Truck_02.c:2
override void OnDebugSpawn()
override void OnDebugSpawn()
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
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
const int STATE_RUINED
Определения 3_Game/DayZ/constants.c:909
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.