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

◆ CanReleaseAttachment()

override bool OnDebugSpawn::CanReleaseAttachment ( EntityAI attachment)
protected

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

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