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

◆ InitItemSounds()

override void Init::InitItemSounds ( )
protected

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

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