Исходник Софт [Module] ImGui Addons | v1.0.0

AnWu

Известный
Автор темы
Всефорумный модератор
4,777
5,400
upload_2018-12-13_20-32-8.png

Большинство скриптеров явно сталкивались с ограничениями ImGui. Я имею ввиду отсутствие современных элементов, например переключатели или вовсе горячие клавиши. Данная библиотека призвана исправить это недоразумение, по крайней мере для MoonLoader!

Список элементов
- ToggleButton
- HotKey
- Spinner
- BufferingBar

Установка: Файл imgui_addons.lua поместить в папку moonloader/lib. Файл test.lua является примером использования библиотеки, его нужно поместить в moonloader.
* Для работы примера нужны собственно сам Moon ImGui и RKeys.
** Чтобы не подключать элементы отдельно:
Lua:
local imadd = require 'imgui_addons'
imadd.ToggleButton("##active", ImBool)

С удовольствием отвечу на то как что работает. Так же можете скидывать интересные C++ реализации кастомных элементов imgui, по возможности переведу на Lua.

Модуль рекомендуется использовать совместно с RKeys. Реализация показана в примере.
 

Вложения

  • imgui_addons.lua
    8.9 KB · Просмотры: 39,847
  • test.lua
    7.3 KB · Просмотры: 13,221
Последнее редактирование:

Leatington

Известный
260
73
Наконец-то :D
Сделай ещё "время" для Spinner, чтобы он вращался 3-5 секунд, а потом пропадал, было бы очень полезно.
 

imring

Ride the Lightning
Всефорумный модератор
2,365
2,552
Наконец-то :D
Сделай ещё "время" для Spinner, чтобы он вращался 3-5 секунд, а потом пропадал, было бы очень полезно.
для этого есть таймер
Lua:
local time = os.clock()
while os.clock() - time < 10 do
    -- code
end
 
  • Нравится
Реакции: Vintik и Leatington

dmitri4

Известный
452
78
- HotKey после перезагрузки сбрасывается, есть возможность это исправить?
 

AnWu

Известный
Автор темы
Всефорумный модератор
4,777
5,400
- HotKey после перезагрузки сбрасывается, есть возможность это исправить?
Сохранять в ини данные, при запуске скрипта создавать таблицу и привязывать её значение к хоткею
 

kotov

Участник
128
12
HotKey может различать LSHIFT и RSHIFT? просто в прикрепленном примере нет разницы нажимает игрок RSHIFT или LSHIFT
 
D

deleted-user-164854

Гость
У меня возник небольшой вопросец. Я делаю модификацию с использованием твоей функции ToggleButton, взятой ещё из полезных сниппетов с внесением некоторых изменений.
Lua:
-- ToggleButton by DonHomka (+ text + help)
function imgui.ToggleButton(str_id, bool, help_str)
-- оригинальный код
    imgui.SameLine()
    imgui.Text(str_id)
    imgui.SameLine() 
    if help_str ~= nil then
        showHelp(u8(help_str))
    end
    return rBool
end

Думаю, суть понятна - что бы сразу рисовался ещё и текст такой же, как название кнопки + подсказка, если такова задана. Это экономит в моём случае почти 300 строк, так как слишком дофига параметров с вкл/выкл.

Вопрос в том, можно ли используя функцию уже из либы её "модифицировать" в моём скрипте не копируя саму функцию кнопки в скрипт ? Надеюсь ты понял вопрос, а то я чёт написал сложно.

P.S. Ну а сама либа божественна.
 

AnWu

Известный
Автор темы
Всефорумный модератор
4,777
5,400
У меня возник небольшой вопросец. Я делаю модификацию с использованием твоей функции ToggleButton, взятой ещё из полезных сниппетов с внесением некоторых изменений.
Lua:
-- ToggleButton by DonHomka (+ text + help)
function imgui.ToggleButton(str_id, bool, help_str)
-- оригинальный код
    imgui.SameLine()
    imgui.Text(str_id)
    imgui.SameLine()
    if help_str ~= nil then
        showHelp(u8(help_str))
    end
    return rBool
end

Думаю, суть понятна - что бы сразу рисовался ещё и текст такой же, как название кнопки + подсказка, если такова задана. Это экономит в моём случае почти 300 строк, так как слишком дофига параметров с вкл/выкл.

Вопрос в том, можно ли используя функцию уже из либы её "модифицировать" в моём скрипте не копируя саму функцию кнопки в скрипт ? Надеюсь ты понял вопрос, а то я чёт написал сложно.

P.S. Ну а сама либа божественна.
Конечно
Lua:
local iAddons = require 'imgui_addons'
-- ToggleButton by DonHomka (+ text + help)
function imgui.ToggleButton(str_id, bool, help_str)
    local rBool = iAddons.ToggleButton(str_id, bool)
    imgui.SameLine()
    imgui.Text(str_id)
    imgui.SameLine()
    if help_str ~= nil then
        showHelp(u8(help_str))
    end
    return rBool
end
 

BLASTHACKUSERNOVER

Новичок
14
0
Почему у меня текст в окошке для выбора горячей клавиши центруется? Как сделать так, чтобы он в окошке был слева?
 

AnWu

Известный
Автор темы
Всефорумный модератор
4,777
5,400
А можно небольшой пример кода пожалуйста?) Просто не могу немного понять что к чему, ошибку выдает.
Это определяется в apply_custom_style есть он у тебя конечно есть. Или до вызова begin, или при инициализации если это mimgui.
 

BLASTHACKUSERNOVER

Новичок
14
0
Ок. А как сделать так, чтобы в файл записывалось значение заданной клавиши / комбинации клавиш (номером клавиши или ее названием)? Просто когда я пытаюсь в файл записать номер клавиши, то там пишет в значении "table: ....[цифробуквы]". Можешь показать на примере простенького кода?
 

AnWu

Известный
Автор темы
Всефорумный модератор
4,777
5,400
Ок. А как сделать так, чтобы в файл записывалось значение заданной клавиши / комбинации клавиш (номером клавиши или ее названием)? Просто когда я пытаюсь в файл записать номер клавиши, то там пишет в значении "table: ....[цифробуквы]". Можешь показать на примере простенького кода?
я сохраняю в Json. С inicfg можно так же замутить, енкод и декод значения.
 
  • Нравится
Реакции: BLASTHACKUSERNOVER