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

◆ SetDoorInfoFromSlot()

void Init::SetDoorInfoFromSlot ( BuildingBase buildingBase,
string slotName )
protected

Get door index of the door this lock can manipulate fo ther attached lock based on related attachment slot from AdditionalDoorInfosHolder data

Check for door part rotation

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

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