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

◆ HasEnergy()

override bool HasEnergy ( )
protected

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

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