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

◆ ResetPIN()

void Init::ResetPIN ( )
protected

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

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

Используется в OnParentReset().