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

◆ GetReversedState()

bool Init::GetReversedState ( )
protected

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

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