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

◆ GetCarDoorsState()

override int OnDebugSpawn::GetCarDoorsState ( string slotType)
protected

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

565{
569
570 void Hatchback_02()
571 {
572 //m_dmgContactCoef = 0.070;
573
574 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
575 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
576 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
577 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
578 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
579 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
580
581 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
582 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
583
584 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
585 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
586
587 SetEnginePos("0 0.7 1.4");
588 }
589
590 override void EEInit()
591 {
592 super.EEInit();
593
594 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
595 {
597 m_UTSSettings.m_ManualUpdate = true;
599 m_UTSSettings.m_TemperatureCap = 0;
600 m_UTSSettings.m_RangeFull = 0.5;
601 m_UTSSettings.m_RangeMax = 2;
602
605 }
606 }
607
608 override void OnEngineStart()
609 {
610 super.OnEngineStart();
611
612 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
613 {
614 m_UTSource.SetDefferedActive(true, 20.0);
615 }
616 }
617
618 override void OnEngineStop()
619 {
620 super.OnEngineStop();
621
622 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
623 {
624 m_UTSource.SetDefferedActive(false, 10.0);
625 }
626 }
627
628 override void EOnPostSimulate(IEntity other, float timeSlice)
629 {
630 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
631 {
632 if (m_UTSource.IsActive())
633 {
635 }
636 }
637 }
638
639 override int GetAnimInstance()
640 {
641 return VehicleAnimInstances.GOLF;
642 }
643
644 override int GetSeatAnimationType(int posIdx)
645 {
646 switch (posIdx)
647 {
648 case 0:
649 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
650 case 1:
651 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
652 case 2:
653 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
654 case 3:
655 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
656 }
657
658 return 0;
659 }
660
661 // Override for car-specific light type
663 {
664 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02RearLight));
665 }
666
667 // Override for car-specific light type
669 {
670 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02FrontLight));
671 }
672
673 override bool CanReleaseAttachment(EntityAI attachment)
674 {
675 if (!super.CanReleaseAttachment(attachment))
676 {
677 return false;
678 }
679
680 if (EngineIsOn() || GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED)
681 {
682 string attType = attachment.GetType();
683 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
684 {
685 return false;
686 }
687 }
688
689 return true;
690 }
691
692 override protected bool CanManipulateSpareWheel(string slotSelectionName)
693 {
694 return GetCarDoorsState("Hatchback_02_Trunk") != CarDoorState.DOORS_CLOSED;
695 }
696
697 override bool CanDisplayAttachmentCategory( string category_name )
698 {
699 //super
700 if ( !super.CanDisplayAttachmentCategory( category_name ) )
701 return false;
702 //
703
704 category_name.ToLower();
705 if ( category_name.Contains("engine") )
706 {
707 if ( GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED )
708 return false;
709 }
710
711 return true;
712 }
713
714 override bool CanDisplayCargo()
715 {
716 if ( !super.CanDisplayCargo() )
717 return false;
718
719 if ( GetCarDoorsState("Hatchback_02_Trunk") == 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 "Hatchback_02_Door_1_1":
738 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
739
740 case "Hatchback_02_Door_2_1":
741 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
742
743 case "Hatchback_02_Door_1_2":
744 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
745
746 case "Hatchback_02_Door_2_2":
747 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
748
749 case "Hatchback_02_Hood":
750 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
751
752 case "Hatchback_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("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
766 {
767 return false;
768 }
769
770 return true;
771
772 case 1:
773 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
774 {
775 return false;
776 }
777
778 return true;
779
780 case 2:
781 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
782 {
783 return false;
784 }
785
786 return true;
787
788 case 3:
789 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
790 {
791 return false;
792 }
793
794 return true;
795 }
796
797 return false;
798 }
799
800 override string GetDoorSelectionNameFromSeatPos(int posIdx)
801 {
802 switch( posIdx )
803 {
804 case 0:
805 return "doors_driver";
806 break;
807 case 1:
808 return "doors_codriver";
809 break;
810 case 2:
811 return "doors_cargo1";
812 break;
813 case 3:
814 return "doors_cargo2";
815 break;
816 }
817
818 return super.GetDoorSelectionNameFromSeatPos(posIdx);
819 }
820
821 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
822 {
823 switch( posIdx )
824 {
825 case 0:
826 return "Hatchback_02_Door_1_1";
827 break;
828 case 1:
829 return "Hatchback_02_Door_2_1";
830 break;
831 case 2:
832 return "Hatchback_02_Door_1_2";
833 break;
834 case 3:
835 return "Hatchback_02_Door_2_2";
836 break;
837 }
838
839 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
840 }
841
842 override float OnSound(CarSoundCtrl ctrl, float oldValue)
843 {
844 switch (ctrl)
845 {
846 case CarSoundCtrl.DOORS:
847 float newValue = 0;
848 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
849 {
850 newValue += 0.25;
851 }
852
853 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
854 {
855 newValue += 0.25;
856 }
857
858 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
859 {
860 newValue += 0.25;
861 }
862
863 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
864 {
865 newValue += 0.25;
866 }
867
868 return Math.Clamp(newValue, 0, 1);
869 break;
870 }
871
872 return super.OnSound(ctrl, oldValue);
873 }
874
875 override string GetAnimSourceFromSelection( string selection )
876 {
877 switch( selection )
878 {
879 case "doors_driver":
880 return "DoorsDriver";
881 case "doors_codriver":
882 return "DoorsCoDriver";
883 case "doors_cargo1":
884 return "DoorsCargo1";
885 case "doors_cargo2":
886 return "DoorsCargo2";
887 case "doors_hood":
888 return "DoorsHood";
889 case "doors_trunk":
890 return "DoorsTrunk";
891 }
892
893 return "";
894 }
895
896
897 override bool IsVitalTruckBattery()
898 {
899 return false;
900 }
901
902 override bool IsVitalGlowPlug()
903 {
904 return false;
905 }
906
907 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
908 {
909 switch (currentSeat)
910 {
911 case 0:
912 return nextSeat == 1;
913 case 1:
914 return nextSeat == 0;
915 case 2:
916 return nextSeat == 3;
917 case 3:
918 return nextSeat == 2;
919 }
920
921 return false;
922 }
923
924 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
925 {
926 switch (pCurrentSeat)
927 {
928 case 0:
929 return pDoorsSelection == "DoorsDriver";
930 case 1:
931 return pDoorsSelection == "DoorsCoDriver";
932 case 2:
933 return pDoorsSelection == "DoorsCargo1";
934 case 3:
935 return pDoorsSelection == "DoorsCargo2";
936 }
937
938 return false;
939 }
940
941 override void OnDebugSpawn()
942 {
943 SpawnUniversalParts();
944 SpawnAdditionalItems();
945 FillUpCarFluids();
946
947 GetInventory().CreateInInventory("Hatchback_02_Wheel");
948 GetInventory().CreateInInventory("Hatchback_02_Wheel");
949 GetInventory().CreateInInventory("Hatchback_02_Wheel");
950 GetInventory().CreateInInventory("Hatchback_02_Wheel");
951
952 GetInventory().CreateInInventory("Hatchback_02_Door_1_1");
953 GetInventory().CreateInInventory("Hatchback_02_Door_1_2");
954 GetInventory().CreateInInventory("Hatchback_02_Door_2_1");
955 GetInventory().CreateInInventory("Hatchback_02_Door_2_2");
956 GetInventory().CreateInInventory("Hatchback_02_Hood");
957 GetInventory().CreateInInventory("Hatchback_02_Trunk");
958
959 //-----IN CAR CARGO
960 GetInventory().CreateInInventory("Hatchback_02_Wheel");
961 GetInventory().CreateInInventory("Hatchback_02_Wheel");
962 }
963}
964
965class Hatchback_02_Black extends Hatchback_02
966{
967 override void OnDebugSpawn()
968 {
969 SpawnUniversalParts();
970 SpawnAdditionalItems();
971 FillUpCarFluids();
972
973 GetInventory().CreateInInventory("Hatchback_02_Wheel");
974 GetInventory().CreateInInventory("Hatchback_02_Wheel");
975 GetInventory().CreateInInventory("Hatchback_02_Wheel");
976 GetInventory().CreateInInventory("Hatchback_02_Wheel");
977
978 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Black");
979 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Black");
980 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Black");
981 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Black");
982 GetInventory().CreateInInventory("Hatchback_02_Hood_Black");
983 GetInventory().CreateInInventory("Hatchback_02_Trunk_Black");
984
985 //-----IN CAR CARGO
986 GetInventory().CreateInInventory("Hatchback_02_Wheel");
987 GetInventory().CreateInInventory("Hatchback_02_Wheel");
988 }
989};
990
991class Hatchback_02_Blue extends Hatchback_02
992{
993 override void OnDebugSpawn()
994 {
995 SpawnUniversalParts();
996 SpawnAdditionalItems();
997 FillUpCarFluids();
998
999 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1000 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1001 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1002 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1003
1004 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Blue");
1005 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Blue");
1006 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Blue");
1007 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Blue");
1008 GetInventory().CreateInInventory("Hatchback_02_Hood_Blue");
1009 GetInventory().CreateInInventory("Hatchback_02_Trunk_Blue");
1010
1011 //-----IN CAR CARGO
1012 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1013 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1014 }
1015}
CarSoundCtrl
Car's sound controller list. (native, do not change or extend)
Определения Car.c:4
CarDoorState
Определения CarScript.c:2
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:433
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:404
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Hatchback_02.c:746
override string GetAnimSourceFromSelection(string selection)
Определения Hatchback_02.c:714
override int GetSeatAnimationType(int posIdx)
Определения Hatchback_02.c:483
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Hatchback_02.c:681
void Hatchback_02()
Определения Hatchback_02.c:409
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:660
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Hatchback_02.c:467
override void OnEngineStop()
Определения Hatchback_02.c:457
override void EEInit()
Определения Hatchback_02.c:429
override bool CanReleaseAttachment(EntityAI attachment)
Определения Hatchback_02.c:512
override bool CanDisplayCargo()
Определения Hatchback_02.c:553
override void OnEngineStart()
Определения Hatchback_02.c:447
override CarLightBase CreateFrontLight()
Определения Hatchback_02.c:507
override int GetAnimInstance()
Определения Hatchback_02.c:478
override bool CrewCanGetThrough(int posIdx)
Определения Hatchback_02.c:599
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Hatchback_02.c:763
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Hatchback_02.c:531
override bool IsVitalGlowPlug()
Определения Hatchback_02.c:741
override CarRearLightBase CreateRearLight()
Определения Hatchback_02.c:501
override bool IsVitalTruckBattery()
Определения Hatchback_02.c:736
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:639
override int GetCarDoorsState(string slotType)
Определения Hatchback_02.c:564
override bool CanDisplayAttachmentCategory(string category_name)
Определения Hatchback_02.c:536
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
override void OnDebugSpawn()
Определения Hatchback_02.c:430
Определения Hatchback_02.c:429
Определения 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
Определения 3_Game/constants.c:808
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.

Используется в CarScript::CanDisplayAttachmentCategory(), CarScript::CanDisplayCargo(), CarScript::CanManipulateSpareWheel(), CarScript::CanReleaseAttachment(), CarScript::CrewCanGetThrough() и CarScript::OnSound().