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

Дизайнер
Статус
Оффлайн
Регистрация
18 Авг 2017
Сообщения
1,931
Реакции[?]
2,258
Поинты[?]
146K
Товары в продаже
1
✦ pui – perfect user interface


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



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

конфиг-система
хотите добавить пресеты или клауд кфг в свой скрипт? pui максимально облегчил вам задачу.
для начала создайте таблицу с вашими элементами:
стандартная таблица элементов:
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:
pui.setup(menu)
(также вы можете сделать все сразу:)
code_language.lua:
local menu = pui.setup({
    ...
})


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


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


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

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

-- или
local config = pui.save()
pui.load(config, "antiaim", "default")
гибкая конфиг-система позволяет вам сохранять и загружать ваши значения (или область значений) без лишних морок. так же, (если вы не измените названия переменных или сами элементы), конфиг будет совместим с другими версиями вашего скрипта.
улучшенные строки
как я уже говорил, pui обладает своей очень и очень удобной системой строк.
вот пример:
тест акцента, сброса цвета, иконок и градиентов.:
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:
Код:
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:
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.png1667312408435.png

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

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


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


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

документация
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Последнее редактирование:
t.me/maj0rblog
Дизайнер
Статус
Оффлайн
Регистрация
6 Окт 2018
Сообщения
975
Реакции[?]
619
Поинты[?]
12K
✦ pui – perfect user interface


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



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

конфиг-система
хотите добавить пресеты или клауд кфг в свой скрипт? pui максимально облегчил вам задачу.
для начала создайте таблицу с вашими элементами:
стандартная таблица элементов:
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:
pui.setup(menu)
(также вы можете сделать все сразу:)
code_language.lua:
local menu = pui.setup({
    ...
})


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


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


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

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

-- или
local config = pui.save()
pui.load(config, "antiaim", "default")
гибкая конфиг-система позволяет вам сохранять и загружать ваши значения (или область значений) без лишних морок. так же, (если вы не измените названия переменных или сами элементы), конфиг будет совместим с другими версиями вашего скрипта.
улучшенные строки
как я уже говорил, pui обладает своей очень и очень удобной системой строк.
вот пример:
тест акцента, сброса цвета, иконок и градиентов.:
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:
Код:
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:
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, всем остальным два! Пересдача через неделю.
 
Эксперт
Статус
Оффлайн
Регистрация
14 Ноя 2020
Сообщения
1,800
Реакции[?]
586
Поинты[?]
2K
✦ pui – perfect user interface


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



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

конфиг-система
хотите добавить пресеты или клауд кфг в свой скрипт? pui максимально облегчил вам задачу.
для начала создайте таблицу с вашими элементами:
стандартная таблица элементов:
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:
pui.setup(menu)
(также вы можете сделать все сразу:)
code_language.lua:
local menu = pui.setup({
    ...
})


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


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


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

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

-- или
local config = pui.save()
pui.load(config, "antiaim", "default")
гибкая конфиг-система позволяет вам сохранять и загружать ваши значения (или область значений) без лишних морок. так же, (если вы не измените названия переменных или сами элементы), конфиг будет совместим с другими версиями вашего скрипта.
улучшенные строки
как я уже говорил, pui обладает своей очень и очень удобной системой строк.
вот пример:
тест акцента, сброса цвета, иконок и градиентов.:
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:
Код:
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:
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 бесплатно.
свяжитесь со мной, если вы это смогли сделать.

система зависимостей
Пожалуйста, авторизуйтесь для просмотра ссылки.
(на апруве)
Молодец, мечта любого.
 
Эксперт
Статус
Оффлайн
Регистрация
22 Мар 2020
Сообщения
2,187
Реакции[?]
484
Поинты[?]
3K
✦ pui – perfect user interface


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



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

конфиг-система
хотите добавить пресеты или клауд кфг в свой скрипт? pui максимально облегчил вам задачу.
для начала создайте таблицу с вашими элементами:
стандартная таблица элементов:
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:
pui.setup(menu)
(также вы можете сделать все сразу:)
code_language.lua:
local menu = pui.setup({
    ...
})


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


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


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

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

-- или
local config = pui.save()
pui.load(config, "antiaim", "default")
гибкая конфиг-система позволяет вам сохранять и загружать ваши значения (или область значений) без лишних морок. так же, (если вы не измените названия переменных или сами элементы), конфиг будет совместим с другими версиями вашего скрипта.
улучшенные строки
как я уже говорил, pui обладает своей очень и очень удобной системой строк.
вот пример:
тест акцента, сброса цвета, иконок и градиентов.:
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:
Код:
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:
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 бесплатно.
свяжитесь со мной, если вы это смогли сделать.

ссылка на библиотеку
Пожалуйста, авторизуйтесь для просмотра ссылки.
(на апруве)
ахуенно!
 
꧁꧂
Участник
Статус
Оффлайн
Регистрация
23 Мар 2020
Сообщения
549
Реакции[?]
356
Поинты[?]
10K
очень крутая библиотека. жаль что в скриптинге на хвх в основном остались только пастеры, и вряд-ли кто-то будет это использовать, потому что просто не разберутся как она работает
 
reinterpret_cast<bool*>
Пользователь
Статус
Оффлайн
Регистрация
21 Июл 2019
Сообщения
204
Реакции[?]
79
Поинты[?]
2K
круто вышло, но насчет конфигов: почему бы сразу не возращать строки, которые уже будут преобразованные в json вид и накинутые base64?
 
Забаненный
Статус
Оффлайн
Регистрация
2 Фев 2021
Сообщения
453
Реакции[?]
82
Поинты[?]
3K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
✦ pui – perfect user interface


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



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

конфиг-система
хотите добавить пресеты или клауд кфг в свой скрипт? pui максимально облегчил вам задачу.
для начала создайте таблицу с вашими элементами:
стандартная таблица элементов:
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:
pui.setup(menu)
(также вы можете сделать все сразу:)
code_language.lua:
local menu = pui.setup({
    ...
})


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


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


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

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

-- или
local config = pui.save()
pui.load(config, "antiaim", "default")
гибкая конфиг-система позволяет вам сохранять и загружать ваши значения (или область значений) без лишних морок. так же, (если вы не измените названия переменных или сами элементы), конфиг будет совместим с другими версиями вашего скрипта.
улучшенные строки
как я уже говорил, pui обладает своей очень и очень удобной системой строк.
вот пример:
тест акцента, сброса цвета, иконок и градиентов.:
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:
Код:
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:
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, только если не в вотермарке
 
несупер
Пользователь
Статус
Оффлайн
Регистрация
16 Июн 2020
Сообщения
146
Реакции[?]
71
Поинты[?]
3K
Я и так использовал эту библиотеку до ренейма,а сейчас так вообще красота да и только
 
Эксперт
Статус
Оффлайн
Регистрация
22 Мар 2020
Сообщения
2,187
Реакции[?]
484
Поинты[?]
3K
очень крутая библиотека. жаль что в скриптинге на хвх в основном остались только пастеры, и вряд-ли кто-то будет это использовать, потому что просто не разберутся как она работает
он приложил пример, даже тупые догадаются.
Да даже если, библ легко читается и легко понимается. Если кнч такие "пастеры" ленивые, то ясен хуй не поймут.
 
Начинающий
Статус
Оффлайн
Регистрация
28 Июл 2022
Сообщения
22
Реакции[?]
17
Поинты[?]
0
видно что делал неопытный человек, абсолютно бесполезная библиотека, лучше бы дальше дизайнил чем в code лез
 
ryo
Пользователь
Статус
Оффлайн
Регистрация
4 Июн 2021
Сообщения
323
Реакции[?]
113
Поинты[?]
2K
видно что делал неопытный человек, абсолютно бесполезная библиотека, лучше бы дальше дизайнил чем в code лез
Регистрация 28 Июл 2022
Сообщения: 6
Реакции: 3
moment
 
she/her
Пользователь
Статус
Оффлайн
Регистрация
29 Сен 2022
Сообщения
294
Реакции[?]
118
Поинты[?]
27K
топ либа
 
Последнее редактирование:
Эксперт
Статус
Оффлайн
Регистрация
24 Апр 2018
Сообщения
1,490
Реакции[?]
929
Поинты[?]
67K
жаль что в скриптинге на хвх в основном остались только пастеры, и вряд-ли кто-то будет это использовать
так это как раз пастеро-ориентированная либа, потому что все норм челы уже сами написали себе подобное
 
Дизайнер
Статус
Оффлайн
Регистрация
18 Авг 2017
Сообщения
1,931
Реакции[?]
2,258
Поинты[?]
146K
Товары в продаже
1
так это как раз пастеро-ориентированная либа, потому что все норм челы уже сами написали себе подобное
те юи хендлеры которые я видел сильно отличаются от PUI. (original name HUI)
 
Похожие темы
Сверху Снизу