- 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 Преступник занесен в базу данных.'
}
}
},
}
}
}