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

◆ CanBeLocked()

override bool CanBeLocked ( )
protected

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

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