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

◆ CanReleaseAttachment()

override bool OnDebugSpawn::CanReleaseAttachment ( EntityAI attachment)
protected

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

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