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

◆ CanReleaseAttachment()

override bool OnDebugSpawn::CanReleaseAttachment ( EntityAI attachment)
protected

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

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