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

◆ CanReleaseAttachment()

override bool OnDebugSpawn::CanReleaseAttachment ( EntityAI attachment)
protected

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

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