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

Тема в разделе "Lua", создана пользователем DonHomka, 13 дек 2018.

  1. DonHomka

    DonHomka Lealta' verso la famiglia Tunes
    Друг

    Регистрация:
    8 ноя 2017
    Сообщения:
    2.413
    Симпатии:
    1.526
    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.
    ** Чтобы не подключать элементы отдельно:
    local imadd = require 'imgui_addons'
    imadd.ToggleButton("##active", ImBool)
    С удовольствием отвечу на то как что работает. Так же можете скидывать интересные C++ реализации кастомных элементов imgui, по возможности переведу на Lua.

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

    Вложения:

    • imgui_addons.lua
      Размер файла:
      8,9 КБ
      Просмотров:
      297
    • test.lua
      Размер файла:
      7,3 КБ
      Просмотров:
      191
    #1 DonHomka, 13 дек 2018
    Последнее редактирование: 20 дек 2018
    Decadans, Skelmer, laz3r228 и 22 другим нравится это.
  2. Leatington

    Leatington Активный участник

    Регистрация:
    25 ноя 2018
    Сообщения:
    35
    Симпатии:
    7
    Наконец-то :D
    Сделай ещё "время" для Spinner, чтобы он вращался 3-5 секунд, а потом пропадал, было бы очень полезно.
     
  3. imring

    imring чо тут
    Всефорумный модератор

    Регистрация:
    3 авг 2016
    Сообщения:
    1.796
    Симпатии:
    1.174
    для этого есть таймер
    local time = os.clock()
    while os.clock() - time < 10 do
        -- code
    end
     
    Leatington нравится это.
  4. dmitri4

    dmitri4 Знающий

    Регистрация:
    8 май 2017
    Сообщения:
    234
    Симпатии:
    25
    - HotKey после перезагрузки сбрасывается, есть возможность это исправить?
     
  5. DonHomka

    DonHomka Lealta' verso la famiglia Tunes
    Друг

    Регистрация:
    8 ноя 2017
    Сообщения:
    2.413
    Симпатии:
    1.526
    Сохранять в ини данные, при запуске скрипта создавать таблицу и привязывать её значение к хоткею
     
  6. Vladislav Kotov

    Vladislav Kotov Постоянный участник

    Регистрация:
    27 июл 2018
    Сообщения:
    97
    Симпатии:
    5
    HotKey может различать LSHIFT и RSHIFT? просто в прикрепленном примере нет разницы нажимает игрок RSHIFT или LSHIFT
     
  7. DonHomka

    DonHomka Lealta' verso la famiglia Tunes
    Друг

    Регистрация:
    8 ноя 2017
    Сообщения:
    2.413
    Симпатии:
    1.526
    Не различает.
     
  8. Infernus

    Infernus Постоянный участник

    Регистрация:
    25 ноя 2017
    Сообщения:
    65
    Симпатии:
    9
    У меня возник небольшой вопросец. Я делаю модификацию с использованием твоей функции ToggleButton, взятой ещё из полезных сниппетов с внесением некоторых изменений.
    
    -- 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. Ну а сама либа божественна.
     
  9. DonHomka

    DonHomka Lealta' verso la famiglia Tunes
    Друг

    Регистрация:
    8 ноя 2017
    Сообщения:
    2.413
    Симпатии:
    1.526
    Конечно
    
    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
    
     
    Amazing и Infernus нравится это.
  10. BLASTHACKUSERNOVER

    BLASTHACKUSERNOVER Участник

    Регистрация:
    10 ноя 2018
    Сообщения:
    15
    Симпатии:
    1
    Почему у меня текст в окошке для выбора горячей клавиши центруется? Как сделать так, чтобы он в окошке был слева?
     
  11. DonHomka

    DonHomka Lealta' verso la famiglia Tunes
    Друг

    Регистрация:
    8 ноя 2017
    Сообщения:
    2.413
    Симпатии:
    1.526
    style.ButtonTextAlign
     
    BLASTHACKUSERNOVER нравится это.
  12. BLASTHACKUSERNOVER

    BLASTHACKUSERNOVER Участник

    Регистрация:
    10 ноя 2018
    Сообщения:
    15
    Симпатии:
    1
    А можно небольшой пример кода пожалуйста?) Просто не могу немного понять что к чему, ошибку выдает.
     
  13. DonHomka

    DonHomka Lealta' verso la famiglia Tunes
    Друг

    Регистрация:
    8 ноя 2017
    Сообщения:
    2.413
    Симпатии:
    1.526
    Это определяется в apply_custom_style есть он у тебя конечно есть. Или до вызова begin, или при инициализации если это mimgui.
     
  14. BLASTHACKUSERNOVER

    BLASTHACKUSERNOVER Участник

    Регистрация:
    10 ноя 2018
    Сообщения:
    15
    Симпатии:
    1
    Ок. А как сделать так, чтобы в файл записывалось значение заданной клавиши / комбинации клавиш (номером клавиши или ее названием)? Просто когда я пытаюсь в файл записать номер клавиши, то там пишет в значении "table: ....[цифробуквы]". Можешь показать на примере простенького кода?
     
  15. DonHomka

    DonHomka Lealta' verso la famiglia Tunes
    Друг

    Регистрация:
    8 ноя 2017
    Сообщения:
    2.413
    Симпатии:
    1.526
    я сохраняю в Json. С inicfg можно так же замутить, енкод и декод значения.
     
    BLASTHACKUSERNOVER нравится это.
  16. BLASTHACKUSERNOVER

    BLASTHACKUSERNOVER Участник

    Регистрация:
    10 ноя 2018
    Сообщения:
    15
    Симпатии:
    1
    Ок. А можешь написать простенький код? Ну или скинуть ссылку на свою работу / плагин с применением записи клавиш в файл? Просто я немного не могу понять как всё таки это реализовывается.
     
  17. bTosda_21

    bTosda_21 Участник

    Регистрация:
    2 янв 2017
    Сообщения:
    13
    Симпатии:
    0
    Помоги с использованием Toggle Button
    Как проверить true или false
     
  18. #Northn

    #Northn нортхн
    Проверенный

    Регистрация:
    10 авг 2017
    Сообщения:
    815
    Симпатии:
    299
    Переменная.v
     
    DonHomka нравится это.
  19. DonHomka

    DonHomka Lealta' verso la famiglia Tunes
    Друг

    Регистрация:
    8 ноя 2017
    Сообщения:
    2.413
    Симпатии:
    1.526
    есть 1.0.1 с дропдовн, но под mimgui))
     
  20. SR_team

    SR_team BH Team
    BH Team

    Регистрация:
    26 окт 2013
    Сообщения:
    3.198
    Симпатии:
    3.191
    чекбоксы в профиль. Только картинкой отличаются. Но выглядит клево
    Это тоже есть, можешь глянуть в дефолтном окне ImGui, которое демонстрирует возможности тулкита
     
  21. DonHomka

    DonHomka Lealta' verso la famiglia Tunes
    Друг

    Регистрация:
    8 ноя 2017
    Сообщения:
    2.413
    Симпатии:
    1.526
    demo?
     
  22. dmitri4

    dmitri4 Знающий

    Регистрация:
    8 май 2017
    Сообщения:
    234
    Симпатии:
    25
    Ещё бы хоть какой нибудь гайд по mimgui
     
  23. DonHomka

    DonHomka Lealta' verso la famiglia Tunes
    Друг

    Регистрация:
    8 ноя 2017
    Сообщения:
    2.413
    Симпатии:
    1.526
    мб мб