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

◆ EEHealthLevelChanged()

override void Init::EEHealthLevelChanged ( int oldLevel,
int newLevel,
string zone )
protected

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

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