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

◆ OnWasAttached()

override void Init::OnWasAttached ( EntityAI parent,
int slot_id )
protected

Start energy consumption once code lock is attached with a battery and the lock parent can have a construction component

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

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