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

◆ UnlockOnServer()

void Init::UnlockOnServer ( EntityAI parent)
protected

Unlock AND drop.

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

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