Поиск в mimgui

goosik

Участник
Автор темы
53
2
Как сделать поиск в моем коде mimgui? Необходимо чтобы можно было искать текст внутри каждого
imgui.CollapsingHeader, хелпаните пожалуйста. КоDick ниже
Lua:
local vk = require "vkeys"
local imgui = require "mimgui"
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
local ffi = require 'ffi'
local new = imgui.new
local ui_meta = {
    __index = function(self, v)
        if v == "switch" then
            local switch = function()
                if self.process and self.process:status() ~= "dead" then
                    return false
                end
                self.timer = os.clock()
                self.state = not self.state

                self.process = lua_thread.create(function()
                    local bringFloatTo = function(from, to, start_time, duration)
                        local timer = os.clock() - start_time
                        if timer >= 0.00 and timer <= duration then
                            local count = timer / (duration / 100)
                            return count * ((to - from) / 100)
                        end
                        return (timer > duration) and to or from
                    end

                    while true do wait(0)
                        local a = bringFloatTo(0.00, 1.00, self.timer, self.duration)
                        self.alpha = self.state and a or 1.00 - a
                        if a == 1.00 then break end
                    end
                end)
                return true
            end
            return switch
        end
 
        if v == "alpha" then
            return self.state and 1.00 or 0.00
        end
    end
}

local menu = { state = false, duration = 0.5 }
setmetatable(menu, ui_meta)

function main()
    repeat wait(0) until isSampAvailable()
 
    sampRegisterChatCommand("media", menu.switch)
end

local main_frame = imgui.OnFrame(
    function() return menu.alpha > 0.00 end,
    function(self)
        self.HideCursor = not menu.state
        imgui.PushStyleVarFloat(imgui.StyleVar.Alpha, menu.alpha)
        imgui.SetNextWindowPos(imgui.ImVec2(700,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(1000, 650), imgui.Cond.Always)
        imgui.Begin("1", _, imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize)
        imgui.BeginChild('1241', imgui.ImVec2(985, 630), true)






        if imgui.CollapsingHeader(u8'Редактирование объявлений (ПРО)') then
            if imgui.CollapsingHeader(u8'[1] Форма редактирования объявления') then
                imgui.TextWrapped(u8'При покупке: Куплю [Сокращение] "[Название предмета]". Бюджет: [Бюджет в "Млн"] [Если бюджет не указан в объявлении, пишем "Свободный"]')
                imgui.TextWrapped(u8'Пример: Куплю р/с "Камень". Бюдежт: 20 тыс/шт')
                imgui.TextWrapped(u8'Пример: Куплю а/с "Прототип". Бюджет: свободный')
                imgui.TextWrapped('')
                imgui.TextWrapped(u8'При продаже: Продам [Сокращение] "[Название предмета]". Цена: [Цена в "Млн"] [Если цена не указана в объявлении, пишем "Договорной"]')
                imgui.TextWrapped(u8'Пример: Продам а/с "Прототип". Цена: договорная')
                imgui.TextWrapped(u8'Пример: Продам р/с "Камень". Цена: договорная')
                imgui.Separator()
            end
            if imgui.CollapsingHeader(u8'[2] Основные сокращения') then
                imgui.TextWrapped(u8'Т/С - Транспортное средство')
                imgui.TextWrapped(u8'А/М - Автомобиль')
                imgui.TextWrapped(u8'М/Ц - Мотоцикл')
                imgui.TextWrapped(u8'В/Т - Воздушный транспорт')
                imgui.TextWrapped(u8'М/С - Морское судно')
                imgui.TextWrapped(u8'В/С - Велосипед')
                imgui.TextWrapped(u8'Р/И - Рабочий инструмент (удочка, супер-грабли, кирка и пр.)')
                imgui.TextWrapped(u8'А/С - Аксессуар')
                imgui.TextWrapped(u8'Р/С - Ресурс (металл, дерево, точильные камни и пр.)')
                imgui.TextWrapped(u8'Б/З - Бизнес')
                imgui.TextWrapped(u8'П/И - Плюшевая игрушка')
                imgui.TextWrapped(u8'И/Л - Иллюстрация')
                imgui.TextWrapped(u8'Г/Т - Грузовой транспорт (ДФТ, фуры, продуктовозки и пр.)')
                imgui.TextWrapped(u8'О/П - Одежда Пошива (Си-джей, геральт и пр.)')
                imgui.TextWrapped(u8'К/К - Карнавальный костюм')
                imgui.TextWrapped(u8'Т/Ф - Телефон')
                imgui.Separator()
            end
            if imgui.CollapsingHeader(u8'[3] Негосударственные организации') then
                imgui.TextWrapped(u8'Якудза - Японский ресторан «Якудза»')
                imgui.TextWrapped(u8'Русская мафия - ЧОП «Русский Медведь»')
                imgui.TextWrapped(u8'ЛКН - Гольф-клуб «ЛКН»')
                imgui.TextWrapped(u8'Варлок - Бар «Молли»')
                imgui.TextWrapped(u8'Ацтек - БК «Ацтек»')
                imgui.TextWrapped(u8'Вагос - Агентство «Маленькие шалости»')
                imgui.TextWrapped(u8'Грув - ФК «Грув»')
                imgui.TextWrapped(u8'Рифа – БК «Рифа»')
                imgui.TextWrapped(u8'Ночные волки - Тату-салон «Ночные волки»')
                imgui.TextWrapped(u8'Баллас - ФК «Баллас»')
                imgui.TextWrapped(u8'')
                imgui.TextWrapped(u8'Например: инвайт в рифу на 7 ранг')
                imgui.TextWrapped(u8'Правильный вид: Проходит набор в БК "Рифа" на 7 майку, ждем на районе!')
                imgui.Separator()
            end
        end
        imgui.EndChild()
        imgui.End()
        imgui.PopStyleVar()
    end
)
 

OSPx

Участник
16
12
ЧатГеПеТе вроде норм идею дал
Lua:
-- Добавляем новую переменную для хранения текста поиска
local searchQuery = new.char[128]()

-- Функция для отображения CollapsingHeader с учетом поискового запроса
local function displayCollapsingHeader(headerText)
    -- Если поисковой запрос пуст, отображаем без фильтрации
    if searchQuery[0] == 0 or u8.strstr(u8(headerText), searchQuery) then
        return imgui.CollapsingHeader(headerText)
    end
    return false
end

-- Ваш основной код...

function main()
    -- Ваш существующий код...

    local main_frame = imgui.OnFrame(
        function() return menu.alpha > 0.00 end,
        function(self)
            -- Ваш существующий код...

            -- Добавляем текстовое поле для ввода поискового запроса
            imgui.InputText(u8'##Search', searchQuery, 128)

            if imgui.CollapsingHeader(u8'Редактирование объявлений (ПРО)') then
                -- Вместо imgui.CollapsingHeader используем новую функцию displayCollapsingHeader
                if displayCollapsingHeader(u8'[1] Форма редактирования объявления') then
                    -- Ваш код для этого CollapsingHeader
                end
                if displayCollapsingHeader(u8'[2] Основные сокращения') then
                    -- Ваш код для этого CollapsingHeader
                end
                if displayCollapsingHeader(u8'[3] Негосударственные организации') then
                    -- Ваш код для этого CollapsingHeader
                end
            end

            -- Ваш существующий код...
        end
    )
end
 
  • Bug
Реакции: minxty

goosik

Участник
Автор темы
53
2
пиздец, просить чатгпт писать код под мунлоадер...

попробуй, мб будет работать
пробовал, в этом то и дело что не получается(
 

ChromiusJ

Известный
Друг
4,896
3,184
нормально писать
u8.strstr(u8
IMG_20240117_194701_571.jpg


Ответ ТС: https://www.blast.hk/threads/198622/#post-1430760