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

◆ GetDoorSelectionNameFromSeatPos()

override string OnDebugSpawn::GetDoorSelectionNameFromSeatPos ( int posIdx)
protected

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

640{
644
645 void Hatchback_02()
646 {
647 //m_dmgContactCoef = 0.070;
648
649 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
650 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
651 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
652 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
653 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
654 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
655
656 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
657 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
658
659 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
660 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
661
662 SetEnginePos("0 0.7 1.4");
663 }
664
665 override void EEInit()
666 {
667 super.EEInit();
668
669 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
670 {
672 m_UTSSettings.m_ManualUpdate = true;
674 m_UTSSettings.m_TemperatureCap = 0;
675 m_UTSSettings.m_RangeFull = 0.5;
676 m_UTSSettings.m_RangeMax = 2;
677
680 }
681 }
682
683 override void OnEngineStart()
684 {
685 super.OnEngineStart();
686
687 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
688 {
689 m_UTSource.SetDefferedActive(true, 20.0);
690 }
691 }
692
693 override void OnEngineStop()
694 {
695 super.OnEngineStop();
696
697 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
698 {
699 m_UTSource.SetDefferedActive(false, 10.0);
700 }
701 }
702
703 override void EOnPostSimulate(IEntity other, float timeSlice)
704 {
705 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
706 {
707 if (m_UTSource.IsActive())
708 {
710 }
711 }
712 }
713
714 override int GetAnimInstance()
715 {
716 return VehicleAnimInstances.GOLF;
717 }
718
719 override int GetSeatAnimationType(int posIdx)
720 {
721 switch (posIdx)
722 {
723 case 0:
724 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
725 case 1:
726 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
727 case 2:
728 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
729 case 3:
730 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
731 }
732
733 return 0;
734 }
735
736 // Override for car-specific light type
738 {
739 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02RearLight));
740 }
741
742 // Override for car-specific light type
744 {
745 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02FrontLight));
746 }
747
748 override bool CanReleaseAttachment(EntityAI attachment)
749 {
750 if (!super.CanReleaseAttachment(attachment))
751 {
752 return false;
753 }
754
755 if (EngineIsOn() || GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED)
756 {
757 string attType = attachment.GetType();
758 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
759 {
760 return false;
761 }
762 }
763
764 return true;
765 }
766
767 override protected bool CanManipulateSpareWheel(string slotSelectionName)
768 {
769 return GetCarDoorsState("Hatchback_02_Trunk") != CarDoorState.DOORS_CLOSED;
770 }
771
772 override bool CanDisplayAttachmentCategory( string category_name )
773 {
774 //super
775 if ( !super.CanDisplayAttachmentCategory( category_name ) )
776 return false;
777 //
778
779 category_name.ToLower();
780 if ( category_name.Contains("engine") )
781 {
782 if ( GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED )
783 return false;
784 }
785
786 return true;
787 }
788
789 override bool CanDisplayCargo()
790 {
791 if ( !super.CanDisplayCargo() )
792 return false;
793
794 if ( GetCarDoorsState("Hatchback_02_Trunk") == CarDoorState.DOORS_CLOSED )
795 return false;
796
797 return true;
798 }
799
800 override int GetCarDoorsState(string slotType)
801 {
802 CarDoor carDoor;
803
804 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
805 if (!carDoor)
806 {
807 return CarDoorState.DOORS_MISSING;
808 }
809
810 switch (slotType)
811 {
812 case "Hatchback_02_Door_1_1":
813 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
814
815 case "Hatchback_02_Door_2_1":
816 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
817
818 case "Hatchback_02_Door_1_2":
819 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
820
821 case "Hatchback_02_Door_2_2":
822 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
823
824 case "Hatchback_02_Hood":
825 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
826
827 case "Hatchback_02_Trunk":
828 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
829 }
830
831 return CarDoorState.DOORS_MISSING;
832 }
833
834
835 override bool CrewCanGetThrough(int posIdx)
836 {
837 switch (posIdx)
838 {
839 case 0:
840 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
841 {
842 return false;
843 }
844
845 return true;
846
847 case 1:
848 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
849 {
850 return false;
851 }
852
853 return true;
854
855 case 2:
856 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
857 {
858 return false;
859 }
860
861 return true;
862
863 case 3:
864 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
865 {
866 return false;
867 }
868
869 return true;
870 }
871
872 return false;
873 }
874
875 override string GetDoorSelectionNameFromSeatPos(int posIdx)
876 {
877 switch( posIdx )
878 {
879 case 0:
880 return "doors_driver";
881 break;
882 case 1:
883 return "doors_codriver";
884 break;
885 case 2:
886 return "doors_cargo1";
887 break;
888 case 3:
889 return "doors_cargo2";
890 break;
891 }
892
893 return super.GetDoorSelectionNameFromSeatPos(posIdx);
894 }
895
896 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
897 {
898 switch( posIdx )
899 {
900 case 0:
901 return "Hatchback_02_Door_1_1";
902 break;
903 case 1:
904 return "Hatchback_02_Door_2_1";
905 break;
906 case 2:
907 return "Hatchback_02_Door_1_2";
908 break;
909 case 3:
910 return "Hatchback_02_Door_2_2";
911 break;
912 }
913
914 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
915 }
916
917 override float OnSound(CarSoundCtrl ctrl, float oldValue)
918 {
919 switch (ctrl)
920 {
921 case CarSoundCtrl.DOORS:
922 float newValue = 0;
923 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
924 {
925 newValue += 0.25;
926 }
927
928 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
929 {
930 newValue += 0.25;
931 }
932
933 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
934 {
935 newValue += 0.25;
936 }
937
938 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
939 {
940 newValue += 0.25;
941 }
942
943 return Math.Clamp(newValue, 0, 1);
944 break;
945 }
946
947 return super.OnSound(ctrl, oldValue);
948 }
949
950 override string GetAnimSourceFromSelection( string selection )
951 {
952 switch( selection )
953 {
954 case "doors_driver":
955 return "DoorsDriver";
956 case "doors_codriver":
957 return "DoorsCoDriver";
958 case "doors_cargo1":
959 return "DoorsCargo1";
960 case "doors_cargo2":
961 return "DoorsCargo2";
962 case "doors_hood":
963 return "DoorsHood";
964 case "doors_trunk":
965 return "DoorsTrunk";
966 }
967
968 return "";
969 }
970
971
972 override bool IsVitalTruckBattery()
973 {
974 return false;
975 }
976
977 override bool IsVitalGlowPlug()
978 {
979 return false;
980 }
981
982 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
983 {
984 switch (currentSeat)
985 {
986 case 0:
987 return nextSeat == 1;
988 case 1:
989 return nextSeat == 0;
990 case 2:
991 return nextSeat == 3;
992 case 3:
993 return nextSeat == 2;
994 }
995
996 return false;
997 }
998
999 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
1000 {
1001 switch (pCurrentSeat)
1002 {
1003 case 0:
1004 return pDoorsSelection == "DoorsDriver";
1005 case 1:
1006 return pDoorsSelection == "DoorsCoDriver";
1007 case 2:
1008 return pDoorsSelection == "DoorsCargo1";
1009 case 3:
1010 return pDoorsSelection == "DoorsCargo2";
1011 }
1012
1013 return false;
1014 }
1015
1016 override void OnDebugSpawn()
1017 {
1018 SpawnUniversalParts();
1019 SpawnAdditionalItems();
1020 FillUpCarFluids();
1021
1022 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1023 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1024 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1025 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1026
1027 GetInventory().CreateInInventory("Hatchback_02_Door_1_1");
1028 GetInventory().CreateInInventory("Hatchback_02_Door_1_2");
1029 GetInventory().CreateInInventory("Hatchback_02_Door_2_1");
1030 GetInventory().CreateInInventory("Hatchback_02_Door_2_2");
1031 GetInventory().CreateInInventory("Hatchback_02_Hood");
1032 GetInventory().CreateInInventory("Hatchback_02_Trunk");
1033
1034 //-----IN CAR CARGO
1035 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1036 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1037 }
1038}
1039
1040class Hatchback_02_Black extends Hatchback_02
1041{
1042 override void OnDebugSpawn()
1043 {
1044 SpawnUniversalParts();
1045 SpawnAdditionalItems();
1046 FillUpCarFluids();
1047
1048 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1049 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1050 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1051 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1052
1053 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Black");
1054 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Black");
1055 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Black");
1056 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Black");
1057 GetInventory().CreateInInventory("Hatchback_02_Hood_Black");
1058 GetInventory().CreateInInventory("Hatchback_02_Trunk_Black");
1059
1060 //-----IN CAR CARGO
1061 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1062 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1063 }
1064};
1065
1066class Hatchback_02_Blue extends Hatchback_02
1067{
1068 override void OnDebugSpawn()
1069 {
1070 SpawnUniversalParts();
1071 SpawnAdditionalItems();
1072 FillUpCarFluids();
1073
1074 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1075 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1076 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1077 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1078
1079 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Blue");
1080 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Blue");
1081 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Blue");
1082 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Blue");
1083 GetInventory().CreateInInventory("Hatchback_02_Hood_Blue");
1084 GetInventory().CreateInInventory("Hatchback_02_Trunk_Blue");
1085
1086 //-----IN CAR CARGO
1087 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1088 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1089 }
1090}
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
class Hatchback_02_Blue extends Hatchback_02 OnDebugSpawn
Определения Hatchback_02.c:404
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Hatchback_02.c:746
override string GetAnimSourceFromSelection(string selection)
Определения Hatchback_02.c:714
override int GetSeatAnimationType(int posIdx)
Определения Hatchback_02.c:483
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Hatchback_02.c:681
void Hatchback_02()
Определения Hatchback_02.c:409
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:660
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Hatchback_02.c:467
override void OnEngineStop()
Определения Hatchback_02.c:457
override void EEInit()
Определения Hatchback_02.c:429
override bool CanReleaseAttachment(EntityAI attachment)
Определения Hatchback_02.c:512
override bool CanDisplayCargo()
Определения Hatchback_02.c:553
override void OnEngineStart()
Определения Hatchback_02.c:447
override CarLightBase CreateFrontLight()
Определения Hatchback_02.c:507
override int GetAnimInstance()
Определения Hatchback_02.c:478
override bool CrewCanGetThrough(int posIdx)
Определения Hatchback_02.c:599
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Hatchback_02.c:763
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Hatchback_02.c:531
override bool IsVitalGlowPlug()
Определения Hatchback_02.c:741
override CarRearLightBase CreateRearLight()
Определения Hatchback_02.c:501
override bool IsVitalTruckBattery()
Определения Hatchback_02.c:736
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:639
override int GetCarDoorsState(string slotType)
Определения Hatchback_02.c:564
override bool CanDisplayAttachmentCategory(string category_name)
Определения Hatchback_02.c:536
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
override void OnDebugSpawn()
Определения Hatchback_02.c:430
Определения Hatchback_02.c:429
Определения EnEntity.c:165
Определения EnMath.c:7
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.