lua dialog

meowprd

Тот самый Котовский
Автор темы
Проверенный
1,278
718
Версия MoonLoader
.025-beta
Есть диалог формата (DIALOG_STYLE_TABLIST_HEADERS):
1586286110855.png

Нужно найти фразу во втором столбце и номер строчки

В пример могу привести функцию с samp.ahk:
dialog_line := getDialogLine(A_Index)
UPD:
Нашел способ:
Lua:
local function sampGetListboxItemByText(text, plain)
    if not sampIsDialogActive() then return -1 end
    plain = not (plain == false)
    for i = 0, sampGetListboxItemsCount() - 1 do
        if sampGetListboxItemText(i):find(text, 1, plain) then
            return i
        end
    end
    return -1
end

Но тут используется
Lua:
sampGetListboxItemText(int)
который возвращает только текст из первой колонки.

Есть какой-то метод получить текст из второй колонки?
Нужен только он, 1 и 3 колонки не обязательны
 
Последнее редактирование:

qdIbp

Автор темы
Проверенный
1,435
1,175
Читать полностью а не ток начало
UPD:
Нашел способ:
Lua:
local function sampGetListboxItemByText(text, plain)
    if not sampIsDialogActive() then return -1 end
    plain = not (plain == false)
    for i = 0, sampGetListboxItemsCount() - 1 do
        if sampGetListboxItemText(i):find(text, 1, plain) then
            return i
        end
    end
    return -1
end

Но тут используется
Lua:
sampGetListboxItemText(int)
который возвращает только текст из первой колонки.

Есть какой-то метод получить текст из второй колонки?
Нужен только он, 1 и 3 колонки не обязательны
 

RedHolms

Известный
Проверенный
619
366
Есть диалог формата (DIALOG_STYLE_TABLIST_HEADERS):

Нужно найти фразу во втором столбце и номер строчки

В пример могу привести функцию с samp.ahk:
dialog_line := getDialogLine(A_Index)
UPD:
Нашел способ:
Lua:
local function sampGetListboxItemByText(text, plain)
    if not sampIsDialogActive() then return -1 end
    plain = not (plain == false)
    for i = 0, sampGetListboxItemsCount() - 1 do
        if sampGetListboxItemText(i):find(text, 1, plain) then
            return i
        end
    end
    return -1
end

Но тут используется
Lua:
sampGetListboxItemText(int)
который возвращает только текст из первой колонки.

Есть какой-то метод получить текст из второй колонки?
Нужен только он, 1 и 3 колонки не обязательны
Lua:
function string.split(self, sep)
    if sep == nil then return self end
    if type(self) ~= "string" then self = tostring(self) end

    local t={}
    for str in string.gmatch(self, "([^"..sep.."]+)") do
        table.insert(t, str)
    end
    return t
end

function getDialogItem(dialogText, line, tab)
    line = line or 1
    tab = tab or 1
  
    local lines = dialogText:split('\n')
    return lines[line]:split('\t')[tab]
end

если надо получить только целую строку, то вот:

Lua:
function string.split(self, sep)
    if sep == nil then return self end
    if type(self) ~= "string" then self = tostring(self) end

    local t={}
    for str in string.gmatch(self, "([^"..sep.."]+)") do
        table.insert(t, str)
    end
    return t
end

function getDialogLine(dialogText, line)
    line = line or 1
    tab = tab or 1
 
    return dialogText:split('\n')[line]
end
 
  • Нравится
Реакции: 3211Marlon1123

RedHolms

Известный
Проверенный
619
366
вы че ебанутые?
вы нахуя тему почти 2-х годовой давности подняли?
я решил эту проблему уже очень давно
ахах, я на дату даже не посмотрел, просто увидел, что вопрос в топе, решил ответить
сори, если побеспокоил)
 

Похожие темы

    • Закрыта
    • Вопрос
    Ответы
    2
    Просмотры
    681
  1. Ответы
    4
    Просмотры
    3K
  2. Ответы
    9
    Просмотры
    1K