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

◆ GetCarDoorsState()

override int OnDebugSpawn::GetCarDoorsState ( string slotType)
protected

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

656 : CarScript
657{
661
662 void Sedan_02()
663 {
664 m_dmgContactCoef = 0.0790;
665
666 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
667 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
668 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
669 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
670 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
671 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
672
673 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
674 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
675
676 m_LightsComponent.RegisterLight("Front", new VehicleLightData(new Sedan_02LightProfileFront()));
677 m_LightsComponent.RegisterLight("Rear", new VehicleLightData(new Sedan_02LightProfileRear()));
678
679 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "Sedan_02_Horn_Short_SoundSet");
680 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "Sedan_02_Horn_SoundSet");
681
682 SetEnginePos("0 0.7 -1.7");
683
685 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
686 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
687 }
688
689 void ~Sedan_02()
690 {
691 m_UTSource = null;
692 m_UTSSettings = null;
693 m_UTSLEngine = null;
694 }
695
696 override void EEInit()
697 {
698 super.EEInit();
699
700 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
701 {
703 m_UTSSettings.m_ManualUpdate = true;
705 m_UTSSettings.m_TemperatureCap = 0;
706 m_UTSSettings.m_RangeFull = 0.5;
707 m_UTSSettings.m_RangeMax = 2;
708
711 }
712 }
713
714 override bool NeedElectricitySourceDevice()
715 {
716 return true;
717 }
718
720 {
721 super.GetElectricitySourceDevice();
722
723 return GetInventory().FindAttachment(CarBattery.SLOT_ID);
724 }
725
726 override string GetElectricitySourceDeviceType()
727 {
728 return "CarBattery";
729 }
730
731 override void OnEngineStart()
732 {
733 super.OnEngineStart();
734
735 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
736 {
737 if (m_UTSource)
738 m_UTSource.SetDefferedActive(true, 20.0);
739 }
740 }
741
742 override void OnEngineStop()
743 {
744 super.OnEngineStop();
745
746 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
747 {
748 if (m_UTSource)
749 m_UTSource.SetDefferedActive(false, 10.0);
750 }
751 }
752
753 override void EOnPostSimulate(IEntity other, float timeSlice)
754 {
755 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
756 {
757 if (m_UTSource && m_UTSource.IsActive())
758 {
760 }
761 }
762 }
763
764 override int GetAnimInstance()
765 {
766 return VehicleAnimInstances.S120;
767 }
768
769 override int GetSeatAnimationType(int posIdx)
770 {
771 switch (posIdx)
772 {
773 case 0:
774 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
775 case 1:
776 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
777 case 2:
778 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
779 case 3:
780 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
781 }
782
783 return 0;
784 }
785
786 override bool CanReleaseAttachment( EntityAI attachment )
787 {
788 if (!super.CanReleaseAttachment(attachment))
789 {
790 return false;
791 }
792
793 string attType = attachment.GetType();
794 switch (attType)
795 {
796 case "CarBattery":
797 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
798 {
799 return false;
800 }
801 break;
802
803 case "SparkPlug":
804 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
805 {
806 return false;
807 }
808 break;
809
810 case "CarRadiator":
811 if (GetCarDoorsState("Sedan_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("Sedan_02_Hood") != 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("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
837 {
838 return false;
839 }
840 }
841
842 if (category_name.Contains("trunk"))
843 {
844 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
845 {
846 return false;
847 }
848 }
849
850 return true;
851 }
852
853 override bool CanDisplayCargo()
854 {
855 if ( !super.CanDisplayCargo() )
856 return false;
857
858 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
859 return false;
860
861 return true;
862 }
863
864 override int GetCarDoorsState(string slotType)
865 {
866 CarDoor carDoor;
867
868 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
869 if (!carDoor)
870 {
871 return CarDoorState.DOORS_MISSING;
872 }
873
874 switch (slotType)
875 {
876 case "Sedan_02_Door_1_1":
877 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
878
879 case "Sedan_02_Door_2_1":
880 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
881
882 case "Sedan_02_Door_1_2":
883 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
884
885 case "Sedan_02_Door_2_2":
886 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
887
888 case "Sedan_02_Hood":
889 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
890
891 case "Sedan_02_Trunk":
892 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
893 }
894
895 return CarDoorState.DOORS_MISSING;
896 }
897
898
899 override bool CrewCanGetThrough( int posIdx )
900 {
901 switch( posIdx )
902 {
903 case 0:
904 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
905 return false;
906
907 return true;
908 break;
909
910 case 1:
911 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
912 return false;
913
914 return true;
915 break;
916
917 case 2:
918 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
919 return false;
920
921 return true;
922 break;
923
924 case 3:
925 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
926 return false;
927
928 return true;
929 break;
930 }
931
932 return false;
933 }
934
935 override string GetDoorSelectionNameFromSeatPos(int posIdx)
936 {
937 switch( posIdx )
938 {
939 case 0:
940 return "doors_driver";
941 break;
942 case 1:
943 return "doors_codriver";
944 break;
945 case 2:
946 return "doors_cargo1";
947 break;
948 case 3:
949 return "doors_cargo2";
950 break;
951 }
952
953 return super.GetDoorSelectionNameFromSeatPos(posIdx);
954 }
955
956 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
957 {
958 switch( posIdx )
959 {
960 case 0:
961 return "Sedan_02_Door_1_1";
962 break;
963 case 1:
964 return "Sedan_02_Door_2_1";
965 break;
966 case 2:
967 return "Sedan_02_Door_1_2";
968 break;
969 case 3:
970 return "Sedan_02_Door_2_2";
971 break;
972 }
973
974 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
975 }
976
977 override float OnSound(CarSoundCtrl ctrl, float oldValue)
978 {
979 switch ( ctrl )
980 {
981 case CarSoundCtrl.DOORS:
982 float newValue = 0;
983 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
984 {
985 newValue += 0.25;
986 }
987
988 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
989 {
990 newValue += 0.25;
991 }
992
993 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
994 {
995 newValue += 0.25;
996 }
997
998 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
999 {
1000 newValue += 0.25;
1001 }
1002
1003 return Math.Clamp(newValue, 0, 1);
1004 break;
1005 }
1006
1007 return super.OnSound(ctrl, oldValue);
1008 }
1009
1010 override string GetAnimSourceFromSelection( string selection )
1011 {
1012 switch( selection )
1013 {
1014 case "doors_driver":
1015 return "DoorsDriver";
1016 case "doors_codriver":
1017 return "DoorsCoDriver";
1018 case "doors_cargo1":
1019 return "DoorsCargo1";
1020 case "doors_cargo2":
1021 return "DoorsCargo2";
1022 case "doors_hood":
1023 return "DoorsHood";
1024 case "doors_trunk":
1025 return "DoorsTrunk";
1026 }
1027
1028 return "";
1029 }
1030
1031 override bool IsVitalGlowPlug()
1032 {
1033 return false;
1034 }
1035
1036 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1037 {
1038 switch (currentSeat)
1039 {
1040 case 0:
1041 return nextSeat == 1;
1042
1043 case 1:
1044 return nextSeat == 0;
1045
1046 case 2:
1047 return nextSeat == 3;
1048
1049 case 3:
1050 return nextSeat == 2;
1051 }
1052
1053 return false;
1054 }
1055
1056 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
1057 {
1058 switch (pCurrentSeat)
1059 {
1060 case 0:
1061 return pDoorsSelection == "DoorsDriver";
1062
1063 case 1:
1064 return pDoorsSelection == "DoorsCoDriver";
1065
1066 case 2:
1067 return pDoorsSelection == "DoorsCargo1";
1068
1069 case 3:
1070 return pDoorsSelection == "DoorsCargo2";
1071 }
1072
1073 return false;
1074 }
1075
1076 override void OnDebugSpawn()
1077 {
1079 SpawnAdditionalItems();
1080 FillUpCarFluids();
1081
1082 GameInventory inventory = GetInventory();
1083 inventory.CreateInInventory("Sedan_02_Wheel");
1084 inventory.CreateInInventory("Sedan_02_Wheel");
1085 inventory.CreateInInventory("Sedan_02_Wheel");
1086 inventory.CreateInInventory("Sedan_02_Wheel");
1087 inventory.CreateInInventory("Sedan_02_Wheel");
1088
1089 inventory.CreateInInventory("Sedan_02_Door_1_1");
1090 inventory.CreateInInventory("Sedan_02_Door_1_2");
1091 inventory.CreateInInventory("Sedan_02_Door_2_1");
1092 inventory.CreateInInventory("Sedan_02_Door_2_2");
1093 inventory.CreateInInventory("Sedan_02_Hood");
1094 inventory.CreateInInventory("Sedan_02_Trunk");
1095
1096 //-----IN CAR CARGO
1097 inventory.CreateInInventory("Sedan_02_Wheel");
1098 inventory.CreateInInventory("Sedan_02_Wheel");
1099 }
1100}
1101
1102class Sedan_02_Red : Sedan_02
1103{
1104 override void OnDebugSpawn()
1105 {
1107 SpawnAdditionalItems();
1108 FillUpCarFluids();
1109
1110 GameInventory inventory = GetInventory();
1111 inventory.CreateInInventory("Sedan_02_Wheel");
1112 inventory.CreateInInventory("Sedan_02_Wheel");
1113 inventory.CreateInInventory("Sedan_02_Wheel");
1114 inventory.CreateInInventory("Sedan_02_Wheel");
1115
1116 inventory.CreateInInventory("Sedan_02_Door_1_1_Red");
1117 inventory.CreateInInventory("Sedan_02_Door_1_2_Red");
1118 inventory.CreateInInventory("Sedan_02_Door_2_1_Red");
1119 inventory.CreateInInventory("Sedan_02_Door_2_2_Red");
1120 inventory.CreateInInventory("Sedan_02_Hood_Red");
1121 inventory.CreateInInventory("Sedan_02_Trunk_Red");
1122
1123 //-----IN CAR CARGO
1124 inventory.CreateInInventory("Sedan_02_Wheel");
1125 inventory.CreateInInventory("Sedan_02_Wheel");
1126 }
1127}
1128
1129class Sedan_02_Grey : Sedan_02
1130{
1131 override void OnDebugSpawn()
1132 {
1134 SpawnAdditionalItems();
1135 FillUpCarFluids();
1136
1137 GameInventory inventory = GetInventory();
1138 inventory.CreateInInventory("Sedan_02_Wheel");
1139 inventory.CreateInInventory("Sedan_02_Wheel");
1140 inventory.CreateInInventory("Sedan_02_Wheel");
1141 inventory.CreateInInventory("Sedan_02_Wheel");
1142
1143 inventory.CreateInInventory("Sedan_02_Door_1_1_Grey");
1144 inventory.CreateInInventory("Sedan_02_Door_1_2_Grey");
1145 inventory.CreateInInventory("Sedan_02_Door_2_1_Grey");
1146 inventory.CreateInInventory("Sedan_02_Door_2_2_Grey");
1147 inventory.CreateInInventory("Sedan_02_Hood_Grey");
1148 inventory.CreateInInventory("Sedan_02_Trunk_Grey");
1149
1150 //-----IN CAR CARGO
1151 inventory.CreateInInventory("Sedan_02_Wheel");
1152 inventory.CreateInInventory("Sedan_02_Wheel");
1153 }
1154}
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
Sedan_02LightProfileFront VehicleLightProfileFront Sedan_02LightProfileRear()
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
void VehicleLightData(VehicleLightProfileBase profile)
Определения VehicleLightsComponent.c:21
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
void ~Sedan_02()
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStop()
override void EEInit()
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanDisplayCargo()
override EntityAI GetElectricitySourceDevice()
Sedan_02 CarScript OnDebugSpawn()
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()
void Sedan_02()
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()
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.