Помогите с checkbox

Типа пон

Активный
Автор темы
190
81
Версия MoonLoader
.026-beta
О великие луашеры!!! Помогите как сделать так чтобы по нажатию checkbox`a отправлялась команда? (Начинаю только учить lua)
sukakod:
local checkboxone = new.bool()
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
local new = imgui.new

local WinState = new.bool()

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(245, 270), imgui.Cond.Always)
    imgui.Begin('##Window', WinState, imgui.WindowFlags.NoResize)
    imgui.Checkbox(u8'Чекбокс', checkboxone)
    imgui.End()
end)

function main()
    sampRegisterChatCommand('cmd', function() WinState[0] = not WinState[0] end)
    wait(-1)
end

function main()
    while true do wait(0)
        if checkboxone[0] then
            sampAddChatMessage('Вы поставили галочку в чекбоксе',-1)
            wait(5000)
        end
    end
end
 
Решение
Код:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
local new = imgui.new
local enabled = false
local locked = false
local checkboxone = new.bool()


local WinState = new.bool()

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500,500), 
imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(245, 270), imgui.Cond.Always)
    imgui.Begin(u8'Window', WinState, imgui.WindowFlags.NoResize)
    imgui.Checkbox(u8"Чекбокс", checkboxone)
    imgui.End()
end)


function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand('imgui', function() WinState[0] = not...

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,771
11,214
О великие луашеры!!! Помогите как сделать так чтобы по нажатию checkbox`a отправлялась команда? (Начинаю только учить lua)
sukakod:
local checkboxone = new.bool()
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
local new = imgui.new

local WinState = new.bool()

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(245, 270), imgui.Cond.Always)
    imgui.Begin('##Window', WinState, imgui.WindowFlags.NoResize)
    imgui.Checkbox(u8'Чекбокс', checkboxone)
    imgui.End()
end)

function main()
    sampRegisterChatCommand('cmd', function() WinState[0] = not WinState[0] end)
    wait(-1)
end

function main()
    while true do wait(0)
        if checkboxone[0] then
            sampAddChatMessage('Вы поставили галочку в чекбоксе',-1)
            wait(5000)
        end
    end
end
Lua:
if imgui.Checkbox('click me', var) then
    print('clicked!')
end
 

Типа пон

Активный
Автор темы
190
81
Lua:
if imgui.Checkbox('click me', var) then
    print('clicked!')
end
Мне надо чтобы когда я нажал на чекбокс то тогда воспроизводилась команда типо /test и когда убирал чекбокс команда опять воспроизводилась.
 

Kermi

Участник
84
20
Мне надо чтобы когда я нажал на чекбокс то тогда воспроизводилась команда типо /test и когда убирал чекбокс команда опять воспроизводилась.
Через кнопку будет удобнее, попробуй.
 

Типа пон

Активный
Автор темы
190
81
Lua:
if imgui.Checkbox(u8'Чекбокс', checkboxeone) then
    sampSendChat("/test")
end
Если не ошибаюсь, то вместо imgui.Checkbox(u8'Чекбокс', checkboxone)
Когда ввожу команду для активации окна то пишет что комманды нету...
Подправь мб:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
local new = imgui.new
local enabled = true
local locked = false
local checkboxone = new.bool()


local WinState = new.bool()

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(245, 270), imgui.Cond.Always)
    imgui.Begin('##Window', WinState, imgui.WindowFlags.NoResize)
    if imgui.Checkbox(u8'Чекбокс', checkboxeone) then
    sampSendChat("/test")
end
    imgui.End()
end)

function main()
    sampRegisterChatCommand('imgui', function() WinState[0] = not WinState[0] end)
    wait(-1)
end
function main()
    repeat wait(0) until isSampAvailable()
 
    --[[_______________COMMANDS_______________]]--
    sampRegisterChatCommand('test', function()
        enabled = not enabled
    end)

    while true do
        wait(0)
        if enabled then
            if isCurrentCharWeapon(PLAYER_PED, 34) and isKeyDown(2) then
                if not locked then
                    cameraSetLerpFov(70.0, 70.0, 1000, 1)
                    locked = true
                end
            else
                cameraSetLerpFov(101.0, 101.0, 1000, 1)
                locked = false
            end
        end
    end
end
 

fokich

Участник
91
20
Проверь:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
local new = imgui.new
local enabled = false
local locked = false
local checkboxone = new.bool()


local WinState = new.bool()

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(245, 270), imgui.Cond.Always)
    imgui.Begin(u8'Window', WinState, imgui.WindowFlags.imgui.Checkbox(u8'Чекбокс', checkboxeone) then
    imgui.Checkbox(u8"Чекбокс", checkboxone)
    imgui.End()
end)


function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand('imgui', function() WinState[0] = not WinState[0] end)
 
   
  

    while true do
        wait(0)
        if checkboxone[0] then
            if isCurrentCharWeapon(PLAYER_PED, 34) and isKeyDown(2) then
                if not locked then
                    cameraSetLerpFov(70.0, 70.0, 1000, 1)
                    locked = true
                end
            else
                cameraSetLerpFov(101.0, 101.0, 1000, 1)
                locked = false
            end
        end
    end
end
В while true do не лез кроме проверки чекбокса
 

Типа пон

Активный
Автор темы
190
81
Проверь:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
local new = imgui.new
local enabled = false
local locked = false
local checkboxone = new.bool()


local WinState = new.bool()

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(245, 270), imgui.Cond.Always)
    imgui.Begin(u8'Window', WinState, imgui.WindowFlags.imgui.Checkbox(u8'Чекбокс', checkboxeone) then
    imgui.Checkbox(u8"Чекбокс", checkboxone)
    imgui.End()
end)


function main()
    repeat wait(0) until isSampAvailable()
    sampRegisterChatCommand('imgui', function() WinState[0] = not WinState[0] end)
 
  
 

    while true do
        wait(0)
        if checkboxone[0] then
            if isCurrentCharWeapon(PLAYER_PED, 34) and isKeyDown(2) then
                if not locked then
                    cameraSetLerpFov(70.0, 70.0, 1000, 1)
                    locked = true
                end
            else
                cameraSetLerpFov(101.0, 101.0, 1000, 1)
                locked = false
            end
        end
    end
end
В while true do не лез кроме проверки чекбокса
Увы не работает.