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

◆ GetCodeLockComponent()

CodeLockComponent Init::GetCodeLockComponent ( )
protected

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

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