как сделать активацию скрипта по checkbox'y

Kegwineye.

Участник
Автор темы
478
20
Версия MoonLoader
Другое
Приветики еще раз. Подскажите как добавить активацию по чек боксу на ВХ. ВХ оставлю ниже как и сам имгуи код
ИМГУИ КОД С 3-МЯ МЕНЮШКАМИ:


require "lib.moonloader"
local keys = require "vkeys"
local imgui = require 'imgui'
local encoding = require 'encoding'
encoding.default = 'C1251'
u8 = encoding.UTF8

local tag = "[My First Script]:"
local label = 0
local main_color = 0x5A90CE
local main_color_text = "{5A90CE}"
local white_color = "{FFFFFF}"
local menu = 1

local main_window_state = imgui.ImBool(false)
local text_buffer = imgui.ImBuffer(256) -- Зачем тебе он тут если нету ImGui.InputText(name, buffer)
local checked_box = imgui.ImBool(false)

function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end

sampRegisterChatCommand("imgui", cmdimgui)

handle, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
nick = sampGetPlayerNickname(id)

imgui.Process = false -- его можно вынести до функции при желании

while true do
wait(0)

if main_window_state.v == false then
imgui.Process = false -- зачем тебе их два?
end
end
end -- добавил ещё end который закрывает функцию маин
function cmdimgui() -- не правильный аргумент cmd_imgui заменен на cmdimgui и тут не обязательно вписывать (arg) можно обойтись и ()
main_window_state.v = not main_window_state.v
imgui.Process = main_window_state.v
end

function imgui.OnDrawFrame() -- не Flame а Frame!!
imgui.Begin("Start imgui", main_window_state)
imgui.BeginChild("##left", imgui.ImVec2(200, 85), true)
if imgui.Button('Menu', imgui.ImVec2(180, 20)) then menu = 1 end
if imgui.Button('Settings', imgui.ImVec2(180, 20)) then menu = 2 end
if imgui.Button('Author', imgui.ImVec2(180, 20)) then menu = 3 end

imgui.EndChild()

imgui.SameLine()

imgui.BeginChild("##right", imgui.ImVec2(400, 150), true)
if menu == 1 then
imgui.Checkbox('Menu', checked_box)
end
if menu == 2 then
imgui.Text('Settings')
end
if menu == 3 then
imgui.Text('Автором скрипта является - han')
end
imgui.EndChild()
imgui.End()
end
-- end он тут не нужен

РЕНДЕР:

font = renderCreateFont('Cactus', 6, 4)

function rkact()
enabled = not enabled
sampAddChatMessage(enabled and '{FFFFFF}[{FFAD40}WH{FFFFFF}] - [{4FFF38}Enable{FFFFFF}]' or '{FFFFFF}[{FFAD40}WH{FFFFFF}] - [{FF1C1C}Disable{FFFFFF}]', -1)
end

function main()
while not isSampAvailable() do wait(0) end wait(1)
wait(1300)
sampAddChatMessage("{FFFFFF}[{FFAD40}Resource Render by Quarter] - {FF4A4A}ACTIVATED",-1)
sampRegisterChatCommand("rwh", rkact)
while true do
wait(0)
if enabled then
for handle, v in pairs(getAllObjects()) do
local asd
if sampGetObjectSampIdByHandle(v) ~= -1 then
asd = sampGetObjectSampIdByHandle(v)
end
if isObjectOnScreen(v) then
local result, oX, oY, oZ = getObjectCoordinates(v)
local x1, y1 = convert3DCoordsToScreen(oX,oY,oZ)
local objmodel = getObjectModel(v)
local x2,y2,z2 = getCharCoordinates(PLAYER_PED)
local x10, y10 = convert3DCoordsToScreen(x2,y2,z2)
distance = string.format("%.0f", getDistanceBetweenCoords3d(oX,oY,oZ, x2, y2, z2))
if objmodel == 3930 then renderDrawLine(x10, y10, x1, y1, 2, 0xFFFFFF) renderFontDrawText(font,"{FFFF00}Resource:FF0000}"..distance, x1, y1, -1) end
end
end
end
end
end


function rkact()
enabled = not enabled
sampAddChatMessage(enabled and '{FFFFFF}[{FFAD40}WH{FFFFFF}] - [{4FFF38}Enable{FFFFFF}]' or '{FFFFFF}[{FFAD40}WH{FFFFFF}] - [{FF1C1C}Disable{FFFFFF}]', -1)
end
 
Решение
Создаешь переменную на Checkbox, добавляешь его в imgui. Затем в main свою функцию вх добавшяешь в проверку переменной checkbox.
-- Где-то выше
local perem = imgui.ImBool(false)
-- main
if perem.v then
код вх
end

eqzzz

Участник
126
19
Создаешь переменную на Checkbox, добавляешь его в imgui. Затем в main свою функцию вх добавшяешь в проверку переменной checkbox.
-- Где-то выше
local perem = imgui.ImBool(false)
-- main
if perem.v then
код вх
end
 
  • Нравится
Реакции: Lenny Scripts и Kegwineye.