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

◆ HasValidParent()

bool Init::HasValidParent ( )
protected

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

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