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

◆ CanManipulateSpareWheel()

bool OnDebugSpawn::CanManipulateSpareWheel ( string slotSelectionName)
protected

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

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