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

◆ CanManipulateSpareWheel()

bool OnDebugSpawn::CanManipulateSpareWheel ( string slotSelectionName)
protected

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

577{
581
582 void Sedan_02()
583 {
584 m_dmgContactCoef = 0.0790;
585
586 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
587 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
588 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
589 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
590 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
591 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
592
593 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
594 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
595
596 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
597 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
598
599 SetEnginePos("0 0.7 -1.7");
600 }
601
602 override void EEInit()
603 {
604 super.EEInit();
605
606 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
607 {
609 m_UTSSettings.m_ManualUpdate = true;
611 m_UTSSettings.m_TemperatureCap = 0;
612 m_UTSSettings.m_RangeFull = 0.5;
613 m_UTSSettings.m_RangeMax = 2;
614
617 }
618 }
619
620 override void OnEngineStart()
621 {
622 super.OnEngineStart();
623
624 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
625 {
626 m_UTSource.SetDefferedActive(true, 20.0);
627 }
628 }
629
630 override void OnEngineStop()
631 {
632 super.OnEngineStop();
633
634 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
635 {
636 m_UTSource.SetDefferedActive(false, 10.0);
637 }
638 }
639
640 override void EOnPostSimulate(IEntity other, float timeSlice)
641 {
642 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
643 {
644 if (m_UTSource.IsActive())
645 {
647 }
648 }
649 }
650
651 override int GetAnimInstance()
652 {
653 return VehicleAnimInstances.S120;
654 }
655
656 override int GetSeatAnimationType(int posIdx)
657 {
658 switch (posIdx)
659 {
660 case 0:
661 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
662 case 1:
663 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
664 case 2:
665 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
666 case 3:
667 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
668 }
669
670 return 0;
671 }
672
673 // Override for car-specific light type
675 {
676 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02FrontLight));
677 }
678
679 // Override for car-specific light type
681 {
682 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02RearLight));
683 }
684
685 override bool CanReleaseAttachment( EntityAI attachment )
686 {
687 if (!super.CanReleaseAttachment(attachment))
688 {
689 return false;
690 }
691
692 string attType = attachment.GetType();
693 switch (attType)
694 {
695 case "CarBattery":
696 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
697 {
698 return false;
699 }
700 break;
701
702 case "SparkPlug":
703 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
704 {
705 return false;
706 }
707 break;
708
709 case "CarRadiator":
710 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
711 {
712 return false;
713 }
714 break;
715 }
716
717 return true;
718 }
719
720 override protected bool CanManipulateSpareWheel(string slotSelectionName)
721 {
722 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
723 }
724
725 override bool CanDisplayAttachmentCategory(string category_name)
726 {
727 if ( !super.CanDisplayAttachmentCategory(category_name))
728 {
729 return false;
730 }
731
732 category_name.ToLower();
733 if (category_name.Contains("engine"))
734 {
735 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
736 {
737 return false;
738 }
739 }
740
741 if (category_name.Contains("trunk"))
742 {
743 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
744 {
745 return false;
746 }
747 }
748
749 return true;
750 }
751
752 override bool CanDisplayCargo()
753 {
754 if ( !super.CanDisplayCargo() )
755 return false;
756
757 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
758 return false;
759
760 return true;
761 }
762
763 override int GetCarDoorsState(string slotType)
764 {
765 CarDoor carDoor;
766
767 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
768 if (!carDoor)
769 {
770 return CarDoorState.DOORS_MISSING;
771 }
772
773 switch (slotType)
774 {
775 case "Sedan_02_Door_1_1":
776 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
777
778 case "Sedan_02_Door_2_1":
779 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
780
781 case "Sedan_02_Door_1_2":
782 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
783
784 case "Sedan_02_Door_2_2":
785 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
786
787 case "Sedan_02_Hood":
788 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
789
790 case "Sedan_02_Trunk":
791 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
792 }
793
794 return CarDoorState.DOORS_MISSING;
795 }
796
797
798 override bool CrewCanGetThrough( int posIdx )
799 {
800 switch( posIdx )
801 {
802 case 0:
803 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
804 return false;
805
806 return true;
807 break;
808
809 case 1:
810 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
811 return false;
812
813 return true;
814 break;
815
816 case 2:
817 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
818 return false;
819
820 return true;
821 break;
822
823 case 3:
824 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
825 return false;
826
827 return true;
828 break;
829 }
830
831 return false;
832 }
833
834 override string GetDoorSelectionNameFromSeatPos(int posIdx)
835 {
836 switch( posIdx )
837 {
838 case 0:
839 return "doors_driver";
840 break;
841 case 1:
842 return "doors_codriver";
843 break;
844 case 2:
845 return "doors_cargo1";
846 break;
847 case 3:
848 return "doors_cargo2";
849 break;
850 }
851
852 return super.GetDoorSelectionNameFromSeatPos(posIdx);
853 }
854
855 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
856 {
857 switch( posIdx )
858 {
859 case 0:
860 return "Sedan_02_Door_1_1";
861 break;
862 case 1:
863 return "Sedan_02_Door_2_1";
864 break;
865 case 2:
866 return "Sedan_02_Door_1_2";
867 break;
868 case 3:
869 return "Sedan_02_Door_2_2";
870 break;
871 }
872
873 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
874 }
875
876 override float OnSound(CarSoundCtrl ctrl, float oldValue)
877 {
878 switch ( ctrl )
879 {
880 case CarSoundCtrl.DOORS:
881 float newValue = 0;
882 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
883 {
884 newValue += 0.25;
885 }
886
887 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
888 {
889 newValue += 0.25;
890 }
891
892 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
893 {
894 newValue += 0.25;
895 }
896
897 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
898 {
899 newValue += 0.25;
900 }
901
902 return Math.Clamp(newValue, 0, 1);
903 break;
904 }
905
906 return super.OnSound(ctrl, oldValue);
907 }
908
909 override string GetAnimSourceFromSelection( string selection )
910 {
911 switch( selection )
912 {
913 case "doors_driver":
914 return "DoorsDriver";
915 case "doors_codriver":
916 return "DoorsCoDriver";
917 case "doors_cargo1":
918 return "DoorsCargo1";
919 case "doors_cargo2":
920 return "DoorsCargo2";
921 case "doors_hood":
922 return "DoorsHood";
923 case "doors_trunk":
924 return "DoorsTrunk";
925 }
926
927 return "";
928 }
929
930
931 override bool IsVitalTruckBattery()
932 {
933 return false;
934 }
935
936 override bool IsVitalGlowPlug()
937 {
938 return false;
939 }
940
941 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
942 {
943 switch (currentSeat)
944 {
945 case 0:
946 return nextSeat == 1;
947
948 case 1:
949 return nextSeat == 0;
950
951 case 2:
952 return nextSeat == 3;
953
954 case 3:
955 return nextSeat == 2;
956 }
957
958 return false;
959 }
960
961 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
962 {
963 switch (pCurrentSeat)
964 {
965 case 0:
966 return pDoorsSelection == "DoorsDriver";
967
968 case 1:
969 return pDoorsSelection == "DoorsCoDriver";
970
971 case 2:
972 return pDoorsSelection == "DoorsCargo1";
973
974 case 3:
975 return pDoorsSelection == "DoorsCargo2";
976 }
977
978 return false;
979 }
980
981 override void OnDebugSpawn()
982 {
983 SpawnUniversalParts();
984 SpawnAdditionalItems();
985 FillUpCarFluids();
986
987 GetInventory().CreateInInventory("Sedan_02_Wheel");
988 GetInventory().CreateInInventory("Sedan_02_Wheel");
989 GetInventory().CreateInInventory("Sedan_02_Wheel");
990 GetInventory().CreateInInventory("Sedan_02_Wheel");
991 GetInventory().CreateInInventory("Sedan_02_Wheel");
992
993 GetInventory().CreateInInventory("Sedan_02_Door_1_1");
994 GetInventory().CreateInInventory("Sedan_02_Door_1_2");
995 GetInventory().CreateInInventory("Sedan_02_Door_2_1");
996 GetInventory().CreateInInventory("Sedan_02_Door_2_2");
997 GetInventory().CreateInInventory("Sedan_02_Hood");
998 GetInventory().CreateInInventory("Sedan_02_Trunk");
999
1000 //-----IN CAR CARGO
1001 GetInventory().CreateInInventory("Sedan_02_Wheel");
1002 GetInventory().CreateInInventory("Sedan_02_Wheel");
1003 }
1004}
1005
1006class Sedan_02_Red extends Sedan_02
1007{
1008 override void OnDebugSpawn()
1009 {
1010 SpawnUniversalParts();
1011 SpawnAdditionalItems();
1012 FillUpCarFluids();
1013
1014 GetInventory().CreateInInventory("Sedan_02_Wheel");
1015 GetInventory().CreateInInventory("Sedan_02_Wheel");
1016 GetInventory().CreateInInventory("Sedan_02_Wheel");
1017 GetInventory().CreateInInventory("Sedan_02_Wheel");
1018
1019 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Red");
1020 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Red");
1021 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Red");
1022 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Red");
1023 GetInventory().CreateInInventory("Sedan_02_Hood_Red");
1024 GetInventory().CreateInInventory("Sedan_02_Trunk_Red");
1025
1026 //-----IN CAR CARGO
1027 GetInventory().CreateInInventory("Sedan_02_Wheel");
1028 GetInventory().CreateInInventory("Sedan_02_Wheel");
1029 }
1030}
1031
1032class Sedan_02_Grey extends Sedan_02
1033{
1034 override void OnDebugSpawn()
1035 {
1036 SpawnUniversalParts();
1037 SpawnAdditionalItems();
1038 FillUpCarFluids();
1039
1040 GetInventory().CreateInInventory("Sedan_02_Wheel");
1041 GetInventory().CreateInInventory("Sedan_02_Wheel");
1042 GetInventory().CreateInInventory("Sedan_02_Wheel");
1043 GetInventory().CreateInInventory("Sedan_02_Wheel");
1044
1045 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Grey");
1046 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Grey");
1047 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Grey");
1048 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Grey");
1049 GetInventory().CreateInInventory("Sedan_02_Hood_Grey");
1050 GetInventory().CreateInInventory("Sedan_02_Trunk_Grey");
1051
1052 //-----IN CAR CARGO
1053 GetInventory().CreateInInventory("Sedan_02_Wheel");
1054 GetInventory().CreateInInventory("Sedan_02_Wheel");
1055 }
1056}
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
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Sedan_02.c:797
class Sedan_02 extends CarScript OnDebugSpawn()
Определения Sedan_02.c:433
override string GetAnimSourceFromSelection(string selection)
Определения Sedan_02.c:765
override int GetSeatAnimationType(int posIdx)
Определения Sedan_02.c:512
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Sedan_02.c:732
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Sedan_02.c:711
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Sedan_02.c:496
override void OnEngineStop()
Определения Sedan_02.c:486
override void EEInit()
Определения Sedan_02.c:458
override bool CanReleaseAttachment(EntityAI attachment)
Определения Sedan_02.c:541
override bool CanDisplayCargo()
Определения Sedan_02.c:608
override void OnEngineStart()
Определения Sedan_02.c:476
override CarLightBase CreateFrontLight()
Определения Sedan_02.c:530
override int GetAnimInstance()
Определения Sedan_02.c:507
override bool CrewCanGetThrough(int posIdx)
Определения Sedan_02.c:654
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Sedan_02.c:817
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Sedan_02.c:576
override bool IsVitalGlowPlug()
Определения Sedan_02.c:792
void Sedan_02()
Определения Sedan_02.c:438
override CarRearLightBase CreateRearLight()
Определения Sedan_02.c:536
override bool IsVitalTruckBattery()
Определения Sedan_02.c:787
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Sedan_02.c:690
override int GetCarDoorsState(string slotType)
Определения Sedan_02.c:619
override bool CanDisplayAttachmentCategory(string category_name)
Определения Sedan_02.c:581
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения EnEntity.c:165
Определения EnMath.c:7
override void OnDebugSpawn()
Определения Sedan_02.c:459
Определения Sedan_02.c:458
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.