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

◆ CanManipulateSpareWheel()

bool OnDebugSpawn::CanManipulateSpareWheel ( string slotSelectionName)
protected

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

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