LUA скрипт ✦ pui – perfect user interface

Дизайнер
Дизайнер
Статус
Оффлайн
Регистрация
18 Авг 2017
Сообщения
1,924
Реакции
2,244
✦ pui – perfect user interface


pui - это вторая версия моей прошлой библиотеки (aui). это совершенно другой опыт использования стандартной библиотеки. aui был полностью рекоднут, существенно улучшен, добавлен множеством фич и наконец, переименован в "идеальный пользовательский интерфейс".



главные особенности
  • встроенная CFG-система.
  • система "зависимостей" – идеально для создания кастомных табов.
  • полная совместимость с дефолтным ui (смело можете делать так: local ui = require "neverlose/pui").
  • всё, что вам потребуется, можно объявить при вызове самого элемента.
  • сильно улучшенные строки – добавляйте акцентные цвета, иконки, градиенты из одной строки.
  • оптимизация – используйте значения элементов не вызывая тяжелые функции.
  • автоматический подгон текстур под DPI скейл
  • и многое другое...

конфиг-система
хотите добавить пресеты или клауд кфг в свой скрипт? pui максимально облегчил вам задачу.
для начала создайте таблицу с вашими элементами:
стандартная таблица элементов:
Expand Collapse Copy
local menu = {
    rage = {
        double_tap = pui.switch("rage", "double tap", false, nil, function (group)
            return {
                ticks = group:slider("ticks", 0, 14, 12)
            }
        end)
    },
    visuals = {
        night_mode = pui.slider("visuals", "night mode", 0, 100, 50, nil, nil, "tooltip", color())
    },
    antiaim = {
        enable = pui.switch("anti-aim", "enable aa"),
        default = {
            yaw = pui.combo("anti-aim", "yaw", {"at target", "local view"}, nil, function (group)
                return {
                    backstab = group:switch("avoid backstab")
                }
            end)
        }
    }
}
и запустим кфг систему:
code_language.lua:
Expand Collapse Copy
pui.setup(menu)
(также вы можете сделать все сразу:)
code_language.lua:
Expand Collapse Copy
local menu = pui.setup({
    ...
})



самое сложное позади. теперь вы можете использовать кфг-систему.


давайте сохраним наши контролы:
сохраняем и json'им конфиг:
Expand Collapse Copy
local raw_config = pui.save() -- возвращает сырую таблицу с элементами
local config = json.stringify(raw_config) -- таким образом создали копируемый кфг, можно еще накинуть base64
и загрузим:
загружаем:
Expand Collapse Copy
pui.load(json.parse(config)) -- не забудьте расшифровать свой кфг



как сохранить / загрузить определенную область конфига?
иногда вам нужна только часть конфига, например АА.

все просто, добавьте путь в аргументы save или load. конфиги в любом случае будут совместимы друг с другом:
области конфига::
Expand Collapse Copy
local config = pui.save("antiaim", "default")
pui.load(config)

-- или
local config = pui.save()
pui.load(config, "antiaim", "default")

гибкая конфиг-система позволяет вам сохранять и загружать ваши значения (или область значений) без лишних морок. так же, (если вы не измените названия переменных или сами элементы), конфиг будет совместим с другими версиями вашего скрипта.
улучшенные строки
как я уже говорил, pui обладает своей очень и очень удобной системой строк.
вот пример:
тест акцента, сброса цвета, иконок и градиентов.:
Expand Collapse Copy
local group = pui.create("\f<cog>  Settings")

group:label("Testing \vaccent color. \rFast reset of a color.")
group:label("Testing icons. \f<cog>, \v\f<star>\r, \f<heading>")
group:label("Testing gradient. \bFF0000FF\b0000FFFF[a beautiful linear gradient]. not this.")
group:label("Testing gradient. \bFF0000FF\b0000FFFF\b00FF00FF[a beautiful three-way gradient]")
group:label("Testing gradient. \bFF0000FF\b0000FFFF\b00FF00FF\bFFFFFFFF[a beautiful four-way gradient]")
и вот результат:
1667310813990.png


теперь подробнее об этом.
  • \r - сброс цвета. то же самое, что и \aDEFAULT, но короче.
  • \v - акцентный цвет. берется из темы чита, а точнее link-active
  • \f<иконка> - иконка. если не будет найдена, выдаст ошибку. оптимизировано слабыми таблицами.
  • \bЦВЕТ\bЦВЕТ...[строка] - градиент. создайте сколько угодно "\bЦВЕТОВ", и закройте это "[строкой]"
я не рекомендую использовать ничего из этого в самих значениях контролов, например внутри комбобоксов. если ТАК хочется, то на здоровье, они работают. чтобы set'нуть цветастое значения, можете использовать pui.string(s).
совместимость и гибкость
вот несколько примеров использования pui:
Код:
Expand Collapse Copy
local group = pui.create("group")
group:label("label")
pui.label("group", "label")

local tab_group = pui.create("tab", "group")
tab_group:label("label")
pui.label({"tab", "group"}, "label")

-- вы не можете использовать дефолтные UI группы с методами PUI
local group = ui.create("group")
-- НЕПРАВИЛЬНО:
group:label("label") -- создастся обычный лейбл
-- ПРАВИЛЬНО:
pui.label(group, "label") -- создастся PUI лейбл

как видите, комбинаций много.

вы можете использовать pui как обычный ui, внедрить его в свой скрипт, не изменяя кода
local ui = require "neverlose/pui"
должно сработать. тесты будут проведены чуть позже.
система зависимостей
element:depend(...) - это функция, позволяющая вам создавать визуальные зависимости с другими элементами.
таким образом, вы можете создать кастомную таб-систему.

вот небольшой пример:
label:depend:
Expand Collapse Copy
local group = pui.create("group", "ff", 1)

local switch = group:switch "Switch"
local combo = group:combo("Combo", {"1", "2", "3"})
local label = group:label "Visible!"

label:depend({switch, true}, {combo, "2"})
-- краткая запись: label:depend(switch, {combo, "2"}
лейбл "Visible!" покажется только если включен switch и в combo стоит 2:
1667312402351.png
1667312408435.png


таким образом, вы можете с легкостью управлять видимостью своих элементов, без лишнего кода.

это не весь список возможностей pui. исходный код библиотеки открытый, вы можете изучить его.
вот небольшой example-скрипт:
Пожалуйста, авторизуйтесь для просмотра ссылки.


используя pui, вы сможете сократить код UI своего скрипта почти в 3 раза, с удобством и удовольствием сможете добавлять новые фичи, создавать красивые меню.


ссылка на библиотеку
Пожалуйста, авторизуйтесь для просмотра ссылки.

документация
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Последнее редактирование:
✦ pui – perfect user interface


pui - это вторая версия моей прошлой библиотеки (aui). это совершенно другой опыт использования стандартной библиотеки. aui был полностью рекоднут, существенно улучшен, добавлен множеством фич и наконец, переименован в "идеальный пользовательский интерфейс".



главные особенности
  • встроенная CFG-система.
  • система "зависимостей" – идеально для создания кастомных табов.
  • полная совместимость с дефолтным ui (смело можете делать так: local ui = require "neverlose/pui").
  • всё, что вам потребуется, можно объявить при вызове самого элемента.
  • сильно улучшенные строки – добавляйте акцентные цвета, иконки, градиенты из одной строки.
  • оптимизация – используйте значения элементов не вызывая тяжелые функции.
  • и многое другое...

конфиг-система
хотите добавить пресеты или клауд кфг в свой скрипт? pui максимально облегчил вам задачу.
для начала создайте таблицу с вашими элементами:
стандартная таблица элементов:
Expand Collapse Copy
local menu = {
    rage = {
        double_tap = pui.switch("rage", "double tap", false, nil, function (group)
            return {
                ticks = group:slider("ticks", 0, 14, 12)
            }
        end)
    },
    visuals = {
        night_mode = pui.slider("visuals", "night mode", 0, 100, 50, nil, nil, "tooltip", color())
    },
    antiaim = {
        enable = pui.switch("anti-aim", "enable aa"),
        default = {
            yaw = pui.combo("anti-aim", "yaw", {"at target", "local view"}, nil, function (group)
                return {
                    backstab = group:switch("avoid backstab")
                }
            end)
        }
    }
}
и запустим кфг систему:
code_language.lua:
Expand Collapse Copy
pui.setup(menu)
(также вы можете сделать все сразу:)
code_language.lua:
Expand Collapse Copy
local menu = pui.setup({
    ...
})



самое сложное позади. теперь вы можете использовать кфг-систему.


давайте сохраним наши контролы:
сохраняем и json'им конфиг'им конфиг:
Expand Collapse Copy
local raw_config = pui.save() -- возвращает сырую таблицу с элементами
local config = json.stringify(raw_config) -- таким образом создали копируемый кфг, можно еще накинуть base64
и загрузим:
загружаем:
Expand Collapse Copy
pui.load(json.parse(config)) -- не забудьте расшифровать свой кфг



как сохранить / загрузить определенную область конфига?
иногда вам нужна только часть конфига, например АА.

все просто, добавьте путь в аргументы save или load. конфиги в любом случае будут совместимы друг с другом:
области конфига::
Expand Collapse Copy
local config = pui.save("antiaim", "default")
pui.load(config)

-- или
local config = pui.save()
pui.load(config, "antiaim", "default")

гибкая конфиг-система позволяет вам сохранять и загружать ваши значения (или область значений) без лишних морок. так же, (если вы не измените названия переменных или сами элементы), конфиг будет совместим с другими версиями вашего скрипта.
улучшенные строки
как я уже говорил, pui обладает своей очень и очень удобной системой строк.
вот пример:
тест акцента, сброса цвета, иконок и градиентов.:
Expand Collapse Copy
local group = pui.create("\f<cog>  Settings")

group:label("Testing \vaccent color. \rFast reset of a color.")
group:label("Testing icons. \f<cog>, \v\f<star>\r, \f<heading>")
group:label("Testing gradient. \bFF0000FF\b0000FFFF[a beatiful linear gradient]. not this.")
group:label("Testing gradient. \bFF0000FF\b0000FFFF\b00FF00FF[a beatiful three-way gradient]")
group:label("Testing gradient. \bFF0000FF\b0000FFFF\b00FF00FF\bFFFFFFFF[a beatiful four-way gradient]")
и вот результат:
Посмотреть вложение 226346

теперь подробнее об этом.
  • \r - сброс цвета. то же самое, что и \aDEFAULT, но короче.
  • \v - акцентный цвет. берется из темы чита, а точнее link-active
  • \f<иконка> - иконка. если не будет найдена, выдаст ошибку. оптимизировано слабыми таблицами.
  • \bЦВЕТ\bЦВЕТ...[строка] - градиент. создайте сколько угодно "\bЦВЕТОВ", и закройте это "[строкой]"
я не рекомендую использовать ничего из этого в самих значениях контролов, например внутри комбобоксов. если ТАК хочется, то на здоровье, они работают. чтобы set'нуть цветастое значения, можете использовать qui.string(s).
совместимость и гибкость
вот несколько примеров использования pui:
Код:
Expand Collapse Copy
local group = pui.create("group")
group:label("label")
pui.label("group", "label")

local tab_group = pui.create("tab", "group")
tab_group:label("label")
pui.label({"tab", "group"}, "label")

-- вы не можете использовать дефолтные UI группы с методами PUI
local group = ui.create("group")
-- НЕПРАВИЛЬНО:
group:label("label") -- создастся обычный лейбл
-- ПРАВИЛЬНО:
pui.label(group, "label") -- создастся PUI лейбл

как видите, комбинаций много.

вы можете использовать pui как обычный ui, внедрить его в свой скрипт, не изменяя кода
local ui = require "neverlose/pui"
должно сработать. тесты будут проведены чуть позже.
система зависимостей
element:depend(...) - это функция, позволяющая вам создавать визуальные зависимости с другими элементами.
таким образом, вы можете создать кастомную таб-систему.

вот небольшой пример:
label:depend:
Expand Collapse Copy
local group = pui.create("group", "ff", 1)

local switch = group:switch "Switch"
local combo = group:combo("Combo", {"1", "2", "3"})
local label = group:label "Visible!"

label:depend({switch, true}, {combo, "2"})
-- краткая запись: label:depend(switch, {combo, "2"}
лейбл "Visible!" покажется только если включен switch и в combo стоит 2:
Посмотреть вложение 226348Посмотреть вложение 226349

таким образом, вы можете с легкостью управлять видимостью своих элементов, без лишнего кода.

это не весь список возможностей pui. исходный код библиотеки открытый, вы можете изучить его.
вот небольшой example-скрипт:
Пожалуйста, авторизуйтесь для просмотра ссылки.


используя pui, вы сможете сократить код UI своего скрипта почти в 3 раза, с удобством и удовольствием сможете добавлять новые фичи, создавать красивые меню.

а, и да, первый кто полностью реализует pui в своей луашке, получит hysteria.lua бесплатно.
свяжитесь со мной, если вы это смогли сделать.

система зависимостей
Пожалуйста, авторизуйтесь для просмотра ссылки.
(на апруве)
Садись 5, всем остальным два! Пересдача через неделю.
 
✦ pui – perfect user interface


pui - это вторая версия моей прошлой библиотеки (aui). это совершенно другой опыт использования стандартной библиотеки. aui был полностью рекоднут, существенно улучшен, добавлен множеством фич и наконец, переименован в "идеальный пользовательский интерфейс".



главные особенности
  • встроенная CFG-система.
  • система "зависимостей" – идеально для создания кастомных табов.
  • полная совместимость с дефолтным ui (смело можете делать так: local ui = require "neverlose/pui").
  • всё, что вам потребуется, можно объявить при вызове самого элемента.
  • сильно улучшенные строки – добавляйте акцентные цвета, иконки, градиенты из одной строки.
  • оптимизация – используйте значения элементов не вызывая тяжелые функции.
  • и многое другое...

конфиг-система
хотите добавить пресеты или клауд кфг в свой скрипт? pui максимально облегчил вам задачу.
для начала создайте таблицу с вашими элементами:
стандартная таблица элементов:
Expand Collapse Copy
local menu = {
    rage = {
        double_tap = pui.switch("rage", "double tap", false, nil, function (group)
            return {
                ticks = group:slider("ticks", 0, 14, 12)
            }
        end)
    },
    visuals = {
        night_mode = pui.slider("visuals", "night mode", 0, 100, 50, nil, nil, "tooltip", color())
    },
    antiaim = {
        enable = pui.switch("anti-aim", "enable aa"),
        default = {
            yaw = pui.combo("anti-aim", "yaw", {"at target", "local view"}, nil, function (group)
                return {
                    backstab = group:switch("avoid backstab")
                }
            end)
        }
    }
}
и запустим кфг систему:
code_language.lua:
Expand Collapse Copy
pui.setup(menu)
(также вы можете сделать все сразу:)
code_language.lua:
Expand Collapse Copy
local menu = pui.setup({
    ...
})



самое сложное позади. теперь вы можете использовать кфг-систему.


давайте сохраним наши контролы:
сохраняем и json'им конфиг'им конфиг:
Expand Collapse Copy
local raw_config = pui.save() -- возвращает сырую таблицу с элементами
local config = json.stringify(raw_config) -- таким образом создали копируемый кфг, можно еще накинуть base64
и загрузим:
загружаем:
Expand Collapse Copy
pui.load(json.parse(config)) -- не забудьте расшифровать свой кфг



как сохранить / загрузить определенную область конфига?
иногда вам нужна только часть конфига, например АА.

все просто, добавьте путь в аргументы save или load. конфиги в любом случае будут совместимы друг с другом:
области конфига::
Expand Collapse Copy
local config = pui.save("antiaim", "default")
pui.load(config)

-- или
local config = pui.save()
pui.load(config, "antiaim", "default")

гибкая конфиг-система позволяет вам сохранять и загружать ваши значения (или область значений) без лишних морок. так же, (если вы не измените названия переменных или сами элементы), конфиг будет совместим с другими версиями вашего скрипта.
улучшенные строки
как я уже говорил, pui обладает своей очень и очень удобной системой строк.
вот пример:
тест акцента, сброса цвета, иконок и градиентов.:
Expand Collapse Copy
local group = pui.create("\f<cog>  Settings")

group:label("Testing \vaccent color. \rFast reset of a color.")
group:label("Testing icons. \f<cog>, \v\f<star>\r, \f<heading>")
group:label("Testing gradient. \bFF0000FF\b0000FFFF[a beatiful linear gradient]. not this.")
group:label("Testing gradient. \bFF0000FF\b0000FFFF\b00FF00FF[a beatiful three-way gradient]")
group:label("Testing gradient. \bFF0000FF\b0000FFFF\b00FF00FF\bFFFFFFFF[a beatiful four-way gradient]")
и вот результат:
Посмотреть вложение 226346

теперь подробнее об этом.
  • \r - сброс цвета. то же самое, что и \aDEFAULT, но короче.
  • \v - акцентный цвет. берется из темы чита, а точнее link-active
  • \f<иконка> - иконка. если не будет найдена, выдаст ошибку. оптимизировано слабыми таблицами.
  • \bЦВЕТ\bЦВЕТ...[строка] - градиент. создайте сколько угодно "\bЦВЕТОВ", и закройте это "[строкой]"
я не рекомендую использовать ничего из этого в самих значениях контролов, например внутри комбобоксов. если ТАК хочется, то на здоровье, они работают. чтобы set'нуть цветастое значения, можете использовать qui.string(s).
совместимость и гибкость
вот несколько примеров использования pui:
Код:
Expand Collapse Copy
local group = pui.create("group")
group:label("label")
pui.label("group", "label")

local tab_group = pui.create("tab", "group")
tab_group:label("label")
pui.label({"tab", "group"}, "label")

-- вы не можете использовать дефолтные UI группы с методами PUI
local group = ui.create("group")
-- НЕПРАВИЛЬНО:
group:label("label") -- создастся обычный лейбл
-- ПРАВИЛЬНО:
pui.label(group, "label") -- создастся PUI лейбл

как видите, комбинаций много.

вы можете использовать pui как обычный ui, внедрить его в свой скрипт, не изменяя кода
local ui = require "neverlose/pui"
должно сработать. тесты будут проведены чуть позже.
система зависимостей
element:depend(...) - это функция, позволяющая вам создавать визуальные зависимости с другими элементами.
таким образом, вы можете создать кастомную таб-систему.

вот небольшой пример:
label:depend:
Expand Collapse Copy
local group = pui.create("group", "ff", 1)

local switch = group:switch "Switch"
local combo = group:combo("Combo", {"1", "2", "3"})
local label = group:label "Visible!"

label:depend({switch, true}, {combo, "2"})
-- краткая запись: label:depend(switch, {combo, "2"}
лейбл "Visible!" покажется только если включен switch и в combo стоит 2:
Посмотреть вложение 226348Посмотреть вложение 226349

таким образом, вы можете с легкостью управлять видимостью своих элементов, без лишнего кода.

это не весь список возможностей pui. исходный код библиотеки открытый, вы можете изучить его.
вот небольшой example-скрипт:
Пожалуйста, авторизуйтесь для просмотра ссылки.


используя pui, вы сможете сократить код UI своего скрипта почти в 3 раза, с удобством и удовольствием сможете добавлять новые фичи, создавать красивые меню.

а, и да, первый кто полностью реализует pui в своей луашке, получит hysteria.lua бесплатно.
свяжитесь со мной, если вы это смогли сделать.

система зависимостей
Пожалуйста, авторизуйтесь для просмотра ссылки.
(на апруве)
Молодец, мечта любого.
 
✦ pui – perfect user interface


pui - это вторая версия моей прошлой библиотеки (aui). это совершенно другой опыт использования стандартной библиотеки. aui был полностью рекоднут, существенно улучшен, добавлен множеством фич и наконец, переименован в "идеальный пользовательский интерфейс".



главные особенности
  • встроенная CFG-система.
  • система "зависимостей" – идеально для создания кастомных табов.
  • полная совместимость с дефолтным ui (смело можете делать так: local ui = require "neverlose/pui").
  • всё, что вам потребуется, можно объявить при вызове самого элемента.
  • сильно улучшенные строки – добавляйте акцентные цвета, иконки, градиенты из одной строки.
  • оптимизация – используйте значения элементов не вызывая тяжелые функции.
  • и многое другое...

конфиг-система
хотите добавить пресеты или клауд кфг в свой скрипт? pui максимально облегчил вам задачу.
для начала создайте таблицу с вашими элементами:
стандартная таблица элементов:
Expand Collapse Copy
local menu = {
    rage = {
        double_tap = pui.switch("rage", "double tap", false, nil, function (group)
            return {
                ticks = group:slider("ticks", 0, 14, 12)
            }
        end)
    },
    visuals = {
        night_mode = pui.slider("visuals", "night mode", 0, 100, 50, nil, nil, "tooltip", color())
    },
    antiaim = {
        enable = pui.switch("anti-aim", "enable aa"),
        default = {
            yaw = pui.combo("anti-aim", "yaw", {"at target", "local view"}, nil, function (group)
                return {
                    backstab = group:switch("avoid backstab")
                }
            end)
        }
    }
}
и запустим кфг систему:
code_language.lua:
Expand Collapse Copy
pui.setup(menu)
(также вы можете сделать все сразу:)
code_language.lua:
Expand Collapse Copy
local menu = pui.setup({
    ...
})



самое сложное позади. теперь вы можете использовать кфг-систему.


давайте сохраним наши контролы:
сохраняем и json'им конфиг'им конфиг:
Expand Collapse Copy
local raw_config = pui.save() -- возвращает сырую таблицу с элементами
local config = json.stringify(raw_config) -- таким образом создали копируемый кфг, можно еще накинуть base64
и загрузим:
загружаем:
Expand Collapse Copy
pui.load(json.parse(config)) -- не забудьте расшифровать свой кфг



как сохранить / загрузить определенную область конфига?
иногда вам нужна только часть конфига, например АА.

все просто, добавьте путь в аргументы save или load. конфиги в любом случае будут совместимы друг с другом:
области конфига::
Expand Collapse Copy
local config = pui.save("antiaim", "default")
pui.load(config)

-- или
local config = pui.save()
pui.load(config, "antiaim", "default")

гибкая конфиг-система позволяет вам сохранять и загружать ваши значения (или область значений) без лишних морок. так же, (если вы не измените названия переменных или сами элементы), конфиг будет совместим с другими версиями вашего скрипта.
улучшенные строки
как я уже говорил, pui обладает своей очень и очень удобной системой строк.
вот пример:
тест акцента, сброса цвета, иконок и градиентов.:
Expand Collapse Copy
local group = pui.create("\f<cog>  Settings")

group:label("Testing \vaccent color. \rFast reset of a color.")
group:label("Testing icons. \f<cog>, \v\f<star>\r, \f<heading>")
group:label("Testing gradient. \bFF0000FF\b0000FFFF[a beatiful linear gradient]. not this.")
group:label("Testing gradient. \bFF0000FF\b0000FFFF\b00FF00FF[a beatiful three-way gradient]")
group:label("Testing gradient. \bFF0000FF\b0000FFFF\b00FF00FF\bFFFFFFFF[a beatiful four-way gradient]")
и вот результат:
Посмотреть вложение 226346

теперь подробнее об этом.
  • \r - сброс цвета. то же самое, что и \aDEFAULT, но короче.
  • \v - акцентный цвет. берется из темы чита, а точнее link-active
  • \f<иконка> - иконка. если не будет найдена, выдаст ошибку. оптимизировано слабыми таблицами.
  • \bЦВЕТ\bЦВЕТ...[строка] - градиент. создайте сколько угодно "\bЦВЕТОВ", и закройте это "[строкой]"
я не рекомендую использовать ничего из этого в самих значениях контролов, например внутри комбобоксов. если ТАК хочется, то на здоровье, они работают. чтобы set'нуть цветастое значения, можете использовать qui.string(s).
совместимость и гибкость
вот несколько примеров использования pui:
Код:
Expand Collapse Copy
local group = pui.create("group")
group:label("label")
pui.label("group", "label")

local tab_group = pui.create("tab", "group")
tab_group:label("label")
pui.label({"tab", "group"}, "label")

-- вы не можете использовать дефолтные UI группы с методами PUI
local group = ui.create("group")
-- НЕПРАВИЛЬНО:
group:label("label") -- создастся обычный лейбл
-- ПРАВИЛЬНО:
pui.label(group, "label") -- создастся PUI лейбл

как видите, комбинаций много.

вы можете использовать pui как обычный ui, внедрить его в свой скрипт, не изменяя кода
local ui = require "neverlose/pui"
должно сработать. тесты будут проведены чуть позже.
система зависимостей
element:depend(...) - это функция, позволяющая вам создавать визуальные зависимости с другими элементами.
таким образом, вы можете создать кастомную таб-систему.

вот небольшой пример:
label:depend:
Expand Collapse Copy
local group = pui.create("group", "ff", 1)

local switch = group:switch "Switch"
local combo = group:combo("Combo", {"1", "2", "3"})
local label = group:label "Visible!"

label:depend({switch, true}, {combo, "2"})
-- краткая запись: label:depend(switch, {combo, "2"}
лейбл "Visible!" покажется только если включен switch и в combo стоит 2:
Посмотреть вложение 226348Посмотреть вложение 226349

таким образом, вы можете с легкостью управлять видимостью своих элементов, без лишнего кода.

это не весь список возможностей pui. исходный код библиотеки открытый, вы можете изучить его.
вот небольшой example-скрипт:
Пожалуйста, авторизуйтесь для просмотра ссылки.


используя pui, вы сможете сократить код UI своего скрипта почти в 3 раза, с удобством и удовольствием сможете добавлять новые фичи, создавать красивые меню.

а, и да, первый кто полностью реализует pui в своем корде, получит hysteria.lua бесплатно.
свяжитесь со мной, если вы это смогли сделать.

ссылка на библиотеку
Пожалуйста, авторизуйтесь для просмотра ссылки.
(на апруве)
ахуенно!
 
очень крутая библиотека. жаль что в скриптинге на хвх в основном остались только пастеры, и вряд-ли кто-то будет это использовать, потому что просто не разберутся как она работает
 
вахуи, как всегда топ
 
круто вышло, но насчет конфигов: почему бы сразу не возращать строки, которые уже будут преобразованные в json вид и накинутые base64?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
✦ pui – perfect user interface


pui - это вторая версия моей прошлой библиотеки (aui). это совершенно другой опыт использования стандартной библиотеки. aui был полностью рекоднут, существенно улучшен, добавлен множеством фич и наконец, переименован в "идеальный пользовательский интерфейс".



главные особенности
  • встроенная CFG-система.
  • система "зависимостей" – идеально для создания кастомных табов.
  • полная совместимость с дефолтным ui (смело можете делать так: local ui = require "neverlose/pui").
  • всё, что вам потребуется, можно объявить при вызове самого элемента.
  • сильно улучшенные строки – добавляйте акцентные цвета, иконки, градиенты из одной строки.
  • оптимизация – используйте значения элементов не вызывая тяжелые функции.
  • и многое другое...

конфиг-система
хотите добавить пресеты или клауд кфг в свой скрипт? pui максимально облегчил вам задачу.
для начала создайте таблицу с вашими элементами:
стандартная таблица элементов:
Expand Collapse Copy
local menu = {
    rage = {
        double_tap = pui.switch("rage", "double tap", false, nil, function (group)
            return {
                ticks = group:slider("ticks", 0, 14, 12)
            }
        end)
    },
    visuals = {
        night_mode = pui.slider("visuals", "night mode", 0, 100, 50, nil, nil, "tooltip", color())
    },
    antiaim = {
        enable = pui.switch("anti-aim", "enable aa"),
        default = {
            yaw = pui.combo("anti-aim", "yaw", {"at target", "local view"}, nil, function (group)
                return {
                    backstab = group:switch("avoid backstab")
                }
            end)
        }
    }
}
и запустим кфг систему:
code_language.lua:
Expand Collapse Copy
pui.setup(menu)
(также вы можете сделать все сразу:)
code_language.lua:
Expand Collapse Copy
local menu = pui.setup({
    ...
})



самое сложное позади. теперь вы можете использовать кфг-систему.


давайте сохраним наши контролы:
сохраняем и json'им конфиг'им конфиг:
Expand Collapse Copy
local raw_config = pui.save() -- возвращает сырую таблицу с элементами
local config = json.stringify(raw_config) -- таким образом создали копируемый кфг, можно еще накинуть base64
и загрузим:
загружаем:
Expand Collapse Copy
pui.load(json.parse(config)) -- не забудьте расшифровать свой кфг



как сохранить / загрузить определенную область конфига?
иногда вам нужна только часть конфига, например АА.

все просто, добавьте путь в аргументы save или load. конфиги в любом случае будут совместимы друг с другом:
области конфига::
Expand Collapse Copy
local config = pui.save("antiaim", "default")
pui.load(config)

-- или
local config = pui.save()
pui.load(config, "antiaim", "default")

гибкая конфиг-система позволяет вам сохранять и загружать ваши значения (или область значений) без лишних морок. так же, (если вы не измените названия переменных или сами элементы), конфиг будет совместим с другими версиями вашего скрипта.
улучшенные строки
как я уже говорил, pui обладает своей очень и очень удобной системой строк.
вот пример:
тест акцента, сброса цвета, иконок и градиентов.:
Expand Collapse Copy
local group = pui.create("\f<cog>  Settings")

group:label("Testing \vaccent color. \rFast reset of a color.")
group:label("Testing icons. \f<cog>, \v\f<star>\r, \f<heading>")
group:label("Testing gradient. \bFF0000FF\b0000FFFF[a beatiful linear gradient]. not this.")
group:label("Testing gradient. \bFF0000FF\b0000FFFF\b00FF00FF[a beatiful three-way gradient]")
group:label("Testing gradient. \bFF0000FF\b0000FFFF\b00FF00FF\bFFFFFFFF[a beatiful four-way gradient]")
и вот результат:
Посмотреть вложение 226346

теперь подробнее об этом.
  • \r - сброс цвета. то же самое, что и \aDEFAULT, но короче.
  • \v - акцентный цвет. берется из темы чита, а точнее link-active
  • \f<иконка> - иконка. если не будет найдена, выдаст ошибку. оптимизировано слабыми таблицами.
  • \bЦВЕТ\bЦВЕТ...[строка] - градиент. создайте сколько угодно "\bЦВЕТОВ", и закройте это "[строкой]"
я не рекомендую использовать ничего из этого в самих значениях контролов, например внутри комбобоксов. если ТАК хочется, то на здоровье, они работают. чтобы set'нуть цветастое значения, можете использовать qui.string(s).
совместимость и гибкость
вот несколько примеров использования pui:
Код:
Expand Collapse Copy
local group = pui.create("group")
group:label("label")
pui.label("group", "label")

local tab_group = pui.create("tab", "group")
tab_group:label("label")
pui.label({"tab", "group"}, "label")

-- вы не можете использовать дефолтные UI группы с методами PUI
local group = ui.create("group")
-- НЕПРАВИЛЬНО:
group:label("label") -- создастся обычный лейбл
-- ПРАВИЛЬНО:
pui.label(group, "label") -- создастся PUI лейбл

как видите, комбинаций много.

вы можете использовать pui как обычный ui, внедрить его в свой скрипт, не изменяя кода
local ui = require "neverlose/pui"
должно сработать. тесты будут проведены чуть позже.
система зависимостей
element:depend(...) - это функция, позволяющая вам создавать визуальные зависимости с другими элементами.
таким образом, вы можете создать кастомную таб-систему.

вот небольшой пример:
label:depend:
Expand Collapse Copy
local group = pui.create("group", "ff", 1)

local switch = group:switch "Switch"
local combo = group:combo("Combo", {"1", "2", "3"})
local label = group:label "Visible!"

label:depend({switch, true}, {combo, "2"})
-- краткая запись: label:depend(switch, {combo, "2"}
лейбл "Visible!" покажется только если включен switch и в combo стоит 2:
Посмотреть вложение 226348Посмотреть вложение 226349

таким образом, вы можете с легкостью управлять видимостью своих элементов, без лишнего кода.

это не весь список возможностей pui. исходный код библиотеки открытый, вы можете изучить его.
вот небольшой example-скрипт:
Пожалуйста, авторизуйтесь для просмотра ссылки.


используя pui, вы сможете сократить код UI своего скрипта почти в 3 раза, с удобством и удовольствием сможете добавлять новые фичи, создавать красивые меню.

а, и да, первый кто полностью реализует pui в своем корде, получит hysteria.lua бесплатно.
свяжитесь со мной, если вы это смогли сделать.

ссылка на библиотеку
Пожалуйста, авторизуйтесь для просмотра ссылки.
(на апруве)
Это реально очень красиво и удобно, +rep и реакция, но я не знаю куда нормально сойдет gradient text, только если не в вотермарке
 
Красава бро
 
Я и так использовал эту библиотеку до ренейма,а сейчас так вообще красота да и только
 
очень крутая библиотека. жаль что в скриптинге на хвх в основном остались только пастеры, и вряд-ли кто-то будет это использовать, потому что просто не разберутся как она работает
он приложил пример, даже тупые догадаются.
Да даже если, библ легко читается и легко понимается. Если кнч такие "пастеры" ленивые, то ясен хуй не поймут.
 
видно что делал неопытный человек, абсолютно бесполезная библиотека, лучше бы дальше дизайнил чем в code лез
 
видно что делал неопытный человек, абсолютно бесполезная библиотека, лучше бы дальше дизайнил чем в code лез
Регистрация 28 Июл 2022
Сообщения: 6
Реакции: 3
moment
 
топ либа
 
Последнее редактирование:
жаль что в скриптинге на хвх в основном остались только пастеры, и вряд-ли кто-то будет это использовать
так это как раз пастеро-ориентированная либа, потому что все норм челы уже сами написали себе подобное
 
так это как раз пастеро-ориентированная либа, потому что все норм челы уже сами написали себе подобное
те юи хендлеры которые я видел сильно отличаются от PUI. (original name HUI)
 
Назад
Сверху Снизу