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

◆ GetBattery()

Battery9V Init::GetBattery ( )
protected

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

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

Используется в Car::CheckOperationalRequirements(), Car::OnBeforeLightOn(), Car::OnEngineStart(), Car::OnEngineStop() и Car::OnUpdate().