поиск

Kecer

Участник
Автор темы
241
11
Версия MoonLoader
.026-beta
Как сделать в imgui поиск
То-есть к примеру у меня кнопки imgui.Button, и при вводе в imgui.InputText он будет искать все кнопки с похожими надписями
 
Последнее редактирование:

qdIbp

Автор темы
Проверенный
1,434
1,174
Если только через таблицу

Lua:
local imgui = require 'imgui'
local key = require 'vkeys'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

tabl = {
['help'] = 'helping',
['slap'] = 'slaping',
['gym'] = 'gyming',
['mycym'] = 'mycyming'
}

local main_window_state = imgui.ImBool(false)
local test_text_buffer = imgui.ImBuffer(256)
function imgui.OnDrawFrame()
    if main_window_state.v then
        imgui.SetNextWindowSize(imgui.ImVec2(150, 200), imgui.Cond.FirstUseEver)
        imgui.Begin('My window', main_window_state)
            for i,k in pairs(tabl) do
                imgui.Button(i)
            end
            imgui.Text('Hello world')
            imgui.InputText(u8'Вводить текст сюда', test_text_buffer)
            if imgui.Button(u8'Поиск') then
                for i,k in pairs(tabl) do
                    if i:find(test_text_buffer.v) then
                        sampAddChatMessage(i,-1)
                    end
                end
            end
        imgui.End()
    end
end

function main()
    while true do wait(0)
        if wasKeyPressed(key.VK_X) then main_window_state.v = not main_window_state.v end
        imgui.Process = main_window_state.v
    end
end
 

Kecer

Участник
Автор темы
241
11
Если только через таблицу

Lua:
local imgui = require 'imgui'
local key = require 'vkeys'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8

tabl = {
['help'] = 'helping',
['slap'] = 'slaping',
['gym'] = 'gyming',
['mycym'] = 'mycyming'
}

local main_window_state = imgui.ImBool(false)
local test_text_buffer = imgui.ImBuffer(256)
function imgui.OnDrawFrame()
    if main_window_state.v then
        imgui.SetNextWindowSize(imgui.ImVec2(150, 200), imgui.Cond.FirstUseEver)
        imgui.Begin('My window', main_window_state)
            for i,k in pairs(tabl) do
                imgui.Button(i)
            end
            imgui.Text('Hello world')
            imgui.InputText(u8'Вводить текст сюда', test_text_buffer)
            if imgui.Button(u8'Поиск') then
                for i,k in pairs(tabl) do
                    if i:find(test_text_buffer.v) then
                        sampAddChatMessage(i,-1)
                    end
                end
            end
        imgui.End()
    end
end

function main()
    while true do wait(0)
        if wasKeyPressed(key.VK_X) then main_window_state.v = not main_window_state.v end
        imgui.Process = main_window_state.v
    end
end
А без кнопки поиск как сделать? Что бы оно сразу искало то-есть я пишу, и оно ищет
 

qdIbp

Автор темы
Проверенный
1,434
1,174
Lua:
    if main_window_state.v then
        imgui.SetNextWindowSize(imgui.ImVec2(275, 275), imgui.Cond.FirstUseEver)
        imgui.Begin('My window', main_window_state)
           
            for i,k in pairs(tabl) do
                imgui.Button(i)
            end
            imgui.Text('Hello world')
            if imgui.InputText(u8' ', test_text_buffer)then
                if #test_text_buffer.v ~= 0 then
                    for i,k in pairs(tabl) do
                        if i:find(test_text_buffer.v) then
                            sampAddChatMessage(i,-1)
                        end
                    end
                end
            end
        imgui.End()
    end
Тогда он каждую букву будет флудить тем что найдет
 
Последнее редактирование: