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

◆ IsExternalLockType()

override bool Init::IsExternalLockType ( )
protected

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

1109 : ItemBase
1110{
1111 const string MEMPOINT_INSIDE = "inside";
1112 const string MEMPOINT_CENTER = "ce_center";
1113
1114 protected const string ATTACHMENT_SLOT_BATTERY = "BatteryD";
1115 protected const string SELECTION_NAME_BACK = "back";
1116
1119
1120 protected bool m_Reversed = false;
1121
1122 // Sounds
1123 private const string CODELOCK_ACCESS_SOUND = "digitalLock_beep_Access_SoundSet";
1124 private const string CODELOCK_LOCK_SOUND = "digitalLock_mechanism_Lock_SoundSet";
1125 private const string CODELOCK_UNLOCK_SOUND = "digitalLock_mechanism_Unlock_SoundSet";
1126 private const string CODELOCK_ERROR_SOUND = "digitalLock_beep_Error_SoundSet";
1127 private const string CODELOCK_DIGITS_SOUND = "digitalLock_buttons_Digits_SoundSet";
1128 private const string CODELOCK_CLEAR_SOUND = "digitalLock_button_Clear_SoundSet";
1129 private const string CODELOCK_CONFIRM_SOUND = "digitalLock_button_Key_confirm_SoundSet";
1130
1131 void DigitalCodeLock()
1132 {
1133 Init();
1134 }
1135
1136 protected void Init()
1137 {
1140
1141 RegisterNetSyncVariableInt("m_CodeLockComponent.m_DoorIndex");
1142 RegisterNetSyncVariableInt("m_CodeLockComponent.m_Stage");
1143 RegisterNetSyncVariableInt("m_CodeLockComponent.m_WrongCodeCount");
1144 RegisterNetSyncVariableInt("m_CodeLockComponent.m_UIAction");
1145 RegisterNetSyncVariableBool("m_CodeLockComponent.m_IsLocked");
1146 RegisterNetSyncVariableBool("m_CodeLockComponent.m_HasPIN");
1147 RegisterNetSyncVariableBool("m_CodeLockComponent.m_HasBruteForceProtection");
1148 RegisterNetSyncVariableBoolSignal("m_CodeLockComponent.m_HandleBruteForceProtection");
1149 RegisterNetSyncVariableBool("m_Reversed");
1150 }
1151
1152 override void EEInit()
1153 {
1154 super.EEInit();
1155
1156 // Set visuals on init
1158 }
1159
1160 override void EEItemLocationChanged(notnull InventoryLocation oldLoc, notnull InventoryLocation newLoc)
1161 {
1162 super.EEItemLocationChanged(oldLoc, newLoc);
1163
1164 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1165 {
1166 if (newLoc.GetType() != InventoryLocationType.ATTACHMENT)
1167 {
1168 if (g_Game.IsDedicatedServer())
1169 SetSynchDirty();
1170
1171 // Force update since animation need too change
1172 UpdateVisuals();
1173 }
1174 }
1175 }
1176
1177 override void EEItemAttached(EntityAI item, string slot_name)
1178 {
1179 super.EEItemAttached(item, slot_name);
1180
1181 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1182 {
1184 if (slot_name == ATTACHMENT_SLOT_BATTERY)
1185 {
1186 Battery9V battery = Battery9V.Cast(item);
1187 if (battery)
1188 {
1189 float batteryEnergy = battery.GetCompEM().GetEnergy();
1190 if (batteryEnergy > 0 && HasValidParent())
1191 {
1192 m_CodeLockComponent.SetStage(CodeLockStage.SETTING);
1193 GetCompEM().SwitchOn();
1194 }
1195
1196 UpdateVisuals();
1197 }
1198 }
1199 }
1200 }
1201
1202 override void EEItemDetached(EntityAI item, string slot_name)
1203 {
1204 super.EEItemDetached(item, slot_name);
1205
1206 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1207 {
1209 if (slot_name == ATTACHMENT_SLOT_BATTERY)
1210 {
1211 m_CodeLockComponent.SetStage(CodeLockStage.NONE);
1212 GetCompEM().SwitchOff();
1213
1214 UpdateVisuals();
1215 }
1216 }
1217 }
1218
1219 override void OnWasAttached(EntityAI parent, int slot_id)
1220 {
1221 super.OnWasAttached(parent, slot_id);
1222
1223 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1224 {
1226 string slotName = InventorySlots.GetSlotName(slot_id);
1227 if (slotName.IndexOf("Att_CodeLock") > -1)
1228 {
1229 Battery9V battery = GetBattery();
1230 if (battery && battery.GetCompEM().GetEnergy() > 0 && !GetCompEM().IsWorking())
1231 {
1232 m_CodeLockComponent.SetStage(CodeLockStage.SETTING);
1233 GetCompEM().SwitchOn();
1234 }
1235
1236 if (parent && parent.CanUseConstruction())
1237 {
1238 BuildingBase buildingBase = BuildingBase.Cast(parent);
1239 if (buildingBase)
1240 {
1241 SetDoorInfoFromSlot(buildingBase, slotName);
1242 }
1243 }
1244 }
1245
1246 UpdateVisuals();
1247 }
1248 }
1249
1250 override void OnWasDetached(EntityAI parent, int slot_id)
1251 {
1252 super.OnWasDetached(parent, slot_id);
1253
1254 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1255 {
1257 if (GetCompEM().IsWorking())
1258 GetCompEM().SwitchOff();
1259
1260 string slotName = InventorySlots.GetSlotName(slot_id);
1261 if (slotName.IndexOf("Att_CodeLock") > -1)
1262 {
1263 m_Reversed = false;
1264 m_CodeLockComponent.StopAllTimers();
1265 m_CodeLockComponent.OnParentDetached();
1266 }
1267
1268 UpdateVisuals();
1269 }
1270 }
1271
1272 override bool CanDetachAttachment(EntityAI parent)
1273 {
1274 if (IsLocked())
1275 return false;
1276
1277 return true;
1278 }
1279
1280 protected void SetDoorInfoFromSlot(BuildingBase buildingBase, string slotName)
1281 {
1282 map<int, ref AdditionalDoorInfo> doorsInfoMap = buildingBase.GetDoorInfoHolder().GetDoorInfoMap();
1284 if (doorsInfoMap && doorsInfoMap.Count() > 0)
1285 {
1286 int doorIndex = -1;
1287 AdditionalDoorInfo doorInfo;
1288 foreach(int doorInfoIndex, AdditionalDoorInfo doorInfoData: doorsInfoMap)
1289 {
1290 foreach(string relatedSlotName: doorInfoData.m_RelatedInventorySlotNames)
1291 {
1292 if (relatedSlotName == slotName)
1293 {
1294 doorIndex = doorInfoIndex;
1295 doorInfo = doorInfoData;
1296 break;
1297 }
1298 }
1299
1300 if (doorIndex != -1)
1301 break;
1302 }
1303
1304 if (doorIndex > -1)
1305 {
1306 m_CodeLockComponent.SetDoorIndex(doorIndex);
1307 }
1308
1310 Rebuilding rebuilding = Rebuilding.Cast(buildingBase.GetConstructionBasic());
1311 if (rebuilding && doorInfo)
1312 {
1313 ConstructionPart constructionPart = rebuilding.GetConstructionPart(doorInfo.m_DoorConstructionPartName);
1314 ConstructionPartRebuildReversibleDoor reversibleDoorPart;
1315 if (constructionPart && Class.CastTo(reversibleDoorPart, constructionPart))
1316 {
1317 m_Reversed = reversibleDoorPart.IsReversedLocal();
1318 }
1319 }
1320 }
1321 }
1322
1324 bool CanDetachCodeLock(notnull PlayerBase player, int componentIndex)
1325 {
1326 if (HasValidParent() && !IsLocked())
1327 {
1329 if (!GetReversedState() && !MiscGameplayFunctions.MemPointDirectionalCheck(player, this, DigitalCodeLock.MEMPOINT_CENTER, DigitalCodeLock.MEMPOINT_INSIDE))
1330 return false;
1331 }
1332
1333 return true;
1334 }
1335
1336 override void OnWorkStop()
1337 {
1338 super.OnWorkStop();
1339
1340 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1341 {
1342 m_CodeLockComponent.StopAllTimers();
1343 m_CodeLockComponent.OnParentReset(false);
1344
1346 }
1347 }
1348
1349 override void OnWorkStart()
1350 {
1351 super.OnWorkStart();
1352
1353 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1354 {
1355 UpdateVisuals();
1356 }
1357 }
1358
1359 override void OnWork(float consumed_energy)
1360 {
1361 super.OnWork(consumed_energy);
1362
1363 if (g_Game.IsServer() || !g_Game.IsMultiplayer()) // single player or server side multiplayer
1364 {
1365 Battery9V battery = GetBattery();
1366 if (battery)
1367 {
1368 if (GetCompEM().IsWorking() && battery.GetCompEM().GetEnergy() <= 0)
1369 {
1370 GetCompEM().SwitchOff();
1371 m_CodeLockComponent.SetLockState(false, false);
1372 }
1373
1374 float energyPercent = GetBatteryEnergy();
1375 if (m_VisualManager.HasBatteryLevelChanged())
1376 {
1377 UpdateVisuals();
1378 SetSynchDirty();
1379 }
1380 }
1381 }
1382 }
1383
1385 void UnlockOnServer(EntityAI parent)
1386 {
1387 InventoryLocation inventoryLocation = new InventoryLocation;
1388 GetInventory().GetCurrentInventoryLocation(inventoryLocation);
1389
1390 //drop entity from attachment slot
1391 if (g_Game.IsMultiplayer())
1392 {
1393 parent.GetInventory().DropEntity(InventoryMode.SERVER, parent, this);
1394 }
1395 else
1396 {
1397 parent.GetInventory().DropEntity(InventoryMode.LOCAL, parent, this);
1398 }
1399
1400 vector groundPos;
1401 string slotName = InventorySlots.GetSlotName(inventoryLocation.GetSlot());
1402 if (parent.MemoryPointExists(slotName))
1403 {
1404 groundPos = parent.ModelToWorld(parent.GetMemoryPointPos(slotName));
1405 }
1406 else
1407 {
1408 groundPos = GetPosition();
1409 }
1410
1411 SetPosition(groundPos);
1412 PlaceOnSurface();
1413 }
1414
1416 {
1417 Battery9V battery = Battery9V.Cast(GetInventory().FindAttachment(Battery9V.SLOT_ID));
1418 return battery;
1419 }
1420
1421 bool CanBeLocked()
1422 {
1423 return true;
1424 }
1425
1426 bool CanBeUnlocked()
1427 {
1428 return true;
1429 }
1430
1431 bool CanSetCode()
1432 {
1433 return true;
1434 }
1435
1436 bool HasBattery()
1437 {
1438 return GetBattery() != null;
1439 }
1440
1441 bool NeedBattery()
1442 {
1443 return true;
1444 }
1445
1446 bool HasEnergy()
1447 {
1448 return GetCompEM().IsWorking();
1449 }
1450
1451 bool HasPIN()
1452 {
1453 return m_CodeLockComponent.HasPIN();
1454 }
1455
1456 string GetInputPIN()
1457 {
1458 return m_CodeLockComponent.GetInputPIN();
1459 }
1460
1461 string GetLockPIN()
1462 {
1463 return m_CodeLockComponent.GetLockPIN();
1464 }
1465
1466 void ResetPIN()
1467 {
1468 m_CodeLockComponent.ResetPIN();
1469 }
1470
1471 void SetLockState(bool state)
1472 {
1473 m_CodeLockComponent.SetLockState(state);
1474 }
1475
1477 {
1478 return m_CodeLockComponent;
1479 }
1480
1481 bool IsLocked()
1482 {
1483 return m_CodeLockComponent.IsLocked();
1484 }
1485
1487 {
1488 return m_CodeLockComponent.GetStage();
1489 }
1490
1492 {
1493 return m_CodeLockComponent.HasBruteForceProtection();
1494 }
1495
1497 {
1498 return m_CodeLockComponent.ShouldHandleBruteForce();
1499 }
1500
1501 int GetWrongCodeCount()
1502 {
1503 return m_CodeLockComponent.GetWrongCodeCount();
1504 }
1505
1507 {
1508 return m_CodeLockComponent.GetMinLockPINLength();
1509 }
1510
1511 bool GetReversedState()
1512 {
1513 return m_Reversed;
1514 }
1515
1518 bool IsPlayerOnBackside(PlayerBase player)
1519 {
1520 if (!player)
1521 return false;
1522
1523 if (!MemoryPointExists(MEMPOINT_CENTER) || !MemoryPointExists(MEMPOINT_INSIDE))
1524 return false;
1525
1526 bool playerOnInsideSide = MiscGameplayFunctions.MemPointDirectionalCheck(player, this, MEMPOINT_CENTER, MEMPOINT_INSIDE);
1527
1528 return playerOnInsideSide != GetReversedState();
1529 }
1530
1531 bool HasValidParent()
1532 {
1533 EntityAI hierarchyParent = GetHierarchyRoot();
1534 if (hierarchyParent.CanUseConstruction())
1535 return true;
1536
1537 if (BroadcastedBunker.Cast(hierarchyParent))
1538 return true;
1539
1540 return false;
1541 }
1542
1544 {
1545 return m_VisualManager;
1546 }
1547
1548 float GetBatteryEnergy()
1549 {
1550 Battery9V battery = GetBattery();
1551 if (!battery)
1552 return 0.0;
1553
1554 float energy = battery.GetCompEM().GetEnergy();
1555 float energyMax = battery.GetCompEM().GetEnergyMax();
1556
1557 if (energyMax <= 0)
1558 return 0.0;
1559
1560 return (energy / energyMax) * 100.0;
1561 }
1562
1563 void UpdateVisuals()
1564 {
1565 if (m_VisualManager)
1566 m_VisualManager.UpdateVisuals();
1567 }
1568
1570 {
1571 if (m_VisualManager)
1572 {
1573 m_VisualManager.MarkDirty();
1574 m_VisualManager.UpdateVisuals();
1575 }
1576 }
1577
1578 override void SetActions()
1579 {
1580 super.SetActions();
1581
1583 }
1584
1585 override void OnRPC(PlayerIdentity sender, int rpc_type,ParamsReadContext ctx)
1586 {
1587 super.OnRPC(sender, rpc_type, ctx);
1588
1589 m_CodeLockComponent.OnRPC(sender, rpc_type, ctx);
1590 }
1591
1592 override void OnStoreSave(ParamsWriteContext ctx)
1593 {
1594 super.OnStoreSave(ctx);
1595
1596 m_CodeLockComponent.OnStoreSave(ctx);
1597 }
1598
1599 override bool OnStoreLoad(ParamsReadContext ctx, int version)
1600 {
1601 if (!super.OnStoreLoad(ctx, version))
1602 return false;
1603
1604 if (!m_CodeLockComponent.OnStoreLoad(ctx, version))
1605 return false;
1606
1607 return true;
1608 }
1609
1610 override void AfterStoreLoad()
1611 {
1612 super.AfterStoreLoad();
1613
1614 if (HasBattery())
1615 {
1616 if (HasPIN())
1617 {
1618 m_CodeLockComponent.SetStage(CodeLockStage.NORMAL);
1619 }
1620 else
1621 {
1622 m_CodeLockComponent.SetStage(CodeLockStage.SETTING);
1623 }
1624 }
1625
1627 }
1628
1629 override void EEHealthLevelChanged(int oldLevel, int newLevel, string zone)
1630 {
1631 super.EEHealthLevelChanged(oldLevel,newLevel,zone);
1632
1634 }
1635
1636 override void OnVariablesSynchronized()
1637 {
1638 super.OnVariablesSynchronized();
1639
1641 {
1642 CodeLockUIAction uiAction = m_CodeLockComponent.GetUIAction();
1643 if (uiAction != CodeLockUIAction.NONE)
1644 {
1645 m_CodeLockComponent.CheckUIActionClient();
1646 }
1647 }
1648 }
1649
1650 override bool IsExternalLockType()
1651 {
1652 return true;
1653 }
1654
1655 override void InitItemSounds()
1656 {
1657 super.InitItemSounds();
1658
1659 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_ACCESS, CODELOCK_ACCESS_SOUND);
1660 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_LOCK, CODELOCK_LOCK_SOUND);
1661 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_UNLOCK, CODELOCK_UNLOCK_SOUND);
1662 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_ERROR, CODELOCK_ERROR_SOUND);
1663 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_CONFIRM_INPUT, CODELOCK_CONFIRM_SOUND);
1664 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_CLEAR_INPUT, CODELOCK_CLEAR_SOUND);
1665 GetItemSoundHandler().AddSound(SoundConstants.ITEM_DIGITAL_LOCK_DIGIT_INPUT, CODELOCK_DIGITS_SOUND);
1666 }
1667
1668 //Debug menu Spawn Ground Special
1669 override void OnDebugSpawn()
1670 {
1671 GetInventory().CreateInInventory("Battery9V");
1672 }
1673}
1674
1675class DigitalCodeLock_Bunker : DigitalCodeLock
1676{
1677 override void Init()
1678 {
1679 super.Init();
1680
1681 BunkerBroadcastConfigInstance bunkerConfig = CfgBunkerBroadcastHandler.GetData();
1682 int pinCodeLength = CodeLockComponent.MIN_LOCK_PIN_LENGTH;
1683
1684 if (bunkerConfig && bunkerConfig.bunkerSettings)
1685 {
1687 pinCodeLength = bunkerConfig.bunkerSettings.lockCodeLength;
1688 if (pinCodeLength > CodeLockComponent.MAX_LOCK_PIN_LENGTH)
1689 pinCodeLength = CodeLockComponent.MAX_LOCK_PIN_LENGTH;
1690 }
1691
1692 m_CodeLockComponent.SetMinimalPinCodeLength(pinCodeLength);
1693 }
1694
1695 override bool CanBeLocked()
1696 {
1697 return false;
1698 }
1699
1700 override bool CanSetCode()
1701 {
1702 return false;
1703 }
1704
1705 override bool CanDetachAttachment(EntityAI parent)
1706 {
1707 return false;
1708 }
1709
1711 override void OnWasDetached(EntityAI parent, int slot_id) {}
1712
1713 override bool NeedBattery()
1714 {
1715 return false;
1716 }
1717
1718 override bool HasBattery()
1719 {
1720 return true;
1721 }
1722
1723 override bool HasEnergy()
1724 {
1725 return true;
1726 }
1727
1728 override bool ShowZonesHealth()
1729 {
1730 return true;
1731 }
1732
1733 bool SetLockCode(string pin)
1734 {
1735 return m_CodeLockComponent.SetLockCode(pin);
1736 }
1737
1738 void Disable()
1739 {
1740 m_CodeLockComponent.SetStage(CodeLockStage.NONE);
1741 SetAnimationPhase(CodeLockVisualManager.CODELOCK_ANIMATED_GREEN_LIGHT, 1.0);
1742 SetAnimationPhase(CodeLockVisualManager.CODELOCK_ANIMATED_RED_LIGHT, 1.0);
1743 }
1744}
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