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

◆ CanReleaseAttachment()

override bool OnDebugSpawn::CanReleaseAttachment ( EntityAI attachment)
protected

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

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