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

◆ CanReleaseAttachment()

override bool OnDebugSpawn::CanReleaseAttachment ( EntityAI attachment)
protected

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

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