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

◆ OnVariablesSynchronized()

override void Init::OnVariablesSynchronized ( )
protected

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

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