1

Тема: Timeout в плагине диалогов

Всем привет, подскажите как сделать задержку на выставления ответа в диалоге с ботом?

Пример плагина

if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/С первого взгляда, напротив вас сидит/))
external.ClickLink("И вам хорошего дня",2);
else
 
if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/это очень правильно, что ты зашел именно ко мне/))
external.ClickLink("хорошо, я понял твой восторг",2);
else
 
if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Кто сказал, что это будет вещь/))
external.ClickLink("Готов взяться за любое задание",2);
else
 
if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/что мы с тобой нашли общий язык/))
external.ClickLink("Да",2);
else

Задача сделать задержку с 5 секунд после каждого выбора ответа.

Пробовал вставить в плагин после каждого вопроса функцию setTimeout("3000") бот ругается на ошибку. Подскажите пжл!

Заранее спасибо!

2

Re: Timeout в плагине диалогов

В настройках бота, в не боя не пробовал увеличить?

3

Re: Timeout в плагине диалогов

Lapti13 пишет:

В настройках бота, в не боя не пробовал увеличить?

пробовал, на диалог это не повлияло(

4

Re: Timeout в плагине диалогов

semenspb
у тебя скорее всего плагин привязан к обновлению фрейма

PluginsOnLoad["Имя_плагина"] = "функция";

как вариант, после вызова функции отвязывать плагин от обновления фрейма и устанавливать таймер
что то вроде такого:

SPOILER Show

function Example(enabled) {
    if (enabled) {
       if (условие_проверки_диалога){
         ExamTimer[mylogin] = setInterval('DialogSay()', 5000); // запустили таймер на обработку диалогов
       }else {
        clearInterval(ExamTimer[mylogin]);
       }
    } else {
        clearInterval(ExamTimer[mylogin]);
    }
}
 
function DialogSay() {
  if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/С первого взгляда, напротив вас сидит/))
    external.ClickLink("И вам хорошего дня",2);
  else
  if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/это очень правильно, что ты зашел именно ко мне/))
    external.ClickLink("хорошо, я понял твой восторг",2);
  else
  if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Кто сказал, что это будет вещь/))
    external.ClickLink("Готов взяться за любое задание",2);
  else
  if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/что мы с тобой нашли общий язык/))
    external.ClickLink("Да",2);
  else
}

как то так...

Отредактировано Andy_SPB (2015-07-26 21:56:16)

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

5

Re: Timeout в плагине диалогов

Andy_SPB пишет:

[

Спасибо! да, у меня плагин стандартный, там комментарии что по обновлению фрейма.
Буду разбираться, спс.

Да бы не плодить темы, вопрос тоже по timeout
Задача не сложная, думаю многие знают, решение как то видел на форуме, но перерыв все темы так и не нашел(

Нужно что бы бот на определенной клетке останавливался на 30 минут после шел по маршруту дальше

Пробовал в маршрут вставить

c4157b65bd9e957743a3ec4ee57e344f : external(Timeout(10000)) AttackMobs(); Walk("m1");

Ну и разные варианты в этом роде) ничего не помогло, выдает ошибку.

Подскажите как прописать остановку на клетке. Заранее спс!

6

Re: Timeout в плагине диалогов

Есть два варианта:
1. Прямой код в клетке.
2. Присвоение переменной через экстернат, для плагина остановки.

Замедлить бота это дохлый номер, пытался... Работает как получиться. Оптимальный вариант отключать и включать.
По 1.
Нужен симбиоз кода многократного диалога и функции отключения бота. Я на форуме выкладывал пример. Диалог по-моему в низинах(маршруты), а функция отключения в плагине одевания свитков.
Загонишь функцию отключения в через setIntrval в условие многократного диалога (поправить надо будет условия количества диалога).

По 2.
Недавно на форуме рассматривался вариант выполнения кода на опреденной клетке. Тема вроде называлась Выполнения скрипта в маршруте.
Суть такая через экстернал задаешь в клетке переменную и делаешь простой плагин на остановку бота с привязкой к обновлению фрейма, только надо добавить проверку переменной из маршрута.

С примером сейчас помочь не могу, но суть я думаю понятна.

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

7

Re: Timeout в плагине диалогов

semenspb, разобрался?
Я вернулся и командировки, если что могу подсобить...  smile

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

8

Re: Timeout в плагине диалогов

Andy_SPB пишет:

semenspb, разобрался?
Я вернулся и командировки, если что могу подсобить...  smile

Привет, ну пока перевариваю информацию)) на днях посижу подумаю, сча некогда, работа, если поможешь будет супер!!!)

9

Re: Timeout в плагине диалогов

semenspb, попробуй так..

c4157b65bd9e957743a3ec4ee57e344f : if (typeof(delay) == "undefined") { var delay = 0; } if(dalay != 0) { clearInterval(setTimer[mylogin]); AttackMobs(); Walk("m1"); } else { external.Stop(); delay = delay + 1; var setTimer[mylogin] = setInterval('external.Start()', 30*60*1000); }
(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

10

Re: Timeout в плагине диалогов

И так и так пробывал, нифига не получается, а как его к примеру в плагин го-го вставить?

11

Re: Timeout в плагине диалогов

надо привязку не по обновлению фрейма делать, а по таймеру...

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).