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

◆ HasPIN()

bool Init::HasPIN ( )
protected

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

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