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

◆ GetMinLockPINLength()

int Init::GetMinLockPINLength ( )
protected

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

965 : ItemBase
966{
967 const string MEMPOINT_INSIDE = "inside";
968 const string MEMPOINT_CENTER = "ce_center";
969
970 protected const string ATTACHMENT_SLOT_BATTERY = "BatteryD";
971 protected const string SELECTION_NAME_BACK = "back";
972
975
976 protected bool m_Reversed = false;
977
978 // Sounds
979 private const string CODELOCK_ACCESS_SOUND = "digitalLock_beep_Access_SoundSet";
980 private const string CODELOCK_LOCK_SOUND = "digitalLock_mechanism_Lock_SoundSet";
981 private const string CODELOCK_UNLOCK_SOUND = "digitalLock_mechanism_Unlock_SoundSet";
982 private const string CODELOCK_ERROR_SOUND = "digitalLock_beep_Error_SoundSet";
983 private const string CODELOCK_DIGITS_SOUND = "digitalLock_buttons_Digits_SoundSet";
984 private const string CODELOCK_CLEAR_SOUND = "digitalLock_button_Clear_SoundSet";
985 private const string CODELOCK_CONFIRM_SOUND = "digitalLock_button_Key_confirm_SoundSet";
986
987 void DigitalCodeLock()
988 {
989 Init();
990 }
991
992 protected void Init()
993 {
996
997 RegisterNetSyncVariableInt("m_CodeLockComponent.m_DoorIndex");
998 RegisterNetSyncVariableInt("m_CodeLockComponent.m_Stage");
999 RegisterNetSyncVariableInt("m_CodeLockComponent.m_WrongCodeCount");
1000 RegisterNetSyncVariableInt("m_CodeLockComponent.m_UIAction");
1001 RegisterNetSyncVariableBool("m_CodeLockComponent.m_IsLocked");
1002 RegisterNetSyncVariableBool("m_CodeLockComponent.m_HasPIN");
1003 RegisterNetSyncVariableBool("m_CodeLockComponent.m_HasBruteForceProtection");
1004 RegisterNetSyncVariableBoolSignal("m_CodeLockComponent.m_HandleBruteForceProtection");
1005 RegisterNetSyncVariableBool("m_Reversed");
1006 }
1007
1008 override void EEInit()
1009 {
1010 super.EEInit();
1011
1012 // Set visuals on init
1014 }
1015
1016 override void EEItemLocationChanged(notnull InventoryLocation oldLoc, notnull InventoryLocation newLoc)
1017 {
1018 super.EEItemLocationChanged(oldLoc, newLoc);
1019
1020 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1021 {
1022 if (newLoc.GetType() != InventoryLocationType.ATTACHMENT)
1023 {
1024 if (g_Game.IsDedicatedServer())
1025 SetSynchDirty();
1026
1027 // Force update since animation need too change
1028 UpdateVisuals();
1029 }
1030 }
1031 }
1032
1033 override void EEItemAttached(EntityAI item, string slot_name)
1034 {
1035 super.EEItemAttached(item, slot_name);
1036
1037 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1038 {
1040 if (slot_name == ATTACHMENT_SLOT_BATTERY)
1041 {
1042 Battery9V battery = Battery9V.Cast(item);
1043 if (battery)
1044 {
1045 float batteryEnergy = battery.GetCompEM().GetEnergy();
1046 if (batteryEnergy > 0 && HasValidParent())
1047 {
1048 m_CodeLockComponent.SetStage(CodeLockStage.SETTING);
1049 GetCompEM().SwitchOn();
1050 }
1051
1052 UpdateVisuals();
1053 }
1054 }
1055 }
1056 }
1057
1058 override void EEItemDetached(EntityAI item, string slot_name)
1059 {
1060 super.EEItemDetached(item, slot_name);
1061
1062 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1063 {
1065 if (slot_name == ATTACHMENT_SLOT_BATTERY)
1066 {
1067 m_CodeLockComponent.SetStage(CodeLockStage.NONE);
1068 GetCompEM().SwitchOff();
1069
1070 UpdateVisuals();
1071 }
1072 }
1073 }
1074
1075 override void OnWasAttached(EntityAI parent, int slot_id)
1076 {
1077 super.OnWasAttached(parent, slot_id);
1078
1079 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1080 {
1082 string slotName = InventorySlots.GetSlotName(slot_id);
1083 if (slotName.IndexOf("Att_CodeLock") > -1)
1084 {
1085 Battery9V battery = GetBattery();
1086 if (battery && battery.GetCompEM().GetEnergy() > 0 && !GetCompEM().IsWorking())
1087 {
1088 m_CodeLockComponent.SetStage(CodeLockStage.SETTING);
1089 GetCompEM().SwitchOn();
1090 }
1091
1092 if (parent && parent.CanUseConstruction())
1093 {
1094 BuildingBase buildingBase = BuildingBase.Cast(parent);
1095 if (buildingBase)
1096 {
1097 SetDoorInfoFromSlot(buildingBase, slotName);
1098 }
1099 }
1100 }
1101
1102 UpdateVisuals();
1103 }
1104 }
1105
1106 override void OnWasDetached(EntityAI parent, int slot_id)
1107 {
1108 super.OnWasDetached(parent, slot_id);
1109
1110 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1111 {
1113 if (GetCompEM().IsWorking())
1114 GetCompEM().SwitchOff();
1115
1116 string slotName = InventorySlots.GetSlotName(slot_id);
1117 if (slotName.IndexOf("Att_CodeLock") > -1)
1118 {
1119 m_Reversed = false;
1120 m_CodeLockComponent.StopAllTimers();
1121 m_CodeLockComponent.OnParentDetached();
1122 }
1123
1124 UpdateVisuals();
1125 }
1126 }
1127
1128 override bool CanDetachAttachment(EntityAI parent)
1129 {
1130 if (IsLocked())
1131 return false;
1132
1133 return true;
1134 }
1135
1136 protected void SetDoorInfoFromSlot(BuildingBase buildingBase, string slotName)
1137 {
1138 map<int, ref AdditionalDoorInfo> doorsInfoMap = buildingBase.GetDoorInfoHolder().GetDoorInfoMap();
1140 if (doorsInfoMap && doorsInfoMap.Count() > 0)
1141 {
1142 int doorIndex = -1;
1143 AdditionalDoorInfo doorInfo;
1144 foreach(int doorInfoIndex, AdditionalDoorInfo doorInfoData: doorsInfoMap)
1145 {
1146 foreach(string relatedSlotName: doorInfoData.m_RelatedInventorySlotNames)
1147 {
1148 if (relatedSlotName == slotName)
1149 {
1150 doorIndex = doorInfoIndex;
1151 doorInfo = doorInfoData;
1152 break;
1153 }
1154 }
1155
1156 if (doorIndex != -1)
1157 break;
1158 }
1159
1160 if (doorIndex > -1)
1161 {
1162 m_CodeLockComponent.SetDoorIndex(doorIndex);
1163 }
1164
1166 Rebuilding rebuilding = Rebuilding.Cast(buildingBase.GetConstructionBasic());
1167 if (rebuilding && doorInfo)
1168 {
1169 ConstructionPart constructionPart = rebuilding.GetConstructionPart(doorInfo.m_DoorConstructionPartName);
1170 ConstructionPartRebuildReversibleDoor reversibleDoorPart;
1171 if (constructionPart && Class.CastTo(reversibleDoorPart, constructionPart))
1172 {
1173 m_Reversed = reversibleDoorPart.IsReversedLocal();
1174 }
1175 }
1176 }
1177 }
1178
1180 bool CanDetachCodeLock(notnull PlayerBase player, int componentIndex)
1181 {
1182 if (HasValidParent() && !IsLocked())
1183 {
1185 if (!GetReversedState() && !MiscGameplayFunctions.MemPointDirectionalCheck(player, this, DigitalCodeLock.MEMPOINT_CENTER, DigitalCodeLock.MEMPOINT_INSIDE))
1186 return false;
1187 }
1188
1189 return true;
1190 }
1191
1192 override void OnWorkStop()
1193 {
1194 super.OnWorkStop();
1195
1196 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1197 {
1198 m_CodeLockComponent.StopAllTimers();
1199 m_CodeLockComponent.OnParentReset(false);
1200
1202 }
1203 }
1204
1205 override void OnWorkStart()
1206 {
1207 super.OnWorkStart();
1208
1209 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1210 {
1211 UpdateVisuals();
1212 }
1213 }
1214
1215 override void OnWork(float consumed_energy)
1216 {
1217 super.OnWork(consumed_energy);
1218
1219 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1220 {
1221 Battery9V battery = GetBattery();
1222 if (battery)
1223 {
1224 if (GetCompEM().IsWorking() && battery.GetCompEM().GetEnergy() <= 0)
1225 {
1226 GetCompEM().SwitchOff();
1227 m_CodeLockComponent.SetLockState(false, false);
1228 }
1229
1230 float energyPercent = GetBatteryEnergy();
1231 if (m_VisualManager.HasBatteryLevelChanged())
1232 {
1233 UpdateVisuals();
1234 SetSynchDirty();
1235 }
1236 }
1237 }
1238 }
1239
1241 void UnlockOnServer(EntityAI parent)
1242 {
1243 InventoryLocation inventoryLocation = new InventoryLocation;
1244 GetInventory().GetCurrentInventoryLocation(inventoryLocation);
1245
1246 //drop entity from attachment slot
1247 if (g_Game.IsMultiplayer())
1248 {
1249 parent.GetInventory().DropEntity(InventoryMode.SERVER, parent, this);
1250 }
1251 else
1252 {
1253 parent.GetInventory().DropEntity(InventoryMode.LOCAL, parent, this);
1254 }
1255
1256 vector groundPos;
1257 string slotName = InventorySlots.GetSlotName(inventoryLocation.GetSlot());
1258 if (parent.MemoryPointExists(slotName))
1259 {
1260 groundPos = parent.ModelToWorld(parent.GetMemoryPointPos(slotName));
1261 }
1262 else
1263 {
1264 groundPos = GetPosition();
1265 }
1266
1267 SetPosition(groundPos);
1268 PlaceOnSurface();
1269 }
1270
1272 {
1273 Battery9V battery = Battery9V.Cast(GetInventory().FindAttachment(Battery9V.SLOT_ID));
1274 return battery;
1275 }
1276
1277 bool CanBeLocked()
1278 {
1279 return true;
1280 }
1281
1282 bool CanBeUnlocked()
1283 {
1284 return true;
1285 }
1286
1287 bool CanSetCode()
1288 {
1289 return true;
1290 }
1291
1292 bool HasBattery()
1293 {
1294 return GetBattery() != null;
1295 }
1296
1297 bool NeedBattery()
1298 {
1299 return true;
1300 }
1301
1302 bool HasEnergy()
1303 {
1304 return GetCompEM().IsWorking();
1305 }
1306
1307 bool HasPIN()
1308 {
1309 return m_CodeLockComponent.HasPIN();
1310 }
1311
1312 string GetInputPIN()
1313 {
1314 return m_CodeLockComponent.GetInputPIN();
1315 }
1316
1317 string GetLockPIN()
1318 {
1319 return m_CodeLockComponent.GetLockPIN();
1320 }
1321
1322 void ResetPIN()
1323 {
1324 m_CodeLockComponent.ResetPIN();
1325 }
1326
1327 void SetLockState(bool state)
1328 {
1329 m_CodeLockComponent.SetLockState(state);
1330 }
1331
1333 {
1334 return m_CodeLockComponent;
1335 }
1336
1337 bool IsLocked()
1338 {
1339 return m_CodeLockComponent.IsLocked();
1340 }
1341
1343 {
1344 return m_CodeLockComponent.GetStage();
1345 }
1346
1348 {
1349 return m_CodeLockComponent.HasBruteForceProtection();
1350 }
1351
1353 {
1354 return m_CodeLockComponent.ShouldHandleBruteForce();
1355 }
1356
1357 int GetWrongCodeCount()
1358 {
1359 return m_CodeLockComponent.GetWrongCodeCount();
1360 }
1361
1363 {
1364 return m_CodeLockComponent.GetMinLockPINLength();
1365 }
1366
1367 bool GetReversedState()
1368 {
1369 return m_Reversed;
1370 }
1371
1374 bool IsPlayerOnBackside(PlayerBase player)
1375 {
1376 if (!player)
1377 return false;
1378
1379 if (!MemoryPointExists(MEMPOINT_CENTER) || !MemoryPointExists(MEMPOINT_INSIDE))
1380 return false;
1381
1382 bool playerOnInsideSide = MiscGameplayFunctions.MemPointDirectionalCheck(player, this, MEMPOINT_CENTER, MEMPOINT_INSIDE);
1383
1384 return playerOnInsideSide != GetReversedState();
1385 }
1386
1387 bool HasValidParent()
1388 {
1389 EntityAI hierarchyParent = GetHierarchyRoot();
1390 if (hierarchyParent.CanUseConstruction())
1391 return true;
1392
1393 if (BroadcastedBunker.Cast(hierarchyParent))
1394 return true;
1395
1396 return false;
1397 }
1398
1400 {
1401 return m_VisualManager;
1402 }
1403
1404 float GetBatteryEnergy()
1405 {
1406 Battery9V battery = GetBattery();
1407 if (!battery)
1408 return 0.0;
1409
1410 float energy = battery.GetCompEM().GetEnergy();
1411 float energyMax = battery.GetCompEM().GetEnergyMax();
1412
1413 if (energyMax <= 0)
1414 return 0.0;
1415
1416 return (energy / energyMax) * 100.0;
1417 }
1418
1419 void UpdateVisuals()
1420 {
1421 if (m_VisualManager)
1422 m_VisualManager.UpdateVisuals();
1423 }
1424
1426 {
1427 if (m_VisualManager)
1428 {
1429 m_VisualManager.MarkDirty();
1430 m_VisualManager.UpdateVisuals();
1431 }
1432 }
1433
1434 override void SetActions()
1435 {
1436 super.SetActions();
1437
1439 }
1440
1441 override void OnRPC(PlayerIdentity sender, int rpc_type,ParamsReadContext ctx)
1442 {
1443 super.OnRPC(sender, rpc_type, ctx);
1444
1445 m_CodeLockComponent.OnRPC(sender, rpc_type, ctx);
1446 }
1447
1448 override void OnStoreSave(ParamsWriteContext ctx)
1449 {
1450 super.OnStoreSave(ctx);
1451
1452 m_CodeLockComponent.OnStoreSave(ctx);
1453 }
1454
1455 override bool OnStoreLoad(ParamsReadContext ctx, int version)
1456 {
1457 if (!super.OnStoreLoad(ctx, version))
1458 return false;
1459
1460 if (!m_CodeLockComponent.OnStoreLoad(ctx, version))
1461 return false;
1462
1463 return true;
1464 }
1465
1466 override void AfterStoreLoad()
1467 {
1468 super.AfterStoreLoad();
1469
1470 if (HasBattery())
1471 {
1472 if (HasPIN())
1473 {
1474 m_CodeLockComponent.SetStage(CodeLockStage.NORMAL);
1475 }
1476 else
1477 {
1478 m_CodeLockComponent.SetStage(CodeLockStage.SETTING);
1479 }
1480 }
1481
1483 }
1484
1485 override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
1486 {
1487 super.EEHealthLevelChanged(oldLevel,newLevel,zone);
1488
1490 }
1491
1492 override void OnVariablesSynchronized()
1493 {
1494 super.OnVariablesSynchronized();
1495
1497 {
1498 CodeLockUIAction uiAction = m_CodeLockComponent.GetUIAction();
1499 if (uiAction != CodeLockUIAction.NONE)
1500 {
1501 m_CodeLockComponent.CheckUIActionClient();
1502 }
1503 }
1504 }
1505
1506 override bool IsExternalLockType()
1507 {
1508 return true;
1509 }
1510
1511 override void InitItemSounds()
1512 {
1513 super.InitItemSounds();
1514
1515 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_ACCESS, CODELOCK_ACCESS_SOUND);
1516 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_LOCK, CODELOCK_LOCK_SOUND);
1517 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_UNLOCK, CODELOCK_UNLOCK_SOUND);
1518 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_ERROR, CODELOCK_ERROR_SOUND);
1519 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_CONFIRM_INPUT, CODELOCK_CONFIRM_SOUND);
1520 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_CLEAR_INPUT, CODELOCK_CLEAR_SOUND);
1521 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_DIGIT_INPUT, CODELOCK_DIGITS_SOUND);
1522 }
1523
1524 //Debug menu Spawn Ground Special
1525 override void OnDebugSpawn()
1526 {
1527 GetInventory().CreateInInventory("Battery9V");
1528 }
1529}
1530
1531class DigitalCodeLock_Bunker : DigitalCodeLock
1532{
1533 override void Init()
1534 {
1535 super.Init();
1536
1537 BunkerBroadcastConfigInstance bunkerConfig = CfgBunkerBroadcastHandler.GetData();
1538 int pinCodeLength = CodeLockComponent.MIN_LOCK_PIN_LENGTH;
1539
1540 if (bunkerConfig && bunkerConfig.bunkerSettings)
1541 {
1543 pinCodeLength = bunkerConfig.bunkerSettings.lockCodeLength;
1544 if (pinCodeLength > CodeLockComponent.MAX_LOCK_PIN_LENGTH)
1545 pinCodeLength = CodeLockComponent.MAX_LOCK_PIN_LENGTH;
1546 }
1547
1548 m_CodeLockComponent.SetMinimalPinCodeLength(pinCodeLength);
1549 }
1550
1551 override bool CanBeLocked()
1552 {
1553 return false;
1554 }
1555
1556 override bool CanSetCode()
1557 {
1558 return false;
1559 }
1560
1561 override bool CanDetachAttachment(EntityAI parent)
1562 {
1563 return false;
1564 }
1565
1567 override void OnWasDetached(EntityAI parent, int slot_id) {}
1568
1569 override bool NeedBattery()
1570 {
1571 return false;
1572 }
1573
1574 override bool HasBattery()
1575 {
1576 return true;
1577 }
1578
1579 override bool HasEnergy()
1580 {
1581 return true;
1582 }
1583
1584 override bool ShowZonesHealth()
1585 {
1586 return true;
1587 }
1588
1589 bool SetLockCode(string pin)
1590 {
1591 return m_CodeLockComponent.SetLockCode(pin);
1592 }
1593
1594 void Disable()
1595 {
1596 m_CodeLockComponent.SetStage(CodeLockStage.NONE);
1597 SetAnimationPhase(CodeLockVisualManager.CODELOCK_ANIMATED_GREEN_LIGHT, 1.0);
1598 SetAnimationPhase(CodeLockVisualManager.CODELOCK_ANIMATED_RED_LIGHT, 1.0);
1599 }
1600}
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