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

◆ ForceFullVisualsUpdate()

void Init::ForceFullVisualsUpdate ( )
protected

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

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