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

◆ OnWorkStart()

override void Init::OnWorkStart ( )
protected

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

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