1

Тема: Диалог

Как вбить в маршрут, чтобы общался с диалоговым ботом? И нажимал нужную послед-сть ответов.

Это записывается прям в маршруте или пишется отдельным плагином?

Подскажите, дайте хотя бы направление где искать, 2й день рассуждаю, штудирую форум, найти не могу.

Боты, боты наши всё!

2

Re: Диалог

Я правильно понял, что можно написать чистый маршрут и кликать по объектам. Когда же кликаем на бота с вариантами ответов, начинает работать плагин (который запущен сразу был) и в нем уже прописаны варианты ответов. ТОбишь, если есть такой вариант диалога, кликаем. И так далее.  Потом когда закрывается диалоговое окно, бот продолжает маршрут.

Боты, боты наши всё!

3

Re: Диалог

(Please log in or register to see this URL)

Делал для заставы. Переделай под себя, в маршруте также указано какой код вводить, только строку диалога бота на свою замени.

Ничто не вечно.

4

Re: Диалог

Спасибо.


Пару наводящих вопрос, как узнать какая ссылка на разговор с ботом.  У тебя вот в начале стоит 

1fbf7cdd0c07d70485dd71aaf6740256 : top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/" + dungName + "?dialog=23feb_voenkom_start&use=" + top.frames[external.mainFrameIndex].arrLayers[1][0]["l"].arrUnits[0].id;
cb8a7d4cc99b8d8b4aa5a53f01b67942 : Walk("m1");

первый идет код клетки, это ясно.  Второе тоже остается без изменений я так понял, то есть вот это top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/" + dungName


+ "?dialog=23feb_voenkom_start&use=" +   откуда ты вот это взял, чтобы понять, как мне дальше пользоваться и дальнейшее что означает?

Боты, боты наши всё!

5

Re: Диалог

нажимаешь на бота, жмешь поговорить, потом правой кнопкой по пустому месту в фрейме диалога жмешь свойства, там будет урл...оттуда и берется...причем тебе не все брать нужно, а только часть dialog=...
вот в посте выше бралась часть ?dialog=23feb_voenkom_start&use=. Тебе только ее и надо будет менять в твоем случае.

У меня все работает, что я делаю не так ?

6

Re: Диалог

ZhEkA_BK пишет:

нажимаешь на бота, жмешь поговорить, потом правой кнопкой по пустому месту в фрейме диалога жмешь свойства, там будет урл...оттуда и берется...причем тебе не все брать нужно, а только часть dialog=...
вот в посте выше бралась часть ?dialog=23feb_voenkom_start&use=. Тебе только ее и надо будет менять в твоем случае.


А дальше менять \ подгонять варианты ответов?

Боты, боты наши всё!

7

Re: Диалог

Смотри по аналогии с плагином, на который тебе пример выше привели.
Вот этот кусок кода тебе нужно будет на свой поменять.

function LukaHandler()
{
    if(!top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(pattern)) return;
 
    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);
        setTimeout("ExitLukaHandler()",1000);
    }
}
У меня все работает, что я делаю не так ?

8

Re: Диалог

Тут сталкнулся ещё с бедой.


3804ff24fb5f34b78cf0b51ec8cc034f : for(var j=0; j<top.frames[external.mainFrameIndex].document.getElementById("ObjectsMap").getElementsByTagName("AREA").length; j++)if(top.frames[external.mainFrameIndex].document.getElementById("ObjectsMap").getElementsByTagName("AREA")[j].title && top.frames[external.mainFrameIndex].document.getElementById("ObjectsMap").getElementsByTagName("AREA")[j].title.indexOf("Светляк") > -1){ top.frames[external.mainFrameIndex].document.getElementById("ObjectsMap").getElementsByTagName("AREA")[j].click(); break;}

как поставить ограничение на кол-во кликов? а то стопорится и постоянно кликает.

Боты, боты наши всё!

9

Re: Диалог

омг...а кто тебе такой бешенный код посоветовал, чтоб на светляка кликать ?
Через екстернал.клик.линк светляка юзай.

У меня все работает, что я делаю не так ?

10

Re: Диалог

UseObjects()

Как прописать конкретный цель для клика?

Боты, боты наши всё!

11

Re: Диалог

RIF17 пишет:

UseObjects()

Как прописать конкретный цель для клика?

У этого метода нету перегрузок

Оставь надежду всяк сюда входящий ©

12

Re: Диалог

Задать ещё условие, что кликать один раз

Боты, боты наши всё!

13

Re: Диалог

ладно, есть такая фигня, но кликает до посинения.

anahronik сказал, "Контрольную переменную надо ещё сделать, которая будет говорить, нажал ты на светляка/колодец или нет. Ну и проверку проводить соответственно."


3804ff24fb5f34b78cf0b51ec8cc034f : for(var j=0; j<top.frames[external.mainFrameIndex].document.getElementById("ObjectsMap").getElementsByTagName("AREA").length; j++)if(top.frames[external.mainFrameIndex].document.getElementById("ObjectsMap").getElementsByTagName("AREA")[j].title && top.frames[external.mainFrameIndex].document.getElementById("ObjectsMap").getElementsByTagName("AREA")[j].title.indexOf("Светляк") > -1){ top.frames[external.mainFrameIndex].document.getElementById("ObjectsMap").getElementsByTagName("AREA")[j].click(); break;}
Боты, боты наши всё!

14

Re: Диалог

anahronik сказал, "Контрольную переменную надо ещё сделать, которая будет говорить, нажал ты на светляка/колодец или нет. Ну и проверку проводить соответственно."

Не уверен, но в маршруте поидее объявлять глобальные переменные нельзя.
Значит, скорее всего он имел ввиду задание переменных через external.initval
Если это так - то да, можно такое сделать.
Но это сделает малость трудночитаемым файл маршрута.

Имхо, объявить бы какой экстернал для кода клетки. Тогда всю эту, простите, еблю с кликаньем в маршруте можно было бы переложить на плечи плагина.

Оставь надежду всяк сюда входящий ©

15

Re: Диалог

короче жопа. Так я и застопорился на это клетке

Боты, боты наши всё!

16

Re: Диалог

RIF17 пишет:

короче жопа. Так я и застопорился на это клетке

ничего жопного здесь нет. в начале маршрута инициализируй через initval по переменной на каждого светляка.
затем на клетке перед светляком: if external.getval(светляк1) == false
кликаешь по светляку и делаешь external.setval(свеьляк1)=true
итак для каждого светляка

Оставь надежду всяк сюда входящий ©

17

Re: Диалог

Exile пишет:

в начале маршрута инициализируй через initval по переменной на каждого светляка.


Можешь подробнее рассказать?

Боты, боты наши всё!

18

Re: Диалог

RIF17 пишет:
Exile пишет:

в начале маршрута инициализируй через initval по переменной на каждого светляка.


Можешь подробнее рассказать?

2) Для сохранения значений переменных при перелетах и подобных случаях, когда глобальные переменные обнуляются, создано 3 external функции:


external.InitVal(key,val) - если не существует переменной с именем key, то она создается и ей присваивается значение val. Если переменная уже есть - оставляет её значение без изменения


external.SetVal(key,val) - как и InitVal, но присваивает значение в любом случае


external.GetVal(key) - возвращает значение переменной key

key - строковый параметры, val - по идее, объект любого типа.

я эти методы применял в плагине для плавки пуршмота. в качестве примера можешь в нем поковыряться

Оставь надежду всяк сюда входящий ©

19

Re: Диалог

external.InitVal(key,val) - если не существует переменной с именем key, то она создается и ей присваивается значение val. Если переменная уже есть - оставляет её значение без изменения
external.SetVal(key,val) - как и InitVal, но присваивает значение в любом случае
external.GetVal(key) - возвращает значение переменной key

key - строковый параметры   Что это ?  Клетка?

Боты, боты наши всё!

20

Re: Диалог

попробую

Боты, боты наши всё!

21

Re: Диалог

Что это ?  Клетка?

нет, тут указывается имя твоей переменной

Оставь надежду всяк сюда входящий ©

22

Re: Диалог

Не получается, голова уже кипит. Доделаю маршрут для 3го этажа, позже продолжу думать о кликах, чтоб её.

сука как специально, сделали на одной клетке Светляка и диалогового бота. 3й день уже сижу над этим.

Отредактировано RIF17 (2012-01-19 18:07:11)

Боты, боты наши всё!

23

Re: Диалог

RIF17 пишет:

Не получается, голова уже кипит. Доделаю маршрут для 3го этажа, позже продолжу думать о кликах, чтоб её.

сука как специально, сделали на одной клетке Светляка и диалогового бота. 3й день уже сижу над этим.

что именно не получается?
кинь код с которым проблемы

Оставь надежду всяк сюда входящий ©

24

Re: Диалог

Ничего не получается, остается гольный маршрут и места, где он встает в стопор из за этого пруда ЧТОБ ЕГО!

3804ff24fb5f34b78cf0b51ec8cc034f : AttackMobs(); Walk("m1");  \\  клетка напротив которой светляк и пРУД!
b8c49e2b766cc36e36499d8ecee946f1 : AttackMobs(); Walk("rr"); \\  Идем вперед (на светялка)
645b1850187995adc1646e8b39492819 : AttackMobs(); Walk("m3");
74cb0b207fd3c545a44dcc73756daec7 : AttackMobs(); Walk("rr");
f752ec6c31bdffdb2e2023656bc5bc8e : AttackMobs(); Walk("m3");
9a1dfdc4bf5031bda2cc74a9c17544a3 : AttackMobs(); Walk("m3");
bf68ade6da43d7f6dc7e56c581022ee8 : AttackMobs(); Walk("m1");

Боты, боты наши всё!

25

Re: Диалог

через цикл на светляка не кликает чтоль?

Оставь надежду всяк сюда входящий ©