- 478
- 20
как сделать чтобы на еск закрывалось а на ввод команды например /hel открывалось ?
Lua:
local imgui = require 'imgui'
local key = require 'vkeys'
local checkboxone = imgui.ImBool(false)
local checkboxdva = imgui.ImBool(false)
local checkboxtri = imgui.ImBool(false)
local checkboxchetiri = imgui.ImBool(false)
local checkboxpyat = imgui.ImBool(false)
-- одно из основных отличий от оригинального апи
-- все переменные, значения которых записываются в 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.Checkbox('Press me1', checkboxone) -- а вот и кнопка с действие
imgui.SameLine()
imgui.Checkbox('Press me2', checkboxdva) -- а вот и кнопка с действием
imgui.Checkbox('Press me3', checkboxtri) -- а вот и кнопка с действием
imgui.SameLine()
imgui.Checkbox('Press me4', checkboxchetiri) -- а вот и кнопка с действием
imgui.NewLine()
imgui.Checkbox('Press me5', checkboxpyat) -- а вот и кнопка с действием
imgui.End()
end
end
function main()
while true do
wait(0)
imgui.Process = true
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
end