хелпаните с mimgui

bruskin

Участник
Автор темы
151
14
Версия MoonLoader
Другое
И так, у меня есть окно mimgui, которое открывается при запуске скрипта (проблема №1, оно должно открывать впервые только по команде), так же на этом окне все написано вместо русского текста знаками вопроса (Пробелма №2), окно не закрывается на крестик в углу (проблема №3), после закрытия окна командой и открытия его вновь - скрипт крашится (проблема №4)
Lua:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
--тралала
local cmdhelp_window_state = new.bool()
--тралала
imgui.OnFrame(function() return cmdhelp_window_state end, function(player)
        imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(245, 280), imgui.Cond.Always)
        imgui.ShowCursor = true
        imgui.Begin(u8'Список Команд | Defense Helper', cmdhelp_window_state)
        imgui.Text(u8'/useditems - посмотреть КД на броник и время действия маски')
        imgui.Text(u8'/frisk - обыск')
        imgui.Text(u8'/cuff - надеть наручники')
        imgui.Text(u8'/carcer - посадить в карцер')
        imgui.End()
end)
--тралала
--это уже в мейне:
sampRegisterChatCommand('helpdh', function() cmdhelp_window_state = not cmdhelp_window_state end)

1700391255197.png


Код:
[ML] (error) defensehelper.lua: ... Games Launcher\bin\arizona\moonloader\defensehelper.lua:73: bad argument #2 to 'Begin' (cannot convert 'bool' to 'bool *')
stack traceback:
    [C]: in function 'Begin'
    ... Games Launcher\bin\arizona\moonloader\defensehelper.lua:73: in function '_draw'
    ...ames Launcher\bin\arizona\moonloader\lib\mimgui\init.lua:107: in function <...ames Launcher\bin\arizona\moonloader\lib\mimgui\init.lua:91>
[ML] (error) defensehelper.lua: Script died due to error. (34AC214C)
 
Последнее редактирование:
Решение
1700392494126.png

123123:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local renderWindow = imgui.new.bool(false)

imgui.OnInitialize(function()
    imgui.GetIO().IniFilename = nil
end)

local newFrame = imgui.OnFrame(
    function() return renderWindow[0] end,
    function(player)
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 245, 280
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2, resY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        if imgui.Begin(u8'Список Команд | Defense Helper', renderWindow) then
            imgui.Text(u8'/useditems -...

Tensay

Активный
168
52
1700392494126.png

123123:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local renderWindow = imgui.new.bool(false)

imgui.OnInitialize(function()
    imgui.GetIO().IniFilename = nil
end)

local newFrame = imgui.OnFrame(
    function() return renderWindow[0] end,
    function(player)
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 245, 280
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2, resY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        if imgui.Begin(u8'Список Команд | Defense Helper', renderWindow) then
            imgui.Text(u8'/useditems - посмотреть КД на броник и время действия маски')
            imgui.Text(u8'/frisk - обыск')
            imgui.Text(u8'/cuff - надеть наручники')
            imgui.Text(u8'/carcer - посадить в карцер')
            imgui.End()
        end
    end
)

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('dhhelp', function()
        renderWindow[0] = not renderWindow[0]
    end)
    wait(-1)
end
 
  • Нравится
Реакции: bruskin

bruskin

Участник
Автор темы
151
14
Посмотреть вложение 221639
123123:
local imgui = require 'mimgui'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

local renderWindow = imgui.new.bool(false)

imgui.OnInitialize(function()
    imgui.GetIO().IniFilename = nil
end)

local newFrame = imgui.OnFrame(
    function() return renderWindow[0] end,
    function(player)
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 245, 280
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2, resY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        if imgui.Begin(u8'Список Команд | Defense Helper', renderWindow) then
            imgui.Text(u8'/useditems - посмотреть КД на броник и время действия маски')
            imgui.Text(u8'/frisk - обыск')
            imgui.Text(u8'/cuff - надеть наручники')
            imgui.Text(u8'/carcer - посадить в карцер')
            imgui.End()
        end
    end
)

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('dhhelp', function()
        renderWindow[0] = not renderWindow[0]
    end)
    wait(-1)
end
Lua:
local cmdhelp_window_state = new.bool(false)

local helpdh = imgui.OnFrame(function() return cmdhelp_window_state[0] end, function(player)
        local scrX, scrY = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(scrX / 2, scrY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0, 0));
        imgui.SetNextWindowSize(imgui.ImVec2(600,400), imgui.Cond.FirstUseEver)
        imgui.ShowCursor = true
        if imgui.Begin(u8'Список Команд | Defense Helper', cmdhelp_window_state) then
            imgui.Text(u8'/useditems - посмотреть КД на броник и время действия маски')
            imgui.Text(u8'/frisk - обыск')
            imgui.Text(u8'/cuff - надеть наручники')
            imgui.Text(u8'/carcer - посадить в карцер')
            imgui.End()
        end
end)

sampRegisterChatCommand('helpdh', function() cmdhelp_window_state[0] = not cmdhelp_window_state[0] end)
собственно.. ничего нового
 

Tensay

Активный
168
52
Lua:
local cmdhelp_window_state = new.bool(false)

local helpdh = imgui.OnFrame(function() return cmdhelp_window_state[0] end, function(player)
        local scrX, scrY = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(scrX / 2, scrY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0, 0));
        imgui.SetNextWindowSize(imgui.ImVec2(600,400), imgui.Cond.FirstUseEver)
        imgui.ShowCursor = true
        if imgui.Begin(u8'Список Команд | Defense Helper', cmdhelp_window_state) then
            imgui.Text(u8'/useditems - посмотреть КД на броник и время действия маски')
            imgui.Text(u8'/frisk - обыск')
            imgui.Text(u8'/cuff - надеть наручники')
            imgui.Text(u8'/carcer - посадить в карцер')
            imgui.End()
        end
end)

sampRegisterChatCommand('helpdh', function() cmdhelp_window_state[0] = not cmdhelp_window_state[0] end)
собственно.. ничего нового
Я тебе выше рабочий код скинул