ImGUI кликабельный текст.

wintreist

Активный
Автор темы
308
71
Версия MoonLoader
.026-beta
Требуется сделать так, чтобы imgui получал текст. Текст делится на все слова в нём (пример: Привет, как дела? - где кликабельными должны быть "Привет", "как", "дела") и появляется возможность тыкнуть на все слова, и при нажатии происходит определенное действие. (Нажимаю на "Привет" в sampAddChatMessage будет выведено "Привет", и аналогично с "как" и "дела")
Самое первое, это возможно ли реализовать?
Второе, если вы могли бы, приведите код, пожалуйста.
 

Angr

Известный
291
99
Можно попробовать реализовать через split

Lua:
local testText = "Шла Саша по шоссе и сосала ..."

function split(str, delim, plain) -- bh FYP
   local tokens, pos, plain = {}, 1, not (plain == false) --[[ delimiter is plain text by default ]]
   repeat
       local npos, epos = string.find(str, delim, pos, plain)
       table.insert(tokens, string.sub(str, pos, npos and npos - 1))
       pos = epos and epos + 1
   until not pos
   return tokens
end

local newText = split(testText," ") -- делим по пробелу

-- В Imgui
for k,v in pairs(newText) do
    imgui.Text(u8(v))
    if imgui.IsItemClicked(1) then -- Если нажмет ПКМ на текст
        sampAddChatMessage(v, 0x4CD819 );
    end
    imgui.SameLine(nil, 5) -- Чтобы были в 1 строку и интервал 5 
end
Итог
lWHLUtEW94E.jpg
 
Последнее редактирование:
  • Нравится
Реакции: Rei