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

◆ OnRPC()

override void Init::OnRPC ( PlayerIdentity sender,
int rpc_type,
ParamsReadContext ctx )
protected

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

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