Достать информацию из диалога стайла List

Clinya

Участник
Автор темы
55
13
Версия MoonLoader
.027.0-preview
Нужно получить кол-во дней отсутствия в игре(Со всех строк). Чет искал искал и не нашёл.
Мне нужно сделать так, чтобы если кол-во дней превышает 5, то скрипт нажимал на эту строчку. Как это сделать?
 
Решение
как пример

Lua:
local sampev = require('samp.events') --подключение библиотеки

function getDialogItem(dText, findLine)         --[[функция, принимающая два аргумента, в нашем случае]]
    local i = -1                                --[[dText и findLine. dText - текст диалога]]
    for line in dText:gmatch('([^\n\r]+)') do   --[[findLine - шаблон для поиска. ]]
        i = i + 1
        if line:find(findLine) then
            return i
        end
    end
    return -1
end

--ниже представлена функция поиска пункта "Донат" и отправка нажатия на этот пункт

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)  --обработка диалога
    sampSendDialogResponse(dialogId, 1, getDialogItem(text, 'Донат'), -1)...

Sidney31

Известный
1,124
385
как пример

Lua:
local sampev = require('samp.events') --подключение библиотеки

function getDialogItem(dText, findLine)         --[[функция, принимающая два аргумента, в нашем случае]]
    local i = -1                                --[[dText и findLine. dText - текст диалога]]
    for line in dText:gmatch('([^\n\r]+)') do   --[[findLine - шаблон для поиска. ]]
        i = i + 1
        if line:find(findLine) then
            return i
        end
    end
    return -1
end

--ниже представлена функция поиска пункта "Донат" и отправка нажатия на этот пункт

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)  --обработка диалога
    sampSendDialogResponse(dialogId, 1, getDialogItem(text, 'Донат'), -1)     --отправка в диалог
end
 
  • Нравится
Реакции: Clinya

Clinya

Участник
Автор темы
55
13
как пример

Lua:
local sampev = require('samp.events') --подключение библиотеки

function getDialogItem(dText, findLine)         --[[функция, принимающая два аргумента, в нашем случае]]
    local i = -1                                --[[dText и findLine. dText - текст диалога]]
    for line in dText:gmatch('([^\n\r]+)') do   --[[findLine - шаблон для поиска. ]]
        i = i + 1
        if line:find(findLine) then
            return i
        end
    end
    return -1
end

--ниже представлена функция поиска пункта "Донат" и отправка нажатия на этот пункт

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)  --обработка диалога
    sampSendDialogResponse(dialogId, 1, getDialogItem(text, 'Донат'), -1)     --отправка в диалог
end
Сначала не мог понять как это работает, а потом как понял