Диалоги...

izicapt

Хацкер
Автор темы
379
124
Версия MoonLoader
.027.0-preview
Есть такая строчка кода, суть в том что бы найти текст в диалоге и если он там есть то ответить в диалоге определенным вариантом "Нет" (по второй кнопке).
Идея в том что бы обойтись без всяких id диалогов, ориентироваться лишь на текст находящийся в диалоге (надоело постоянно ид диалога менять), код стабильно работает до момента пока не покажется диалог, далее он как будто не может найти там этот текст "Ваше сообщение является рекламой?". В чем может быть проблема?
1751461984264.png

lua:
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if enabled and text:find("{......} Ваше сообщение является рекламой?    {......} ") then
        lua_thread.create(function()
            wait(300) -- подождать немного
            sampSendDialogResponse("","1","0","-1") -- нажать кнопку нет
        end)
    end
end
 

VanoKLR

Известный
1,021
652
Есть такая строчка кода, суть в том что бы найти текст в диалоге и если он там есть то ответить в диалоге определенным вариантом "Нет" (по второй кнопке).
Идея в том что бы обойтись без всяких id диалогов, ориентироваться лишь на текст находящийся в диалоге (надоело постоянно ид диалога менять), код стабильно работает до момента пока не покажется диалог, далее он как будто не может найти там этот текст "Ваше сообщение является рекламой?". В чем может быть проблема?

lua:
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if enabled and text:find("{......} Ваше сообщение является рекламой?    {......} ") then
        lua_thread.create(function()
            wait(300) -- подождать немного
            sampSendDialogResponse("","1","0","-1") -- нажать кнопку нет
        end)
    end
end
первое что хочу сказать - функция sampSendDialogRespone принимает строку только в последнем аргументе, все остальное это целые числа.
То-есть тебе надо sampSendDialogRespone(dialogId, 1, 0, "")
Во вторых попробуй убрать регуляторки.
В крайнем случаи пробуй проверять срабатывает ли проверка, например выводи текст в консоль после нее
 

izicapt

Хацкер
Автор темы
379
124
первое что хочу сказать - функция sampSendDialogRespone принимает строку только в последнем аргументе, все остальное это целые числа.
Не до конца понял о чем ты, можешь подробнее объяснить?

То-есть тебе надо sampSendDialogRespone(dialogId, 1, 0, "")
Я вот замечал что оно работает без указания "dialogid", почему иногда оно срабатывает без id, а иногда нет?
 
Последнее редактирование:

bfix

Участник
66
58
lua:
if text:find('Ваше сообщение является рекламой?') and enabled then

    sampSendDialogResponse(dialogId, 1, 0, nil) --[[
    dialogId - Айди диалога который был найден при поимке текста;
    1 - Кнопка, в данном случае отправит "Да", замени на 0 если нужно закрыть;
    0 - Пункт в диалоге, у нас тут нет пунктов для выбора и указываем 0 или любую другую пустоту
    nil - отправляемый текст, нужен в диалогах которые имеют строку ввода, так же указываем пустоту
    ]]

    return false -- Скрываем диалог, не понимаю зачем добавлять lua thread в автопиары, в моменте можно случайно нажать на диалог

end
 

izicapt

Хацкер
Автор темы
379
124
lua:
if text:find('Ваше сообщение является рекламой?') and enabled then

    sampSendDialogResponse(dialogId, 1, 0, nil) --[[
    dialogId - Айди диалога который был найден при поимке текста;
    1 - Кнопка, в данном случае отправит "Да", замени на 0 если нужно закрыть;
    0 - Пункт в диалоге, у нас тут нет пунктов для выбора и указываем 0 или любую другую пустоту
    nil - отправляемый текст, нужен в диалогах которые имеют строку ввода, так же указываем пустоту
    ]]

    return false -- Скрываем диалог, не понимаю зачем добавлять lua thread в автопиары, в моменте можно случайно нажать на диалог

end
Разве диалог не закрывается сам после того как скрипт нажмет на кнопку?
Зачем тогда return false?
 

bfix

Участник
66
58
Разве диалог не закрывается сам после того как скрипт нажмет на кнопку?
Зачем тогда return false?
если моментально нажать на кнопку может не убраться просто, а так добавляя return false мы запрещаем показ диалога в принципе