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

◆ OnDebugSpawn()

override void Init::OnDebugSpawn ( )
protected

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

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