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

◆ GetCarDoorsState()

override int OnDebugSpawn::GetCarDoorsState ( string slotType)
protected

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

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