Вопрос по imgui addons

NOWLEX

Участник
Автор темы
41
3
Версия MoonLoader
.026-beta
Решил написать многофункциональный помощник для домов. Что бы было более удобнее использовать решил заюзать imgui addons, а именно что бы при включенном переключателе (toggle.button) работала определенная часть скрипта. А как это реализовать я не понимаю, только начал все изучать. Прошу у вас помощи, заранее огромное спасибо)
 

Dmitriy Makarov

25.05.2021
Проверенный
2,505
1,134
Отсюда скачиваешь файлик imgui_addons
И закидываешь в папку moonloader > lib
Lua:
-- В начало скрипта
imgui.ToggleButton = require('imgui_addons').ToggleButton
local tbutton = imgui.ImBool(false) -- Переменная кнопки
local active = false -- Активация/деактивация части скрипта (по умолчанию: деактивирована)

-- function imgui.OnDrawFrame()
imgui.Text(u8"Активировать что-то")
imgui.SameLine(250) -- Тут отступ, чтобы типа как столбцы было
if imgui.ToggleButton("##active", tbutton) then
    active = not active
    if active then
        -- Тут код, который будет выполняться при активации
        sampAddChatMessage("Активирован", -1)
    else
        -- Тут при деактивации
        sampAddChatMessage("Деактивирован", -1)
    end
end
1613261959959.png
 

NOWLEX

Участник
Автор темы
41
3
Отсюда скачиваешь файлик imgui_addons
И закидываешь в папку moonloader > lib
Lua:
-- В начало скрипта
imgui.ToggleButton = require('imgui_addons').ToggleButton
local tbutton = imgui.ImBool(false) -- Переменная кнопки
local active = false -- Активация/деактивация части скрипта (по умолчанию: деактивирована)

-- function imgui.OnDrawFrame()
imgui.Text(u8"Активировать что-то")
imgui.SameLine(250) -- Тут отступ, чтобы типа как столбцы было
if imgui.ToggleButton("##active", tbutton) then
    active = not active
    if active then
        -- Тут код, который будет выполняться при активации
        sampAddChatMessage("Активирован", -1)
    else
        -- Тут при деактивации
        sampAddChatMessage("Деактивирован", -1)
    end
end
Посмотреть вложение 86273
а если при деактивации код не должен выполнятся, то как? кстати спасибо огромное, думал никто не ответит
 

Dmitriy Makarov

25.05.2021
Проверенный
2,505
1,134
а если при деактивации код не должен выполнятся, то как? кстати спасибо огромное, думал никто не ответит
По идее.)
Ну вот пример с GM'ом:
Lua:
if imgui.ToggleButton("##active", tbutton) then
    active = not active
    if active then
        setCharProofs(playerPed, true, true, true, true, true)
        writeMemory(0x96916E, 1, 1, false)
        printStringNow("GodMode ~g~ON", 1000)
    else
        setCharProofs(playerPed, false, false, false, false, false)
        writeMemory(0x96916E, 1, 0, false)
        printStringNow("GodMode ~r~OFF", 1000)
    end
end
 

NOWLEX

Участник
Автор темы
41
3
По идее.)
Ну вот пример с GM'ом:
Lua:
if imgui.ToggleButton("##active", tbutton) then
    active = not active
    if active then
        setCharProofs(playerPed, true, true, true, true, true)
        writeMemory(0x96916E, 1, 1, false)
        printStringNow("GodMode ~g~ON", 1000)
    else
        setCharProofs(playerPed, false, false, false, false, false)
        writeMemory(0x96916E, 1, 0, false)
        printStringNow("GodMode ~g~OFF", 1000)
    end
end
не особо понимаю, как это можно сделать в моем коде, если не сложно, объясни пж
Lua:
            if isCharDead(PLAYER_PED) and not dead then
                sampSendChat('/fixcar')
                dead = true -- чтобы не флудило
            elseif not isCharDead(PLAYER_PED) and dead then
                dead = false
            end
 

Dmitriy Makarov

25.05.2021
Проверенный
2,505
1,134
не особо понимаю, как это можно сделать в моем коде, если не сложно, объясни пж
Код:
                if isCharDead(PLAYER_PED) and not dead then
                sampSendChat('/fixcar')
                dead = true
            elseif not isCharDead(PLAYER_PED) and dead then
                dead = false
            end
А что ты хочешь сделать?

P.S: Кстати, у меня ГМ не сработал, который выше. Хз почему..)
 

NOWLEX

Участник
Автор темы
41
3
А что ты хочешь сделать?

P.S: Кстати, у меня ГМ не сработал, который выше. Хз почему..)
именно этот код отвечает за ввод команды /fixcar после смерти, а в целом делаю помощник для дома
 

Dmitriy Makarov

25.05.2021
Проверенный
2,505
1,134
именно этот код отвечает за ввод команды /fixcar после смерти, а в целом делаю помощник для дома
Я голову сломал, пока пытался это сделать, может ещё знатоки найдутся, которые объяснят.))
Вообще сейчас впервые попробовал addons и не понял, как кнопки работают.
 
  • Нравится
Реакции: NOWLEX

Snoopcheg

Известный
151
82
Lua:
local imgui = require('imgui')
imgui.ToggleButton = require('imgui_addons').ToggleButton

local tbutton = imgui.ImBool(false) -- переменная кнопки(хранит true or false)

-- в ondrawframe
imgui.Text("Text")
imgui.SameLine()
imgui.ToggleButton("##1", tbutton)
if tbutton.v then -- будет выполнятся при активной кнопке
    --code
end