- 5
- 1
Добрый день, у меня не выходит в имгуи меню цикл засунуть, скрипт просто не раниться
задача просто по чекбоксу запустить цикл. Если поможете я был бы очень признателен. код оставлю ниже
задача просто по чекбоксу запустить цикл. Если поможете я был бы очень признателен. код оставлю ниже
Lua:
local imgui = require 'imgui'
local key = require 'vkeys'
local ffi = require "ffi"
local Checkbox = imgui.ImBool(false)
local i = 1
ffi.cdef[[
void keybd_event(int keycode, int scancode, int flags, int extra);
]]
function EmulateKey(key, isDown)
if not isDown then
ffi.C.keybd_event(key, 0, 2, 0)
else
ffi.C.keybd_event(key, 0, 0, 0)
end
end
-- одно из основных отличий от оригинального апи
-- все переменные, значения которых записываются в ImGui по указателю, могут использоваться только через специальные типы
local main_window_state = imgui.ImBool(false)
function imgui.OnDrawFrame()
if main_window_state.v then -- чтение и запись значения такой переменной осуществляется через поле v (или Value)
imgui.SetNextWindowSize(imgui.ImVec2(150, 200), imgui.Cond.FirstUseEver) -- меняем размер
-- но для передачи значения по указателю - обязательно напрямую
-- тут main_window_state передаётся функции imgui.Begin, чтобы можно было отследить закрытие окна нажатием на крестик
imgui.Begin('My window', main_window_state)
imgui.Text('Hello world')
imgui.Checkbox("Checkbox 1",Checkbox)
if imgui.Button('on') then -- а вот и кнопка с действием
-- условие будет выполнено при нажатии на неё
sampSendChat("/bibi")
end
if imgui.Button('off') then -- а вот и кнопка с действием
-- условие будет выполнено при нажатии на неё
sampSendChat("/stop")
end
imgui.End()
end
end
function main()
while true do
wait(0)
if wasKeyPressed(key.VK_X) then -- активация по нажатию клавиши X
main_window_state.v = not main_window_state.v -- переключаем статус активности окна, не забываем про .v
end
imgui.Process = main_window_state.v -- теперь значение imgui.Process всегда будет задаваться в зависимости от активности основного окна
end
while true do wait(500)
if Checkbox.v then
sampAddChatMessage("Klans", 0xc0c24e)
end
end
end
Последнее редактирование модератором: