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

◆ IsPlayerOnBackside()

bool Init::IsPlayerOnBackside ( PlayerBase player)
protected

Checks whether the given player is standing on the physical (non-keypad) side of the lock Fails closed when the required memory points are not available

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

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