Помогите с диалогом

Drago556

Известный
Автор темы
50
6
Версия MoonLoader
.026-beta
Не могу додуматься как сделать так, чтобы при появлении диалога скрипт тыкал по [Можно завершить], а далее брал след квест.
Безымянный.png
 
Последнее редактирование:
Решение
Код:
function ev.onShowDialog(dialogId, style, title, button1, button2, text)
    if state and dialogId == вставить ID then
        local listId = -1
        for line in text:gmatch("[^\n]+") do
            listId = listId + 1
            if line:find("Можно завершить") then
                sampSendDialogResponse(7971, 1, listId, "")
                break
            end
        end
    end
end

Drago556

Известный
Автор темы
50
6
Код:
function samp.onShowDialog(dialogId, style, title, button1, button2, text)
    if dialogId == 123 then
        for k, v in text:gmatch('[^\r\n]+') do
            if v:find("Можно завершить") then
                sampSendDialogResponse(dialogId, 0, k, nil)
            end
        end
    end
end

Надеюсь не ошибся ;D
Не работает, мне не понятна строка [^\r\n]+ что это?
 

Drago556

Известный
Автор темы
50
6
Перенос на новую строку
Вам нужно было заменить ID диалога

ты заменил dialogid?
Конечно заменил на своё. Не работает


Крашит скрипт? Что пишет?
Скрипт работает, как я думаю не работает эта строка for k, v in text:gmatch('[^\r\n]+') do
 

Drago556

Известный
Автор темы
50
6
Добавил дебаг функцию. Выводится строка "Диалог работает", но нет строки "Нашел 'Можно завершить'!". Скорее всего условие не правильное в строке 3 или 4


Код:
if state and dialogId == 7971 then
        sampAddChatMessage(prefix.." Диалог работает", 0xFFFFFF)
        for k, v in text:gmatch('[^\r\n]+') do
            if v:find("Можно завершить") then
                sampAddChatMessage(prefix.." Нашел 'Можно завершить'!", 0xFFFFFF)
                sampSendDialogResponse(dialogId, 0, k, nil)
            end
        end
end
 

Drago556

Известный
Автор темы
50
6
Код:
function ev.onShowDialog(dialogId, style, title, button1, button2, text)
    if state and dialogId == вставить ID then
        local listId = -1
        for line in text:gmatch("[^\n]+") do
            listId = listId + 1
            if line:find("Можно завершить") then
                sampSendDialogResponse(7971, 1, listId, "")
                break
            end
        end
    end
end