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

◆ CanDisplayAttachmentCategory()

override bool OnDebugSpawn::CanDisplayAttachmentCategory ( string category_name)
protected

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

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