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

◆ GetCarDoorsState()

override int OnDebugSpawn::GetCarDoorsState ( string slotType)
protected

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

584{
588
589 void Hatchback_02()
590 {
591 //m_dmgContactCoef = 0.070;
592
593 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
594 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
595 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
596 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
597 m_EngineStop = "Hatchback_02_engine_stop_SoundSet";
598 m_EngineStopFuel = "Hatchback_02_engine_stop_fuel_SoundSet";
599
600 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
601 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
602
603 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
604 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
605
606 SetEnginePos("0 0.7 1.4");
607 }
608
609 void ~Hatchback_02()
610 {
611 m_UTSource = null;
612 m_UTSSettings = null;
613 m_UTSLEngine = null;
614 }
615
616 override void EEInit()
617 {
618 super.EEInit();
619
620 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
621 {
623 m_UTSSettings.m_ManualUpdate = true;
625 m_UTSSettings.m_TemperatureCap = 0;
626 m_UTSSettings.m_RangeFull = 0.5;
627 m_UTSSettings.m_RangeMax = 2;
628
631 }
632 }
633
634 override void OnEngineStart()
635 {
636 super.OnEngineStart();
637
638 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
639 {
640 if (m_UTSource)
641 m_UTSource.SetDefferedActive(true, 20.0);
642 }
643 }
644
645 override void OnEngineStop()
646 {
647 super.OnEngineStop();
648
649 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
650 {
651 if (m_UTSource)
652 m_UTSource.SetDefferedActive(false, 10.0);
653 }
654 }
655
656 override void EOnPostSimulate(IEntity other, float timeSlice)
657 {
658 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
659 {
660 if (m_UTSource && m_UTSource.IsActive())
661 {
663 }
664 }
665 }
666
667 override int GetAnimInstance()
668 {
669 return VehicleAnimInstances.GOLF;
670 }
671
672 override int GetSeatAnimationType(int posIdx)
673 {
674 switch (posIdx)
675 {
676 case 0:
677 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
678 case 1:
679 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
680 case 2:
681 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
682 case 3:
683 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
684 }
685
686 return 0;
687 }
688
689 // Override for car-specific light type
691 {
692 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02RearLight));
693 }
694
695 // Override for car-specific light type
697 {
698 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02FrontLight));
699 }
700
701 override bool CanReleaseAttachment(EntityAI attachment)
702 {
703 if (!super.CanReleaseAttachment(attachment))
704 {
705 return false;
706 }
707
708 if (EngineIsOn() || GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED)
709 {
710 string attType = attachment.GetType();
711 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
712 {
713 return false;
714 }
715 }
716
717 return true;
718 }
719
720 override protected bool CanManipulateSpareWheel(string slotSelectionName)
721 {
722 return GetCarDoorsState("Hatchback_02_Trunk") != CarDoorState.DOORS_CLOSED;
723 }
724
725 override bool CanDisplayAttachmentCategory( string category_name )
726 {
727 //super
728 if ( !super.CanDisplayAttachmentCategory( category_name ) )
729 return false;
730 //
731
732 category_name.ToLower();
733 if ( category_name.Contains("engine") )
734 {
735 if ( GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED )
736 return false;
737 }
738
739 return true;
740 }
741
742 override bool CanDisplayCargo()
743 {
744 if ( !super.CanDisplayCargo() )
745 return false;
746
747 if ( GetCarDoorsState("Hatchback_02_Trunk") == CarDoorState.DOORS_CLOSED )
748 return false;
749
750 return true;
751 }
752
753 override int GetCarDoorsState(string slotType)
754 {
755 CarDoor carDoor;
756
757 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
758 if (!carDoor)
759 {
760 return CarDoorState.DOORS_MISSING;
761 }
762
763 switch (slotType)
764 {
765 case "Hatchback_02_Door_1_1":
766 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
767
768 case "Hatchback_02_Door_2_1":
769 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
770
771 case "Hatchback_02_Door_1_2":
772 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
773
774 case "Hatchback_02_Door_2_2":
775 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
776
777 case "Hatchback_02_Hood":
778 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
779
780 case "Hatchback_02_Trunk":
781 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
782 }
783
784 return CarDoorState.DOORS_MISSING;
785 }
786
787
788 override bool CrewCanGetThrough(int posIdx)
789 {
790 switch (posIdx)
791 {
792 case 0:
793 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
794 {
795 return false;
796 }
797
798 return true;
799
800 case 1:
801 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
802 {
803 return false;
804 }
805
806 return true;
807
808 case 2:
809 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
810 {
811 return false;
812 }
813
814 return true;
815
816 case 3:
817 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
818 {
819 return false;
820 }
821
822 return true;
823 }
824
825 return false;
826 }
827
828 override string GetDoorSelectionNameFromSeatPos(int posIdx)
829 {
830 switch( posIdx )
831 {
832 case 0:
833 return "doors_driver";
834 break;
835 case 1:
836 return "doors_codriver";
837 break;
838 case 2:
839 return "doors_cargo1";
840 break;
841 case 3:
842 return "doors_cargo2";
843 break;
844 }
845
846 return super.GetDoorSelectionNameFromSeatPos(posIdx);
847 }
848
849 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
850 {
851 switch( posIdx )
852 {
853 case 0:
854 return "Hatchback_02_Door_1_1";
855 break;
856 case 1:
857 return "Hatchback_02_Door_2_1";
858 break;
859 case 2:
860 return "Hatchback_02_Door_1_2";
861 break;
862 case 3:
863 return "Hatchback_02_Door_2_2";
864 break;
865 }
866
867 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
868 }
869
870 override float OnSound(CarSoundCtrl ctrl, float oldValue)
871 {
872 switch (ctrl)
873 {
874 case CarSoundCtrl.DOORS:
875 float newValue = 0;
876 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
877 {
878 newValue += 0.25;
879 }
880
881 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
882 {
883 newValue += 0.25;
884 }
885
886 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
887 {
888 newValue += 0.25;
889 }
890
891 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
892 {
893 newValue += 0.25;
894 }
895
896 return Math.Clamp(newValue, 0, 1);
897 break;
898 }
899
900 return super.OnSound(ctrl, oldValue);
901 }
902
903 override string GetAnimSourceFromSelection( string selection )
904 {
905 switch( selection )
906 {
907 case "doors_driver":
908 return "DoorsDriver";
909 case "doors_codriver":
910 return "DoorsCoDriver";
911 case "doors_cargo1":
912 return "DoorsCargo1";
913 case "doors_cargo2":
914 return "DoorsCargo2";
915 case "doors_hood":
916 return "DoorsHood";
917 case "doors_trunk":
918 return "DoorsTrunk";
919 }
920
921 return "";
922 }
923
924
925 override bool IsVitalTruckBattery()
926 {
927 return false;
928 }
929
930 override bool IsVitalGlowPlug()
931 {
932 return false;
933 }
934
935 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
936 {
937 switch (currentSeat)
938 {
939 case 0:
940 return nextSeat == 1;
941 case 1:
942 return nextSeat == 0;
943 case 2:
944 return nextSeat == 3;
945 case 3:
946 return nextSeat == 2;
947 }
948
949 return false;
950 }
951
952 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
953 {
954 switch (pCurrentSeat)
955 {
956 case 0:
957 return pDoorsSelection == "DoorsDriver";
958 case 1:
959 return pDoorsSelection == "DoorsCoDriver";
960 case 2:
961 return pDoorsSelection == "DoorsCargo1";
962 case 3:
963 return pDoorsSelection == "DoorsCargo2";
964 }
965
966 return false;
967 }
968
969 override void OnDebugSpawn()
970 {
971 SpawnUniversalParts();
972 SpawnAdditionalItems();
973 FillUpCarFluids();
974
975 GameInventory inventory = GetInventory();
976 inventory.CreateInInventory("Hatchback_02_Wheel");
977 inventory.CreateInInventory("Hatchback_02_Wheel");
978 inventory.CreateInInventory("Hatchback_02_Wheel");
979 inventory.CreateInInventory("Hatchback_02_Wheel");
980
981 inventory.CreateInInventory("Hatchback_02_Door_1_1");
982 inventory.CreateInInventory("Hatchback_02_Door_1_2");
983 inventory.CreateInInventory("Hatchback_02_Door_2_1");
984 inventory.CreateInInventory("Hatchback_02_Door_2_2");
985 inventory.CreateInInventory("Hatchback_02_Hood");
986 inventory.CreateInInventory("Hatchback_02_Trunk");
987
988 //-----IN CAR CARGO
989 inventory.CreateInInventory("Hatchback_02_Wheel");
990 inventory.CreateInInventory("Hatchback_02_Wheel");
991 }
992}
993
994class Hatchback_02_Black extends Hatchback_02
995{
996 override void OnDebugSpawn()
997 {
998 SpawnUniversalParts();
999 SpawnAdditionalItems();
1000 FillUpCarFluids();
1001
1002 GameInventory inventory = GetInventory();
1003 inventory.CreateInInventory("Hatchback_02_Wheel");
1004 inventory.CreateInInventory("Hatchback_02_Wheel");
1005 inventory.CreateInInventory("Hatchback_02_Wheel");
1006 inventory.CreateInInventory("Hatchback_02_Wheel");
1007
1008 inventory.CreateInInventory("Hatchback_02_Door_1_1_Black");
1009 inventory.CreateInInventory("Hatchback_02_Door_1_2_Black");
1010 inventory.CreateInInventory("Hatchback_02_Door_2_1_Black");
1011 inventory.CreateInInventory("Hatchback_02_Door_2_2_Black");
1012 inventory.CreateInInventory("Hatchback_02_Hood_Black");
1013 inventory.CreateInInventory("Hatchback_02_Trunk_Black");
1014
1015 //-----IN CAR CARGO
1016 inventory.CreateInInventory("Hatchback_02_Wheel");
1017 inventory.CreateInInventory("Hatchback_02_Wheel");
1018 }
1019};
1020
1021class Hatchback_02_Blue extends Hatchback_02
1022{
1023 override void OnDebugSpawn()
1024 {
1025 SpawnUniversalParts();
1026 SpawnAdditionalItems();
1027 FillUpCarFluids();
1028
1029 GameInventory inventory = GetInventory();
1030 inventory.CreateInInventory("Hatchback_02_Wheel");
1031 inventory.CreateInInventory("Hatchback_02_Wheel");
1032 inventory.CreateInInventory("Hatchback_02_Wheel");
1033 inventory.CreateInInventory("Hatchback_02_Wheel");
1034
1035 inventory.CreateInInventory("Hatchback_02_Door_1_1_Blue");
1036 inventory.CreateInInventory("Hatchback_02_Door_1_2_Blue");
1037 inventory.CreateInInventory("Hatchback_02_Door_2_1_Blue");
1038 inventory.CreateInInventory("Hatchback_02_Door_2_2_Blue");
1039 inventory.CreateInInventory("Hatchback_02_Hood_Blue");
1040 inventory.CreateInInventory("Hatchback_02_Trunk_Blue");
1041
1042 //-----IN CAR CARGO
1043 inventory.CreateInInventory("Hatchback_02_Wheel");
1044 inventory.CreateInInventory("Hatchback_02_Wheel");
1045 }
1046}
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:443
DayZGame g_Game
Определения DayZGame.c:3942
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:221
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:220
class Hatchback_02_Blue extends Hatchback_02 OnDebugSpawn
Определения Hatchback_02.c:414
void ~Hatchback_02()
Определения Hatchback_02.c:439
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения Hatchback_02.c:765
override string GetAnimSourceFromSelection(string selection)
Определения Hatchback_02.c:733
override int GetSeatAnimationType(int posIdx)
Определения Hatchback_02.c:502
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения Hatchback_02.c:700
void Hatchback_02()
Определения Hatchback_02.c:419
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:679
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения Hatchback_02.c:486
override void OnEngineStop()
Определения Hatchback_02.c:475
override void EEInit()
Определения Hatchback_02.c:446
override bool CanReleaseAttachment(EntityAI attachment)
Определения Hatchback_02.c:531
override bool CanDisplayCargo()
Определения Hatchback_02.c:572
override void OnEngineStart()
Определения Hatchback_02.c:464
override CarLightBase CreateFrontLight()
Определения Hatchback_02.c:526
override int GetAnimInstance()
Определения Hatchback_02.c:497
override bool CrewCanGetThrough(int posIdx)
Определения Hatchback_02.c:618
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения Hatchback_02.c:782
bool CanManipulateSpareWheel(string slotSelectionName)
Определения Hatchback_02.c:550
override bool IsVitalGlowPlug()
Определения Hatchback_02.c:760
override CarRearLightBase CreateRearLight()
Определения Hatchback_02.c:520
override bool IsVitalTruckBattery()
Определения Hatchback_02.c:755
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения Hatchback_02.c:658
override int GetCarDoorsState(string slotType)
Определения Hatchback_02.c:583
override bool CanDisplayAttachmentCategory(string category_name)
Определения Hatchback_02.c:555
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения CarRearLightBase.c:2
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
override void OnDebugSpawn()
Определения Hatchback_02.c:441
Определения Hatchback_02.c:440
Определения EnEntity.c:165
Определения EnMath.c:7
original Timer deletes m_params which is unwanted
Определения UniversalTemperatureSource.c:39
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:811
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().