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

◆ OnStoreSave()

override void Init::OnStoreSave ( ParamsWriteContext ctx)
protected

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

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