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

◆ NeedBattery()

override bool NeedBattery ( )
protected

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

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