local imgui = require('mimgui');
local ffi = require('ffi');
local keys = require "vkeys"
local encoding = require('encoding');
encoding.default = 'CP1251';
local u8 = encoding.UTF8;
local window = imgui.new.bool(false); -- Изменяем значение на false
function main()
while not isSampAvailable() do wait(0) end
sampAddChatMessage('Скрипт загружен! by LEATH0R', 0xFFff0000)
while true do
wait(0)
-- Обработка клавиши F5 для открытия/закрытия окна imgui
if isKeyDown(keys.VK_F5) then
window[0] = not window[0] -- Инвертируем значение окна (открываем/закрываем)
end
end
end
imgui.OnInitialize(function()
imgui.GetIO().IniFilename = nil;
end);
imgui.OnFrame(
function() return true end,
function(this)
local size, res = imgui.ImVec2(250, 250), imgui.ImVec2(getScreenResolution());
imgui.SetNextWindowSize(size, imgui.Cond.FirstUseEver)
if (imgui.Begin('leath0r screapt', window, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize)) then
if (imgui.Button(u8'Открыть/закрыть машину', imgui.ImVec2(200, 50))) then
sampSendChat('/lock');
end
if (imgui.Begin('leath0r screapt', window, imgui.WindowFlags.NoCollapse)) then
if (imgui.Button(u8'Завести двигатель', imgui.ImVec2(200, 50))) then
sampSendChat('/engine');
end
end
end
imgui.End();
end
);
не сработает, во-первых ты в onframe не передаешь переменную window, у тебя окно всегда открыто будет, во-вторых isKeyDown будет возвращать true каждый кадр, пока нажата клавиша и окно мигать будет, надо isKeyJustPressed юзатьНе уверен что сработает, но все возможно, активация F5Lua:local imgui = require('mimgui'); local ffi = require('ffi'); local keys = require "vkeys" local encoding = require('encoding'); encoding.default = 'CP1251'; local u8 = encoding.UTF8; local window = imgui.new.bool(false); -- Изменяем значение на false function main() while not isSampAvailable() do wait(0) end sampAddChatMessage('Скрипт загружен! by LEATH0R', 0xFFff0000) while true do wait(0) -- Обработка клавиши F5 для открытия/закрытия окна imgui if isKeyDown(keys.VK_F5) then window[0] = not window[0] -- Инвертируем значение окна (открываем/закрываем) end end end imgui.OnInitialize(function() imgui.GetIO().IniFilename = nil; end); imgui.OnFrame( function() return true end, function(this) local size, res = imgui.ImVec2(250, 250), imgui.ImVec2(getScreenResolution()); imgui.SetNextWindowSize(size, imgui.Cond.FirstUseEver) if (imgui.Begin('leath0r screapt', window, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize)) then if (imgui.Button(u8'Открыть/закрыть машину', imgui.ImVec2(200, 50))) then sampSendChat('/lock'); end if (imgui.Begin('leath0r screapt', window, imgui.WindowFlags.NoCollapse)) then if (imgui.Button(u8'Завести двигатель', imgui.ImVec2(200, 50))) then sampSendChat('/engine'); end end end imgui.End(); end );
не сработает, во-первых ты в onframe не передаешь переменную window, у тебя окно всегда открыто будет, во-вторых isKeyDown будет возвращать true каждый кадр, пока нажата клавиша и окно мигать будет, надо isKeyJustPressed юзать
local imgui = require('mimgui');
local ffi = require('ffi');
local keys = require "vkeys"
local encoding = require('encoding');
encoding.default = 'CP1251';
local u8 = encoding.UTF8;
local window = imgui.new.bool(false); -- Изначально окно закрыто
function main()
while not isSampAvailable() do wait(0) end
sampAddChatMessage('Скрипт загружен! by LEATH0R', 0xFFff0000)
local isWindowOpen = false -- Флаг, указывающий, открыто ли окно imgui
while true do
wait(0)
-- Обработка клавиши F5 для открытия/закрытия окна imgui
if isKeyJustPressed(keys.VK_F5) then
isWindowOpen = not isWindowOpen -- Инвертируем флаг
end
if isWindowOpen then
imgui.Process = true -- Включаем обработку imgui
else
imgui.Process = false -- Выключаем обработку imgui
end
end
end
imgui.OnInitialize(function()
imgui.GetIO().IniFilename = nil;
end);
imgui.OnFrame(
function() return true end,
function(this)
local size, res = imgui.ImVec2(250, 250), imgui.ImVec2(getScreenResolution());
imgui.SetNextWindowSize(size, imgui.Cond.FirstUseEver)
if (imgui.Begin('leath0r screapt', window, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize)) then
if (imgui.Button(u8'Открыть/закрыть машину', imgui.ImVec2(200, 50))) then
sampSendChat('/lock');
end
if (imgui.Begin('leath0r screapt', window, imgui.WindowFlags.NoCollapse)) then
if (imgui.Button(u8'Завести двигатель', imgui.ImVec2(200, 50))) then
sampSendChat('/engine');
end
end
end
imgui.End();
end
);
чат гпт не может писать полностью рабочий кодLua:local imgui = require('mimgui'); local ffi = require('ffi'); local keys = require "vkeys" local encoding = require('encoding'); encoding.default = 'CP1251'; local u8 = encoding.UTF8; local window = imgui.new.bool(false); -- Изначально окно закрыто function main() while not isSampAvailable() do wait(0) end sampAddChatMessage('Скрипт загружен! by LEATH0R', 0xFFff0000) local isWindowOpen = false -- Флаг, указывающий, открыто ли окно imgui while true do wait(0) -- Обработка клавиши F5 для открытия/закрытия окна imgui if isKeyJustPressed(keys.VK_F5) then isWindowOpen = not isWindowOpen -- Инвертируем флаг end if isWindowOpen then imgui.Process = true -- Включаем обработку imgui else imgui.Process = false -- Выключаем обработку imgui end end end imgui.OnInitialize(function() imgui.GetIO().IniFilename = nil; end); imgui.OnFrame( function() return true end, function(this) local size, res = imgui.ImVec2(250, 250), imgui.ImVec2(getScreenResolution()); imgui.SetNextWindowSize(size, imgui.Cond.FirstUseEver) if (imgui.Begin('leath0r screapt', window, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize)) then if (imgui.Button(u8'Открыть/закрыть машину', imgui.ImVec2(200, 50))) then sampSendChat('/lock'); end if (imgui.Begin('leath0r screapt', window, imgui.WindowFlags.NoCollapse)) then if (imgui.Button(u8'Завести двигатель', imgui.ImVec2(200, 50))) then sampSendChat('/engine'); end end end imgui.End(); end );
Это вообще чат гпт пишет ахах
нахуя ты пишешь тогда если не знаешь, и ты сделал только хуже, у тебя есть уже переменная window, зачем ты isWindowOpen создаешьLua:local imgui = require('mimgui'); local ffi = require('ffi'); local keys = require "vkeys" local encoding = require('encoding'); encoding.default = 'CP1251'; local u8 = encoding.UTF8; local window = imgui.new.bool(false); -- Изначально окно закрыто function main() while not isSampAvailable() do wait(0) end sampAddChatMessage('Скрипт загружен! by LEATH0R', 0xFFff0000) local isWindowOpen = false -- Флаг, указывающий, открыто ли окно imgui while true do wait(0) -- Обработка клавиши F5 для открытия/закрытия окна imgui if isKeyJustPressed(keys.VK_F5) then isWindowOpen = not isWindowOpen -- Инвертируем флаг end if isWindowOpen then imgui.Process = true -- Включаем обработку imgui else imgui.Process = false -- Выключаем обработку imgui end end end imgui.OnInitialize(function() imgui.GetIO().IniFilename = nil; end); imgui.OnFrame( function() return true end, function(this) local size, res = imgui.ImVec2(250, 250), imgui.ImVec2(getScreenResolution()); imgui.SetNextWindowSize(size, imgui.Cond.FirstUseEver) if (imgui.Begin('leath0r screapt', window, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize)) then if (imgui.Button(u8'Открыть/закрыть машину', imgui.ImVec2(200, 50))) then sampSendChat('/lock'); end if (imgui.Begin('leath0r screapt', window, imgui.WindowFlags.NoCollapse)) then if (imgui.Button(u8'Завести двигатель', imgui.ImVec2(200, 50))) then sampSendChat('/engine'); end end end imgui.End(); end );
Это вообще чат гпт пишет ахах
Чел вообще для imgui просил... И никто ему не скажет, что imgui залупа, про которую уже давно пора забытьLua:local imgui = require('mimgui'); local ffi = require('ffi'); local keys = require "vkeys" local encoding = require('encoding'); encoding.default = 'CP1251'; local u8 = encoding.UTF8; local window = imgui.new.bool(false); -- Изначально окно закрыто function main() while not isSampAvailable() do wait(0) end sampAddChatMessage('Скрипт загружен! by LEATH0R', 0xFFff0000) local isWindowOpen = false -- Флаг, указывающий, открыто ли окно imgui while true do wait(0) -- Обработка клавиши F5 для открытия/закрытия окна imgui if isKeyJustPressed(keys.VK_F5) then isWindowOpen = not isWindowOpen -- Инвертируем флаг end if isWindowOpen then imgui.Process = true -- Включаем обработку imgui else imgui.Process = false -- Выключаем обработку imgui end end end imgui.OnInitialize(function() imgui.GetIO().IniFilename = nil; end); imgui.OnFrame( function() return true end, function(this) local size, res = imgui.ImVec2(250, 250), imgui.ImVec2(getScreenResolution()); imgui.SetNextWindowSize(size, imgui.Cond.FirstUseEver) if (imgui.Begin('leath0r screapt', window, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize)) then if (imgui.Button(u8'Открыть/закрыть машину', imgui.ImVec2(200, 50))) then sampSendChat('/lock'); end if (imgui.Begin('leath0r screapt', window, imgui.WindowFlags.NoCollapse)) then if (imgui.Button(u8'Завести двигатель', imgui.ImVec2(200, 50))) then sampSendChat('/engine'); end end end imgui.End(); end );
Это вообще чат гпт пишет ахах
Я по этому тутору и писал но чаппо не показал как на клавишу биндитьЧел вообще для imgui просил... И никто ему не скажет, что imgui залупа, про которую уже давно пора забыть
Автору для психического благополучия:
![]()
Гайд - mimgui — Dear ImGui for MoonLoader
Добро пожаловать в гайд по mimgui. mimgui — это новая графическая библиотека, написанная в результате устаревания предыдущей графической библиотеки Moon ImGui, использующей Dear ImGui v.1.52; использующая в своей основе свежий релиз Dear ImGui v.1.72. Новая библиотека включает в себя все...www.blast.hk
![]()
Гайд - Примеры Mimgui с пояснениями
Введение Данная тема создана, как продолжение гайда "Mimgui для чайников" (обязательно к прочтению) с целью ознакомить начинающих скриптеров с mimgui на практике. Практика - является лучшим способом изучения чего-либо, пример простых скриптов на луа и их разбор поможет лучше понять данную...www.blast.hk
В интернете же нет гайдов по проверке на клавишу...Я по этому тутору и писал но чаппо не показал как на клавишу биндить
if isKeyJustPressed(клавиша) then
переменная окна = not переменная окна
end