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

◆ GetCarDoorsState()

override int OnDebugSpawn::GetCarDoorsState ( string slotType)
protected

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

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