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

◆ CanReleaseAttachment()

override bool OnDebugSpawn::CanReleaseAttachment ( EntityAI attachment)
protected

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

542{
546
547 void Sedan_02()
548 {
549 m_dmgContactCoef = 0.0790;
550
551 m_EngineStartOK = "Sedan_02_engine_start_SoundSet";
552 m_EngineStartBattery = "Sedan_02_engine_failed_start_battery_SoundSet";
553 m_EngineStartPlug = "Sedan_02_engine_failed_start_sparkplugs_SoundSet";
554 m_EngineStartFuel = "Sedan_02_engine_failed_start_fuel_SoundSet";
555 m_EngineStop = "Sedan_02_engine_stop_SoundSet";
556 m_EngineStopFuel = "Sedan_02_engine_stop_fuel_SoundSet";
557
558 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
559 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
560
561 m_CarHornShortSoundName = "Sedan_02_Horn_Short_SoundSet";
562 m_CarHornLongSoundName = "Sedan_02_Horn_SoundSet";
563
564 SetEnginePos("0 0.7 -1.7");
565 }
566
567 override void EEInit()
568 {
569 super.EEInit();
570
571 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
572 {
574 m_UTSSettings.m_ManualUpdate = true;
576 m_UTSSettings.m_TemperatureCap = 0;
577 m_UTSSettings.m_RangeFull = 0.5;
578 m_UTSSettings.m_RangeMax = 2;
579
582 }
583 }
584
585 override void OnEngineStart()
586 {
587 super.OnEngineStart();
588
589 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
590 {
591 m_UTSource.SetDefferedActive(true, 20.0);
592 }
593 }
594
595 override void OnEngineStop()
596 {
597 super.OnEngineStop();
598
599 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
600 {
601 m_UTSource.SetDefferedActive(false, 10.0);
602 }
603 }
604
605 override void EOnPostSimulate(IEntity other, float timeSlice)
606 {
607 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
608 {
609 if (m_UTSource.IsActive())
610 {
612 }
613 }
614 }
615
616 override int GetAnimInstance()
617 {
618 return VehicleAnimInstances.S120;
619 }
620
621 override int GetSeatAnimationType(int posIdx)
622 {
623 switch (posIdx)
624 {
625 case 0:
626 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
627 case 1:
628 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
629 case 2:
630 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
631 case 3:
632 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
633 }
634
635 return 0;
636 }
637
638 // Override for car-specific light type
640 {
641 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02FrontLight));
642 }
643
644 // Override for car-specific light type
646 {
647 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Sedan_02RearLight));
648 }
649
650 override bool CanReleaseAttachment( EntityAI attachment )
651 {
652 if (!super.CanReleaseAttachment(attachment))
653 {
654 return false;
655 }
656
657 string attType = attachment.GetType();
658 switch (attType)
659 {
660 case "CarBattery":
661 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
662 {
663 return false;
664 }
665 break;
666
667 case "SparkPlug":
668 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED || EngineIsOn())
669 {
670 return false;
671 }
672 break;
673
674 case "CarRadiator":
675 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED || EngineIsOn())
676 {
677 return false;
678 }
679 break;
680 }
681
682 return true;
683 }
684
685 override protected bool CanManipulateSpareWheel(string slotSelectionName)
686 {
687 return GetCarDoorsState("Sedan_02_Hood") != CarDoorState.DOORS_CLOSED;
688 }
689
690 override bool CanDisplayAttachmentCategory(string category_name)
691 {
692 if ( !super.CanDisplayAttachmentCategory(category_name))
693 {
694 return false;
695 }
696
697 category_name.ToLower();
698 if (category_name.Contains("engine"))
699 {
700 if (GetCarDoorsState("Sedan_02_Trunk") == CarDoorState.DOORS_CLOSED)
701 {
702 return false;
703 }
704 }
705
706 if (category_name.Contains("trunk"))
707 {
708 if (GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED)
709 {
710 return false;
711 }
712 }
713
714 return true;
715 }
716
717 override bool CanDisplayCargo()
718 {
719 if ( !super.CanDisplayCargo() )
720 return false;
721
722 if ( GetCarDoorsState("Sedan_02_Hood") == CarDoorState.DOORS_CLOSED )
723 return false;
724
725 return true;
726 }
727
728 override int GetCarDoorsState(string slotType)
729 {
730 CarDoor carDoor;
731
732 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
733 if (!carDoor)
734 {
735 return CarDoorState.DOORS_MISSING;
736 }
737
738 switch (slotType)
739 {
740 case "Sedan_02_Door_1_1":
741 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
742
743 case "Sedan_02_Door_2_1":
744 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
745
746 case "Sedan_02_Door_1_2":
747 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
748
749 case "Sedan_02_Door_2_2":
750 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
751
752 case "Sedan_02_Hood":
753 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
754
755 case "Sedan_02_Trunk":
756 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
757 }
758
759 return CarDoorState.DOORS_MISSING;
760 }
761
762
763 override bool CrewCanGetThrough( int posIdx )
764 {
765 switch( posIdx )
766 {
767 case 0:
768 if ( GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED )
769 return false;
770
771 return true;
772 break;
773
774 case 1:
775 if ( GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED )
776 return false;
777
778 return true;
779 break;
780
781 case 2:
782 if ( GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED )
783 return false;
784
785 return true;
786 break;
787
788 case 3:
789 if ( GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED )
790 return false;
791
792 return true;
793 break;
794 }
795
796 return false;
797 }
798
799 override string GetDoorSelectionNameFromSeatPos(int posIdx)
800 {
801 switch( posIdx )
802 {
803 case 0:
804 return "doors_driver";
805 break;
806 case 1:
807 return "doors_codriver";
808 break;
809 case 2:
810 return "doors_cargo1";
811 break;
812 case 3:
813 return "doors_cargo2";
814 break;
815 }
816
817 return super.GetDoorSelectionNameFromSeatPos(posIdx);
818 }
819
820 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
821 {
822 switch( posIdx )
823 {
824 case 0:
825 return "Sedan_02_Door_1_1";
826 break;
827 case 1:
828 return "Sedan_02_Door_2_1";
829 break;
830 case 2:
831 return "Sedan_02_Door_1_2";
832 break;
833 case 3:
834 return "Sedan_02_Door_2_2";
835 break;
836 }
837
838 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
839 }
840
841 override float OnSound(CarSoundCtrl ctrl, float oldValue)
842 {
843 switch ( ctrl )
844 {
845 case CarSoundCtrl.DOORS:
846 float newValue = 0;
847 if (GetCarDoorsState("Sedan_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
848 {
849 newValue += 0.25;
850 }
851
852 if (GetCarDoorsState("Sedan_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
853 {
854 newValue += 0.25;
855 }
856
857 if (GetCarDoorsState("Sedan_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
858 {
859 newValue += 0.25;
860 }
861
862 if (GetCarDoorsState("Sedan_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
863 {
864 newValue += 0.25;
865 }
866
867 return Math.Clamp(newValue, 0, 1);
868 break;
869 }
870
871 return super.OnSound(ctrl, oldValue);
872 }
873
874 override string GetAnimSourceFromSelection( string selection )
875 {
876 switch( selection )
877 {
878 case "doors_driver":
879 return "DoorsDriver";
880 case "doors_codriver":
881 return "DoorsCoDriver";
882 case "doors_cargo1":
883 return "DoorsCargo1";
884 case "doors_cargo2":
885 return "DoorsCargo2";
886 case "doors_hood":
887 return "DoorsHood";
888 case "doors_trunk":
889 return "DoorsTrunk";
890 }
891
892 return "";
893 }
894
895
896 override bool IsVitalTruckBattery()
897 {
898 return false;
899 }
900
901 override bool IsVitalGlowPlug()
902 {
903 return false;
904 }
905
906 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
907 {
908 switch (currentSeat)
909 {
910 case 0:
911 return nextSeat == 1;
912
913 case 1:
914 return nextSeat == 0;
915
916 case 2:
917 return nextSeat == 3;
918
919 case 3:
920 return nextSeat == 2;
921 }
922
923 return false;
924 }
925
926 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
927 {
928 switch (pCurrentSeat)
929 {
930 case 0:
931 return pDoorsSelection == "DoorsDriver";
932
933 case 1:
934 return pDoorsSelection == "DoorsCoDriver";
935
936 case 2:
937 return pDoorsSelection == "DoorsCargo1";
938
939 case 3:
940 return pDoorsSelection == "DoorsCargo2";
941 }
942
943 return false;
944 }
945
946 override void OnDebugSpawn()
947 {
948 SpawnUniversalParts();
949 SpawnAdditionalItems();
950 FillUpCarFluids();
951
952 GetInventory().CreateInInventory("Sedan_02_Wheel");
953 GetInventory().CreateInInventory("Sedan_02_Wheel");
954 GetInventory().CreateInInventory("Sedan_02_Wheel");
955 GetInventory().CreateInInventory("Sedan_02_Wheel");
956 GetInventory().CreateInInventory("Sedan_02_Wheel");
957
958 GetInventory().CreateInInventory("Sedan_02_Door_1_1");
959 GetInventory().CreateInInventory("Sedan_02_Door_1_2");
960 GetInventory().CreateInInventory("Sedan_02_Door_2_1");
961 GetInventory().CreateInInventory("Sedan_02_Door_2_2");
962 GetInventory().CreateInInventory("Sedan_02_Hood");
963 GetInventory().CreateInInventory("Sedan_02_Trunk");
964
965 //-----IN CAR CARGO
966 GetInventory().CreateInInventory("Sedan_02_Wheel");
967 GetInventory().CreateInInventory("Sedan_02_Wheel");
968 }
969}
970
971class Sedan_02_Red extends Sedan_02
972{
973 override void OnDebugSpawn()
974 {
975 SpawnUniversalParts();
976 SpawnAdditionalItems();
977 FillUpCarFluids();
978
979 GetInventory().CreateInInventory("Sedan_02_Wheel");
980 GetInventory().CreateInInventory("Sedan_02_Wheel");
981 GetInventory().CreateInInventory("Sedan_02_Wheel");
982 GetInventory().CreateInInventory("Sedan_02_Wheel");
983
984 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Red");
985 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Red");
986 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Red");
987 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Red");
988 GetInventory().CreateInInventory("Sedan_02_Hood_Red");
989 GetInventory().CreateInInventory("Sedan_02_Trunk_Red");
990
991 //-----IN CAR CARGO
992 GetInventory().CreateInInventory("Sedan_02_Wheel");
993 GetInventory().CreateInInventory("Sedan_02_Wheel");
994 }
995}
996
997class Sedan_02_Grey extends Sedan_02
998{
999 override void OnDebugSpawn()
1000 {
1001 SpawnUniversalParts();
1002 SpawnAdditionalItems();
1003 FillUpCarFluids();
1004
1005 GetInventory().CreateInInventory("Sedan_02_Wheel");
1006 GetInventory().CreateInInventory("Sedan_02_Wheel");
1007 GetInventory().CreateInInventory("Sedan_02_Wheel");
1008 GetInventory().CreateInInventory("Sedan_02_Wheel");
1009
1010 GetInventory().CreateInInventory("Sedan_02_Door_1_1_Grey");
1011 GetInventory().CreateInInventory("Sedan_02_Door_1_2_Grey");
1012 GetInventory().CreateInInventory("Sedan_02_Door_2_1_Grey");
1013 GetInventory().CreateInInventory("Sedan_02_Door_2_2_Grey");
1014 GetInventory().CreateInInventory("Sedan_02_Hood_Grey");
1015 GetInventory().CreateInInventory("Sedan_02_Trunk_Grey");
1016
1017 //-----IN CAR CARGO
1018 GetInventory().CreateInInventory("Sedan_02_Wheel");
1019 GetInventory().CreateInInventory("Sedan_02_Wheel");
1020 }
1021}
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
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Sedan_02.c:797
class Sedan_02 extends CarScript OnDebugSpawn()
Определения Sedan_02.c:433
override string GetAnimSourceFromSelection(string selection)
Определения Sedan_02.c:765
override int GetSeatAnimationType(int posIdx)
Определения Sedan_02.c:512
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Sedan_02.c:732
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Sedan_02.c:711
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Sedan_02.c:496
override void OnEngineStop()
Определения Sedan_02.c:486
override void EEInit()
Определения Sedan_02.c:458
override bool CanReleaseAttachment(EntityAI attachment)
Определения Sedan_02.c:541
override bool CanDisplayCargo()
Определения Sedan_02.c:608
override void OnEngineStart()
Определения Sedan_02.c:476
override CarLightBase CreateFrontLight()
Определения Sedan_02.c:530
override int GetAnimInstance()
Определения Sedan_02.c:507
override bool CrewCanGetThrough(int posIdx)
Определения Sedan_02.c:654
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Sedan_02.c:817
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Sedan_02.c:576
override bool IsVitalGlowPlug()
Определения Sedan_02.c:792
void Sedan_02()
Определения Sedan_02.c:438
override CarRearLightBase CreateRearLight()
Определения Sedan_02.c:536
override bool IsVitalTruckBattery()
Определения Sedan_02.c:787
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Sedan_02.c:690
override int GetCarDoorsState(string slotType)
Определения Sedan_02.c:619
override bool CanDisplayAttachmentCategory(string category_name)
Определения Sedan_02.c:581
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения EnEntity.c:165
Определения EnMath.c:7
override void OnDebugSpawn()
Определения Sedan_02.c:459
Определения Sedan_02.c:458
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.