Поиск в mimgui

Howau

Участник
Автор темы
45
8
Версия MoonLoader
.026-beta
Делаю что-то на подобии умного розыска, сделал поиск, но он ищет прямо таки точно, если в статье написано "Убийство", а я в поиске напиши "убийство", то он мне ничего не вернет в качестве найденной строки.

Lua:
-- окно
imgui.OnFrame(function() return ssu[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(830,630), imgui.Cond.Always)
    imgui.Begin(fa.STAR .. u8" Умный розыск", ssu, imgui.AlwaysAutoResize)
    imgui.InputTextWithHint('##Search',u8'Поиск',search ,256)
    imgui.SameLine()
   
    imgui.SameLine()
    if imgui.Button(fa.BROOM .. u8"Очистить") then imgui.StrCopy(search, '') end
    imgui.SameLine()
    if imgui.Checkbox(u8'Запрос', zap) then
        ini.mainIni.zap = zap[0]
        inicfg.save(ini, 'LawHelper/lawini.ini')
    end
   
    local str_search = ffi.string(search)
    local is_searching = #str_search ~= 0
   
    for chapter_id, chapter in ipairs(criminal_codes) do
        local chapter_has_matches = false
   
        for article_id, article in ipairs(chapter.items) do
            if is_searching and u8(article.wrapped):find(str_search) then
                chapter_has_matches = true
                break
            end
        end

        if not is_searching or chapter_has_matches then
            imgui.SetNextItemOpen(true)
   
            if imgui.CollapsingHeader(u8('Статья ' .. chapter.header) .. "##" .. chapter_id) then
                for article_id, article in ipairs(chapter.items) do
                    if not is_searching or u8(article.wrapped):find(str_search) then
                        imgui.TextWrapped(u8(article.wrapped))
 
                        if imgui.IsItemClicked() then
                            ssu[0] = not ssu[0]
                            send_thread:run(article.messages, _, {ini.mainIni.name, ini.mainIni.purID}, _, _, _, {ini.mainIni.purID}, _)
                        end
                    end
                end
            end
        end
    end
    search_active = false
end)

-- откудава берутся значения
local criminal_codes = {
    {
        header = ' 3.1 Преступления против жизни и здоровья.', -- заголовок CollapsingHeader'a
        items = {
            {
                wrapped = '3.1.1. Убийство человека | 5*', -- заголовок Text'a
                messages = {
                    boxfive = {
                        '/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого',
                        '/r %s на CONTROL. Запрашиваю объявление в розыск дело N-%d.',
                    },
                    boxthere = {
                        '/r Причина запроса - 3.1.1 КК, 5 степень',
                    },
                    boxfour = {
                        '/r Убийство человека.'
                    },
                    pID = {
                        '/me зажал кнопку на опции и сообщил диспетчеру приметы подозреваемого',
                        '/su %d 5 3.1.1 КК',
                        '/do Преступник занесен в базу данных.'
                    }
                }
            },
        }
    }
}
 

Albertio

Attention! Thanks for your attention.
887
717
Переводи слово для поиска и текст для поиска в нижний регистр, а потом проводи поиск

 

Howau

Участник
Автор темы
45
8
Переводи слово для поиска и текст для поиска в нижний регистр, а потом проводи поиск

пытался через lib string, в итоге все также, хотя в чат выводил, что то и то в нижнем регистре. Может я просто рукожоп.