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

◆ CanDetachAttachment()

override bool Init::CanDetachAttachment ( EntityAI parent)
protected

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

731 : ItemBase
732{
733 const string MEMPOINT_INSIDE = "inside";
734 const string MEMPOINT_CENTER = "ce_center";
735
736 protected const string ATTACHMENT_SLOT_BATTERY = "BatteryD";
737 protected const string SELECTION_NAME_BACK = "back";
738
741
742 protected bool m_Reversed = false;
743
744 // Sounds
745 private const string CODELOCK_ACCESS_SOUND = "digitalLock_beep_Access_SoundSet";
746 private const string CODELOCK_LOCK_SOUND = "digitalLock_mechanism_Lock_SoundSet";
747 private const string CODELOCK_UNLOCK_SOUND = "digitalLock_mechanism_Unlock_SoundSet";
748 private const string CODELOCK_ERROR_SOUND = "digitalLock_beep_Error_SoundSet";
749 private const string CODELOCK_DIGITS_SOUND = "digitalLock_buttons_Digits_SoundSet";
750 private const string CODELOCK_CLEAR_SOUND = "digitalLock_button_Clear_SoundSet";
751 private const string CODELOCK_CONFIRM_SOUND = "digitalLock_button_Key_confirm_SoundSet";
752
753 void DigitalCodeLock()
754 {
755 Init();
756 }
757
758 protected void Init()
759 {
762
763 RegisterNetSyncVariableInt("m_CodeLockComponent.m_DoorIndex");
764 RegisterNetSyncVariableInt("m_CodeLockComponent.m_Stage");
765 RegisterNetSyncVariableInt("m_CodeLockComponent.m_WrongCodeCount");
766 RegisterNetSyncVariableInt("m_CodeLockComponent.m_UIAction");
767 RegisterNetSyncVariableBool("m_CodeLockComponent.m_IsLocked");
768 RegisterNetSyncVariableBool("m_CodeLockComponent.m_HasPIN");
769 RegisterNetSyncVariableBool("m_CodeLockComponent.m_HasBruteForceProtection");
770 RegisterNetSyncVariableBoolSignal("m_CodeLockComponent.m_HandleBruteForceProtection");
771 RegisterNetSyncVariableBool("m_Reversed");
772 }
773
774 override void EEInit()
775 {
776 super.EEInit();
777
778 // Set visuals on init
780 }
781
782 override void EEItemLocationChanged(notnull InventoryLocation oldLoc, notnull InventoryLocation newLoc)
783 {
784 super.EEItemLocationChanged(oldLoc, newLoc);
785
786 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
787 {
788 if (newLoc.GetType() != InventoryLocationType.ATTACHMENT)
789 {
790 if (g_Game.IsDedicatedServer())
791 SetSynchDirty();
792
793 // Force update since animation need too change
795 }
796 }
797 }
798
799 override void EEItemAttached(EntityAI item, string slot_name)
800 {
801 super.EEItemAttached(item, slot_name);
802
803 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
804 {
806 if (slot_name == ATTACHMENT_SLOT_BATTERY)
807 {
808 Battery9V battery = Battery9V.Cast(item);
809 if (battery)
810 {
811 float batteryEnergy = battery.GetCompEM().GetEnergy();
812 if (batteryEnergy > 0 && HasValidParent())
813 {
814 m_CodeLockComponent.SetStage(CodeLockStage.SETTING);
815 GetCompEM().SwitchOn();
816 }
817
819 }
820 }
821 }
822 }
823
824 override void EEItemDetached(EntityAI item, string slot_name)
825 {
826 super.EEItemDetached(item, slot_name);
827
828 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
829 {
831 if (slot_name == ATTACHMENT_SLOT_BATTERY)
832 {
833 m_CodeLockComponent.SetStage(CodeLockStage.NONE);
834 GetCompEM().SwitchOff();
835
837 }
838 }
839 }
840
841 override void OnWasAttached(EntityAI parent, int slot_id)
842 {
843 super.OnWasAttached(parent, slot_id);
844
845 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
846 {
848 string slotName = InventorySlots.GetSlotName(slot_id);
849 if (slotName.IndexOf("Att_CodeLock") > -1)
850 {
851 Battery9V battery = GetBattery();
852 if (battery && battery.GetCompEM().GetEnergy() > 0 && !GetCompEM().IsWorking())
853 {
854 m_CodeLockComponent.SetStage(CodeLockStage.SETTING);
855 GetCompEM().SwitchOn();
856 }
857
858 if (parent && parent.CanUseConstruction())
859 {
860 BuildingBase buildingBase = BuildingBase.Cast(parent);
861 if (buildingBase)
862 {
863 SetDoorInfoFromSlot(buildingBase, slotName);
864 }
865 }
866 }
867
869 }
870 }
871
872 override void OnWasDetached(EntityAI parent, int slot_id)
873 {
874 super.OnWasDetached(parent, slot_id);
875
876 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
877 {
879 if (GetCompEM().IsWorking())
880 GetCompEM().SwitchOff();
881
882 string slotName = InventorySlots.GetSlotName(slot_id);
883 if (slotName.IndexOf("Att_CodeLock") > -1)
884 {
885 m_Reversed = false;
886 m_CodeLockComponent.StopAllTimers();
887 m_CodeLockComponent.OnParentDetached();
888 }
889
891 }
892 }
893
894 override bool CanDetachAttachment(EntityAI parent)
895 {
896 if (IsLocked())
897 return false;
898
899 return true;
900 }
901
902 protected void SetDoorInfoFromSlot(BuildingBase buildingBase, string slotName)
903 {
904 map<int, ref AdditionalDoorInfo> doorsInfoMap = buildingBase.GetDoorInfoHolder().GetDoorInfoMap();
906 if (doorsInfoMap && doorsInfoMap.Count() > 0)
907 {
908 int doorIndex = -1;
909 AdditionalDoorInfo doorInfo;
910 foreach(int doorInfoIndex, AdditionalDoorInfo doorInfoData: doorsInfoMap)
911 {
912 foreach(string relatedSlotName: doorInfoData.m_RelatedInventorySlotNames)
913 {
914 if (relatedSlotName == slotName)
915 {
916 doorIndex = doorInfoIndex;
917 doorInfo = doorInfoData;
918 break;
919 }
920 }
921
922 if (doorIndex != -1)
923 break;
924 }
925
926 if (doorIndex > -1)
927 {
928 m_CodeLockComponent.SetDoorIndex(doorIndex);
929 }
930
932 Rebuilding rebuilding = Rebuilding.Cast(buildingBase.GetConstructionBasic());
933 if (rebuilding && doorInfo)
934 {
935 ConstructionPart constructionPart = rebuilding.GetConstructionPart(doorInfo.m_DoorConstructionPartName);
936 ConstructionPartRebuildReversibleDoor reversibleDoorPart;
937 if (constructionPart && Class.CastTo(reversibleDoorPart, constructionPart))
938 {
939 m_Reversed = reversibleDoorPart.IsReversedLocal();
940 }
941 }
942 }
943 }
944
946 bool CanDetachCodeLock(notnull PlayerBase player, int componentIndex)
947 {
948 if (HasValidParent() && !IsLocked())
949 {
951 if (!GetReversedState() && !MiscGameplayFunctions.MemPointDirectionalCheck(player, this, DigitalCodeLock.MEMPOINT_CENTER, DigitalCodeLock.MEMPOINT_INSIDE))
952 return false;
953 }
954
955 return true;
956 }
957
958 override void OnWorkStop()
959 {
960 super.OnWorkStop();
961
962 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
963 {
964 m_CodeLockComponent.StopAllTimers();
965 m_CodeLockComponent.OnParentReset(false);
966
968 }
969 }
970
971 override void OnWorkStart()
972 {
973 super.OnWorkStart();
974
975 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
976 {
978 }
979 }
980
981 override void OnWork(float consumed_energy)
982 {
983 super.OnWork(consumed_energy);
984
985 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
986 {
987 Battery9V battery = GetBattery();
988 if (battery)
989 {
990 if (GetCompEM().IsWorking() && battery.GetCompEM().GetEnergy() <= 0)
991 {
992 GetCompEM().SwitchOff();
993 m_CodeLockComponent.SetLockState(false, false);
994 }
995
996 float energyPercent = GetBatteryEnergy();
997 if (m_VisualManager.HasBatteryLevelChanged())
998 {
1000 SetSynchDirty();
1001 }
1002 }
1003 }
1004 }
1005
1007 void UnlockOnServer(EntityAI parent)
1008 {
1009 InventoryLocation inventoryLocation = new InventoryLocation;
1010 GetInventory().GetCurrentInventoryLocation(inventoryLocation);
1011
1012 //drop entity from attachment slot
1013 if (g_Game.IsMultiplayer())
1014 {
1015 parent.GetInventory().DropEntity(InventoryMode.SERVER, parent, this);
1016 }
1017 else
1018 {
1019 parent.GetInventory().DropEntity(InventoryMode.LOCAL, parent, this);
1020 }
1021
1022 vector groundPos;
1023 string slotName = InventorySlots.GetSlotName(inventoryLocation.GetSlot());
1024 if (parent.MemoryPointExists(slotName))
1025 {
1026 groundPos = parent.ModelToWorld(parent.GetMemoryPointPos(slotName));
1027 }
1028 else
1029 {
1030 groundPos = GetPosition();
1031 }
1032
1033 SetPosition(groundPos);
1034 PlaceOnSurface();
1035 }
1036
1038 {
1039 Battery9V battery = Battery9V.Cast(GetInventory().FindAttachment(Battery9V.SLOT_ID));
1040 return battery;
1041 }
1042
1043 bool CanBeLocked()
1044 {
1045 return true;
1046 }
1047
1048 bool CanBeUnlocked()
1049 {
1050 return true;
1051 }
1052
1053 bool CanSetCode()
1054 {
1055 return true;
1056 }
1057
1058 bool HasBattery()
1059 {
1060 return GetBattery() != null;
1061 }
1062
1063 bool NeedBattery()
1064 {
1065 return true;
1066 }
1067
1068 bool HasEnergy()
1069 {
1070 return GetCompEM().IsWorking();
1071 }
1072
1073 bool HasPIN()
1074 {
1075 return m_CodeLockComponent.HasPIN();
1076 }
1077
1078 string GetInputPIN()
1079 {
1080 return m_CodeLockComponent.GetInputPIN();
1081 }
1082
1083 string GetLockPIN()
1084 {
1085 return m_CodeLockComponent.GetLockPIN();
1086 }
1087
1088 void ResetPIN()
1089 {
1090 m_CodeLockComponent.ResetPIN();
1091 }
1092
1093 void SetLockState(bool state)
1094 {
1095 m_CodeLockComponent.SetLockState(state);
1096 }
1097
1099 {
1100 return m_CodeLockComponent;
1101 }
1102
1103 bool IsLocked()
1104 {
1105 return m_CodeLockComponent.IsLocked();
1106 }
1107
1109 {
1110 return m_CodeLockComponent.GetStage();
1111 }
1112
1114 {
1115 return m_CodeLockComponent.HasBruteForceProtection();
1116 }
1117
1119 {
1120 return m_CodeLockComponent.ShouldHandleBruteForce();
1121 }
1122
1123 int GetWrongCodeCount()
1124 {
1125 return m_CodeLockComponent.GetWrongCodeCount();
1126 }
1127
1129 {
1130 return m_CodeLockComponent.GetMinLockPINLength();
1131 }
1132
1133 bool GetReversedState()
1134 {
1135 return m_Reversed;
1136 }
1137
1140 bool IsPlayerOnBackside(PlayerBase player)
1141 {
1142 if (!player)
1143 return false;
1144
1145 if (!MemoryPointExists(MEMPOINT_CENTER) || !MemoryPointExists(MEMPOINT_INSIDE))
1146 return false;
1147
1148 bool playerOnInsideSide = MiscGameplayFunctions.MemPointDirectionalCheck(player, this, MEMPOINT_CENTER, MEMPOINT_INSIDE);
1149
1150 return playerOnInsideSide != GetReversedState();
1151 }
1152
1153 bool HasValidParent()
1154 {
1155 EntityAI hierarchyParent = GetHierarchyRoot();
1156 if (hierarchyParent.CanUseConstruction())
1157 return true;
1158
1159 if (BroadcastedBunker.Cast(hierarchyParent))
1160 return true;
1161
1162 return false;
1163 }
1164
1166 {
1167 return m_VisualManager;
1168 }
1169
1170 float GetBatteryEnergy()
1171 {
1172 Battery9V battery = GetBattery();
1173 if (!battery)
1174 return 0.0;
1175
1176 float energy = battery.GetCompEM().GetEnergy();
1177 float energyMax = battery.GetCompEM().GetEnergyMax();
1178
1179 if (energyMax <= 0)
1180 return 0.0;
1181
1182 return (energy / energyMax) * 100.0;
1183 }
1184
1185 void UpdateVisuals()
1186 {
1187 if (m_VisualManager)
1188 m_VisualManager.UpdateVisuals();
1189 }
1190
1192 {
1193 if (m_VisualManager)
1194 {
1195 m_VisualManager.MarkDirty();
1196 m_VisualManager.UpdateVisuals();
1197 }
1198 }
1199
1200 override void SetActions()
1201 {
1202 super.SetActions();
1203
1205 }
1206
1207 override void OnRPC(PlayerIdentity sender, int rpc_type,ParamsReadContext ctx)
1208 {
1209 super.OnRPC(sender, rpc_type, ctx);
1210
1211 m_CodeLockComponent.OnRPC(sender, rpc_type, ctx);
1212 }
1213
1214 override void OnStoreSave(ParamsWriteContext ctx)
1215 {
1216 super.OnStoreSave(ctx);
1217
1218 m_CodeLockComponent.OnStoreSave(ctx);
1219 }
1220
1221 override bool OnStoreLoad(ParamsReadContext ctx, int version)
1222 {
1223 if (!super.OnStoreLoad(ctx, version))
1224 return false;
1225
1226 if (!m_CodeLockComponent.OnStoreLoad(ctx, version))
1227 return false;
1228
1229 return true;
1230 }
1231
1232 override void AfterStoreLoad()
1233 {
1234 super.AfterStoreLoad();
1235
1236 if (HasBattery())
1237 {
1238 if (HasPIN())
1239 {
1240 m_CodeLockComponent.SetStage(CodeLockStage.NORMAL);
1241 }
1242 else
1243 {
1244 m_CodeLockComponent.SetStage(CodeLockStage.SETTING);
1245 }
1246 }
1247
1249 }
1250
1251 override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
1252 {
1253 super.EEHealthLevelChanged(oldLevel,newLevel,zone);
1254
1256 }
1257
1258 override void OnVariablesSynchronized()
1259 {
1260 super.OnVariablesSynchronized();
1261
1263 {
1264 CodeLockUIAction uiAction = m_CodeLockComponent.GetUIAction();
1265 if (uiAction != CodeLockUIAction.NONE)
1266 {
1267 m_CodeLockComponent.CheckUIActionClient();
1268 }
1269 }
1270 }
1271
1272 override bool IsExternalLockType()
1273 {
1274 return true;
1275 }
1276
1277 override void InitItemSounds()
1278 {
1279 super.InitItemSounds();
1280
1281 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_ACCESS, CODELOCK_ACCESS_SOUND);
1282 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_LOCK, CODELOCK_LOCK_SOUND);
1283 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_UNLOCK, CODELOCK_UNLOCK_SOUND);
1284 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_ERROR, CODELOCK_ERROR_SOUND);
1285 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_CONFIRM_INPUT, CODELOCK_CONFIRM_SOUND);
1286 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_CLEAR_INPUT, CODELOCK_CLEAR_SOUND);
1287 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_DIGIT_INPUT, CODELOCK_DIGITS_SOUND);
1288 }
1289
1290 //Debug menu Spawn Ground Special
1291 override void OnDebugSpawn()
1292 {
1293 GetInventory().CreateInInventory("Battery9V");
1294 }
1295}
1296
1297class DigitalCodeLock_Bunker : DigitalCodeLock
1298{
1299 override void Init()
1300 {
1301 super.Init();
1302
1303 BunkerBroadcastConfigInstance bunkerConfig = CfgBunkerBroadcastHandler.GetData();
1304 int pinCodeLength = CodeLockComponent.MIN_LOCK_PIN_LENGTH;
1305
1306 if (bunkerConfig && bunkerConfig.bunkerSettings)
1307 {
1309 pinCodeLength = bunkerConfig.bunkerSettings.lockCodeLength;
1310 if (pinCodeLength > CodeLockComponent.MAX_LOCK_PIN_LENGTH)
1311 pinCodeLength = CodeLockComponent.MAX_LOCK_PIN_LENGTH;
1312 }
1313
1314 m_CodeLockComponent.SetMinimalPinCodeLength(pinCodeLength);
1315 }
1316
1317 override bool CanBeLocked()
1318 {
1319 return false;
1320 }
1321
1322 override bool CanSetCode()
1323 {
1324 return false;
1325 }
1326
1327 override bool CanDetachAttachment(EntityAI parent)
1328 {
1329 return false;
1330 }
1331
1333 override void OnWasDetached(EntityAI parent, int slot_id) {}
1334
1335 override bool NeedBattery()
1336 {
1337 return false;
1338 }
1339
1340 override bool HasBattery()
1341 {
1342 return true;
1343 }
1344
1345 override bool HasEnergy()
1346 {
1347 return true;
1348 }
1349
1350 override bool ShowZonesHealth()
1351 {
1352 return true;
1353 }
1354
1355 bool SetLockCode(string pin)
1356 {
1357 return m_CodeLockComponent.SetLockCode(pin);
1358 }
1359
1360 void Disable()
1361 {
1362 m_CodeLockComponent.SetStage(CodeLockStage.NONE);
1363 SetAnimationPhase(CodeLockVisualManager.CODELOCK_ANIMATED_GREEN_LIGHT, 1.0);
1364 SetAnimationPhase(CodeLockVisualManager.CODELOCK_ANIMATED_RED_LIGHT, 1.0);
1365 }
1366}
InventoryMode
NOTE: PREDICTIVE is not to be used at all in multiplayer.
class LogManager EntityAI
void BuildingBase()
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
PlayerSpawnPreset slotName
override void EEItemDetached(EntityAI item, string slot_name)
Определения CodeLock.c:661
override void OnStoreSave(ParamsWriteContext ctx)
Определения CodeLock.c:1051
void UpdateVisuals()
Определения CodeLock.c:1022
override void SetActions()
Определения CodeLock.c:1037
void Disable()
Определения CodeLock.c:630
override void EEItemAttached(EntityAI item, string slot_name)
Определения CodeLock.c:636
override void OnWasDetached(EntityAI parent, int slot_id)
overrides the base behavior - intentional
Определения CodeLock.c:709
const string CODELOCK_UNLOCK_SOUND
Определения CodeLock.c:584
void UnlockOnServer(EntityAI parent)
Unlock AND drop.
Определения CodeLock.c:844
override void OnWorkStop()
Определения CodeLock.c:795
Battery9V GetBattery()
Определения CodeLock.c:874
CodeLockVisualManager GetVisualManager()
Определения CodeLock.c:1002
bool HasBattery()
Определения CodeLock.c:895
bool HasBruteForceProtection()
Определения CodeLock.c:950
const string SELECTION_NAME_BACK
Определения CodeLock.c:574
const string MEMPOINT_INSIDE
Определения CodeLock.c:570
void DigitalCodeLock()
Определения CodeLock.c:590
string GetLockPIN()
Определения CodeLock.c:920
override void OnWork(float consumed_energy)
Определения CodeLock.c:818
const string CODELOCK_DIGITS_SOUND
Определения CodeLock.c:586
bool NeedBattery()
Определения CodeLock.c:900
bool CanBeUnlocked()
Определения CodeLock.c:885
bool SetLockCode(string pin)
Определения CodeLock.c:625
bool HasPIN()
Определения CodeLock.c:910
bool IsPlayerOnBackside(PlayerBase player)
Определения CodeLock.c:977
override void EEInit()
Определения CodeLock.c:611
override void EEItemLocationChanged(notnull InventoryLocation oldLoc, notnull InventoryLocation newLoc)
Определения CodeLock.c:619
bool IsLocked()
Определения CodeLock.c:940
override bool OnStoreLoad(ParamsReadContext ctx, int version)
Определения CodeLock.c:1058
const string CODELOCK_CONFIRM_SOUND
Определения CodeLock.c:588
void SetLockState(bool state)
Определения CodeLock.c:930
bool CanSetCode()
Определения CodeLock.c:890
void ForceFullVisualsUpdate()
Определения CodeLock.c:1028
bool CanBeLocked()
Определения CodeLock.c:880
bool HasEnergy()
Определения CodeLock.c:905
bool CanDetachCodeLock(notnull PlayerBase player, int componentIndex)
Condition check called from ActionTakeItem and ActionTakeItemToHands.
Определения CodeLock.c:783
ref CodeLockVisualManager m_VisualManager
Определения CodeLock.c:577
override void OnWasAttached(EntityAI parent, int slot_id)
Определения CodeLock.c:678
void ResetPIN()
Определения CodeLock.c:925
bool ShouldHandleBruteForce()
Определения CodeLock.c:955
ref CodeLockComponent m_CodeLockComponent
Определения CodeLock.c:576
bool GetReversedState()
Определения CodeLock.c:970
float GetBatteryEnergy()
Определения CodeLock.c:1007
override void InitItemSounds()
Определения CodeLock.c:1114
bool m_Reversed
Определения CodeLock.c:579
int GetWrongCodeCount()
Определения CodeLock.c:960
bool HasValidParent()
Определения CodeLock.c:990
override bool CanDetachAttachment(EntityAI parent)
Определения CodeLock.c:731
string GetInputPIN()
Определения CodeLock.c:915
void SetDoorInfoFromSlot(BuildingBase buildingBase, string slotName)
Определения CodeLock.c:739
const string MEMPOINT_CENTER
Определения CodeLock.c:571
override void OnRPC(PlayerIdentity sender, int rpc_type, ParamsReadContext ctx)
Определения CodeLock.c:1044
override void OnVariablesSynchronized()
Определения CodeLock.c:1095
CodeLockComponent GetCodeLockComponent()
Определения CodeLock.c:935
override void AfterStoreLoad()
Определения CodeLock.c:1069
const string CODELOCK_CLEAR_SOUND
Определения CodeLock.c:587
override bool IsExternalLockType()
Определения CodeLock.c:1109
CodeLockStage GetStage()
Определения CodeLock.c:945
const string ATTACHMENT_SLOT_BATTERY
Определения CodeLock.c:573
DigitalCodeLock ItemBase Init()
single position related to each particular attachment group
Определения CodeLock.c:569
const string CODELOCK_ERROR_SOUND
Определения CodeLock.c:585
int GetMinLockPINLength()
Определения CodeLock.c:965
const string CODELOCK_ACCESS_SOUND
Определения CodeLock.c:582
override void OnDebugSpawn()
Определения CodeLock.c:1128
override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
Определения CodeLock.c:1088
const string CODELOCK_LOCK_SOUND
Определения CodeLock.c:583
override void OnWorkStart()
Определения CodeLock.c:808
void CodeLockComponent(notnull EntityAI parent, int minLockPinLength=MIN_LOCK_PIN_LENGTH)
Определения CodeLockComponent.c:51
CodeLockStage
Определения CodeLockComponent.c:5
void CodeLockVisualManager(DigitalCodeLock codeLock, CodeLockComponent component)
Определения CodeLockVisualManager.c:63
DayZGame g_Game
Определения DayZGame.c:4074
InventoryLocationType
types of Inventory Location
Определения InventoryLocation.c:4
ItemSoundHandler GetItemSoundHandler()
Определения ItemBase.c:4407
string m_DoorConstructionPartName
memory point name for limiting open/close actions on the door/window
Определения AdditionalDoorsInfo.c:9
Single door info.
Определения AdditionalDoorsInfo.c:3
static int SLOT_ID
Определения Battery9V.c:3
Определения Battery9V.c:2
Super root of all classes in Enforce script.
Определения EnScript.c:11
Instanced construction part data classes for dynamic data, statics now stored on EntityType level in ...
Определения ConstructionPart.c:4
void Init()
Определения CodeLock.c:28
bool HasBattery()
Определения CodeLock.c:328
bool CanBeLocked()
Определения CodeLock.c:313
bool HasEnergy()
Определения CodeLock.c:338
const string MEMPOINT_INSIDE
Определения CodeLock.c:3
bool CanSetCode()
Определения CodeLock.c:323
const string MEMPOINT_CENTER
Определения CodeLock.c:4
bool NeedBattery()
Определения CodeLock.c:333
override void OnWasDetached(EntityAI parent, int slot_id)
Определения CodeLock.c:142
override bool CanDetachAttachment(EntityAI parent)
Определения CodeLock.c:164
Определения CodeLock.c:2
proto native int GetSlot()
returns slot id if current type is Attachment
InventoryLocation.
Определения InventoryLocation.c:30
static proto native owned string GetSlotName(int id)
converts slot_id to string
provides access to slot configuration
Определения InventorySlots.c:6
override bool ShowZonesHealth()
Определения PlayerBaseClient.c:2
The class that will be instanced (moddable)
Определения gameplay.c:389
Определения Rebuilding.c:2
Определения Transport.c:70
Определения EnConvert.c:119
Serializer ParamsReadContext
Определения gameplay.c:15
Serializer ParamsWriteContext
Определения gameplay.c:16
proto native void SetPosition(vector position)
Set the world position of the Effect.
Определения Effect.c:463
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
vector GetPosition()
Get the world position of the Effect.
Определения Effect.c:473