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

◆ GetCarDoorsState()

override int OnDebugSpawn::GetCarDoorsState ( string slotType)
protected

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

563{
567
568 void Hatchback_02()
569 {
570 //m_dmgContactCoef = 0.070;
571
572 m_EngineStartOK = "Hatchback_02_engine_start_SoundSet";
573 m_EngineStartBattery = "Hatchback_02_engine_failed_start_battery_SoundSet";
574 m_EngineStartPlug = "Hatchback_02_engine_failed_start_sparkplugs_SoundSet";
575 m_EngineStartFuel = "Hatchback_02_engine_failed_start_fuel_SoundSet";
576 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
577
578 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
579 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
580
581 m_CarHornShortSoundName = "Hatchback_02_Horn_Short_SoundSet";
582 m_CarHornLongSoundName = "Hatchback_02_Horn_SoundSet";
583
584 SetEnginePos("0 0.7 1.4");
585 }
586
587 override void EEInit()
588 {
589 super.EEInit();
590
591 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
592 {
594 m_UTSSettings.m_ManualUpdate = true;
596 m_UTSSettings.m_TemperatureCap = 0;
597 m_UTSSettings.m_RangeFull = 0.5;
598 m_UTSSettings.m_RangeMax = 2;
599
602 }
603 }
604
605 override void OnEngineStart()
606 {
607 super.OnEngineStart();
608
609 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
610 {
611 m_UTSource.SetDefferedActive(true, 20.0);
612 }
613 }
614
615 override void OnEngineStop()
616 {
617 super.OnEngineStop();
618
619 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
620 {
621 m_UTSource.SetDefferedActive(false, 10.0);
622 }
623 }
624
625 override void EOnPostSimulate(IEntity other, float timeSlice)
626 {
627 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
628 {
629 if (m_UTSource.IsActive())
630 {
632 }
633 }
634 }
635
636 override int GetAnimInstance()
637 {
638 return VehicleAnimInstances.GOLF;
639 }
640
641 override int GetSeatAnimationType(int posIdx)
642 {
643 switch (posIdx)
644 {
645 case 0:
646 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
647 case 1:
648 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
649 case 2:
650 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
651 case 3:
652 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
653 }
654
655 return 0;
656 }
657
658 // Override for car-specific light type
660 {
661 return CarRearLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02RearLight));
662 }
663
664 // Override for car-specific light type
666 {
667 return CarLightBase.Cast(ScriptedLightBase.CreateLight(Hatchback_02FrontLight));
668 }
669
670 override bool CanReleaseAttachment(EntityAI attachment)
671 {
672 if (!super.CanReleaseAttachment(attachment))
673 {
674 return false;
675 }
676
677 if (EngineIsOn() || GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED)
678 {
679 string attType = attachment.GetType();
680 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
681 {
682 return false;
683 }
684 }
685
686 return true;
687 }
688
689 override protected bool CanManipulateSpareWheel(string slotSelectionName)
690 {
691 return GetCarDoorsState("Hatchback_02_Trunk") != CarDoorState.DOORS_CLOSED;
692 }
693
694 override bool CanDisplayAttachmentCategory( string category_name )
695 {
696 //super
697 if ( !super.CanDisplayAttachmentCategory( category_name ) )
698 return false;
699 //
700
701 category_name.ToLower();
702 if ( category_name.Contains("engine") )
703 {
704 if ( GetCarDoorsState("Hatchback_02_Hood") == CarDoorState.DOORS_CLOSED )
705 return false;
706 }
707
708 return true;
709 }
710
711 override bool CanDisplayCargo()
712 {
713 if ( !super.CanDisplayCargo() )
714 return false;
715
716 if ( GetCarDoorsState("Hatchback_02_Trunk") == CarDoorState.DOORS_CLOSED )
717 return false;
718
719 return true;
720 }
721
722 override int GetCarDoorsState(string slotType)
723 {
724 CarDoor carDoor;
725
726 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
727 if (!carDoor)
728 {
729 return CarDoorState.DOORS_MISSING;
730 }
731
732 switch (slotType)
733 {
734 case "Hatchback_02_Door_1_1":
735 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
736
737 case "Hatchback_02_Door_2_1":
738 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
739
740 case "Hatchback_02_Door_1_2":
741 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
742
743 case "Hatchback_02_Door_2_2":
744 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
745
746 case "Hatchback_02_Hood":
747 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
748
749 case "Hatchback_02_Trunk":
750 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
751 }
752
753 return CarDoorState.DOORS_MISSING;
754 }
755
756
757 override bool CrewCanGetThrough(int posIdx)
758 {
759 switch (posIdx)
760 {
761 case 0:
762 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
763 {
764 return false;
765 }
766
767 return true;
768
769 case 1:
770 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
771 {
772 return false;
773 }
774
775 return true;
776
777 case 2:
778 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
779 {
780 return false;
781 }
782
783 return true;
784
785 case 3:
786 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
787 {
788 return false;
789 }
790
791 return true;
792 }
793
794 return false;
795 }
796
797 override string GetDoorSelectionNameFromSeatPos(int posIdx)
798 {
799 switch( posIdx )
800 {
801 case 0:
802 return "doors_driver";
803 break;
804 case 1:
805 return "doors_codriver";
806 break;
807 case 2:
808 return "doors_cargo1";
809 break;
810 case 3:
811 return "doors_cargo2";
812 break;
813 }
814
815 return super.GetDoorSelectionNameFromSeatPos(posIdx);
816 }
817
818 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
819 {
820 switch( posIdx )
821 {
822 case 0:
823 return "Hatchback_02_Door_1_1";
824 break;
825 case 1:
826 return "Hatchback_02_Door_2_1";
827 break;
828 case 2:
829 return "Hatchback_02_Door_1_2";
830 break;
831 case 3:
832 return "Hatchback_02_Door_2_2";
833 break;
834 }
835
836 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
837 }
838
839 override float OnSound(CarSoundCtrl ctrl, float oldValue)
840 {
841 switch (ctrl)
842 {
843 case CarSoundCtrl.DOORS:
844 float newValue = 0;
845 if (GetCarDoorsState("Hatchback_02_Door_1_1") == CarDoorState.DOORS_CLOSED)
846 {
847 newValue += 0.25;
848 }
849
850 if (GetCarDoorsState("Hatchback_02_Door_2_1") == CarDoorState.DOORS_CLOSED)
851 {
852 newValue += 0.25;
853 }
854
855 if (GetCarDoorsState("Hatchback_02_Door_1_2") == CarDoorState.DOORS_CLOSED)
856 {
857 newValue += 0.25;
858 }
859
860 if (GetCarDoorsState("Hatchback_02_Door_2_2") == CarDoorState.DOORS_CLOSED)
861 {
862 newValue += 0.25;
863 }
864
865 return Math.Clamp(newValue, 0, 1);
866 break;
867 }
868
869 return super.OnSound(ctrl, oldValue);
870 }
871
872 override string GetAnimSourceFromSelection( string selection )
873 {
874 switch( selection )
875 {
876 case "doors_driver":
877 return "DoorsDriver";
878 case "doors_codriver":
879 return "DoorsCoDriver";
880 case "doors_cargo1":
881 return "DoorsCargo1";
882 case "doors_cargo2":
883 return "DoorsCargo2";
884 case "doors_hood":
885 return "DoorsHood";
886 case "doors_trunk":
887 return "DoorsTrunk";
888 }
889
890 return "";
891 }
892
893
894 override bool IsVitalTruckBattery()
895 {
896 return false;
897 }
898
899 override bool IsVitalGlowPlug()
900 {
901 return false;
902 }
903
904 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
905 {
906 switch (currentSeat)
907 {
908 case 0:
909 return nextSeat == 1;
910 case 1:
911 return nextSeat == 0;
912 case 2:
913 return nextSeat == 3;
914 case 3:
915 return nextSeat == 2;
916 }
917
918 return false;
919 }
920
921 override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
922 {
923 switch (pCurrentSeat)
924 {
925 case 0:
926 return pDoorsSelection == "DoorsDriver";
927 case 1:
928 return pDoorsSelection == "DoorsCoDriver";
929 case 2:
930 return pDoorsSelection == "DoorsCargo1";
931 case 3:
932 return pDoorsSelection == "DoorsCargo2";
933 }
934
935 return false;
936 }
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");
950 GetInventory().CreateInInventory("Hatchback_02_Door_1_2");
951 GetInventory().CreateInInventory("Hatchback_02_Door_2_1");
952 GetInventory().CreateInInventory("Hatchback_02_Door_2_2");
953 GetInventory().CreateInInventory("Hatchback_02_Hood");
954 GetInventory().CreateInInventory("Hatchback_02_Trunk");
955
956 //-----IN CAR CARGO
957 GetInventory().CreateInInventory("Hatchback_02_Wheel");
958 GetInventory().CreateInInventory("Hatchback_02_Wheel");
959 }
960}
961
962class Hatchback_02_Black extends Hatchback_02
963{
964 override void OnDebugSpawn()
965 {
969
970 GetInventory().CreateInInventory("Hatchback_02_Wheel");
971 GetInventory().CreateInInventory("Hatchback_02_Wheel");
972 GetInventory().CreateInInventory("Hatchback_02_Wheel");
973 GetInventory().CreateInInventory("Hatchback_02_Wheel");
974
975 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Black");
976 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Black");
977 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Black");
978 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Black");
979 GetInventory().CreateInInventory("Hatchback_02_Hood_Black");
980 GetInventory().CreateInInventory("Hatchback_02_Trunk_Black");
981
982 //-----IN CAR CARGO
983 GetInventory().CreateInInventory("Hatchback_02_Wheel");
984 GetInventory().CreateInInventory("Hatchback_02_Wheel");
985 }
986};
987
988class Hatchback_02_Blue extends Hatchback_02
989{
990 override void OnDebugSpawn()
991 {
995
996 GetInventory().CreateInInventory("Hatchback_02_Wheel");
997 GetInventory().CreateInInventory("Hatchback_02_Wheel");
998 GetInventory().CreateInInventory("Hatchback_02_Wheel");
999 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1000
1001 GetInventory().CreateInInventory("Hatchback_02_Door_1_1_Blue");
1002 GetInventory().CreateInInventory("Hatchback_02_Door_1_2_Blue");
1003 GetInventory().CreateInInventory("Hatchback_02_Door_2_1_Blue");
1004 GetInventory().CreateInInventory("Hatchback_02_Door_2_2_Blue");
1005 GetInventory().CreateInInventory("Hatchback_02_Hood_Blue");
1006 GetInventory().CreateInInventory("Hatchback_02_Trunk_Blue");
1007
1008 //-----IN CAR CARGO
1009 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1010 GetInventory().CreateInInventory("Hatchback_02_Wheel");
1011 }
1012}
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.

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