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

◆ GetCarDoorsState()

override int OnDebugSpawn::GetCarDoorsState ( string slotType)
protected

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

665{
669
670 void OffroadHatchback()
671 {
672 //m_dmgContactCoef = 0.075;
673
674 m_EngineStartOK = "offroad_engine_start_SoundSet";
675 m_EngineStartBattery = "offroad_engine_failed_start_battery_SoundSet";
676 m_EngineStartPlug = "offroad_engine_failed_start_sparkplugs_SoundSet";
677 m_EngineStartFuel = "offroad_engine_failed_start_fuel_SoundSet";
678 m_EngineStop = "offroad_engine_stop_SoundSet";
679 m_EngineStopFuel = "offroad_engine_stop_fuel_SoundSet";
680
681 m_CarDoorOpenSound = "offroad_door_open_SoundSet";
682 m_CarDoorCloseSound = "offroad_door_close_SoundSet";
683 m_CarSeatShiftInSound = "Offroad_SeatShiftIn_SoundSet";
684 m_CarSeatShiftOutSound = "Offroad_SeatShiftOut_SoundSet";
685
686 m_CarHornShortSoundName = "Offroad_Horn_Short_SoundSet";
687 m_CarHornLongSoundName = "Offroad_Horn_SoundSet";
688
689 SetEnginePos("0 0.7 1.2");
690 }
691
692 void ~OffroadHatchback()
693 {
694 m_UTSource = null;
695 m_UTSSettings = null;
696 m_UTSLEngine = null;
697 }
698
699 override void EEInit()
700 {
701 super.EEInit();
702
703 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
704 {
706 m_UTSSettings.m_ManualUpdate = true;
708 m_UTSSettings.m_TemperatureCap = 0;
709 m_UTSSettings.m_RangeFull = 0.5;
710 m_UTSSettings.m_RangeMax = 2;
711
714 }
715 }
716
717 override void OnEngineStart()
718 {
719 super.OnEngineStart();
720
721 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
722 {
723 if (m_UTSource)
724 m_UTSource.SetDefferedActive(true, 20.0);
725 }
726 }
727
728 override void OnEngineStop()
729 {
730 super.OnEngineStop();
731
732 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
733 {
734 if (m_UTSource)
735 m_UTSource.SetDefferedActive(false, 10.0);
736 }
737 }
738
739 override void EOnPostSimulate(IEntity other, float timeSlice)
740 {
741 if (g_Game.IsServer() || !g_Game.IsMultiplayer())
742 {
743 if (m_UTSource && m_UTSource.IsActive())
744 {
746 }
747 }
748 }
749
750 override int GetAnimInstance()
751 {
752 return VehicleAnimInstances.HATCHBACK;
753 }
754
755 override float GetTransportCameraDistance()
756 {
757 return 3.5;
758 }
759
760 override int GetSeatAnimationType( int posIdx )
761 {
762 switch (posIdx)
763 {
764 case 0:
765 return DayZPlayerConstants.VEHICLESEAT_DRIVER;
766 case 1:
767 return DayZPlayerConstants.VEHICLESEAT_CODRIVER;
768 case 2:
769 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_L;
770 case 3:
771 return DayZPlayerConstants.VEHICLESEAT_PASSENGER_R;
772 }
773
774 return 0;
775
776 }
777
778
780 {
781 return CarRearLightBase.Cast( ScriptedLightBase.CreateLight(OffroadHatchbackRearLight) );
782 }
783
785 {
786 return CarLightBase.Cast( ScriptedLightBase.CreateLight(OffroadHatchbackFrontLight) );
787 }
788
789 override bool CanReleaseAttachment(EntityAI attachment)
790 {
791 if (!super.CanReleaseAttachment(attachment))
792 {
793 return false;
794 }
795
796 if (EngineIsOn() || GetCarDoorsState("NivaHood") == CarDoorState.DOORS_CLOSED)
797 {
798 string attType = attachment.GetType();
799 if (attType == "CarRadiator" || attType == "CarBattery" || attType == "SparkPlug")
800 {
801 return false;
802 }
803 }
804
805 return true;
806 }
807
808 override protected bool CanManipulateSpareWheel(string slotSelectionName)
809 {
810 return GetCarDoorsState("NivaHood") != CarDoorState.DOORS_CLOSED;
811 }
812
813 override bool CanDisplayAttachmentCategory( string category_name )
814 {
815 if (!super.CanDisplayAttachmentCategory(category_name))
816 {
817 return false;
818 }
819
820 category_name.ToLower();
821 if (category_name.Contains("engine"))
822 {
823 if (GetCarDoorsState("NivaHood") == CarDoorState.DOORS_CLOSED)
824 {
825 return false;
826 }
827 }
828
829 return true;
830 }
831
832 override bool CanDisplayCargo()
833 {
834 if (!super.CanDisplayCargo())
835 {
836 return false;
837 }
838
839 if (GetCarDoorsState("NivaTrunk") == CarDoorState.DOORS_CLOSED)
840 {
841 return false;
842 }
843
844 return true;
845 }
846
847 override int GetCarDoorsState(string slotType)
848 {
849 CarDoor carDoor;
850
851 Class.CastTo(carDoor, FindAttachmentBySlotName(slotType));
852 if (!carDoor)
853 {
854 return CarDoorState.DOORS_MISSING;
855 }
856
857 switch (slotType)
858 {
859 case "NivaDriverDoors":
860 return TranslateAnimationPhaseToCarDoorState("DoorsDriver");
861
862 case "NivaCoDriverDoors":
863 return TranslateAnimationPhaseToCarDoorState("DoorsCoDriver");
864
865 case "NivaHood":
866 return TranslateAnimationPhaseToCarDoorState("DoorsHood");
867
868 case "NivaTrunk":
869 return TranslateAnimationPhaseToCarDoorState("DoorsTrunk");
870 }
871
872 return CarDoorState.DOORS_MISSING;
873 }
874
875 override bool CrewCanGetThrough(int posIdx)
876 {
877 CarDoor carDoor;
878 switch (posIdx)
879 {
880 case 0:
881 if (GetCarDoorsState("NivaDriverDoors") == CarDoorState.DOORS_CLOSED)
882 return false;
883 else if (GetAnimationPhase("SeatDriver") > 0.5)
884 return false;
885
886 return true;
887
888 case 1:
889 if (GetCarDoorsState("NivaCoDriverDoors") == CarDoorState.DOORS_CLOSED)
890 return false;
891 else if (GetAnimationPhase("SeatCoDriver") > 0.5)
892 return false;
893
894 return true;
895
896 case 2:
897 if (GetCarDoorsState("NivaDriverDoors") == CarDoorState.DOORS_CLOSED)
898 return false;
899 else if (GetAnimationPhase("SeatDriver") <= 0.5)
900 return false;
901
902 return true;
903
904 case 3:
905 if (GetCarDoorsState("NivaCoDriverDoors") == CarDoorState.DOORS_CLOSED)
906 return false;
907 else if (GetAnimationPhase("SeatCoDriver") <= 0.5)
908 return false;
909
910 return true;
911 }
912
913 return false;
914 }
915
916 override string GetDoorSelectionNameFromSeatPos(int posIdx)
917 {
918 switch (posIdx)
919 {
920 case 0:
921 case 2:
922 return "doors_driver";
923 case 1:
924 case 3:
925 return "doors_codriver";
926 }
927
928 return super.GetDoorSelectionNameFromSeatPos(posIdx);
929 }
930
931 override string GetDoorInvSlotNameFromSeatPos(int posIdx)
932 {
933 switch (posIdx)
934 {
935 case 0:
936 case 2:
937 return "NivaDriverDoors";
938 case 1:
939 case 3:
940 return "NivaCoDriverDoors";
941 }
942
943 return super.GetDoorInvSlotNameFromSeatPos(posIdx);
944 }
945
946 // 0 full ambient and engine sound
947 // 1 zero ambient and engine sound
948 override float OnSound(CarSoundCtrl ctrl, float oldValue)
949 {
950 float tempCap = 0.0;
951
952 switch (ctrl)
953 {
954 case CarSoundCtrl.DOORS:
955 float newValue = 0;
956 if (GetCarDoorsState("NivaDriverDoors") == CarDoorState.DOORS_CLOSED)
957 {
958 newValue += 0.5;
959 }
960
961 if (GetCarDoorsState("NivaCoDriverDoors") == CarDoorState.DOORS_CLOSED)
962 {
963 newValue += 0.5;
964 }
965
966 if (GetCarDoorsState("NivaTrunk") == CarDoorState.DOORS_CLOSED)
967 {
968 newValue += 0.3;
969 }
970
971 if (GetHealthLevel("WindowFront") == GameConstants.STATE_RUINED)
972 {
973 newValue -= 0.6;
974 }
975
976 if (GetHealthLevel("WindowLR") == GameConstants.STATE_RUINED)
977 {
978 newValue -= 0.2;
979 }
980
981 if (GetHealthLevel("WindowRR") == GameConstants.STATE_RUINED)
982 {
983 newValue -= 0.2;
984 }
985
986 return Math.Clamp(newValue, 0, 1);
987 break;
988 }
989
990 return super.OnSound(ctrl, oldValue);
991 }
992
993 override string GetAnimSourceFromSelection( string selection )
994 {
995 switch (selection)
996 {
997 case "doors_driver":
998 return "DoorsDriver";
999 case "doors_codriver":
1000 return "DoorsCoDriver";
1001 case "doors_hood":
1002 return "DoorsHood";
1003 case "doors_trunk":
1004 return "DoorsTrunk";
1005 case "seatback_driver":
1006 return "SeatDriver";
1007 case "seatback_codriver":
1008 return "SeatCoDriver";
1009 }
1010
1011 return "";
1012 }
1013
1014 override string GetDoorConditionPointFromSelection(string selection)
1015 {
1016 switch (selection)
1017 {
1018 case "seat_driver":
1019 case "seatback_driver":
1020 case "seat_cargo1":
1021 return "seat_con_1_1";
1022 case "seat_codriver":
1023 case "seatback_codriver":
1024 case "seat_cargo2":
1025 return "seat_con_2_1";
1026 }
1027
1028 return "";
1029 }
1030
1031 override int GetCrewIndex(string selection)
1032 {
1033 switch (selection)
1034 {
1035 case "seatback_driver":
1036 return 0;
1037 case "seatback_codriver":
1038 return 1;
1039 }
1040
1041 return -1;
1042 }
1043
1044 override bool IsVitalTruckBattery()
1045 {
1046 return false;
1047 }
1048
1049 override bool IsVitalGlowPlug()
1050 {
1051 return false;
1052 }
1053
1054 override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
1055 {
1056 if (nextSeat == 0 && GetAnimationPhase("SeatDriver") > 0.5)
1057 return false;
1058
1059 if (nextSeat == 1 && GetAnimationPhase("SeatCoDriver") > 0.5)
1060 return false;
1061
1062 switch (currentSeat)
1063 {
1064 case 0:
1065 return nextSeat == 1;
1066
1067 case 1:
1068 return nextSeat == 0;
1069
1070 case 2:
1071 return nextSeat == 3;
1072
1073 case 3:
1074 return nextSeat == 2;
1075 }
1076
1077 return false;
1078 }
1079
1080 override bool CanReachDoorsFromSeat( string pDoorsSelection, int pCurrentSeat )
1081 {
1082 switch (pCurrentSeat)
1083 {
1084 case 0:
1085 return pDoorsSelection == "DoorsDriver";
1086
1087 case 1:
1088 return pDoorsSelection == "DoorsCoDriver";
1089
1090 case 2:
1091 return pDoorsSelection == "DoorsDriver";
1092
1093 case 3:
1094 return pDoorsSelection == "DoorsCoDriver";
1095 }
1096
1097 return false;
1098 }
1099
1100 override int GetSeatIndexFromDoor( string pDoorSelection )
1101 {
1102 switch (pDoorSelection)
1103 {
1104 case "DoorsDriver":
1105 return 0;
1106 case "DoorsCoDriver":
1107 return 1;
1108 }
1109
1110 return -1;
1111 }
1112
1113 override void SetActions()
1114 {
1115 super.SetActions();
1116
1118 }
1119
1120 override void OnDebugSpawn()
1121 {
1122 SpawnUniversalParts();
1123 SpawnAdditionalItems();
1124 FillUpCarFluids();
1125
1126 GameInventory inventory = GetInventory();
1127 inventory.CreateInInventory("HatchbackWheel");
1128 inventory.CreateInInventory("HatchbackWheel");
1129 inventory.CreateInInventory("HatchbackWheel" );
1130 inventory.CreateInInventory("HatchbackWheel");
1131
1132 inventory.CreateInInventory("HatchbackDoors_Driver");
1133 inventory.CreateInInventory("HatchbackDoors_CoDriver");
1134 inventory.CreateInInventory("HatchbackHood");
1135 inventory.CreateInInventory("HatchbackTrunk");
1136
1137 //-----IN CAR CARGO
1138 inventory.CreateInInventory("HatchbackWheel");
1139 inventory.CreateInInventory("HatchbackWheel");
1140 }
1141}
1142
1143class OffroadHatchback_White extends OffroadHatchback
1144{
1145 override void OnDebugSpawn()
1146 {
1147 SpawnUniversalParts();
1148 SpawnAdditionalItems();
1149 FillUpCarFluids();
1150
1151 GameInventory inventory = GetInventory();
1152 inventory.CreateInInventory("HatchbackWheel");
1153 inventory.CreateInInventory("HatchbackWheel");
1154 inventory.CreateInInventory("HatchbackWheel");
1155 inventory.CreateInInventory("HatchbackWheel");
1156
1157 inventory.CreateInInventory("HatchbackDoors_Driver_White");
1158 inventory.CreateInInventory("HatchbackDoors_CoDriver_White");
1159 inventory.CreateInInventory("HatchbackHood_White");
1160 inventory.CreateInInventory("HatchbackTrunk_White");
1161
1162 //-----IN CAR CARGO
1163 inventory.CreateInInventory("HatchbackWheel");
1164 inventory.CreateInInventory("HatchbackWheel");
1165 }
1166}
1167
1168class OffroadHatchback_Blue extends OffroadHatchback
1169{
1170 override void OnDebugSpawn()
1171 {
1172 SpawnUniversalParts();
1173 SpawnAdditionalItems();
1174 FillUpCarFluids();
1175
1176 GameInventory inventory = GetInventory();
1177 inventory.CreateInInventory("HatchbackWheel");
1178 inventory.CreateInInventory("HatchbackWheel");
1179 inventory.CreateInInventory("HatchbackWheel");
1180 inventory.CreateInInventory("HatchbackWheel");
1181
1182 inventory.CreateInInventory("HatchbackDoors_Driver_Blue");
1183 inventory.CreateInInventory("HatchbackDoors_CoDriver_Blue");
1184 inventory.CreateInInventory("HatchbackHood_Blue");
1185 inventory.CreateInInventory("HatchbackTrunk_Blue");
1186
1187 //-----IN CAR CARGO
1188 inventory.CreateInInventory("HatchbackWheel");
1189 inventory.CreateInInventory("HatchbackWheel");
1190 }
1191}
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
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
override void SetActions()
Определения OffroadHatchback.c:930
override bool CanReachSeatFromSeat(int currentSeat, int nextSeat)
Определения OffroadHatchback.c:871
override string GetAnimSourceFromSelection(string selection)
Определения OffroadHatchback.c:810
override int GetSeatAnimationType(int posIdx)
Определения OffroadHatchback.c:577
override string GetDoorConditionPointFromSelection(string selection)
Определения OffroadHatchback.c:831
override float OnSound(CarSoundCtrl ctrl, float oldValue)
Определения OffroadHatchback.c:765
override string GetDoorInvSlotNameFromSeatPos(int posIdx)
Определения OffroadHatchback.c:748
override void EOnPostSimulate(IEntity other, float timeSlice)
Определения OffroadHatchback.c:556
override void OnEngineStop()
Определения OffroadHatchback.c:545
override float GetTransportCameraDistance()
Определения OffroadHatchback.c:572
override void EEInit()
Определения OffroadHatchback.c:516
override bool CanReleaseAttachment(EntityAI attachment)
Определения OffroadHatchback.c:606
override bool CanDisplayCargo()
Определения OffroadHatchback.c:649
void ~OffroadHatchback()
Определения OffroadHatchback.c:509
override void OnEngineStart()
Определения OffroadHatchback.c:534
override CarLightBase CreateFrontLight()
Определения OffroadHatchback.c:601
override int GetAnimInstance()
Определения OffroadHatchback.c:567
override bool CrewCanGetThrough(int posIdx)
Определения OffroadHatchback.c:692
override bool CanReachDoorsFromSeat(string pDoorsSelection, int pCurrentSeat)
Определения OffroadHatchback.c:897
bool CanManipulateSpareWheel(string slotSelectionName)
Определения OffroadHatchback.c:625
override bool IsVitalGlowPlug()
Определения OffroadHatchback.c:866
override CarRearLightBase CreateRearLight()
Определения OffroadHatchback.c:596
class OffroadHatchback extends CarScript OnDebugSpawn()
Определения OffroadHatchback.c:482
override int GetSeatIndexFromDoor(string pDoorSelection)
Определения OffroadHatchback.c:917
void OffroadHatchback()
Определения OffroadHatchback.c:487
override bool IsVitalTruckBattery()
Определения OffroadHatchback.c:861
override string GetDoorSelectionNameFromSeatPos(int posIdx)
Определения OffroadHatchback.c:733
override int GetCarDoorsState(string slotType)
Определения OffroadHatchback.c:664
override int GetCrewIndex(string selection)
Определения OffroadHatchback.c:848
override bool CanDisplayAttachmentCategory(string category_name)
Определения OffroadHatchback.c:630
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
Определения EnEntity.c:165
Определения EnMath.c:7
override void OnDebugSpawn()
Определения OffroadHatchback.c:507
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
const int STATE_RUINED
Определения 3_Game/DayZ/constants.c:851
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().