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

◆ GetLockPIN()

string Init::GetLockPIN ( )
protected

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

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