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

◆ CanDisplayAttachmentCategory()

override bool OnDebugSpawn::CanDisplayAttachmentCategory ( string category_name)
protected

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

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