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

◆ SetLockState()

void Init::SetLockState ( bool state)
protected

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

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