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

◆ GetStage()

CodeLockStage Init::GetStage ( )
protected

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

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