Помогите с IMGUI

SamuelGoldie

Участник
Автор темы
72
7
Версия MoonLoader
.026-beta
Подскажите пожалуйста как исправить данный код, при нажатии вылазит в другом окне, а нужно чтобы при нажатии как список открывался

lua:
if imgui.CollapsingHeader(u8'Команда') then
                imgui.Text(u8'/re без айди - возвращает в слежку за последним.')
                imgui.Text(u8'/ree без айди - переключает слежку за предыдущим игроком.')
                imgui.Text(u8'/rew без айди - входит в слежку за последним варнингом')
                imgui.Text(u8'/blockk nick - блокирует ркрайм от ника')
                imgui.Text(u8'/avinfo - телепортирует вверх и пишет /vinfo (чтобы ловить нрп авиа)')
                imgui.Text(u8'/acolor (HEX цвет) - цвет админского чата, /repcolor (HEX цвет) - цвет репорта')
                imgui.Text(u8'/g id - замена /goto, /reg - работает как /return после /g ')
                imgui.Text(u8'/gh - замена /gethere')
                imgui.Text(u8'/reofban kod причина - банит в оффе если чел оффнулся с спека.')
                imgui.Text(u8'/asetspawn - добавить точку спавна (только в дефолт мире), /asetspawnoff - выключить.')
                imgui.Text(u8'/addosk - добавить оскорбление (ГЛАВНОЕ НЕ ДОБАВЛЯЙТЕ ЗНАКИ И ПРОБЕЛ)\n/oskfind - включить поиск осков в чатлоге.')
            end
 

SamuelGoldie

Участник
Автор темы
72
7
Вот весь код
lua:
imgui.OnFrame(function() return WinState[0] end,
    function(player)
        imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5)) -- отвечает за положение окна на экране
        imgui.SetNextWindowSize(imgui.ImVec2(800, 600), imgui.Cond.Always) -- отвечает за размер окна
        imgui.Begin(u8'EventHelper', WinState, imgui.WindowFlags.NoResize) -- отвечает за отображение окна, его заголовок и флаги
        rainbow_line(800, 2)
        imgui.Text('EventHelper for Trinity GTA')
        if imgui.DegradeButton(u8'Команды', imgui.ImVec2(85, 25)) then
            acn = 1
         end
         imgui.SameLine()
         if imgui.DegradeButton(u8'Мероприятия', imgui.ImVec2(85, 25)) then
            acn = 7
         end
         imgui.SameLine()
         if imgui.DegradeButton(u8'Информация', imgui.ImVec2(85, 25)) then
            acn = 3
         end
        imgui.End()
        end
    )
 

Andrinall

Известный
680
532
if imgui.CollapsingHeader(u8'Команда') then imgui.Text(u8'/re без айди - возвращает в слежку за последним.') imgui.Text(u8'/ree без айди - переключает слежку за предыдущим игроком.') imgui.Text(u8'/rew без айди - входит в слежку за последним варнингом') imgui.Text(u8'/blockk nick - блокирует ркрайм от ника') imgui.Text(u8'/avinfo - телепортирует вверх и пишет /vinfo (чтобы ловить нрп авиа)') imgui.Text(u8'/acolor (HEX цвет) - цвет админского чата, /repcolor (HEX цвет) - цвет репорта') imgui.Text(u8'/g id - замена /goto, /reg - работает как /return после /g ') imgui.Text(u8'/gh - замена /gethere') imgui.Text(u8'/reofban kod причина - банит в оффе если чел оффнулся с спека.') imgui.Text(u8'/asetspawn - добавить точку спавна (только в дефолт мире), /asetspawnoff - выключить.') imgui.Text(u8'/addosk - добавить оскорбление (ГЛАВНОЕ НЕ ДОБАВЛЯЙТЕ ЗНАКИ И ПРОБЕЛ)\n/oskfind - включить поиск осков в чатлоге.') end

Возможно я бы заменил это на чуть другой вариант.
Да, по виду он страдает, но в целом задачу выполняет не хуже.
Lua:
    if imgui.CollapsingHeader(u8'Команда') then
	    imgui.TextWrapped(u8[[/re без айди - возвращает в слежку за последним.
/ree без айди - переключает слежку за предыдущим игроком.
/rew без айди - входит в слежку за последним варнингом
/blockk nick - блокирует ркрайм от ника
/avinfo - телепортирует вверх и пишет /vinfo (чтобы ловить нрп авиа)
/acolor (HEX цвет) - цвет админского чата, /repcolor (HEX цвет) - цвет репорта
/g id - замена /goto, /reg - работает как /return после /g
/gh - замена /gethere
/reofban kod причина - банит в оффе если чел оффнулся с спека.
/asetspawn - добавить точку спавна (только в дефолт мире), /asetspawnoff - выключить.
/addosk - добавить оскорбление (ГЛАВНОЕ НЕ ДОБАВЛЯЙТЕ ЗНАКИ И ПРОБЕЛ)
/oskfind - включить поиск осков в чатлоге.]], imgui.GetWindowSize().x)
	end

И немного придерусь к команде /addosk, если она серверная то пробел можно добавить экранировав его обратным слешем. текст\(пробел)текст
На большинстве серверов это работало)

Вот весь код
lua:
imgui.OnFrame(function() return WinState[0] end,
    function(player)
        imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5)) -- отвечает за положение окна на экране
        imgui.SetNextWindowSize(imgui.ImVec2(800, 600), imgui.Cond.Always) -- отвечает за размер окна
        imgui.Begin(u8'EventHelper', WinState, imgui.WindowFlags.NoResize) -- отвечает за отображение окна, его заголовок и флаги
        rainbow_line(800, 2)
        imgui.Text('EventHelper for Trinity GTA')
        if imgui.DegradeButton(u8'Команды', imgui.ImVec2(85, 25)) then
            acn = 1
         end
         imgui.SameLine()
         if imgui.DegradeButton(u8'Мероприятия', imgui.ImVec2(85, 25)) then
            acn = 7
         end
         imgui.SameLine()
         if imgui.DegradeButton(u8'Информация', imgui.ImVec2(85, 25)) then
            acn = 3
         end
        imgui.End()
        end
    )
По поводу этого кода - я тут даже не вижу того, что в первом сообщении темы, как это вообще связано - не до конца понятно.
 
Последнее редактирование:

MLycoris

Режим чтения
Проверенный
1,820
1,860
1681116880487.png

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

local commands = {[[/re без айди - возвращает в слежку за последним.
/ree без айди - переключает слежку за предыдущим игроком.
/rew без айди - входит в слежку за последним варнингом
/blockk nick - блокирует ркрайм от ника
/avinfo - телепортирует вверх и пишет /vinfo (чтобы ловить нрп авиа)
/acolor (HEX цвет) - цвет админского чата, /repcolor (HEX цвет) - цвет репорта
/g id - замена /goto, /reg - работает как /return после /g
/gh - замена /gethere
/reofban kod причина - банит в оффе если чел оффнулся с спека.
/asetspawn - добавить точку спавна (только в дефолт мире), /asetspawnoff - выключить.
/addosk - добавить оскорбление (ГЛАВНОЕ НЕ ДОБАВЛЯЙТЕ ЗНАКИ И ПРОБЕЛ)
/oskfind - включить поиск осков в чатлоге.]]}

local ivent = {[[строчка 1
строчка 2
строчка 3]]}

local info = {[[ыаыав
ыа
вава]]}

local new = imgui.new
local WinState = new.bool()

imgui.OnFrame(function() return WinState[0] end,
    function(player)
        imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(800, 600), imgui.Cond.Always)
        imgui.Begin('EventHelper', WinState, imgui.WindowFlags.NoResize)
        if imgui.CollapsingHeader(u8'Команды') then
            imgui.TextWrapped(u8(table.concat(commands, '\n')), imgui.GetWindowSize())
        end
        if imgui.CollapsingHeader(u8'Мероприятия') then
            imgui.TextWrapped(u8(table.concat(ivent, '\n')), imgui.GetWindowSize())
        end
        if imgui.CollapsingHeader(u8'Информация') then
            imgui.TextWrapped(u8(table.concat(info, '\n')), imgui.GetWindowSize())
        end
        imgui.End()
    end
)

function main()
    sampRegisterChatCommand('cmd', function() WinState[0] = not WinState[0] end)
    wait(-1)
end
 
  • Грустно
Реакции: Lance_Sterling