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

◆ GetBatteryEnergy()

float Init::GetBatteryEnergy ( )
protected

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

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