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

◆ CanSetCode()

override bool CanSetCode ( )
protected

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

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