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

◆ OnWorkStop()

override void Init::OnWorkStop ( )
protected

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

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