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

◆ CanReleaseAttachment()

override bool OnDebugSpawn::CanReleaseAttachment ( EntityAI attachment)
protected

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

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