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

◆ GetCarDoorsState()

override int OnDebugSpawn::GetCarDoorsState ( string slotType)
protected

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

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