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

◆ CanReleaseAttachment()

override bool OnDebugSpawn::CanReleaseAttachment ( EntityAI attachment)
protected

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

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