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

◆ GetCarDoorsState()

override int OnDebugSpawn::GetCarDoorsState ( string slotType)
protected

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

591{
595
596 void CivilianSedan()
597 {
598 //m_dmgContactCoef = 0.065;
599
600 m_EngineStartOK = "CivilianSedan_engine_start_SoundSet";
601 m_EngineStartBattery = "CivilianSedan_engine_failed_start_battery_SoundSet";
602 m_EngineStartPlug = "CivilianSedan_engine_failed_start_sparkplugs_SoundSet";
603 m_EngineStartFuel = "CivilianSedan_engine_failed_start_fuel_SoundSet";
604 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
605
606 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
607 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
608
609 m_CarHornShortSoundName = "CivilianSedan_Horn_Short_SoundSet";
610 m_CarHornLongSoundName = "CivilianSedan_Horn_SoundSet";
611
612 SetEnginePos("0 0.7 1.6");
613 }
614
615 override void EEInit()
616 {
617 super.EEInit();
618
619 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
620 {
622 m_UTSSettings.m_ManualUpdate = true;
624 m_UTSSettings.m_TemperatureCap = 0;
625 m_UTSSettings.m_RangeFull = 0.5;
626 m_UTSSettings.m_RangeMax = 2;
627
630 }
631 }
632
633 override void OnEngineStart()
634 {
635 super.OnEngineStart();
636
637 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
638 {
639 m_UTSource.SetDefferedActive(true, 20.0);
640 }
641 }
642
643 override void OnEngineStop()
644 {
645 super.OnEngineStop();
646
647 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
648 {
649 m_UTSource.SetDefferedActive(false, 10.0);
650 }
651 }
652
653 override void EOnPostSimulate(IEntity other, float timeSlice)
654 {
655 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
656 {
657 if (m_UTSource.IsActive())
658 {
660 }
661 }
662 }
663
664 override int GetAnimInstance()
665 {
666 return VehicleAnimInstances.SEDAN;
667 }
668
669 override float GetTransportCameraDistance()
670 {
671 return 4.5;
672 }
673
674 override int GetSeatAnimationType(int posIdx)
675 {
676 switch (posIdx)
677 {
678 case 0:
679 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
680 case 1:
681 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
682 case 2:
683 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
684 case 3:
685 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
686 }
687
688 return 0;
689 }
690
691 // Override for car-specific light type
693 {
694 return CarLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanFrontLight) );
695 }
696
697 // Override for car-specific light type
699 {
700 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(CivilianSedanRearLight) );
701 }
702
703 override bool CanReleaseAttachment( EntityAI attachment )
704 {
705 if( !super.CanReleaseAttachment( attachment ) )
706 return false;
707
708 string attType = attachment.GetType();
709
710 if ( EngineIsOn() || GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED )
711 {
712 if ( attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
713 return false;
714 }
715
716 return true;
717 }
718
719 override protected bool CanManipulateSpareWheel(string slotSelectionName)
720 {
721 return GetCarDoorsState("CivSedanTrunk") != CarDoorState.DOORS_CLOSED;
722 }
723
724 override bool CanDisplayAttachmentCategory(string category_name)
725 {
726 //super
727 if (!super.CanDisplayAttachmentCategory(category_name))
728 return false;
729 //
730
731 category_name.ToLower();
732 if (category_name.Contains("engine"))
733 {
734 if (GetCarDoorsState("CivSedanHood") == CarDoorState.DOORS_CLOSED)
735 return false;
736 }
737
738 return true;
739 }
740
741 override bool CanDisplayCargo()
742 {
743 if ( !super.CanDisplayCargo() )
744 return false;
745
746 if ( GetCarDoorsState("CivSedanTrunk") == CarDoorState.DOORS_CLOSED )
747 return false;
748
749 return true;
750 }
751
752 override int GetCarDoorsState( string slotType )
753 {
754 CarDoor carDoor;
755
756 Class.CastTo( carDoor, FindAttachmentBySlotName( slotType ) );
757 if (!carDoor)
758 {
759 return CarDoorState.DOORS_MISSING;
760 }
761
762 switch (slotType)
763 {
764 case "CivSedanDriverDoors":
765 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
766 break;
767
768 case "CivSedanCoDriverDoors":
769 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
770 break;
771
772 case "CivSedanCargo1Doors":
773 return TranslateAnimationPhaseToCarDoorState("DoorsCargo1");
774 break;
775
776 case "CivSedanCargo2Doors":
777 return TranslateAnimationPhaseToCarDoorState("DoorsCargo2");
778 break;
779
780 case "CivSedanTrunk":
781 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
782 break;
783
784 case "CivSedanHood":
785 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
786 break;
787 }
788
789 return CarDoorState.DOORS_MISSING;
790 }
791
792
793 override bool CrewCanGetThrough( int posIdx )
794 {
795 switch( posIdx )
796 {
797 case 0:
798 if ( GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED )
799 return false;
800
801 return true;
802 break;
803
804 case 1:
805 if ( GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED )
806 return false;
807
808 return true;
809 break;
810
811 case 2:
812 if ( GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED )
813 return false;
814
815 return true;
816 break;
817
818 case 3:
819 if ( GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED )
820 return false;
821
822 return true;
823 break;
824 }
825
826 return false;
827 }
828
829 override string GetDoorSelectionNameFromSeatPos(int posIdx)
830 {
831 switch( posIdx )
832 {
833 case 0:
834 return "doors_driver";
835 break;
836 case 1:
837 return "doors_codriver";
838 break;
839 case 2:
840 return "doors_cargo1";
841 break;
842 case 3:
843 return "doors_cargo2";
844 break;
845 }
846
847 return super.GetDoorSelectionNameFromSeatPos(posIdx);
848 }
849
850 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
851 {
852 switch( posIdx )
853 {
854 case 0:
855 return "CivSedanDriverDoors";
856 break;
857 case 1:
858 return "CivSedanCoDriverDoors";
859 break;
860 case 2:
861 return "CivSedanCargo1Doors";
862 break;
863 case 3:
864 return "CivSedanCargo2Doors";
865 break;
866 }
867
868 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
869 }
870
871 // 0 full ambient and engine sound
872 // 1 zero ambient and engine sound
873 override float OnSound(CarSoundCtrl ctrl, float oldValue)
874 {
875 switch (ctrl)
876 {
877 case CarSoundCtrl.DOORS:
878 float newValue = 0;
879 if (GetCarDoorsState("CivSedanDriverDoors") == CarDoorState.DOORS_CLOSED)
880 {
881 newValue += 0.25;
882 }
883
884 if (GetCarDoorsState("CivSedanCoDriverDoors") == CarDoorState.DOORS_CLOSED)
885 {
886 newValue += 0.25;
887 }
888
889 if (GetCarDoorsState("CivSedanCargo1Doors") == CarDoorState.DOORS_CLOSED)
890 {
891 newValue += 0.25;
892 }
893
894 if (GetCarDoorsState("CivSedanCargo2Doors") == CarDoorState.DOORS_CLOSED)
895 {
896 newValue += 0.25;
897 }
898
899 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
900 {
901 newValue -= 0.6;
902 }
903
904 if (GetHealthLevel("WindowBack") == GameConstants.STATE_RUINED)
905 {
906 newValue -= 0.6;
907 }
908
909 return Math.Clamp(newValue, 0, 1);
910 break;
911 }
912
913 return super.OnSound(ctrl, oldValue);
914 }
915
916 override string GetAnimSourceFromSelection(string selection)
917 {
918 switch (selection)
919 {
920 case "doors_driver":
921 return "DoorsDriver";
922 case "doors_codriver":
923 return "DoorsCoDriver";
924 case "doors_cargo1":
925 return "DoorsCargo1";
926 case "doors_cargo2":
927 return "DoorsCargo2";
928 case "doors_hood":
929 return "DoorsHood";
930 case "doors_trunk":
931 return "DoorsTrunk";
932 }
933
934 return "";
935 }
936
937 override bool IsVitalTruckBattery()
938 {
939 return false;
940 }
941
942 override bool IsVitalGlowPlug()
943 {
944 return false;
945 }
946
947 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
948 {
949 switch (currentSeat)
950 {
951 case 0:
952 return nextSeat == 1;
953
954 case 1:
955 return nextSeat == 0;
956
957 case 2:
958 return nextSeat == 3;
959
960 case 3:
961 return nextSeat == 2;
962 }
963
964 return false;
965 }
966
967 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
968 {
969 switch (pCurrentSeat)
970 {
971 case 0:
972 return pDoorsSelection == "DoorsDriver";
973
974 case 1:
975 return pDoorsSelection == "DoorsCoDriver";
976
977 case 2:
978 return pDoorsSelection == "DoorsCargo1";
979
980 case 3:
981 return pDoorsSelection == "DoorsCargo2";
982 }
983
984 return false;
985 }
986
987 override void OnDebugSpawn()
988 {
992
993 GetInventory().CreateInInventory("CivSedanWheel");
994 GetInventory().CreateInInventory("CivSedanWheel");
995 GetInventory().CreateInInventory("CivSedanWheel");
996 GetInventory().CreateInInventory("CivSedanWheel");
997
998 GetInventory().CreateInInventory("CivSedanDoors_Driver");
999 GetInventory().CreateInInventory("CivSedanDoors_CoDriver");
1000 GetInventory().CreateInInventory("CivSedanDoors_BackLeft");
1001 GetInventory().CreateInInventory("CivSedanDoors_BackRight");
1002 GetInventory().CreateInInventory("CivSedanHood");
1003 GetInventory().CreateInInventory("CivSedanTrunk");
1004
1005 //-----IN CAR CARGO
1006 GetInventory().CreateInInventory("CivSedanWheel");
1007 GetInventory().CreateInInventory("CivSedanWheel");
1008 }
1009
1010 override float GetPushForceCoefficientMultiplier()
1011 {
1012 return 1.5;
1013 }
1014}
1015
1016class CivilianSedan_Wine extends CivilianSedan
1017{
1018 override void OnDebugSpawn()
1019 {
1023
1024 GetInventory().CreateInInventory("CivSedanWheel");
1025 GetInventory().CreateInInventory("CivSedanWheel");
1026 GetInventory().CreateInInventory("CivSedanWheel");
1027 GetInventory().CreateInInventory("CivSedanWheel");
1028
1029 GetInventory().CreateInInventory("CivSedanDoors_Driver_Wine");
1030 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Wine");
1031 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Wine");
1032 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Wine");
1033 GetInventory().CreateInInventory("CivSedanHood_Wine");
1034 GetInventory().CreateInInventory("CivSedanTrunk_Wine");
1035
1036 //-----IN CAR CARGO
1037 GetInventory().CreateInInventory("CivSedanWheel");
1038 GetInventory().CreateInInventory("CivSedanWheel");
1039 }
1040}
1041
1042class CivilianSedan_Black extends CivilianSedan
1043{
1044 override void OnDebugSpawn()
1045 {
1049
1050 GetInventory().CreateInInventory("CivSedanWheel");
1051 GetInventory().CreateInInventory("CivSedanWheel");
1052 GetInventory().CreateInInventory("CivSedanWheel");
1053 GetInventory().CreateInInventory("CivSedanWheel");
1054
1055 GetInventory().CreateInInventory("CivSedanDoors_Driver_Black");
1056 GetInventory().CreateInInventory("CivSedanDoors_CoDriver_Black");
1057 GetInventory().CreateInInventory("CivSedanDoors_BackLeft_Black");
1058 GetInventory().CreateInInventory("CivSedanDoors_BackRight_Black");
1059 GetInventory().CreateInInventory("CivSedanHood_Black");
1060 GetInventory().CreateInInventory("CivSedanTrunk_Black");
1061
1062 //-----IN CAR CARGO
1063 GetInventory().CreateInInventory("CivSedanWheel");
1064 GetInventory().CreateInInventory("CivSedanWheel");
1065 }
1066}
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
override float GetPushForceCoefficientMultiplier()
Определения CivilianSedan.c:848
class CivilianSedan extends CarScript OnDebugSpawn()
Определения CivilianSedan.c:429
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения CivilianSedan.c:785
override string GetAnimSourceFromSelection(string selection)
Определения CivilianSedan.c:754
override int GetSeatAnimationType(int posIdx)
Определения CivilianSedan.c:512
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения CivilianSedan.c:711
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения CivilianSedan.c:688
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения CivilianSedan.c:491
override void OnEngineStop()
Определения CivilianSedan.c:481
void CivilianSedan()
Определения CivilianSedan.c:434
ref UniversalTemperatureSourceLambdaEngine m_UTSLEngine
Определения CivilianSedan.c:432
override float GetTransportCameraDistance()
Определения CivilianSedan.c:507
override void EEInit()
Определения CivilianSedan.c:453
override bool CanReleaseAttachment(EntityAI attachment)
Определения CivilianSedan.c:541
override bool CanDisplayCargo()
Определения CivilianSedan.c:579
override void OnEngineStart()
Определения CivilianSedan.c:471
override CarLightBase CreateFrontLight()
Определения CivilianSedan.c:530
override int GetAnimInstance()
Определения CivilianSedan.c:502
override bool CrewCanGetThrough(int posIdx)
Определения CivilianSedan.c:631
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения CivilianSedan.c:805
bool CanManipulateSpareWheel(string slotSelectionName)
Определения CivilianSedan.c:557
override bool IsVitalGlowPlug()
Определения CivilianSedan.c:780
override CarRearLightBase CreateRearLight()
Определения CivilianSedan.c:536
override bool IsVitalTruckBattery()
Определения CivilianSedan.c:775
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения CivilianSedan.c:667
override int GetCarDoorsState(string slotType)
Определения CivilianSedan.c:590
override bool CanDisplayAttachmentCategory(string category_name)
Определения CivilianSedan.c:562
ref UniversalTemperatureSourceSettings m_UTSSettings
Определения FireplaceBase.c:220
ref UniversalTemperatureSource m_UTSource
Определения FireplaceBase.c:219
UniversalTemperatureSourceLambdaBaseImpl UniversalTemperatureSourceLambdaBase UniversalTemperatureSourceLambdaEngine()
VehicleAnimInstances
Определения VehicleAnimInstances.c:2
Определения InventoryItem.c:496
Определения CarRearLightBase.c:2
override void OnDebugSpawn()
Определения CivilianSedan.c:455
Определения CivilianSedan.c:454
Super root of all classes in Enforce script.
Определения EnScript.c:11
Определения Building.c:6
Определения constants.c:659
Определения 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
const int STATE_RUINED
Определения constants.c:846
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().