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

◆ CanManipulateSpareWheel()

bool OnDebugSpawn::CanManipulateSpareWheel ( string slotSelectionName)
protected

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

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