201

(27 ответов, оставленных в Настройки / Плагины)

Евжений,
вообще этот кусок запускать отдельно пробовал?
просто по коду вроде все ок.

202

(27 ответов, оставленных в Настройки / Плагины)

Евжений,
вижу два момент
потерял }  в конце function AllDialogHandler()
второй момент скорее всего косяк таймера (времени)...
пробовал без таймера на прямую вызывать функцию function AllDialogHandler() ?
У меня не всегда корректно срабатывает время таймера плагина и время таймера бота, я в этом пока не разобрался.
и еще в первой строке поставь ;

203

(259 ответов, оставленных в Настройки / Плагины)

Slaylexx,
в настойках можно поменять куда возвращаться... Настройки - > Дополнительно... там есть выпадающий список.
Если в списке нет твоей комнаты, то можно попытаться поменять стандартную комнату на любую другую через

external.AddToChat("SLichBackRoom = "+external.SLichBackRoom.Text);
external.SLichBackRoom.Text = "ТЕСТ";
external.AddToChat("SLichBackRoom (Смена) = "+external.SLichBackRoom.Text);

Если при запуске бота прописать старт плагина с кодом

external.SLichBackRoom.Text = "ТЕСТ";

то у тебя в настойках бота по дефолту будет прописываться в место комнаты "ТЕСТ".
Т.к. в боте нет маршрута в комнату "ТЕСТ" тут есть два варианта
1. Бот впадет в стопор
2. Бот подхватит маршрут из плагина

Есть еще вариант... просто добавить маршрут от ЗВ в нужную комнату

Так же можно в плагин добавить условия

bool LichProcess = false; - идёт ли процесс лечения у Лича
bool RepairEnabled = false; - идёт ли процесс Ремонта

если идет процесс и мы находимся там то, то идти по такому то маршруту...

Одним словом нужно проверять варианты.

204

(18 ответов, оставленных в Проблемы / Баги / Неполадки)

8ка... та же беда... причем если бота запускать из под рабочей учетки
если запускать от имени соседний учетки проблем нет

205

(27 ответов, оставленных в Настройки / Плагины)

Ок. Посмотрю при случае.
Какой плаги(код) брал за исходник?

Я начинал писал, но бросил... 3й даже не начинал... 1 и 2 в не потребном виде и не отлажены... Да и диалоги не приписывал. Т.к. надо в игровой тематике разбираться, а за два года как то не охота ковырять в энциклопедии smile

Реально добилбы, но времени нет... Да и желания тоже... Лето, солнце, природа... Сами понимаете smile

207

(45 ответов, оставленных в JavaScript)

БатоВед
почти так... увидев ваш пример сразу пришло озарение (совсем уже забыл как чекбоксы в JS включать)
Включение/выключение мода проводник/прицеп через скрипт

external.SDungeonProvodEnabled.checked = 1; // 0;

Может кому пригодится
Смена статуса проводник/прицеп через скрипт

external.SDungeonProvodType.Text = "Прицеп"; // "Проводник"

208

(45 ответов, оставленных в JavaScript)

как вытащил инфу разобрался, а вот как поменять значение CheckState:
не осилил sad

209

(27 ответов, оставленных в Настройки / Плагины)

Евжений,
если сбоит лучше оставь отдельным плагином.

что именно не пашет?
я игровых диалогов не знаю... давай так сделаем...
выложи под спойлером (что бы не захламлять ветку) дерево диалога в виде

SPOILER Show
Вопрос бота...
1. вариант ответа 1
2. вариант ответа 2
3. и т.д.

1. вопрос бота при клике на первый вариант
1.1. Вариант ответа 1
1.2. Вариант ответа ....

2. вопрос бота при клике на 2 варинат ответа
2.1 ...
2.2 ..

и т.д.


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

210

(45 ответов, оставленных в JavaScript)

На память не рассчитываю, буду записывать тут все полезное.

SPOILER Show
Включение/выключение мода проводник/прицеп через скрипт

external.SDungeonProvodEnabled.checked = 1; // 0;

Смена статуса проводник/прицеп через скрипт

external.SDungeonProvodType.Text = "Прицеп"; // "Проводник"

Перебор сообщения (с) Anahronik

var result = ""; $(".Chat",top.Chat.Self.arrLogs.oChat.oFrame).each(function(){result = this.innerText}); alert(result);

Включение/выключение бота

function ChangeTime(){
  if (!Pause){
     // тормозим бота
     external.Stop();
     Pause = true; //ключ паузы
  }else{ 
     // возвращаем бота в нормальное состояние
     external.Start();
     Pause = false;
  }
}

Запись в фаил:

external.SaveFile('test.txt', "Переменная d = "+d);

Чтение с файла (по наводке БатоВед):

external.LoadFile(".\\Plugins\\test.txt");

Доступ к закладкам (по наводке БатоВед):

top.Battle.Self.oTab.arrTabs["chat"] - чат
top.Battle.Self.oTab.arrTabs["alllog"] - общий лог
top.Battle.Self.oTab.arrTabs["mylog"] - мой лог

Парсинг кнопки смена ((c) Anahronik):

top.Battle.oBattle.arrButtons["change_enemy"]

Раздел инвентаря (c) Anahronik:

$('td[bgcolor="#a5a5a5"]',get_mainframe().document).children().text()

Список дела на ближайшее время:

SPOILER Show

  • Сделать маршрут грибницы (1 этаж). -  отложено

  • Реализовать подсчет ходов. - отложено

  • Реализовать выбор определенных противников (по фильтру) - отложено

  • Помыть машину

  • Сходить за хлебом

  • По работать

  • Получение суточных заданий - отложено

  • Скрипт остановки бота на время ожидания хила/подземки/заявки

211

(10 ответов, оставленных в Подземелье / Маршруты)

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

212

(38 ответов, оставленных в Общий)

Евжений,
точнее сказать бот выпустит зверя, если на размене соперник 10+ и всего соперников 3+  (не факт, что все соперники 10+)

213

(27 ответов, оставленных в Настройки / Плагины)

Евжений,
в представленном коде вижу 3 ошибки
1. скобки потерял...

if (typeof(Say)  == "undefined" || Say == 4) {var Say = 0;}

2. переменная "Say" и "say" это две разных переменных
Ты определяешь есть ли переменная Say и задаешь ее равной 0

if (typeof(Say)  == "undefined" || Say == 4) {var Say = 0;}

потом проверяешь значение переменной say

if (say == 0);{Say = Say + 1;

надо

if (Say == 0);{Say = Say + 1;

3. Лишняя ; после скобок у оператора if(), правильно так

if (say == 0){Say = Say + 1;
            external.ClickLink("Ты же мне задания давал? Я по поводу них...",2);}

+ еще один момент в данной конструкции у тебя по очереди выполняются все клики за один проход кода.
наверное стоит использовать конструкцию if (...) {...} else if (...) {...} else {...}

if(s.match(/if(s.match(/Что тебе еще нужно?/))
    {
    if (typeof(Say)  == "undefined") {var Say = 0;}
    if (Say == 0) {Say = Say + 1;
            external.ClickLink("Ты же мне задания давал? Я по поводу них...",2);}
   else if (Say == 1) {Say = Say + 1;
            external.ClickLink("Ты похож на человека, у которого есть для меня задания.",2);}
    else if (Say == 2) {Say = Say + 1;
            external.ClickLink("Ты похож на человека, у которого есть для меня задания.",2);}
    else if(Say == 3) {Say = Say + 1;
            external.ClickLink("Да нет, уже ничего не надо.",2);}
    else { Say = 0; } // обнуление при любом значение кроме 0,1,2,3
    }

в данном виде у тебя за один проход кода будет выполнятся один клик

214

(5 ответов, оставленных в Подземелье / Маршруты)

а по подробнее?
Код объекта есть?
как вариант попробовать через

$('area[title="Заросший проход"]',get_mainframe().document).each(function() {  this.click(); } )

но надо код глянуть.

215

(38 ответов, оставленных в Общий)

Boriska69,
все работает... это код определения уровня и к нему надо дописать условия вызова зверя...

SPOILER Show

var EnemyLevel_html = Number(0);
for (var iTD in top.document.all[0].getElementsByTagName("td"))
{
    if (top.document.all[0].getElementsByTagName("td")[iTD].className != "UserBattleName") continue;
    if (top.document.all[0].getElementsByTagName("td")[iTD].align != "right") continue;
    var s = top.document.all[0].getElementsByTagName("td")[iTD].innerHTML.indexOf("[") + 1;
    if (s > 0)
        EnemyLevel_html = Number(top.document.all[0].getElementsByTagName("td")[iTD].innerHTML.substr(s, top.document.all[0].getElementsByTagName("td")[iTD].innerHTML.indexOf("]") - s));
    break;
}
 
if(EnemyLevel_html > 9) { _name = "pet_unleash"; }

216

(12 ответов, оставленных в Подземелье / Маршруты)

Slaylexx,
да... строка не самая сложная... в других пещерах пробовал ходить?
Был у меня иногда баг, тоже стоял на месте...
но там причина была в бродячих мобах... убивал моба... пока соображал, что надо вперед идти, клетку новый занимал... и тот стоял тупил, пока тот не отходил... можно было в ручную кликнуть обновить и бот дальше все дала как надо.

Еще как вариант попробуй уменьшить время действия бота в пещере.

Евжений,
у тебя в коде ошибка, поэтому он не выполняется
По правилам синтаксиса JavaScript после {} у оператора if не ставятся ;
у тебя в коде:

ID_Клетки : if(external.death_count < 2)  {UseObjects();}; Walk("m3");

должно быть по правилам синтаксиса JavaScript:

ID_Клетки : if(external.death_count < 2)  { UseObjects(); } Walk("m3");

218

(348 ответов, оставленных в Подземелье / Маршруты)

Евжений,
вывод в чат делается при отработке кода, что бы понять на каком моменте сбоит скрипт.

219

(38 ответов, оставленных в Общий)

otherway,
4 лвл - Паук каналка smile
Все оки... все пашет smile)))

Евжений
точки с запятой не должно быть

ID_Клетки : if(external.death_count < 2)  { UseObjects(); } Walk("m3");

221

(38 ответов, оставленных в Общий)

otherway

09:45:45 Lvl соперника = 4

Евжений,
попробуй так, но без гарантий

var link = "return p_action('attack=1&amp;use','1.4.2.13-79')"; $('area[title="Рульф Хрумпт"]',get_mainframe().document).each(function() { this.click(); $('a[onclick*="'+link+'"]',get_mainframe().document).each(function(){ this.click() })});

223

(12 ответов, оставленных в Подземелье / Маршруты)

кинь в для примера код клетки где последний раз завис?

224

(38 ответов, оставленных в Общий)

Boriska69,
это мысли в слух... для Анахроника...
пока так как тебе надо не реализовать...

225

(348 ответов, оставленных в Подземелье / Маршруты)

Slaylexx,
скорее всего тут

"tn3_poors_default_2"

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