local mimgui = require("mimgui")
local vk = require("vkeys") -- клавиши
local active = true -- окно
local macros = false -- макрос
-- кодировка
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
-- настраиваем mimgui
local size = mimgui.ImVec2(300, 200) -- размер окна по умолчанию
-- отключаем запоминание размеров и положения окна
mimgui.OnInitialize(function () mimgui.GetIO().IniFilename = nil end)
mimgui.OnFrame(function() return active end, function ()
local scrX, scrY = getScreenResolution()
-- меняем размер окна только один раз
mimgui.SetNextWindowSize(size, mimgui.Cond.FirstUseEver)
-- ставим окно по середине экрана только один раз
mimgui.SetNextWindowPos(mimgui.ImVec2((scrX/2)-size.x/2, (scrY/2)-size.y/2), mimgui.Cond.FirstUseEver)
mimgui.Begin(u8"Окно твоего скрипта")
mimgui.Text(u8"Текст")
mimgui.Text(u8"Состояние %s":format(macros and u8"вкл" or u8"выкл"))
mimgui.Text(u8"Для переключения нажмите Z+X+C")
mimgui.End()
end)
function main()
-- проверили, что самп работает
if not isSampLoaded() and not isSampfuncsLoaded() then return end
-- проверили, что самп доступен
while not isSampAvailable() do wait(0) end
sampRegisterChatCommand("example", function ()
-- переключаем отображение окна при использовани команды /example
active = not active
end)
while true do
-- проверяем, что Z и X зажаты, а C нажата один раз
if isKeyDown(vk.VK_Z) and isKeyDown(vk.VK_X) and isKeyJustPressed(vk.VK_C) then
-- переключаем состояние макроса
macros = not macros
end
-- не даем зависнуть или выгрузиться
wait(0)
end
end