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

◆ CanManipulateSpareWheel()

bool OnDebugSpawn::CanManipulateSpareWheel ( string slotSelectionName)
protected

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

597 : CarScript
598{
602
603 void CivilianSedan()
604 {
605 //m_dmgContactCoef = 0.065;
606
607 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
608 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
609 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
610 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
611 m_EngineStop = "CivilianSedan_engine_stop_SoundSet";
612 m_EngineStopFuel = "CivilianSedan_engine_stop_fuel_SoundSet";
613
614 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
615 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
616
617 m_LightsComponent.RegisterLight("Front", new VehicleLightData(new CivilianSedanLightProfileFront()));
618 m_LightsComponent.RegisterLight("Rear", new VehicleLightData(new CivilianSedanLightProfileRear()));
619
620 m_HornComponent.RegisterSound(VehicleHornMode.SHORT, "CivilianSedan_Horn_Short_SoundSet");
621 m_HornComponent.RegisterSound(VehicleHornMode.LONG, "CivilianSedan_Horn_SoundSet");
622
623 SetEnginePos("0 0.7 1.6");
624
626 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
627 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
628 }
629
630 void ~CivilianSedan()
631 {
632 m_UTSource = null;
633 m_UTSSettings = null;
634 m_UTSLEngine = null;
635 }
636
637 override void EEInit()
638 {
639 super.EEInit();
640
641 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
642 {
644 m_UTSSettings.m_ManualUpdate = true;
646 m_UTSSettings.m_TemperatureCap = 0;
647 m_UTSSettings.m_RangeFull = 0.5;
648 m_UTSSettings.m_RangeMax = 2;
649
652 }
653 }
654
655 override bool NeedElectricitySourceDevice()
656 {
657 return true;
658 }
659
661 {
662 super.GetElectricitySourceDevice();
663
664 return GetInventory().FindAttachment(CarBattery.SLOT_ID);
665 }
666
667 override string GetElectricitySourceDeviceType()
668 {
669 return "CarBattery";
670 }
671
672 override void OnEngineStart()
673 {
674 super.OnEngineStart();
675
676 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
677 {
678 if (m_UTSource)
679 m_UTSource.SetDefferedActive(true, 20.0);
680 }
681 }
682
683 override void OnEngineStop()
684 {
685 super.OnEngineStop();
686
687 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
688 {
689 if (m_UTSource)
690 m_UTSource.SetDefferedActive(false, 10.0);
691 }
692 }
693
694 override void EOnPostSimulate(IEntity other, float timeSlice)
695 {
696 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
697 {
698 if (m_UTSource && m_UTSource.IsActive())
699 {
701 }
702 }
703 }
704
705 override int GetAnimInstance()
706 {
707 return VehicleAnimInstances.SEDAN;
708 }
709
710 override float GetTransportCameraDistance()
711 {
712 return 4.5;
713 }
714
715 override int GetSeatAnimationType(int posIdx)
716 {
717 switch (posIdx)
718 {
719 case 0:
720 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
721 case 1:
722 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
723 case 2:
724 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
725 case 3:
726 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
727 }
728
729 return 0;
730 }
731
732 override bool CanReleaseAttachment( EntityAI attachment )
733 {
734 if( !super.CanReleaseAttachment( attachment ) )
735 return false;
736
737 string attType = attachment.GetType();
738
739 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
740 {
741 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
742 return false;
743 }
744
745 return true;
746 }
747
748 override protected bool CanManipulateSpareWheel(string slotSelectionName)
749 {
750 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
751 }
752
753 override bool CanDisplayAttachmentCategory(string category_name)
754 {
755 //super
756 if (!super.CanDisplayAttachmentCategory(category_name))
757 return false;
758 //
759
760 category_name.ToLower();
761 if (category_name.Contains("engine"))
762 {
763 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
764 return false;
765 }
766
767 return true;
768 }
769
770 override bool CanDisplayCargo()
771 {
772 if ( !super.CanDisplayCargo() )
773 return false;
774
775 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
776 return false;
777
778 return true;
779 }
780
781 override int GetCarDoorsState( string slotType )
782 {
783 CarDoor carDoor;
784
785 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
786 if (!carDoor)
787 {
788 return CarDoorState.DOORS_MISSING;
789 }
790
791 switch (slotType)
792 {
793 case "CivSedanDriverDoors":
794 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
795 break;
796
797 case "CivSedanCoDriverDoors":
798 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
799 break;
800
801 case "CivSedanCargo1Doors":
802 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
803 break;
804
805 case "CivSedanCargo2Doors":
806 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
807 break;
808
809 case "CivSedanTrunk":
810 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
811 break;
812
813 case "CivSedanHood":
814 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
815 break;
816 }
817
818 return CarDoorState.DOORS_MISSING;
819 }
820
821
822 override bool CrewCanGetThrough( int posIdx )
823 {
824 switch( posIdx )
825 {
826 case 0:
827 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
828 return false;
829
830 return true;
831 break;
832
833 case 1:
834 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
835 return false;
836
837 return true;
838 break;
839
840 case 2:
841 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
842 return false;
843
844 return true;
845 break;
846
847 case 3:
848 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
849 return false;
850
851 return true;
852 break;
853 }
854
855 return false;
856 }
857
858 override string GetDoorSelectionNameFromSeatPos(int posIdx)
859 {
860 switch( posIdx )
861 {
862 case 0:
863 return "doors_driver";
864 break;
865 case 1:
866 return "doors_codriver";
867 break;
868 case 2:
869 return "doors_cargo1";
870 break;
871 case 3:
872 return "doors_cargo2";
873 break;
874 }
875
876 return super.GetDoorSelectionNameFromSeatPos(posIdx);
877 }
878
879 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
880 {
881 switch( posIdx )
882 {
883 case 0:
884 return "CivSedanDriverDoors";
885 break;
886 case 1:
887 return "CivSedanCoDriverDoors";
888 break;
889 case 2:
890 return "CivSedanCargo1Doors";
891 break;
892 case 3:
893 return "CivSedanCargo2Doors";
894 break;
895 }
896
897 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
898 }
899
900 // 0 full ambient and engine sound
901 // 1 zero ambient and engine sound
902 override float OnSound(CarSoundCtrl ctrl, float oldValue)
903 {
904 switch (ctrl)
905 {
906 case CarSoundCtrl.DOORS:
907 float newValue = 0;
908 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
909 {
910 newValue += 0.25;
911 }
912
913 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
914 {
915 newValue += 0.25;
916 }
917
918 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
919 {
920 newValue += 0.25;
921 }
922
923 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
924 {
925 newValue += 0.25;
926 }
927
928 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
929 {
930 newValue -= 0.6;
931 }
932
933 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
934 {
935 newValue -= 0.6;
936 }
937
938 return Math.Clamp(newValue, 0, 1);
939 break;
940 }
941
942 return super.OnSound(ctrl, oldValue);
943 }
944
945 override string GetAnimSourceFromSelection(string selection)
946 {
947 switch (selection)
948 {
949 case "doors_driver":
950 return "DoorsDriver";
951 case "doors_codriver":
952 return "DoorsCoDriver";
953 case "doors_cargo1":
954 return "DoorsCargo1";
955 case "doors_cargo2":
956 return "DoorsCargo2";
957 case "doors_hood":
958 return "DoorsHood";
959 case "doors_trunk":
960 return "DoorsTrunk";
961 }
962
963 return "";
964 }
965
966 override bool IsVitalGlowPlug()
967 {
968 return false;
969 }
970
971 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
972 {
973 switch (currentSeat)
974 {
975 case 0:
976 return nextSeat == 1;
977
978 case 1:
979 return nextSeat == 0;
980
981 case 2:
982 return nextSeat == 3;
983
984 case 3:
985 return nextSeat == 2;
986 }
987
988 return false;
989 }
990
991 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
992 {
993 switch (pCurrentSeat)
994 {
995 case 0:
996 return pDoorsSelection == "DoorsDriver";
997
998 case 1:
999 return pDoorsSelection == "DoorsCoDriver";
1000
1001 case 2:
1002 return pDoorsSelection == "DoorsCargo1";
1003
1004 case 3:
1005 return pDoorsSelection == "DoorsCargo2";
1006 }
1007
1008 return false;
1009 }
1010
1011 override void OnDebugSpawn()
1012 {
1014 SpawnAdditionalItems();
1015 FillUpCarFluids();
1016
1017 GameInventory inventory = GetInventory();
1018 inventory.CreateInInventory("CivSedanWheel");
1019 inventory.CreateInInventory("CivSedanWheel");
1020 inventory.CreateInInventory("CivSedanWheel");
1021 inventory.CreateInInventory("CivSedanWheel");
1022
1023 inventory.CreateInInventory("CivSedanDoors_Driver");
1024 inventory.CreateInInventory("CivSedanDoors_CoDriver");
1025 inventory.CreateInInventory("CivSedanDoors_BackLeft");
1026 inventory.CreateInInventory("CivSedanDoors_BackRight");
1027 inventory.CreateInInventory("CivSedanHood");
1028 inventory.CreateInInventory("CivSedanTrunk");
1029
1030 //-----IN CAR CARGO
1031 inventory.CreateInInventory("CivSedanWheel");
1032 inventory.CreateInInventory("CivSedanWheel");
1033 }
1034
1035 override float GetPushForceCoefficientMultiplier()
1036 {
1037 return 1.5;
1038 }
1039}
1040
1041class CivilianSedan_Wine : CivilianSedan
1042{
1043 override void OnDebugSpawn()
1044 {
1046 SpawnAdditionalItems();
1047 FillUpCarFluids();
1048
1049 GameInventory inventory = GetInventory();
1050 inventory.CreateInInventory("CivSedanWheel");
1051 inventory.CreateInInventory("CivSedanWheel");
1052 inventory.CreateInInventory("CivSedanWheel");
1053 inventory.CreateInInventory("CivSedanWheel");
1054
1055 inventory.CreateInInventory("CivSedanDoors_Driver_Wine");
1056 inventory.CreateInInventory("CivSedanDoors_CoDriver_Wine");
1057 inventory.CreateInInventory("CivSedanDoors_BackLeft_Wine");
1058 inventory.CreateInInventory("CivSedanDoors_BackRight_Wine");
1059 inventory.CreateInInventory("CivSedanHood_Wine");
1060 inventory.CreateInInventory("CivSedanTrunk_Wine");
1061
1062 //-----IN CAR CARGO
1063 inventory.CreateInInventory("CivSedanWheel");
1064 inventory.CreateInInventory("CivSedanWheel");
1065 }
1066}
1067
1069{
1070 override void OnDebugSpawn()
1071 {
1073 SpawnAdditionalItems();
1074 FillUpCarFluids();
1075
1076 GameInventory inventory = GetInventory();
1077 inventory.CreateInInventory("CivSedanWheel");
1078 inventory.CreateInInventory("CivSedanWheel");
1079 inventory.CreateInInventory("CivSedanWheel");
1080 inventory.CreateInInventory("CivSedanWheel");
1081
1082 inventory.CreateInInventory("CivSedanDoors_Driver_Black");
1083 inventory.CreateInInventory("CivSedanDoors_CoDriver_Black");
1084 inventory.CreateInInventory("CivSedanDoors_BackLeft_Black");
1085 inventory.CreateInInventory("CivSedanDoors_BackRight_Black");
1086 inventory.CreateInInventory("CivSedanHood_Black");
1087 inventory.CreateInInventory("CivSedanTrunk_Black");
1088
1089 //-----IN CAR CARGO
1090 inventory.CreateInInventory("CivSedanWheel");
1091 inventory.CreateInInventory("CivSedanWheel");
1092 }
1093}
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
CivilianSedanLightProfileFront VehicleLightProfileFront CivilianSedanLightProfileRear()
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
void VehicleLightData(VehicleLightProfileBase profile)
Определения VehicleLightsComponent.c:21
override float GetPushForceCoefficientMultiplier()
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
override string GetAnimSourceFromSelection(string selection)
override int GetSeatAnimationType(int posIdx)
override float OnSound(CarSoundCtrl ctrl, float oldValue)
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
override void EOnPostSimulate(IEntity other, float timeSlice)
override void OnEngineStop()
void ~CivilianSedan()
void CivilianSedan()
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
override float GetTransportCameraDistance()
override void EEInit()
override bool CanReleaseAttachment(EntityAI attachment)
override bool CanDisplayCargo()
override EntityAI GetElectricitySourceDevice()
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()
override string GetElectricitySourceDeviceType()
override string GetDoorSelectionNameFromSeatPos(int posIdx)
override int GetCarDoorsState(string slotType)
CivilianSedan CarScript OnDebugSpawn()
override bool CanDisplayAttachmentCategory(string category_name)
static int SLOT_ID
Определения CarBattery.c:3
Определения CarBattery.c:2
Определения Truck_02.c:2
override void OnDebugSpawn()
override void OnDebugSpawn()
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
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
const int STATE_RUINED
Определения 3_Game/DayZ/constants.c:909
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.

Используется в Car::CanReceiveAttachment() и Car::CanReleaseAttachment().