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

◆ CrewCanGetThrough()

override bool OnDebugSpawn::CrewCanGetThrough ( int posIdx)
protected

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

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