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

◆ IsLocked()

bool Init::IsLocked ( )
protected

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

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