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

◆ CanManipulateSpareWheel()

bool OnDebugSpawn::CanManipulateSpareWheel ( string slotSelectionName)
protected

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

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