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

◆ HasBattery()

override bool HasBattery ( )
protected

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

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