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

◆ HasBruteForceProtection()

bool Init::HasBruteForceProtection ( )
protected

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

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