Помогите с ТоглБутон

Cisco

Новичок
Автор темы
10
2
Версия MoonLoader
.026-beta
Скачал я стиль с тогл батоном, это такой ползунок включения и выключения, влево/право. Как на этот ползунок приписать функцию, вот если я нашёл в БХ то что хочу туда засунуть, около чего надо вставлять код скрипта
 

Cisco

Новичок
Автор темы
10
2
Пропиши условие, если переменная кнопки равняется включено то вставляй туда свой код.
Это как? Просто я совсем ноль и ничего не понимаю, как прописать, как нет, можно пример?
 

Lance_Sterling

Известный
799
277
Это как? Просто я совсем ноль и ничего не понимаю, как прописать, как нет, можно пример?
Какая у тебя переменная отвечает за значение кнопки?
Ну вот например в беск. цикле
Lua:
if button.v then--вместо button.v впиши свое название переменной
    --код который тебе надо
else--если хочешь, что бы выполнялось условие если button.v не равняется true
    --твой код
end
Давно я не работал с такими кнопками, но суть одна и та же.
 

Cisco

Новичок
Автор темы
10
2
Функция, которая выполняется при нажатии на кнопку?
local _, id = sampGetPlayerIdByCharHandle(PLAYER_PED) -- в начало кода
local nick = sampGetPlayerNickname(id) ---- в начало кода
local score = sampGetPlayerScore(id) -- тоже в начало

--- в он драв фрейм
imgui.Text("" .. id.. "")
imgui.Text(tostring("" .. score .. ""))
 

Lance_Sterling

Известный
799
277
Не понял, чуть чуть в чем смысл.
Сейчас за компьютер сяду, напишу...

Должно работать.
Не совсем понял, что ты хочешь.
Вот держи пример.
1675252615515.png

Lua:
local imgui = require 'imgui'
imgui.ToggleButton = require('imgui_addons').ToggleButton
local encoding = require("encoding")
encoding.default = 'CP1251'
u8 = encoding.UTF8
local imBool = imgui.ImBool(false)
local window = imgui.ImBool(false)

function main()
   if not isSampLoaded() then
      return
   end
   while not isSampAvailable() do
      wait(0)
    end
    _, id = sampGetPlayerIdByCharHandle(PLAYER_PED) -- в начало кода
    nick = sampGetPlayerNickname(id) ---- в начало кода
    score = sampGetPlayerScore(id) -- тоже в начало
    sampRegisterChatCommand("test", function ()
        window.v = not window.v
        imgui.Process = window.v
    end)
    while true do
        wait(0)
    end
end
function imgui.OnDrawFrame()
    local iScreenWidth, iScreenHeight = getScreenResolution()
    local tLastKeys = {}
  
   imgui.SetNextWindowPos(imgui.ImVec2(iScreenWidth / 2, iScreenHeight / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
   imgui.SetNextWindowSize(imgui.ImVec2(400, 200), imgui.Cond.FirstUseEver)
  
   imgui.Begin("Test Window", window)
   imgui.Text(u8'Показывать информацию: ')
   imgui.SameLine()
   if imgui.ToggleButton("##1", imBool) then--записываем данные в ImBool переменную
        sampAddChatMessage("Вы переключили статус, новое значение: " .. tostring(imBool.v), -1)
    end
    if imBool.v then--если кнопка равняется true
        if nick and id and score then--проверяем, если все значения не равняются nil
            imgui.Text(u8'Ваш ник: '..nick..'['..id..']')--не знаю зачем ты поставил там кавычки
            imgui.Text(u8'Ваш ID: '..score)
        end
    else--если imBool.v не равняется true
        --твой код
    end
    
    imgui.End()
end

@Cisco
 
Последнее редактирование:

Cisco

Новичок
Автор темы
10
2
Не понял, чуть чуть в чем смысл.
Сейчас за компьютер сяду, напишу...

Должно работать.
Не совсем понял, что ты хочешь.
Вот держи пример.
Посмотреть вложение 188159
Lua:
local imgui = require 'imgui'
imgui.ToggleButton = require('imgui_addons').ToggleButton
local encoding = require("encoding")
encoding.default = 'CP1251'
u8 = encoding.UTF8
local imBool = imgui.ImBool(false)
local window = imgui.ImBool(false)

function main()
   if not isSampLoaded() then
      return
   end
   while not isSampAvailable() do
      wait(0)
    end
    _, id = sampGetPlayerIdByCharHandle(PLAYER_PED) -- в начало кода
    nick = sampGetPlayerNickname(id) ---- в начало кода
    score = sampGetPlayerScore(id) -- тоже в начало
    sampRegisterChatCommand("test", function ()
        window.v = not window.v
        imgui.Process = window.v
    end)
    while true do
        wait(0)
    end
end
function imgui.OnDrawFrame()
    local iScreenWidth, iScreenHeight = getScreenResolution()
    local tLastKeys = {}
 
   imgui.SetNextWindowPos(imgui.ImVec2(iScreenWidth / 2, iScreenHeight / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
   imgui.SetNextWindowSize(imgui.ImVec2(400, 200), imgui.Cond.FirstUseEver)
 
   imgui.Begin("Test Window", window)
   imgui.Text(u8'Показывать информацию: ')
   imgui.SameLine()
   if imgui.ToggleButton("##1", imBool) then--записываем данные в ImBool переменную
        sampAddChatMessage("Вы переключили статус, новое значение: " .. tostring(imBool.v), -1)
    end
    if imBool.v then--если кнопка равняется true
        if nick and id and score then--проверяем, если все значения не равняются nil
            imgui.Text(u8'Ваш ник: '..nick..'['..id..']')--не знаю зачем ты поставил там кавычки
            imgui.Text(u8'Ваш ID: '..score)
        end
    else--если imBool.v не равняется true
        --твой код
    end
   
    imgui.End()
end

@Cisco
скинь пожалуйста код этого скрипта

mordorMASTER.lua
можешь вставить сюда свой код который инфу говорит, и сам скрипт сюда выписать чтоб я понял
 
Последнее редактирование:

Lance_Sterling

Известный
799
277