LUA скрипт Для тех, кто не знает как сделать меню менеджер

Начинающий
Статус
Оффлайн
Регистрация
30 Ноя 2020
Сообщения
80
Реакции[?]
18
Поинты[?]
2K
пытался все просто и понятно обьяснить, condition = при каком эелементе будет работать другом элемент
by Ambeim Team (noad)

code_language.lua:
local menu_manager_c = {}

menu_manager_c.elemets = {}; -- элементы которые будем гетать
menu_manager_c.config = {}; -- конфиг если будем експортировать

function menu_manager_c.update()
    for k, v in pairs(menu_manager_c.elemets) do
        if type(v.condition) == 'function' then
            v.element:set_visible(v.condition())
        else
            v.element:set_visible(v.condition)
        end
    end
end

function menu_manager_c.new(element, condition, config, callback)
    assert(element ~= nil, 4, 'Cannot find element item.')

    condition = condition or true;
    config = config or false;
    callback = callback or function() end; -- можем дать функцию элементу

    callbacks.register('paint', menu_manager_c.update) -- or events.render:set(menu_manager_c.update)

    table.insert(menu_manager_c.elemets, {element = element, condition = condition});

    if config then
        table.insert(menu_manager_c.config, element)
    end;

    menu_manager_c.update(); -- обновляем эелементы

    return element
end
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
30 Ноя 2020
Сообщения
80
Реакции[?]
18
Поинты[?]
2K
Пользователь
Статус
Оффлайн
Регистрация
2 Май 2022
Сообщения
346
Реакции[?]
46
Поинты[?]
24K
добавлю
code_language.lua:
local callbacks = {}
local safecall = function(name, report, f)
    return function(...)
        local s, ret = pcall(f, ...)
        if not s then
            local retmessage = "safe call failed [" .. name .. "] -> " .. ret
            if report then
                print_raw(retmessage)
            end
            return false, retmessage
        else
            return ret, s
        end
    end
end
callbacks.register = function(event, name, fn)
    events[event]:set(safecall(name, true, fn))
end
 
Сверху Снизу