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

◆ CanBeUnlocked()

bool Init::CanBeUnlocked ( )
protected

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

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