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

◆ CanManipulateSpareWheel()

bool OnDebugSpawn::CanManipulateSpareWheel ( string slotSelectionName)
protected

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

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