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

◆ CanManipulateSpareWheel()

bool OnDebugSpawn::CanManipulateSpareWheel ( string slotSelectionName)
protected

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

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