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

◆ GetCarDoorsState()

override int OnDebugSpawn::GetCarDoorsState ( string slotType)
protected

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

639{
643
644 void Sedan_02()
645 {
646 m_dmgContactCoef = 0.0790;
647
648 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
649 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
650 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
651 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
652 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
653 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
654
655 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
656 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
657
658 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
659 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
660
661 SetEnginePos("0 0.7 -1.7");
662 }
663
664 void ~Sedan_02()
665 {
666 m_UTSource = null;
667 m_UTSSettings = null;
668 m_UTSLEngine = null;
669 }
670
671 override void EEInit()
672 {
673 super.EEInit();
674
675 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
676 {
678 m_UTSSettings.m_ManualUpdate = true;
680 m_UTSSettings.m_TemperatureCap = 0;
681 m_UTSSettings.m_RangeFull = 0.5;
682 m_UTSSettings.m_RangeMax = 2;
683
686 }
687 }
688
689 override void OnEngineStart()
690 {
691 super.OnEngineStart();
692
693 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
694 {
695 if (m_UTSource)
696 m_UTSource.SetDefferedActive(true, 20.0);
697 }
698 }
699
700 override void OnEngineStop()
701 {
702 super.OnEngineStop();
703
704 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
705 {
706 if (m_UTSource)
707 m_UTSource.SetDefferedActive(false, 10.0);
708 }
709 }
710
711 override void EOnPostSimulate(IEntity other, float timeSlice)
712 {
713 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
714 {
715 if (m_UTSource && m_UTSource.IsActive())
716 {
718 }
719 }
720 }
721
722 override int GetAnimInstance()
723 {
724 return VehicleAnimInstances.S120;
725 }
726
727 override int GetSeatAnimationType(int posIdx)
728 {
729 switch (posIdx)
730 {
731 case 0:
732 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
733 case 1:
734 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
735 case 2:
736 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
737 case 3:
738 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
739 }
740
741 return 0;
742 }
743
744 // Override for car-specific light type
746 {
747 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02FrontLight));
748 }
749
750 // Override for car-specific light type
752 {
753 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02RearLight));
754 }
755
756 override bool CanReleaseAttachment( EntityAI attachment )
757 {
758 if (!super.CanReleaseAttachment(attachment))
759 {
760 return false;
761 }
762
763 string attType = attachment.GetType();
764 switch (attType)
765 {
766 case "CarBattery":
767 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
768 {
769 return false;
770 }
771 break;
772
773 case "SparkPlug":
774 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
775 {
776 return false;
777 }
778 break;
779
780 case "CarRadiator":
781 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
782 {
783 return false;
784 }
785 break;
786 }
787
788 return true;
789 }
790
791 override protected bool CanManipulateSpareWheel(string slotSelectionName)
792 {
793 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
794 }
795
796 override bool CanDisplayAttachmentCategory(string category_name)
797 {
798 if ( !super.CanDisplayAttachmentCategory(category_name))
799 {
800 return false;
801 }
802
803 category_name.ToLower();
804 if (category_name.Contains("engine"))
805 {
806 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
807 {
808 return false;
809 }
810 }
811
812 if (category_name.Contains("trunk"))
813 {
814 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
815 {
816 return false;
817 }
818 }
819
820 return true;
821 }
822
823 override bool CanDisplayCargo()
824 {
825 if ( !super.CanDisplayCargo() )
826 return false;
827
828 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
829 return false;
830
831 return true;
832 }
833
834 override int GetCarDoorsState(string slotType)
835 {
836 CarDoor carDoor;
837
838 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
839 if (!carDoor)
840 {
841 return CarDoorState.DOORS_MISSING;
842 }
843
844 switch (slotType)
845 {
846 case "Sedan_02_Door_1_1":
847 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
848
849 case "Sedan_02_Door_2_1":
850 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
851
852 case "Sedan_02_Door_1_2":
853 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
854
855 case "Sedan_02_Door_2_2":
856 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
857
858 case "Sedan_02_Hood":
859 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
860
861 case "Sedan_02_Trunk":
862 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
863 }
864
865 return CarDoorState.DOORS_MISSING;
866 }
867
868
869 override bool CrewCanGetThrough( int posIdx )
870 {
871 switch( posIdx )
872 {
873 case 0:
874 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
875 return false;
876
877 return true;
878 break;
879
880 case 1:
881 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
882 return false;
883
884 return true;
885 break;
886
887 case 2:
888 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
889 return false;
890
891 return true;
892 break;
893
894 case 3:
895 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
896 return false;
897
898 return true;
899 break;
900 }
901
902 return false;
903 }
904
905 override string GetDoorSelectionNameFromSeatPos(int posIdx)
906 {
907 switch( posIdx )
908 {
909 case 0:
910 return "doors_driver";
911 break;
912 case 1:
913 return "doors_codriver";
914 break;
915 case 2:
916 return "doors_cargo1";
917 break;
918 case 3:
919 return "doors_cargo2";
920 break;
921 }
922
923 return super.GetDoorSelectionNameFromSeatPos(posIdx);
924 }
925
926 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
927 {
928 switch( posIdx )
929 {
930 case 0:
931 return "Sedan_02_Door_1_1";
932 break;
933 case 1:
934 return "Sedan_02_Door_2_1";
935 break;
936 case 2:
937 return "Sedan_02_Door_1_2";
938 break;
939 case 3:
940 return "Sedan_02_Door_2_2";
941 break;
942 }
943
944 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
945 }
946
947 override float OnSound(CarSoundCtrl ctrl, float oldValue)
948 {
949 switch ( ctrl )
950 {
951 case CarSoundCtrl.DOORS:
952 float newValue = 0;
953 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
954 {
955 newValue += 0.25;
956 }
957
958 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
959 {
960 newValue += 0.25;
961 }
962
963 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
964 {
965 newValue += 0.25;
966 }
967
968 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
969 {
970 newValue += 0.25;
971 }
972
973 return Math.Clamp(newValue, 0, 1);
974 break;
975 }
976
977 return super.OnSound(ctrl, oldValue);
978 }
979
980 override string GetAnimSourceFromSelection( string selection )
981 {
982 switch( selection )
983 {
984 case "doors_driver":
985 return "DoorsDriver";
986 case "doors_codriver":
987 return "DoorsCoDriver";
988 case "doors_cargo1":
989 return "DoorsCargo1";
990 case "doors_cargo2":
991 return "DoorsCargo2";
992 case "doors_hood":
993 return "DoorsHood";
994 case "doors_trunk":
995 return "DoorsTrunk";
996 }
997
998 return "";
999 }
1000
1001
1002 override bool IsVitalTruckBattery()
1003 {
1004 return false;
1005 }
1006
1007 override bool IsVitalGlowPlug()
1008 {
1009 return false;
1010 }
1011
1012 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1013 {
1014 switch (currentSeat)
1015 {
1016 case 0:
1017 return nextSeat == 1;
1018
1019 case 1:
1020 return nextSeat == 0;
1021
1022 case 2:
1023 return nextSeat == 3;
1024
1025 case 3:
1026 return nextSeat == 2;
1027 }
1028
1029 return false;
1030 }
1031
1032 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
1033 {
1034 switch (pCurrentSeat)
1035 {
1036 case 0:
1037 return pDoorsSelection == "DoorsDriver";
1038
1039 case 1:
1040 return pDoorsSelection == "DoorsCoDriver";
1041
1042 case 2:
1043 return pDoorsSelection == "DoorsCargo1";
1044
1045 case 3:
1046 return pDoorsSelection == "DoorsCargo2";
1047 }
1048
1049 return false;
1050 }
1051
1052 override void OnDebugSpawn()
1053 {
1054 SpawnUniversalParts();
1055 SpawnAdditionalItems();
1056 FillUpCarFluids();
1057
1058 GameInventory inventory = GetInventory();
1059 inventory.CreateInInventory("Sedan_02_Wheel");
1060 inventory.CreateInInventory("Sedan_02_Wheel");
1061 inventory.CreateInInventory("Sedan_02_Wheel");
1062 inventory.CreateInInventory("Sedan_02_Wheel");
1063 inventory.CreateInInventory("Sedan_02_Wheel");
1064
1065 inventory.CreateInInventory("Sedan_02_Door_1_1");
1066 inventory.CreateInInventory("Sedan_02_Door_1_2");
1067 inventory.CreateInInventory("Sedan_02_Door_2_1");
1068 inventory.CreateInInventory("Sedan_02_Door_2_2");
1069 inventory.CreateInInventory("Sedan_02_Hood");
1070 inventory.CreateInInventory("Sedan_02_Trunk");
1071
1072 //-----IN CAR CARGO
1073 inventory.CreateInInventory("Sedan_02_Wheel");
1074 inventory.CreateInInventory("Sedan_02_Wheel");
1075 }
1076}
1077
1078class Sedan_02_Red extends Sedan_02
1079{
1080 override void OnDebugSpawn()
1081 {
1082 SpawnUniversalParts();
1083 SpawnAdditionalItems();
1084 FillUpCarFluids();
1085
1086 GameInventory inventory = GetInventory();
1087 inventory.CreateInInventory("Sedan_02_Wheel");
1088 inventory.CreateInInventory("Sedan_02_Wheel");
1089 inventory.CreateInInventory("Sedan_02_Wheel");
1090 inventory.CreateInInventory("Sedan_02_Wheel");
1091
1092 inventory.CreateInInventory("Sedan_02_Door_1_1_Red");
1093 inventory.CreateInInventory("Sedan_02_Door_1_2_Red");
1094 inventory.CreateInInventory("Sedan_02_Door_2_1_Red");
1095 inventory.CreateInInventory("Sedan_02_Door_2_2_Red");
1096 inventory.CreateInInventory("Sedan_02_Hood_Red");
1097 inventory.CreateInInventory("Sedan_02_Trunk_Red");
1098
1099 //-----IN CAR CARGO
1100 inventory.CreateInInventory("Sedan_02_Wheel");
1101 inventory.CreateInInventory("Sedan_02_Wheel");
1102 }
1103}
1104
1105class Sedan_02_Grey extends Sedan_02
1106{
1107 override void OnDebugSpawn()
1108 {
1109 SpawnUniversalParts();
1110 SpawnAdditionalItems();
1111 FillUpCarFluids();
1112
1113 GameInventory inventory = GetInventory();
1114 inventory.CreateInInventory("Sedan_02_Wheel");
1115 inventory.CreateInInventory("Sedan_02_Wheel");
1116 inventory.CreateInInventory("Sedan_02_Wheel");
1117 inventory.CreateInInventory("Sedan_02_Wheel");
1118
1119 inventory.CreateInInventory("Sedan_02_Door_1_1_Grey");
1120 inventory.CreateInInventory("Sedan_02_Door_1_2_Grey");
1121 inventory.CreateInInventory("Sedan_02_Door_2_1_Grey");
1122 inventory.CreateInInventory("Sedan_02_Door_2_2_Grey");
1123 inventory.CreateInInventory("Sedan_02_Hood_Grey");
1124 inventory.CreateInInventory("Sedan_02_Trunk_Grey");
1125
1126 //-----IN CAR CARGO
1127 inventory.CreateInInventory("Sedan_02_Wheel");
1128 inventory.CreateInInventory("Sedan_02_Wheel");
1129 }
1130}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
CarDoorState
Определения CarScript.c:2
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:443
DayZGame g_Game
Определения DayZGame.c:3942
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:221
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:220
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Sedan_02.c:816
class Sedan_02 extends CarScript OnDebugSpawn()
Определения Sedan_02.c:443
override string GetAnimSourceFromSelection(string selection)
Определения Sedan_02.c:784
override int GetSeatAnimationType(int posIdx)
Определения Sedan_02.c:531
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Sedan_02.c:751
void ~Sedan_02()
Определения Sedan_02.c:468
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Sedan_02.c:730
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Sedan_02.c:515
override void OnEngineStop()
Определения Sedan_02.c:504
override void EEInit()
Определения Sedan_02.c:475
override bool CanReleaseAttachment(EntityAI attachment)
Определения Sedan_02.c:560
override bool CanDisplayCargo()
Определения Sedan_02.c:627
override void OnEngineStart()
Определения Sedan_02.c:493
override CarLightBase CreateFrontLight()
Определения Sedan_02.c:549
override int GetAnimInstance()
Определения Sedan_02.c:526
override bool CrewCanGetThrough(int posIdx)
Определения Sedan_02.c:673
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Sedan_02.c:836
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Sedan_02.c:595
override bool IsVitalGlowPlug()
Определения Sedan_02.c:811
void Sedan_02()
Определения Sedan_02.c:448
override CarRearLightBase CreateRearLight()
Определения Sedan_02.c:555
override bool IsVitalTruckBattery()
Определения Sedan_02.c:806
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Sedan_02.c:709
override int GetCarDoorsState(string slotType)
Определения Sedan_02.c:638
override bool CanDisplayAttachmentCategory(string category_name)
Определения Sedan_02.c:600
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.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()
Определения Sedan_02.c:470
Определения Sedan_02.c:469
original Timer deletes m_params which is unwanted
Определения UniversalTemperatureSource.c:39
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:811
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.

Используется в CarScript::CanDisplayAttachmentCategory(), CarScript::CanDisplayCargo(), CarScript::CanManipulateSpareWheel(), CarScript::CanReleaseAttachment(), CarScript::CrewCanGetThrough() и CarScript::OnSound().