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

◆ SetActions()

override void Init::SetActions ( )
protected

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

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