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

◆ CanReleaseAttachment()

override bool OnDebugSpawn::CanReleaseAttachment ( EntityAI attachment)
protected

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

511{
515
516 void Hatchback_02()
517 {
518 //m_dmgContactCoef = 0.070;
519
520 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
521 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
522 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
523 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
524 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
525
526 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
527 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
528
529 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
530 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
531
532 SetEnginePos("0 0.7 1.4");
533 }
534
535 override void EEInit()
536 {
537 super.EEInit();
538
539 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
540 {
542 m_UTSSettings.m_ManualUpdate = true;
544 m_UTSSettings.m_TemperatureCap = 0;
545 m_UTSSettings.m_RangeFull = 0.5;
546 m_UTSSettings.m_RangeMax = 2;
547
550 }
551 }
552
553 override void OnEngineStart()
554 {
555 super.OnEngineStart();
556
557 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
558 {
559 m_UTSource.SetDefferedActive(true, 20.0);
560 }
561 }
562
563 override void OnEngineStop()
564 {
565 super.OnEngineStop();
566
567 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
568 {
569 m_UTSource.SetDefferedActive(false, 10.0);
570 }
571 }
572
573 override void EOnPostSimulate(IEntity other, float timeSlice)
574 {
575 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
576 {
577 if (m_UTSource.IsActive())
578 {
580 }
581 }
582 }
583
584 override int GetAnimInstance()
585 {
586 return VehicleAnimInstances.GOLF;
587 }
588
589 override int GetSeatAnimationType(int posIdx)
590 {
591 switch (posIdx)
592 {
593 case 0:
594 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
595 case 1:
596 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
597 case 2:
598 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
599 case 3:
600 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
601 }
602
603 return 0;
604 }
605
606 // Override for car-specific light type
608 {
609 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02RearLight));
610 }
611
612 // Override for car-specific light type
614 {
615 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02FrontLight));
616 }
617
618 override bool CanReleaseAttachment(EntityAI attachment)
619 {
620 if (!super.CanReleaseAttachment(attachment))
621 {
622 return false;
623 }
624
625 if (EngineIsOn() || GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED)
626 {
627 string attType = attachment.GetType();
628 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
629 {
630 return false;
631 }
632 }
633
634 return true;
635 }
636
637 override protected bool CanManipulateSpareWheel(string slotSelectionName)
638 {
639 return GetCarDoorsState("Hatchback_02_Trunk") != CarDoorState.DOORS_CLOSED;
640 }
641
642 override bool CanDisplayAttachmentCategory( string category_name )
643 {
644 //super
645 if ( !super.CanDisplayAttachmentCategory( category_name ) )
646 return false;
647 //
648
649 category_name.ToLower();
650 if ( category_name.Contains("engine") )
651 {
652 if ( GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED )
653 return false;
654 }
655
656 return true;
657 }
658
659 override bool CanDisplayCargo()
660 {
661 if ( !super.CanDisplayCargo() )
662 return false;
663
664 if ( GetCarDoorsState("Hatchback_02_Trunk") == CarDoorState.DOORS_CLOSED )
665 return false;
666
667 return true;
668 }
669
670 override int GetCarDoorsState(string slotType)
671 {
672 CarDoor carDoor;
673
674 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
675 if (!carDoor)
676 {
677 return CarDoorState.DOORS_MISSING;
678 }
679
680 switch (slotType)
681 {
682 case "Hatchback_02_Door_1_1":
683 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
684
685 case "Hatchback_02_Door_2_1":
686 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
687
688 case "Hatchback_02_Door_1_2":
689 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
690
691 case "Hatchback_02_Door_2_2":
692 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
693
694 case "Hatchback_02_Hood":
695 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
696
697 case "Hatchback_02_Trunk":
698 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
699 }
700
701 return CarDoorState.DOORS_MISSING;
702 }
703
704
705 override bool CrewCanGetThrough(int posIdx)
706 {
707 switch (posIdx)
708 {
709 case 0:
710 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
711 {
712 return false;
713 }
714
715 return true;
716
717 case 1:
718 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
719 {
720 return false;
721 }
722
723 return true;
724
725 case 2:
726 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
727 {
728 return false;
729 }
730
731 return true;
732
733 case 3:
734 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
735 {
736 return false;
737 }
738
739 return true;
740 }
741
742 return false;
743 }
744
745 override string GetDoorSelectionNameFromSeatPos(int posIdx)
746 {
747 switch( posIdx )
748 {
749 case 0:
750 return "doors_driver";
751 break;
752 case 1:
753 return "doors_codriver";
754 break;
755 case 2:
756 return "doors_cargo1";
757 break;
758 case 3:
759 return "doors_cargo2";
760 break;
761 }
762
763 return super.GetDoorSelectionNameFromSeatPos(posIdx);
764 }
765
766 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
767 {
768 switch( posIdx )
769 {
770 case 0:
771 return "Hatchback_02_Door_1_1";
772 break;
773 case 1:
774 return "Hatchback_02_Door_2_1";
775 break;
776 case 2:
777 return "Hatchback_02_Door_1_2";
778 break;
779 case 3:
780 return "Hatchback_02_Door_2_2";
781 break;
782 }
783
784 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
785 }
786
787 override float OnSound(CarSoundCtrl ctrl, float oldValue)
788 {
789 switch (ctrl)
790 {
791 case CarSoundCtrl.DOORS:
792 float newValue = 0;
793 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
794 {
795 newValue += 0.25;
796 }
797
798 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
799 {
800 newValue += 0.25;
801 }
802
803 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
804 {
805 newValue += 0.25;
806 }
807
808 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
809 {
810 newValue += 0.25;
811 }
812
813 return Math.Clamp(newValue, 0, 1);
814 break;
815 }
816
817 return super.OnSound(ctrl, oldValue);
818 }
819
820 override string GetAnimSourceFromSelection( string selection )
821 {
822 switch( selection )
823 {
824 case "doors_driver":
825 return "DoorsDriver";
826 case "doors_codriver":
827 return "DoorsCoDriver";
828 case "doors_cargo1":
829 return "DoorsCargo1";
830 case "doors_cargo2":
831 return "DoorsCargo2";
832 case "doors_hood":
833 return "DoorsHood";
834 case "doors_trunk":
835 return "DoorsTrunk";
836 }
837
838 return "";
839 }
840
841
842 override bool IsVitalTruckBattery()
843 {
844 return false;
845 }
846
847 override bool IsVitalGlowPlug()
848 {
849 return false;
850 }
851
852 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
853 {
854 switch (currentSeat)
855 {
856 case 0:
857 return nextSeat == 1;
858 case 1:
859 return nextSeat == 0;
860 case 2:
861 return nextSeat == 3;
862 case 3:
863 return nextSeat == 2;
864 }
865
866 return false;
867 }
868
869 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
870 {
871 switch (pCurrentSeat)
872 {
873 case 0:
874 return pDoorsSelection == "DoorsDriver";
875 case 1:
876 return pDoorsSelection == "DoorsCoDriver";
877 case 2:
878 return pDoorsSelection == "DoorsCargo1";
879 case 3:
880 return pDoorsSelection == "DoorsCargo2";
881 }
882
883 return false;
884 }
885
886 override void OnDebugSpawn()
887 {
891
892 GetInventory().CreateInInventory("Hatchback_02_Wheel");
893 GetInventory().CreateInInventory("Hatchback_02_Wheel");
894 GetInventory().CreateInInventory("Hatchback_02_Wheel");
895 GetInventory().CreateInInventory("Hatchback_02_Wheel");
896
897 GetInventory().CreateInInventory("Hatchback_02_Door_1_1");
898 GetInventory().CreateInInventory("Hatchback_02_Door_1_2");
899 GetInventory().CreateInInventory("Hatchback_02_Door_2_1");
900 GetInventory().CreateInInventory("Hatchback_02_Door_2_2");
901 GetInventory().CreateInInventory("Hatchback_02_Hood");
902 GetInventory().CreateInInventory("Hatchback_02_Trunk");
903
904 //-----IN CAR CARGO
905 GetInventory().CreateInInventory("Hatchback_02_Wheel");
906 GetInventory().CreateInInventory("Hatchback_02_Wheel");
907 }
908}
909
910class Hatchback_02_Black extends Hatchback_02
911{
912 override void OnDebugSpawn()
913 {
917
918 GetInventory().CreateInInventory("Hatchback_02_Wheel");
919 GetInventory().CreateInInventory("Hatchback_02_Wheel");
920 GetInventory().CreateInInventory("Hatchback_02_Wheel");
921 GetInventory().CreateInInventory("Hatchback_02_Wheel");
922
923 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Black");
924 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Black");
925 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Black");
926 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Black");
927 GetInventory().CreateInInventory("Hatchback_02_Hood_Black");
928 GetInventory().CreateInInventory("Hatchback_02_Trunk_Black");
929
930 //-----IN CAR CARGO
931 GetInventory().CreateInInventory("Hatchback_02_Wheel");
932 GetInventory().CreateInInventory("Hatchback_02_Wheel");
933 }
934};
935
936class Hatchback_02_Blue extends Hatchback_02
937{
938 override void OnDebugSpawn()
939 {
943
944 GetInventory().CreateInInventory("Hatchback_02_Wheel");
945 GetInventory().CreateInInventory("Hatchback_02_Wheel");
946 GetInventory().CreateInInventory("Hatchback_02_Wheel");
947 GetInventory().CreateInInventory("Hatchback_02_Wheel");
948
949 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Blue");
950 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Blue");
951 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Blue");
952 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Blue");
953 GetInventory().CreateInInventory("Hatchback_02_Hood_Blue");
954 GetInventory().CreateInInventory("Hatchback_02_Trunk_Blue");
955
956 //-----IN CAR CARGO
957 GetInventory().CreateInInventory("Hatchback_02_Wheel");
958 GetInventory().CreateInInventory("Hatchback_02_Wheel");
959 }
960}
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
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:432
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:220
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:219
class Hatchback_02_Blue extends Hatchback_02 OnDebugSpawn
Определения Hatchback_02.c:403
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Hatchback_02.c:744
override string GetAnimSourceFromSelection(string selection)
Определения Hatchback_02.c:712
override int GetSeatAnimationType(int posIdx)
Определения Hatchback_02.c:481
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Hatchback_02.c:679
void Hatchback_02()
Определения Hatchback_02.c:408
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:658
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Hatchback_02.c:465
override void OnEngineStop()
Определения Hatchback_02.c:455
override void EEInit()
Определения Hatchback_02.c:427
override bool CanReleaseAttachment(EntityAI attachment)
Определения Hatchback_02.c:510
override bool CanDisplayCargo()
Определения Hatchback_02.c:551
override void OnEngineStart()
Определения Hatchback_02.c:445
override CarLightBase CreateFrontLight()
Определения Hatchback_02.c:505
override int GetAnimInstance()
Определения Hatchback_02.c:476
override bool CrewCanGetThrough(int posIdx)
Определения Hatchback_02.c:597
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Hatchback_02.c:761
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Hatchback_02.c:529
override bool IsVitalGlowPlug()
Определения Hatchback_02.c:739
override CarRearLightBase CreateRearLight()
Определения Hatchback_02.c:499
override bool IsVitalTruckBattery()
Определения Hatchback_02.c:734
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:637
override int GetCarDoorsState(string slotType)
Определения Hatchback_02.c:562
override bool CanDisplayAttachmentCategory(string category_name)
Определения Hatchback_02.c:534
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
override void OnDebugSpawn()
Определения Hatchback_02.c:429
Определения Hatchback_02.c:428
Определения 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
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.