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

◆ GetInputPIN()

string Init::GetInputPIN ( )
protected

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

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