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

◆ CanReleaseAttachment()

override bool OnDebugSpawn::CanReleaseAttachment ( EntityAI attachment)
protected

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

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