откуда знаешьте юи хендлеры которые я видел сильно отличаются от PUI. (original name HUI)
откуда знаешьте юи хендлеры которые я видел сильно отличаются от PUI. (original name HUI)
chernobyl team помог в сравненииоткуда знаешь
local switch1 = pui.switch("group", "Switch 1")
local label = pui.label("group", "ACTIVE")
label:depend(switch1)
local switch2 = pui.switch("group", "Switch 2")
label:depend(switch2)
-- тоже самое, что и label:depend(switch1, switch2)
local combo = pui.combo("group", "combo", {"disabled", "red", "blue"})
local label = pui.label("group", "ACTIVE")
label:depend({combo, "disabled", true})
-- результат: лейбл покажется если в комбобоксе стоит что угодно, кроме "disabled"
-- возможна краткая запись! (ТОЛЬКО если в комбобоксе есть Disabled)
label:depend(combo) -- в данном случае, будет работать точно так же
local slider = group:slider("slider", 0, 10, 1)
local label = group:label("greater than 5")
label:depend(function()
return slider.value > 5
end)
апрувнулиобновление:
- теперь :depend() можно вызвать несколько раз, чтобы продолжить цепочку зависимостей элемента.
- :depend() получил третий аргумент — NOT. если вы, например, хотите показывать лейбл, если комбобокс НЕ равняется “Disabled”, то теперь это возможно (примеры снизу)
- :depend() получил поддержку функций в аргументах. если вам требуется какое-то особенное условие, вы можете передать функцию, которая будет возвращать true или false (это важно, иначе в хуй)
- больше кратких записей для :depend()
- небольшие исправления
примеры:
неоднократный вызов :depend():local switch1 = pui.switch("group", "Switch 1") local label = pui.label("group", "ACTIVE") label:depend(switch1) local switch2 = pui.switch("group", "Switch 2") label:depend(switch2) -- тоже самое, что и label:depend(switch1, switch2)
комбо НЕ равно “Disabled”:local combo = pui.combo("group", "combo", {"disabled", "red", "blue"}) local label = pui.label("group", "ACTIVE") label:depend({combo, "disabled", true}) -- результат: лейбл покажется если в комбобоксе стоит что угодно, кроме "disabled" -- возможна краткая запись! (ТОЛЬКО если в комбобоксе есть Disabled) label:depend(combo) -- в данном случае, будет работать точно так же
на апруве ещефункции в аргументах депенда:local slider = group:slider("slider", 0, 10, 1) local label = group:label("greater than 5") label:depend(function() return slider.value > 5 end)
Она скрыта и документация просто аутдейтед настолько, насколько можно сказать, что моя либа была ещё со времени доисторических динозавров.покажи
local framework = require 'neverlose/senko_framework';
local ux = framework.ux();
local configurations = ux.configurations();
конечно, вечером давайКстати, ты не против, если я тебя позову в дискорде посидеть?
Пошёл нахуй с темы?видно что делал неопытный человек, абсолютно бесполезная библиотека, лучше бы дальше дизайнил чем в code лез
Он прав. Сейчас буду дизайнить пуи.Пошёл нахуй с темы?
Ты так и не сделал то, что я просил, :dislike:Он прав. Сейчас буду дизайнить пуи.
Тебя заставляют использовать либу? Ты платишь за неё? Тебя принуждали открывать эту тему?видно что делал неопытный человек, абсолютно бесполезная библиотека, лучше бы дальше дизайнил чем в code лез
pui.live_theme = true
в либу добавлены проблемыдобавлена автоматическая перекраска элементов в акцентный цвет меню (когда меняешь тему)
из проблем:
- элементы с одинаковыми названиями не всегда красятся
- невозможно перекрасить табы
- списки в комбобоксах, подсказки и т.д не учитываются при изменении цвета
как включить данную функцию:
pui.live_theme = true
произведено переосмысление существующих и будущих баговв либу добавлены проблемы
god bless ENQ✦ 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]")
Посмотреть вложение 226346
теперь подробнее об этом.
я не рекомендую использовать ничего из этого в самих значениях контролов, например внутри комбобоксов. если ТАК хочется, то на здоровье, они работают. чтобы set'нуть цветастое значения, можете использовать pui.string(s).
\r
- сброс цвета. то же самое, что и \aDEFAULT, но короче.\v
- акцентный цвет. берется из темы чита, а точнее link-active\f<иконка>
- иконка. если не будет найдена, выдаст ошибку. оптимизировано слабыми таблицами.\bЦВЕТ\bЦВЕТ...[строка]
- градиент. создайте сколько угодно "\bЦВЕТОВ", и закройте это "[строкой]"совместимость и гибкость
вот несколько примеров использования 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 "Visible!" will only show up if switch is on and combo has 2: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"}) -- shorthand: label:depend(switch, {combo, "2"}
Посмотреть вложение 226348Посмотреть вложение 226349
this way you can control the visibility of your elements with ease, without extra code.
this is not the whole list of pui features. The source code of the library is open, you can study it.
here is a small example script:Пожалуйста, авторизуйтесь для просмотра ссылки.
using pui, you can reduce the UI code of your script by almost 3 times, with convenience and pleasure you can add new features, create beautiful menus.
link to library
Пожалуйста, авторизуйтесь для просмотра ссылки.
documentation
Пожалуйста, авторизуйтесь для просмотра ссылки.
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz