151

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

LEONxz

Произошла ошибка:
Вам временно запрещена покупка или продажа в магазине.

ну такая тема у меня не вылетала... на тесте объем продаж был не тот smile
По тайму, специально вводил через переменную

var timePLmin = 2000;
var timePLmax = 3000;

Это интервал между этапами при продаже(фильтр, клики по чекбоксам, клик по кнопке продажи и клик по подтверждению)... соответственно надо диапазон 75000 - 76000...

Desire ну тут честно скажу не силен... не разбирался smile

152

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

Desire пишет:

Потестил немного плагин.
С маршрутом беда, дописать нужно строчку:
if(sellRoom == "Магазин")
            external.ClickLink("dem_newbot_magaz|dev_new_magaz",3);

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

1. где именно вставить строку?

2. чутка поправил код... вызова функции поиска и продажи.
Бот на паузу встает при начале поиска вещей?

SPOILER Show
По логике все вроде как нормально...

if(sellRoom == "Магазин"){
              sellTemp = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
              if((sellTemp.indexOf("Скупка")+1)){
                 clearInterval(sellTimer[mylogin]);
                 ChangeTime();
                 stepTimer[mylogin] = setInterval('sellLut()', getRndTime(timePLmin, timePLmax));
              }else{
                 external.ClickLink("Продать вещи",4);
              }
            }

Если в магазине, то
1 ищем текст "Скупка"
1.1 Если нашли, то
1.1.1 выключили общий таймер плагин
1.1.2 отключили бота
1.1.3 включили таймер процесса продажи
1.2 Если не нашли текст "Скупка"
1.2.1. Нажали на кнопку "Продать вещи"

153

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

Вот обновленный плагин автопродажи.
1. Маршрут в плагине не проверял (взял отсюда ())
2. Протестил продажу, продает все кроме зубного шмота (но это баг БК - кнопка косячная)
3. Список вещей надо вносить самому (сейчас 2 вещи)
4. В коде указал место для маршрутов (если что сами поправить на ваши старые рабочие маршруты)
5. Процесс продажи будет длительный (но быстрее придумать сложнее ).

SPOILER Show

// Автопродажа лута Update 18.07.2015
 
var sellTimer = {};
var stepTimer = {};
var sellDone = false;
var Pause = false;
var sellRoom = '';
var itemsToSell = [];
 
var timePLmin = 2000;
var timePLmax = 3000;
var stepSell = 0;
var itemSell = 0;
var filterText;
 
// < - Шмотки - >
itemsToSell.push("Замок для рюкзака");
itemsToSell.push("Бумага");
 
function SellInShop(enabled){
    if(enabled){
        sellTimer[mylogin] = setInterval("SellAction()", 3000);
    }else{
        clearInterval(sellTimer[mylogin]);
        clearInterval(stepTimer[mylogin]);
        stepSell = 0;
        itemSell = 0;
        if (Pause){ ChangeTime(); }
    }
}
 
Array.prototype.inArray = function(item)
{
    for (var i in this)
        if (item.indexOf(this[i]) > -1)
            return true;
    return false;
}
 
function SellAction(){
    try{
        if(!external.dungeonEnabled || !external.Started()) return;
        if(top.Battle.bInBattle || top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i))
        {
            sellDone = false;
            return;
        }
        var sellTemp = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        if(sellRoom = sellTemp.match(/<nobr>([^<]+)<\/nobr>/))
            sellRoom = String(sellRoom[1]);
        else
            sellRoom = "unknown";
        if(!sellDone) {
// ===========================================================
 
//   < ---------   Машрут от пещеры в магазин ------------ >
            if(sellTemp.match(/drwfl\("(?:Дуалон|Илена|Мафи|Бартоломей|Амарл)",/i) && sellTemp.match(/(подойти к прилавку|пройти к прилавкам|пройти к прилавку)/))
                external.ClickLink(sellTemp.match(/(подойти к прилавку|пройти к прилавкам|пройти к прилавку)/)[0],2);
            else if (sellRoom.match(/(Центральная грибница|Торговые скалы)/) && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Прилавки с товарами",3);
            else if (sellRoom == "Грибница" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Грибная поляна",2);
            else if (sellRoom == "Грибная поляна" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Странное Место",3);
            else if (sellRoom == "Странное Место" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Грибная лужайка",3);
            else if (sellRoom == "Грибная лужайка" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Центральная грибница",3);
            else if (sellRoom == "Прилавки с товарами" && sellTemp.match(/Илена|Мафи/))
                external.ClickLink(sellTemp.match(/Илена|Мафи/)[0],3);
            else if (sellRoom == "Пещеры Мглы" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Внутренний двор",2);
            else if (sellRoom == "Внутренний двор" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Последний Привал",3);
            else if (sellRoom == "Последний Привал" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Цветочный Пустырь",3);
            else if (sellRoom == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Центральный Оазис",3);
            else if (sellRoom == "Центральный Оазис" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Базар",3);
            else if (sellRoom == "Базар" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Лавка Бартоломея",3);
            else if (sellRoom == "Лавка Бартоломея")
                external.ClickLink("Бартоломей",3);
            else if (sellRoom == "Спуск в Бездну" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Вход в Заповедник",2);
            else if (sellRoom == "Вход в Заповедник" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Утес безысходности",3);
            else if (sellRoom == "Утес безысходности" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Каменно-цветочная гряда",3);
            else if (sellRoom == "Каменно-цветочная гряда" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Центральный утес",3);
            else if (sellRoom == "Центральный утес" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Торговые скалы",3);
            else if (sellRoom == "Туманные Низины" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Тропинка в Туман",2);
            else if (sellRoom == "Тропинка в Туман" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Призрачный Лес",3);
            else if (sellRoom == "Призрачный Лес" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Лесной Портал",3);
            else if (sellRoom == "Лесной Портал" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Опушка Поединков",3);
            else if (sellRoom == "Опушка Поединков" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Торговый Лес",3);
            else if (sellRoom == "Торговый Лес" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Магазин",3);
            else if (sellRoom == "Спуск в Катакомбы" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Спуск в катакомбы",2);   
            else if (sellRoom == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Дорога Храбрости",3);   
            else if (sellRoom == "Дорога Храбрости" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Разлом Поклонения",3);
            else if (sellRoom == "Разлом Поклонения" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Центральный Разлом",3);   
            else if (sellRoom == "Центральный Разлом" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Разлом Великолепия",3);     
            else if (sellRoom == "Разлом Великолепия" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Торговый Разлом",3);
            else if (sellRoom == "Торговый Разлом" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Магазин",3);
            else if (sellRoom == "Очаг Возрождения" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Обрыв Покоя",3);
            else if (sellRoom == "Обрыв Покоя" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Разлом Печали",3);
            else if (sellRoom == "Разлом Печали" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Центральный разлом",3);
            else if (sellRoom == "Зал воинов" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Центральный разлом",3);
 
// ===========================================================
 
           if(sellRoom == "Магазин"){
              sellTemp = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
              if((sellTemp.indexOf("Скупка")+1)){
                 clearInterval(sellTimer[mylogin]);
                 ChangeTime();
                 stepTimer[mylogin] = setInterval('sellLut()', getRndTime(timePLmin, timePLmax));
              }else{
                 external.ClickLink("Продать вещи",4);
              }
            }
        } else {
// ===========================================================
 
//   < --------- Машрут от магазина в пещеру --------------- >
 
            if(sellRoom == "Магазин" && top.frames[external.mainFrameIndex].check_access())
            {
                if(external.SCity.Text == "sandcity")
                    external.ClickLink("Лавка Бартоломея",2);
                else if(external.SCity.Text.match(/(suncity|angelscity)/))
                    external.ClickLink("Прилавки с товарами",2);
                else if(external.SCity.Text.match(/(demonscity)/))
                    external.ClickLink("Торговый Разлом",2);
                else if(external.SCity.Text.match(/(devilscity)/))
                    external.ClickLink("Магазин",2);
            }
            else if(sellRoom == "Прилавки с товарами" && top.frames[external.mainFrameIndex].check_access())
            {
                if(external.SCity.Text == "suncity")
                    external.ClickLink("Центральная грибница",3);
                if(external.SCity.Text == "angelscity")
                    external.ClickLink("Торговые скалы",3);
 
            }
            else if(sellRoom == "Магазин")         
                external.ClickLink("dev_new_gate",3);
            else if (sellRoom == "Торговый Лес" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Опушка Поединков",3);
            else if (sellRoom == "Опушка Поединков" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Лесной Портал",3);
            else if (sellRoom == "Лесной Портал" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Призрачный Лес",3);
            else if (sellRoom == "Призрачный Лес" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Тропинка в Туман",3);
            else if (sellRoom == "Тропинка в Туман" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Туманные Низины",3);
            else if (sellRoom == "Лавка Бартоломея" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Базар",3);
            else if (sellRoom == "Торговые скалы" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Центральный утес",3);
            else if (sellRoom == "Центральный утес" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Каменно-цветочная гряда",3);
            else if (sellRoom == "Каменно-цветочная гряда" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Утес безысходности",3);
            else if (sellRoom == "Утес безысходности" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Вход в Заповедник",3);
            else if (sellRoom == "Вход в Заповедник" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Спуск в Бездну",3);               
            else if (sellRoom == "Базар" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Центральный Оазис",3);
            else if (sellRoom == "Центральный Оазис" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Цветочный Пустырь",3);
            else if (sellRoom == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Последний Привал",3);
            else if (sellRoom == "Последний Привал" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Внутренний двор",3);
            else if (sellRoom == "Внутренний двор" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Пещеры Мглы",3);
            else if (sellRoom == "Центральная грибница" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Грибная лужайка",3);
            else if (sellRoom == "Грибная лужайка" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Странное Место",3);
            else if (sellRoom == "Странное Место" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Грибная поляна",3);
            else if (sellRoom == "Грибная поляна" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Грибница",3);
            else if (sellRoom == "Торговый Разлом" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Разлом Великолепия",3);
            else if (sellRoom == "Разлом Великолепия" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Центральный Разлом",3);   
            else if (sellRoom == "Центральный Разлом" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Разлом Поклонения",3);     
            else if (sellRoom == "Разлом Поклонения" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Дорога Храбрости",3);   
            else if (sellRoom == "Дорога Храбрости" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Спуск в катакомбы",3);
            else if (sellRoom == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Спуск в Катакомбы",3);
 
// ===========================================================
        }       
    }catch(err){
        external.AddToChat("error");
    }
}
 
function sellLut(){
    if(stepSell == 0){
      filterText = top.frames[external.mainFrameIndex].document.getElementsByName("name_filter");
      filterText[0].value = itemsToSell[itemSell];
      $('input[name="filter"]',get_mainframe().document).each(function(){this.click();});
      if($(':checkbox',get_mainframe().document)){
            stepSell = stepSell + 1;
      }else{
            stepSell = 3;
      }
    }else if (stepSell == 1){
      $(':checkbox',get_mainframe().document).each(function(){this.click();});
      stepSell = stepSell + 1;
    }else if (stepSell == 2){
      $('#sell_button',get_mainframe().document).each(function(){this.click();});
      stepSell = stepSell + 1;
    }else{
      $('button[onclick*="return do_sell_checked();"]',get_mainframe().document).each(function(){this.click();});
      stepSell = 0;
      itemSell = itemSell + 1;
    }
    if(itemSell == itemsToSell.length){
      sellDone = true;
      ChangeTime();
      clearInterval(stepTimer[mylogin]);
      sellTimer[mylogin] = setInterval("SellAction()", 3000);
    }
} 
 
function ChangeTime(){
  if (!Pause){
     external.Stop();
     Pause = true;
  }else{
     external.Start();
     Pause = false;
  }
}
 
function getRndTime(timePLmin, timePLmax){
   return Math.floor(Math.random() * (timePLmax - timePLmin + 1)) + timePLmin;
}

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

З.Ы. Процесс продажи обкатал 4 раза, потом кр кончились (особо на 15 кр не разгуляешься big_smile )

154

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

Решено

155

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

Решено

156

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

Короче, есть одна задумка... процесс продажи в голове уже созрел... ща посмотрю как получиться...
Другой вопрос в том, что бродилку прикрутить не смогу, так как не разбирался в логике переходов.
+ все сразу продавать не получиться... будет по кускам продавать...
а так все реально smile

P.S. Шмот за зубы у всех хреново отображается?

157

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

что интересует то?
конкретнее можно?

158

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

насколько я вижу БК еще коряво отображается продажу партиями.
Надо подождать пока до ума доведут.

159

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

хз_хз,
по Оборванцу
1. попробуй данный подход ()
2. и проверь в ручную этот момент (код страницы посмотри при открытом меню "Поговорить") - хотя у всех с оборванцем проблем нет, значит код БК не меняли...

onclick*="tn3_poors_default_2

3. не исключено совпадение имен переменных в разных диалогах

По количеству разговоров меня переменную Х на нужное количество разговоров.

f (typeof(say) == "undefined") {var say = 0; } if(say == Х) { Walk("rr"); } else { say = say + 1; external.AddToChat("Говорим с Ботом "+say+" раз");  $('area[title="Оборванец"]',get_mainframe().document).each(function() { this.click(); $('a[onclick*="tn3_poors_default_2"]',get_mainframe().document).each(function(){this.click()})});}

Должно заработать.

160

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

Leprekon812 понял... вернусь из командировки подумаю... что не так воткнул... и куда...
чужой код сложно править...

Косяк был в том, что я брал код с первой страницы, а там маршрут был старый wink
Но это уже не важно smile

161

(9 ответов, оставленных в Торговля / Коммерческие дела)

Leprekon812,
по умолчанию от лича 5 мест возврата... как я понял необходимость дописать плагин, что бы возврат шел туда, куда выставит пользователь. smile

162

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

fear-14 пишет:
Andy_SPB пишет:

к сожалению покрытие у Yotы не на всей территории РФ smile

Купи дачу пол Москвой и не парься  big_smile

У меня дача под Питером... у меня берет... а вот дальше беда smile

163

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

Вот пример кода входа в диалог с ботом...
()

164

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

хз_хз, как посходит процесс? Диалог или кликабельный элемент?
если диалог, нужен текст диалога (вопрос бота, нужный ответ)
если кликабельный элемент, нужен код элемента.

165

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

к сожалению покрытие у Yotы не на всей территории РФ smile

166

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

ходит исправно
есть правда один минус... есть места где ходит боком и иногда упирается в бродячих.

167

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

я так понимаю ни кто не проверял мою доработку?
или все работает на ура  big_smile ?

Andy_SPB пишет:

Единственно не проверена ситуация, если в момент одевания свитка проходит нападение Моба.

Функция работоспособна.

Update 2:
Исправлен программный недочет(подробности в шапке).
Обновите плагин.

169

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

1. как бот определяет ослабление после боя?
2. и корректно ли обновлять главный фрейм таким образом

top.frames[external.mainFrameIndex].location.reload()

с точки зрения отслеживания бота админами?

170

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

при сохранении через "Сохранить как ... " можно поменять расширение файла...

Мало ли кому пригодиться smile

171

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

JEIMSON.
1. Скопировал код в фаил
2. Фаил назвал Vantuz.js
3. Включил плагин в миню "Плагины"
Вроде все...

По созданию файла
Создаешь текстовый документ в блокноте... копируешь в него код... жмешь "Сохранить как"... далее в имени указывает Vantuz.js и жмешь сохранить.

172

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

RoJIand
Как то так...

if(typeof(top.Battle.oBattle.oMySlot.arrEffects["имя_приема_гнев"]) == "object"){
_name = "имя_приема_контузии";
}

работает по клику на "надеть" и алгоритм одевания, такой же как в БК руками.
Можно проверить в ручную.
При полном заполнении скорее всего менять последний будет...

174

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

что то не так...

var cord = external.CurrentCell();
external.AddToChat("cord = "+cord);

вывод

10:18:08 cord =

175

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

Slaylexx пишет:

..
да

понял, подумаю что можно сделать...