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

◆ OnStoreLoad()

override bool Init::OnStoreLoad ( ParamsReadContext ctx,
int version )
protected

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

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