Извлечение содержимого в диалоге

Coquette

Новичок
Автор темы
23
0
Версия MoonLoader
.026-beta
Можно как-то извлечь содержимое выбранной строки в диалоге?
И цвет в {RRGGBB} формате который используется в этой строке?
1673943808780.png
 

Coquette

Новичок
Автор темы
23
0
Если что этот диалог создан в луа файле, а не со стороны сервера

Что в твоем понимании извлечь?
Содержимое строки, то что выбрал и нажал на Enter, и вот мне нужно то что содержится в этой строке
 

Coquette

Новичок
Автор темы
23
0
Чтобы он выбрал пункт который тебе нужен?
Не много не понял, мне просто нужно чтобы мне показалось в чате то, что содержится в строке диалога, который я выбрал

Чтобы он выбрал пункт который тебе нужен?
Допустим я выбрал первую строку в которой написано "FFFFCC", и вот мне нужно чтобы вывелось в чате это "FFFFCC" и ещё код {RRGGBB} формата
 

Andrinall

Известный
702
518
Не много не понял, мне просто нужно чтобы мне показалось в чате то, что содержится в строке диалога, который я выбрал


Допустим я выбрал первую строку в которой написано "FFFFCC", и вот мне нужно чтобы вывелось в чате это "FFFFCC" и ещё код {RRGGBB} формата
Конкретно для того диалога, что на скриншоте - вроде должно работать.

Lua:
function getColorFromListItem()
    if not isSampAvailable() then return end
    if not sampIsDialogActive() then return end

    local listid = sampGetCurrentDialogListItem()
    local text = sampGetDialogText(sampGetCurrentDialogId())
    local counter = 0
    
    for line in text:gmatch("[^\n]+") do
        if listid == counter then
            local color, txt = line:match("({%x+})(%x+)")
            if not color or not txt then return end
            return color, text
        end
        counter = counter + 1
    end
end

Использование
Lua:
while true do wait(0)
    if isKeyJustPressed(VK_L) then
        local clr, txt = getColorFromListItem()
        if clr then
            sampAddChatMessage(txt .. "   " .. clr, -1)
        end
    end
end
 
  • Нравится
Реакции: YarikVL