Вкратце: В функции в 1 хуке добавляю в таблицу значение, функция в другом хуке это значение не видит (В консоли пишеться nil). Всё перепробовал, идей 0.
Не вкратце: Делаю свой gamemode, хотел отключить выпадение оружия из NPC. Нормальных способов сделать это не нашёл, поэтому начал делать через костыли. Идея была в том, что-б при спавне NPC добавлять его и его оружие в 2 таблицы, таким образом индекс NPC в 1 таблице будет равен индексу его оружия во 2 таблице и когда NPC умирает вместе с ним удалять его оружие. Но функция в хуке NPCkilled "не видит" содержимое этих таблиц.
Вот код:
local WeaponsListCustom = {} local OwnersListCustom = {}
hook.Add("OnNPCKilled", "NPCkilled", function(NPC, Attacker) -- Вызывается, когда умирает npc print("NPC killed") print(tostring(OwnersListCustom[1])) -- Здесь выводит nil for k,v in pairs(OwnersListCustom) do -- Ищет в таблице нужного if NPC == v then print("It's owner of weapon") WeaponsListCustom[k]:Remove() -- Удаляет его оружие end end end)
hook.Add("OnEntityCreated", "DisableDrop", function(Entity) -- Вызывается, когда создаётся ЛЮБОЕ entity if Entity:IsWeapon() and Entity:GetOwner():IsNPC() and IsValid(Entity) then -- Проверяет, является ли entity оружием и является ли его владелец NPC print("Ent is weapon and owner is NPC") table.insert(WeaponsListCustom, Entity) -- Добавляют NPC и его оружие в конец таблиц table.insert(OwnersListCustom, Entity:GetOwner()) print(tostring(OwnersListCustom[1])) -- Здесь нормально выводит NPC end end)
Я хз, как нормально форматировать код, простите :c