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

◆ CrewCanGetThrough()

override bool OnDebugSpawn::CrewCanGetThrough ( int posIdx)
protected

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

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