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

127

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

Извеняюсь за предидущий пост, зря панику поднял, сейчас идет всё отлично.

128

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

Сегодня обрубились все сервера БК, а через пол часа уже включились, все кроме муна. Но прошло еще мин 15-20 и он тоже заработал, НО...   бот идёт по подземке,казалось бы всё ок, как вдруг выкинуло  на титульную страницу, бот сработал отлично, просто зашел как и при запуске. Ничего не предвещало беды, как вдруг очередной сюрприз - на втором этаже он посчитал что хватит тут шастать, пора на верх.
Переделывать маршрут? sad

Вот как я его объеденил

var phrasesAng = ["[(?:&quot;|<b>|\")]*Литейщик","[(?:&quot;|<b>|\")]*(?:Рубак[ауи]|Надзирател[ейьяи]*|Служител[ейьяи]*) [Гг]лубин","[(?:&quot;|<b>|\")]*Служител[ейьяи]* [Бб]ездны","[(?:&quot;|<b>|\")]*Бур","выполняете зачистку [(?:&quot;|<b>|\")]*Бездны","не один труп в [(?:&quot;|<b>|\")]*Бездн","в захвате [(?:&quot;|<b>|\")]*Бездн","[(?:&quot;|<b>|\")]*Тряпье необходимо нашим работницам","монстров в [(?:&quot;|<b>|\")]*Бездн","[(?:&quot;|<b>|\")]*Брага - продукт этой примитивной","их у монстров в [(?:&quot;|<b>|\")]*Бездн","Ну, не знаю, [(?:&quot;|<b>|\")]*Клыки, например","квадратный сантиметр [(?:&quot;|<b>|\")]*Бездн","в [(?:&quot;|<b>|\")]*Бездне, необходимы [(?:&quot;|<b>|\")]*Аутсвайс","Из [(?:&quot;|<b>|\")]*Подгорных Эдельвейсов, растущих исключительно в [(?:&quot;|<b>|\")]*Бездне","один темный угол в [(?:&quot;|<b>|\")]*Бездн","срочно необходим [(?:&quot;|<b>|\")]*Драконий камень","придется отправиться в [(?:&quot;|<b>|\")]*Бездн","всеми красками, нам необходим [(?:&quot;|<b>|\")]*Гранит","Ах, [(?:&quot;|<b>|\")]*Хрусталь - это так прекрасно","множество углов в [(?:&quot;|<b>|\")]*Бездн","Хоть и гадость этот [(?:&quot;|<b>|\")]*[Пп]ещерный [Мм]ох","один десяток монстров в Бездн"];
var phrasesMoon = ["[(?:&quot;|<b>|\")]*Пустынник[ова]* (?:[Аа]таман|[Мм]аньяк|[Уу]бийц)","[(?:&quot;|<b>|\")]*Дарьян[ау] [Кк]орт","[(?:&quot;|<b>|\")]*Маула? [Сс]частливчик","[(?:&quot;|<b>|\")]*Стража? [Кк]рантон","[(?:&quot;|<b>|\")]*Изгнанника? [Мм]глы","[(?:&quot;|<b>|\")]*Древнее [Пп]роклят[иь]е [Гг]лубин","[(?:&quot;|<b>|\")]*Дух[ов]*-Хранител","[(?:&quot;|<b>|\")]*Заблудш[аяихе]* [Дд]уш","[(?:&quot;|<b>|\")]*Механически[хей]* (?:[Оо]хранник|[Гг]олем|[Уу]бийц)","[(?:&quot;|<b>|\")]*Механик","[(?:&quot;|<b>|\")]*Мастера? [Гг]рит","[(?:&quot;|<b>|\")]*Стража? [Сс]окровищ","[(?:&quot;|<b>|\")]*Каменны[йхе] [Сс]траж","квадратный сантиметр [(?:&quot;|<b>|\")]*Пещер[ае] Тысячи Проклятий","один темный угол в [(?:&quot;|<b>|\")]*Пещер[ае] Тысячи Проклятий","придется отправиться в [(?:&quot;|<b>|\")]*Пещер[ае] Тысячи Проклятий","порыскать в [(?:&quot;|<b>|\")]*Пещер[ае] Тысячи Проклятий","Поищите их в [(?:&quot;|<b>|\")]*Пещер[ае] Тысячи Проклятий","обыскать все уголки в [(?:&quot;|<b>|\")]*Пещер[ае] Тысячи Проклятий","[(?:&quot;|<b>|\")]*Инструменты","[(?:&quot;|<b>|\")]*Череп путешественника","не один труп в [(?:&quot;|<b>|\")]*Пещер[ае] Тысячи Проклятий","у монстров в [(?:&quot;|<b>|\")]*Пещер[ае] Тысячи Проклятий"," в захвате [(?:&quot;|<b>|\")]*Пещер[ае] Тысячи Проклятий","смерть монстрам из [(?:&quot;|<b>|\")]*Пещер[ае] Тысячи Проклятий","один десяток монстров в [(?:&quot;|<b>|\")]*Пещер[ае] Тысячи Проклятий","[(?:&quot;|<b>|\")]*Зель[ея] Пустынник","[(?:&quot;|<b>|\")]*Механическ[аяуюие]* [Рр]ук","[(?:&quot;|<b>|\")]*Запчасти","[(?:&quot;|<b>|\")]*Призрачн[аяую]* [Пп]ыл","[(?:&quot;|<b>|\")]*Серд[цае]* [Гг]олем","с множеством монстров в [(?:&quot;|<b>|\")]*Пещер[ае] Тысячи Проклятий","побродить по [(?:&quot;|<b>|\")]*Пещер[ае] Тысячи Проклятий","(?:отыскать|поискать|(?:найти)|(?:должны доставить)|принести) [(?:&quot;|<b>|\")]*(?:(?:Драконий [Кк]амень)|Гранит|(?:Подгорный [Ээ]дейльвейс)|Тряпье|(?:Пещерный [Мм]ох)|Хрусталь(?:Амулет [Пп]устынника))"];
var phrasesSand = ["[(?:&quot;|<b>|\")]*(?:Рабочи[йех]|Сторож[ейа]*|Смотрител[ейь]*) [Мм]глы","[(?:&quot;|<b>|\")]*Шахтерски[хйе] [Кк]рюк|[Оо]г[оньяъ]*","один десяток монстров в [(?:&quot;|<b>|\")]*Пещер[еы] Мглы","в захвате [(?:&quot;|<b>|\")]*Пещер[еы] Мглы","один труп в [(?:&quot;|<b>|\")]*Пещер[еы] Мглы","квадратный сантиметр [(?:&quot;|<b>|\")]*Пещер[еы] Мглы","один темный угол в [(?:&quot;|<b>|\")]*Пещер[еы] Мглы","в захвате [(?:&quot;|<b>|\")]*Пещер[еы] Мглы","отправиться в [(?:&quot;|<b>|\")]*Пещер[ые] Мглы","лежащие глыбы [(?:&quot;|<b>|\")]*[Гг]ранита","богаты [(?:&quot;|<b>|\")]*[Дд]раконьим [Кк]амнем","Из [(?:&quot;|<b>|\")]*[Пп]ещерного [Мм]ха, что растет в [(?:&quot;|<b>|\")]*[Пп]ещерах [Мм]глы","так называемые [(?:&quot;|<b>|\")]*[Пп]одгорные [Ээ]дельвейсы","городу нужен [(?:&quot;|<b>|\")]*[Хх]русталь","оторые они называют [(?:&quot;|<b>|\")]*[Аа]утсвайс","что [(?:&quot;|<b>|\")]*[Кк]лыки [Пп]роклятья [Гг]лубин","наши стражники с [(?:&quot;|<b>|\")]*[Кк]остями","[(?:&quot;|<b>|\")]*Тряпье - совершенно бесполезная вещь"];
var phrasesDem = ["[(?:&quot;|<b>|\")]*Слизь","[(?:&quot;|<b>|\")]*Пожирател[ьейми]* [Пп]адал","[(?:&quot;|<b>|\")]*(?:Окоченелы[ехй]|Каменны[ехй]|Зубасты[ехй]|Голодны[ехй]|Древни[ехй]|Загадочны[ехй]) [Зз]омб","[(?:&quot;|<b>|\")]*Древни[хей] [Сс]траж","[(?:&quot;|<b>|\")]*Прокляты[йех] (?:[Пп]ламенос|[Уу]бийц|[Сс]траж|[Оо]руженос|[Зз]ащитник|[Сс]китал)","[(?:&quot;|<b>|\")]*Берсерк","[(?:&quot;|<b>|\")]*Офицер[аов]* [Гг]лубин","[(?:&quot;|<b>|\")]*(?:Зубаст[ыхуюаяе]*|Хищн[ыхуюаяе]*) [Сс]лиз","[(?:&quot;|<b>|\")]*Чернокнижник","[(?:&quot;|<b>|\")]*Епископ","[(?:&quot;|<b>|\")]*Шута? [Пп]овелителя","[(?:&quot;|<b>|\")]*Трупожор","[(?:&quot;|<b>|\")]*Проклят[ыхей]* [Пп]ленник","[(?:&quot;|<b>|\")]*Повелитель?","дин десяток монстров в [(?:&quot;|<b>|\")]*Катакомб","хорошо поработать, чтобы достать [(?:&quot;|<b>|\")]*[Кк]ости","остараться, чтобы найти [(?:&quot;|<b>|\")]*[Аа]мулет [Пп]устынника","попал в эти места [(?:&quot;|<b>|\")]*[Аа]мулет [Пп]устынника","они гонят [(?:&quot;|<b>|\")]*[Бб]рагу из","от вас - это несколько [(?:&quot;|<b>|\")]*[Кк]остей"];
var phrasesSun = ["[(?:&quot;|<b>|\")]*(?:Искрящи[йехм]ся|Пылающи[ехмй]) [Пп]аразит","[(?:&quot;|<b>|\")]*Скользки[йхем] [Рр]огонос","[(?:&quot;|<b>|\")]*Усохши[хийм] [Пп]алочник","[(?:&quot;|<b>|\")]*Мясисты[хйым] [Гг]усениц","[(?:&quot;|<b>|\")]*Яростн[аяыхме]* [Мм]окриц","[(?:&quot;|<b>|\")]*Брата? Скорпиончика","[(?:&quot;|<b>|\")]*Скорпиончик","[(?:&quot;|<b>|\")]*Трут[еньйя]*","[(?:&quot;|<b>|\")]*Королев[еау] [Гг]рибницы","[(?:&quot;|<b>|\")]*Сторожев[уюая]* [Гг]рибоножк[уа]","[(?:&quot;|<b>|\")]*Грибков[уюая]* [Мм]оль","[(?:&quot;|<b>|\")]*Кольчат[ыйхе]* [Сс]трахочерв[ьией]*","[(?:&quot;|<b>|\")]*Жвала","[(?:&quot;|<b>|\")]*Куск[иов]* [Хх]итина","[(?:&quot;|<b>|\")]*Усик[ови]* [Нн]асекомых","[(?:&quot;|<b>|\")]*Крупицы? [Мм]еталла","[(?:&quot;|<b>|\")]*Мембрана? [Тт]рутня","[(?:&quot;|<b>|\")]*Остры[йех]* [Кк]ог[тейяьо]*","[(?:&quot;|<b>|\")]*Кус[коваи]* [Пп]анциря","оно вскоре покрывается [(?:&quot;|<b>|\")]*слизью","[(?:&quot;|<b>|\")]*Грибн[уюаяых]* (?:[Шш]ляпк|[Нн]ожк|[Гг]усениц)","[(?:&quot;|<b>|\")]*Глазик","[(?:&quot;|<b>|\")]*Потерявши[хйе]ся [Гг]усениц","[(?:&quot;|<b>|\")]*Улит[аоки]*","[(?:&quot;|<b>|\")]*Слизняк","[(?:&quot;|<b>|\")]*Отрост[кови]* [Гг]рибницы","[(?:&quot;|<b>|\")]*Кореш[окви]*","[(?:&quot;|<b>|\")]*Мелки[хе] [Хх]люп","[(?:&quot;|<b>|\")]*Сем[яена]*","[(?:&quot;|<b>|\")]*[Пп]уст[ыхуюе]* бутыл[ейьи]* из под"];
var allQuests = [];
allQuests.push(phrasesAng);
allQuests.push(phrasesMoon);
allQuests.push(phrasesSand);
allQuests.push(phrasesDem);
allQuests.push(phrasesSun);
var proverkaTimer = {};
var roomNameUpdTimer = {};
var zadanieTimer = {};
var sellTimer = {};
var questIsActive = false;
var needToFinish = false;
var pathAngels = "Все маршруты"; //имя файла маршрута бездны
var pathDemons = "Все маршруты"; //имя файла маршрута кат
var pathSun = "Все маршруты"; //имя файла маршрута грибов
var pathSand = "Все маршруты"; //имя файла маршрута мглы
var pathMoon = "Все маршруты"; //имя файла маршрута птп
var enableSellInShop = false; // режим продажи пуршмота в гос
var dungMode = true; //режим подземки
var currentRoom ='';
var randomValue;
var min = 360000;
var max = 400000;
var questName = "";
var questID = "";
var needToDo = -1;
var hasBeenDone = -1;
var needToFinish = false;
var needToTake = false;
var dungeonLocked = false;
var beenInShop = true;
var itemsToSell = [];
itemsToSell.push("item");
itemsToSell.push("Кольцо старого безумца");
itemsToSell.push("Ожерелье жестокого разбойника");
itemsToSell.push("Порченный ремень свирепого варвара");
itemsToSell.push("Затасканное кольцо жестокого старца");
itemsToSell.push("Потертый пояс неумолимого садиста");
itemsToSell.push("Пояс зоркого путешественника");
itemsToSell.push("Ботинки странного грабителя");
itemsToSell.push("Перстень забытого безумца");
itemsToSell.push("Истертые ботинки уставшего старца");
itemsToSell.push("Ветхое острие бессердечного лазутчика");
itemsToSell.push("Жилет старого предка");
itemsToSell.push("Истертый пояс властного путешественника");
itemsToSell.push("Старинная броня высокомерного странника");
itemsToSell.push("Секира мрачного гладиатора");
itemsToSell.push("Подержанные ботинки беспощадного демона");
itemsToSell.push("Истертое ожерелье опытного аристократа");
itemsToSell.push("Устаревший покров бессмертного предка");
itemsToSell.push("Подержанный амулет загубленного предателя");
itemsToSell.push("Грубые сапоги старого клятвоотступника");
itemsToSell.push("Ветхое жало странного бойца");
itemsToSell.push("Старинная кираса властного отшельника");
itemsToSell.push("Наручи старого предка");
itemsToSell.push("Грубые ботинки вечного снайпера");
itemsToSell.push("Перчатки вечного лесничего");
itemsToSell.push("Наколенники странного проходимца");
itemsToSell.push("Перчатки мифического лесничего");
itemsToSell.push("Порченный меч бывалого вождя");
itemsToSell.push("Бесполезный пояс мудрого проходимца");
itemsToSell.push("Топор безрассудного отшельника");
itemsToSell.push("Истертые сапоги странного духа");
itemsToSell.push("Грубый доспех мифического разбойника");
itemsToSell.push("Кольцо благородного проходимца");
itemsToSell.push("Баллиста алчного клятвоотступника");
itemsToSell.push("Кольцо стойкого легионера");
itemsToSell.push("Серьги неистового вождя");
itemsToSell.push("Неряшливые серьги известного героя");
itemsToSell.push("Ископаемый арбалет доблестного призрака");
itemsToSell.push("Грубые наручи злопамятного искателя");
itemsToSell.push("Грубые перчатки бодрого отшельника");
itemsToSell.push("Выбрать Кольцо стойкого легионера");
itemsToSell.push("Молот лютого военачальника");
itemsToSell.push("Неряшливый кулон бессмертного охотника");
itemsToSell.push("Устаревший лук мрачного мертвеца");
itemsToSell.push("Перстень неистового обитателя подземелий");
itemsToSell.push("Грубые наручи злопамятного искателя");
itemsToSell.push("Старинные наручи властного предка");
itemsToSell.push("Перстень злопамятного зверолова");
itemsToSell.push("Затасканные перчатки безвольного изувера");
itemsToSell.push("Разваливающиеся серьги вечного палача");
itemsToSell.push("Перчатки мертвого следопыта");
itemsToSell.push("Ветхое кольцо вечного разбойника");
itemsToSell.push("Наручи неистового героя");
itemsToSell.push("Наручи прославленного головореза");
itemsToSell.push("Старинная броня высокомерного странника");
itemsToSell.push("Ветхие латы непобедимого путешественника");
itemsToSell.push("Бесполезное ожерелье забытого духа");
itemsToSell.push("Перчатки странного гладиатора");
itemsToSell.push("Серьги странного клятвоотступника");
itemsToSell.push("Перчатки ловкого предателя");
itemsToSell.push("Порченные наручи бесчестного клятвоотступника");
itemsToSell.push("Потертые сапоги загубленного следопыта");
itemsToSell.push("Потертые наручи безвольного варвара");
itemsToSell.push("item");
itemsToSell.push("Неряшливый лук мудрого стрелка");
itemsToSell.push("Бесполезное жало бессмертного варвара");
itemsToSell.push("Потертый меч беспощадного изверга");
itemsToSell.push("Наручи безвольного духа");
itemsToSell.push("Секира кровожадного солдата");
itemsToSell.push("Булава известного безумца");
itemsToSell.push("Безобразный шлем бесчестного воителя");
itemsToSell.push("Острие кровожадного воителя");
itemsToSell.push("Разваливающийся меч кровожадного грабителя");
itemsToSell.push("Грубые наколенники опытного варвара");
itemsToSell.push("Шапка опытного предка");
itemsToSell.push("Ветхие штаны чуткого странника");
itemsToSell.push("Затасканные рукавицы бывалого клятвоотступника");
itemsToSell.push("Ветхие наручи умелого пилигрима");
itemsToSell.push("Устаревший топор непобедимого аристократа");
itemsToSell.push("Порченный меч лютого героя");
itemsToSell.push("Острие кровожадного воителя");
itemsToSell.push("Ветхое кольцо высокомерного бойца");
itemsToSell.push("Разваливающиеся перчатки странного разбойника");
itemsToSell.push("Серьги важного охотника");
itemsToSell.push("Серьги опытного акробата");
itemsToSell.push("Потрепанное кольцо благородного солдата");
itemsToSell.push("Безобразное кольцо лютого воителя");
itemsToSell.push("Бесполезное кольцо щедрого убийцы");
itemsToSell.push("Рукавицы безвольного клятвоотступника");
itemsToSell.push("Старые ботинки Охранницы");
itemsToSell.push("Штатный шлем Охранницы");
itemsToSell.push("Серьги Охранницы");
itemsToSell.push("Гнилая роба Служителей");
itemsToSell.push("Вспомогательный топорик Охранницы");
itemsToSell.push("Наручи Служителя");
itemsToSell.push("Магический шлем Служителя");
itemsToSell.push("Вонючие ботинки Охранницы");
itemsToSell.push("Штатная броня охранницы");
itemsToSell.push("Ржавый меч Охранницы");
itemsToSell.push("Разваливающийся пояс Охранницы");
itemsToSell.push("Рваные одеяния Охранницы");
itemsToSell.push("Тусклое кольцо Охранницы");
itemsToSell.push("Затхлое одеяние Служителей");
itemsToSell.push("Прогнившие наручи Служителя");
itemsToSell.push("Гнилая роба Служителей");
itemsToSell.push("Поножи Служителя");
itemsToSell.push("Боевые перчатки Охранницы");
itemsToSell.push("Легкие сапоги Охранницы");
itemsToSell.push("Могучие серьги Служителя");
itemsToSell.push("Тапочки Служителя");
itemsToSell.push("Амулет Служителя");
itemsToSell.push("Старые перчатки Охранниц");
itemsToSell.push("Старый нож Охранницы");
itemsToSell.push("Ржавое кольцо Служителя");
itemsToSell.push("Дрянные серьги Охранницы");
itemsToSell.push("Надежный посох Служителя");
itemsToSell.push("Штатные поножи Охранницы");
itemsToSell.push("Амулет Охранницы");
itemsToSell.push("Старые браслеты Охранницы");
itemsToSell.push("Кольцо Охранниц");
itemsToSell.push("Старая шапка опытного духа");
itemsToSell.push("Подержанные наручи известного призрака");
itemsToSell.push("Штаны властного скитальца");
itemsToSell.push("Испорченные серьги Служителя");
itemsToSell.push("Нож Охранницы");
itemsToSell.push("Шлем Служителя");
itemsToSell.push("Удобные наручи Служителя");
itemsToSell.push("Надежный амулет Служителя");
itemsToSell.push("Кольцо Служителя");
itemsToSell.push("Гнилая дубина Охранниц");
itemsToSell.push("Жалкий шлем Охранницы");
itemsToSell.push("Изящные перчатки Служителей");
itemsToSell.push("Усиленные наручи Охранницы");
itemsToSell.push("Ржавый топорик Охранницы");
itemsToSell.push("Тяжелый посох Служителя");
itemsToSell.push("Неудобный шлем Служителя");
itemsToSell.push("Кривой посох Служителя");
itemsToSell.push("Непробиваемая туника Охранницы");
itemsToSell.push("Дырявые поножи Охранницы");
itemsToSell.push("Сношенные сандали Служителя");
itemsToSell.push("Гнилые поножи Служителей");
itemsToSell.push("Ветхий шлем Служителя");
itemsToSell.push("Старый амулет Служителя");
itemsToSell.push("Мантия Служителя");
itemsToSell.push("Перчатки Служителей");
itemsToSell.push("Боевой топорик Охранницы");
itemsToSell.push("Удобные ботинки Служителя");
itemsToSell.push("Наручи Охранницы");
itemsToSell.push("Боевой шлем Охранницы");
itemsToSell.push("Порванные ботинки Служителя");
itemsToSell.push("Посох Служителя");
itemsToSell.push("Крепкий посох Служителя");
itemsToSell.push("Гнилые перчатки Служителей");
itemsToSell.push("Разломанные браслеты Охранницы");
itemsToSell.push("Обычное одеяние Служителя");
itemsToSell.push("Крепкая роба Служителя");
itemsToSell.push("Приличный пояс Охранницы");
itemsToSell.push("Браслеты охранницы");
itemsToSell.push("Туника Охранницы");
itemsToSell.push("Утяжеленные наручи Охранницы");
itemsToSell.push("Сандали успешных Служителей");
itemsToSell.push("Острый меч Охранницы");
itemsToSell.push("Рваная туника Охранницы");
itemsToSell.push("Неплохой шлем Охранницы");
itemsToSell.push("Надежный шлем Охранницы");
itemsToSell.push("Дрянной амулет Охранницы");
itemsToSell.push("Прекрасный амулет Охранницы");
itemsToSell.push("Порванный пояс Служителя");
itemsToSell.push("Штатный меч Охранницы");
itemsToSell.push("Ветхие наручи Служителя");
itemsToSell.push("Блестящее кольцо Охранницы");
itemsToSell.push("Мощная броня Охранницы");
itemsToSell.push("Отличные наручи Служителя");
itemsToSell.push("Удивительный шлем Служителя");
itemsToSell.push("Ремень Служителей");
itemsToSell.push("Отличные поножи Служителей");
itemsToSell.push("Ритуальные поножи Охранницы");
itemsToSell.push("Укрепленная дубинка Охранницы");
itemsToSell.push("Пояс Охранницы");
itemsToSell.push("Серьги Служителя");
itemsToSell.push("Хороший шлем Служителя");
itemsToSell.push("Парадные серьги Охранницы");
itemsToSell.push("Сандали Служителя");
itemsToSell.push("Дубинка Охранницы");
itemsToSell.push("Отличный пояс Служителя");
itemsToSell.push("Облегченные ботинки Охранницы");
itemsToSell.push("Блестящий перстень Служителей");
itemsToSell.push("Хорошая мантия Служителя");
itemsToSell.push("Штатные сандали Охранницы");
itemsToSell.push("Треснувший шлем Охранницы");
itemsToSell.push("Утяжеленные сапоги Охранницы");
itemsToSell.push("Крепкие наручи Служителей");
//7 бездна
itemsToSell.push("Каска мудрого злодея");
itemsToSell.push("Перчатки бывалого гладиатора");
itemsToSell.push("Старый капюшон высокомерного стрелка");
itemsToSell.push("Дубина забытого духа");
itemsToSell.push("Порченный меч лютого героя");
itemsToSell.push("Серьги яростного гладиатора");
itemsToSell.push("Наколенники лютого разведчика");
itemsToSell.push("Затасканная секира мертвого аристократа");
itemsToSell.push("Серьги алчного путешественника");
itemsToSell.push("Кинжал опытного путешественника");
itemsToSell.push("Шапка уставшего путешественника");
itemsToSell.push("Серьги аккуратного безумца");
itemsToSell.push("Перчатки забывчивого обитателя подземелий");
itemsToSell.push("Безобразные брюки забытого предателя");
//8 бездна
itemsToSell.push("Грубые наколенники опытного варвара");
itemsToSell.push("Устаревший топор непобедимого аристократа");
itemsToSell.push("Булава известного безумца");
itemsToSell.push("Разваливающиеся перчатки странного разбойника");
itemsToSell.push("Грубые серьги алчного старца");
itemsToSell.push("Безобразный шлем бесчестного воителя");
itemsToSell.push("Шапка опытного предка");
itemsToSell.push("Разваливающийся меч кровожадного грабителя");
itemsToSell.push("Ветхие штаны чуткого странника");
itemsToSell.push("Острие кровожадного воителя");
itemsToSell.push("Старая шапка алчного мага");
itemsToSell.push("Серьги мудрого обитателя подземелий");
itemsToSell.push("Затасканные перчатки мифического старца");
itemsToSell.push("Ископаемые штаны алчного предсказателя");
//9 бездна
itemsToSell.push("Потертые штаны вечного стража");
itemsToSell.push("Молот бессмертного предка");
itemsToSell.push("Меч мифического отшельника");
itemsToSell.push("Потрепанные серьги алчного предка");
itemsToSell.push("Разваливающиеся поножи жестокого варвара");
itemsToSell.push("Острие властного военачальника");
itemsToSell.push("Топор жестокого разбойника");
itemsToSell.push("Потрепанные перчатки бдительного стрелка");
itemsToSell.push("Рукавицы мертвого путешественника");
itemsToSell.push("Разваливающийся шлем бессмертного героя");
itemsToSell.push("Капюшон мудрого старца");
itemsToSell.push("Неряшливые серьги аккуратного мудреца");
itemsToSell.push("Старые перчатки забывчивого старца");
itemsToSell.push("Потрепанные кальсоны известного пророка");
//8 каты
itemsToSell.push("Старое кольцо алчного проходимца");
itemsToSell.push("Старинные перчатки педантичного призрака");
itemsToSell.push("Наручи безвольного духа");
itemsToSell.push("Затасканные рукавицы бывалого клятвоотступника");
itemsToSell.push("Неряшливый лук мудрого стрелка");
itemsToSell.push("Серьги амбициозного мистика");
itemsToSell.push("Ветхие наручи умелого пилигрима");
itemsToSell.push("Серьги важного охотника");
itemsToSell.push("Серьги опытного акробата");
itemsToSell.push("Бесполезное кольцо щедрого убийцы");
itemsToSell.push("Неряшливый лук мудрого стрелка");
//9 каты
itemsToSell.push("Перчатки странного гладиатора");
itemsToSell.push("Баллиста алчного клятвоотступника");
itemsToSell.push("Неряшливые серьги известного героя");
itemsToSell.push("Ископаемые серьги щепетильного старца")
//11 каты
itemsToSell.push("Ископаемый арбалет доблестного призрака");
itemsToSell.push("Разваливающиеся серьги вечного палача");
itemsToSell.push("Серьги странного клятвоотступника");
itemsToSell.push("Серьги хитроумного обитателя подземелий");
//7-9 Пещера мглы
itemsToSell.push("Перстень лютого воина");
itemsToSell.push("Безобразное кольцо лютого воителя");
itemsToSell.push("Грубый доспех мифического разбойника");
itemsToSell.push("Безобразный клинок мудрого солдата");
itemsToSell.push("Кинжал дерзкого клятвоотступника");
itemsToSell.push("Грубые сапоги старого клятвоотступника");
itemsToSell.push("Безобразные сапоги неукротимого предателя");
itemsToSell.push("Балахон высокомерного духа");
itemsToSell.push("Секира мрачного гладиатора");
itemsToSell.push("Секира кровожадного солдата");
itemsToSell.push("Башмаки неумолимого предка");
itemsToSell.push("Сапоги высокомерного предка");
itemsToSell.push("Перстень забытого безумца");
itemsToSell.push("Перстень бессмертного странника");
itemsToSell.push("Перстень амбициозного пророка");
itemsToSell.push("Бесполезный пояс мудрого проходимца");
itemsToSell.push("Ремень высокомерного старца");
itemsToSell.push("Бесполезный амулет зоркого демона");
itemsToSell.push("Разваливающийся пояс щепетильного предателя");
itemsToSell.push("Ожерелье опытного старца");
itemsToSell.push("Старинная броня высокомерного странника");
itemsToSell.push("Ожерелье жестокого разбойника");
itemsToSell.push("Бесполезные ботинки странного путешественника");
itemsToSell.push("Истертый пояс властного путешественника");
itemsToSell.push("Старинная кираса властного отшельника");
itemsToSell.push("Пояс умелого обитателя подземелий");
itemsToSell.push("Пояс мертвого пророка");
itemsToSell.push("Пояс забывчивого аристократа");
itemsToSell.push("Истертый покров бессмертного странника");
itemsToSell.push("Неряшливый кулон бессмертного охотника");
itemsToSell.push("Истертый доспех неусыпного духа");
itemsToSell.push("Потрепанные ботинки амбициозного мага");
itemsToSell.push("Потертый меч беспощадного изверга");
itemsToSell.push("Грубая булава опытного гиганта");
itemsToSell.push("Истертые ботинки уставшего старца");
itemsToSell.push("Истертое ожерелье опытного аристократа");
itemsToSell.push("Ископаемый кулон алчного клятвоотступника");
itemsToSell.push("Ветхое кольцо высокомерного бойца");
itemsToSell.push("Бесполезное ожерелье яростного варвара");
itemsToSell.push("Посох щепетильного путешественника");
itemsToSell.push("Порченный ремень свирепого варвара");
itemsToSell.push("Ветхое жало странного бойца");
itemsToSell.push("Порченный меч бывалого вождя");
itemsToSell.push("Топор безрассудного отшельника");
itemsToSell.push("Ветхий посох педантичного пророка");
itemsToSell.push("Старинный посох странствующего путешественника");
itemsToSell.push("Амулет опытного путешественника");
itemsToSell.push("Старинный пояс непобедимого гиганта");
itemsToSell.push("Покров неумолимого путешественника");
itemsToSell.push("Покров ворчливого неофита");
itemsToSell.push("Бесполезное жало бессмертного варвара");
itemsToSell.push("Затасканное кольцо жестокого старца");
itemsToSell.push("Молот странного вождя");
itemsToSell.push("Молот лютого военачальника");
itemsToSell.push("Подержанные ботинки беспощадного демона");
itemsToSell.push("Жилет старого предка");
itemsToSell.push("Безобразные башмаки высокомерного духа");
itemsToSell.push("Кольцо странного обитателя подземелий");
itemsToSell.push("Старое кольцо известного демона");
itemsToSell.push("Кольцо старого безумца");
 
itemsToSell.push("Пустая бутыль");
 
function zadanie(enabled)
{
    if(enabled)
    {
        roomNameUpdTimer[mylogin] = setInterval("GetRoomName()", 500);
        if(enableSellInShop) sellTimer[mylogin] = setInterval("SellAction()", 1500);
        if(dungMode && !external.dungeonEnabled) external.dungeonEnabled = true;
        proverkaTimer[mylogin] = setInterval("proverkaHandler()",2000);       
    }
    else
    {
        if(zadanieTimer[mylogin]) clearInterval(zadanieTimer[mylogin]);
        external.SBattleAbovePercent.Text = 100;
        if(sellTimer[mylogin]) clearInterval(sellTimer[mylogin]);
        clearInterval(proverkaTimer[mylogin]);
        clearInterval(roomNameUpdTimer[mylogin]);       
    }
}
 
Array.prototype.inArray = function(item)
{
    for (var i in this)
        if (item.indexOf(this[i]) > -1)
            return true;
    return false;
}
 
function GetRoomName()
{
    try
    {
        if(top.Battle.bInBattle || !external.Started()) return;
        if(top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i))
        {
            external.SBattleAbovePercent.Text = 100;
            return;
        }
        var pageSource = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
 
        if(currentRoom = pageSource.match(/<nobr>([^<]+)<\/nobr>/))currentRoom = String(currentRoom[1]);
        else if(top.frames[external.mainFrameIndex].document.getElementsByName("quest_name").length > 0) currentRoom = "inQuestWindow";
        else currentRoom = "inDialog";
        if(currentRoom == "inDialog") external.ClickLink("Вернуться",4);
    }
    catch(err)
    {
        external.AddToChat("Error in GetRoomName function");
    }
}
 
function proverkaHandler()
{
    try
    {
        clearInterval(proverkaTimer[mylogin]);
        randomValue = Math.floor(Math.random()*(max - min) + min);
        proverkaTimer[mylogin] = setInterval("proverkaHandler()", randomValue);
 
        if(top.Battle.bInBattle || !external.Started())
        {
            external.SBattleAbovePercent.Text = 100;
            return;
        }
 
        if(top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i)) external.SBattleAbovePercent.Text = 100;       
        else external.SBattleAbovePercent.Text = 101;
 
        var tempstr = '';
        var temp_inf = doLoad("http://" + external.SCity.Text + ".combats.com/main.pl?skills=1&rand=" + Math.random());
        if(external.SCity.Text == "suncity") tempstr = "Suncity</B> - Рыцарь первого круга, 24999 / 24999";
        else if(external.SCity.Text == "sandcity") tempstr = "Sandcity</B> - Рыцарь первого круга, 10000 / 24999";
        else if(external.SCity.Text == "angelscity") tempstr = "Angels city</B> - Рыцарь первого круга, 10000 / 24999";
        else if(external.SCity.Text == "demonscity") tempstr = "Demons city</B> - Рыцарь первого круга, 24999 / 24999";
        else if(external.SCity.Text == "mooncity") tempstr = "Mooncity</B> - Рыцарь первого круга, 24999 / 24999";
 
        if(!zadanieTimer[mylogin]) zadanieTimer[mylogin] = setInterval("zadanieHandler()",3000);       
 
        if(temp_inf.match(tempstr))
        {
            external.AddToChat("Задания не требуется");
            questIsActive = false;
            needToTake = false;
            return;
        }
 
        var patt = external.SCity.Text + " - \\d+ (мин|ч|сек)";
 
        if(temp_inf.match(/Время до подземелья/)) dungeonLocked = true;
        else dungeonLocked = false;           
 
        if(GetQuestFromInfo(temp_inf))
        {
            external.AddToChat("Задание:");
            top.Chat.Self.AddMessage(questName + " " + hasBeenDone + "/" + needToDo);
            questIsActive = true;
            needToTake = false;
            var pickingQuest = isPickingQuest();
            if((!pickingQuest && hasBeenDone == needToDo) || (pickingQuest && (hasBeenDone == (Math.floor(needToDo/4) + needToDo)))) needToFinish = true;
            if(needToFinish) external.AddToChat("Нужно завершить задание");
        }       
        else
        {
            if(!temp_inf.toLowerCase().match(patt))
            {
                external.AddToChat("Требуется взять задание");
                needToTake = true;
                questIsActive = false;
            }
            else
            {
                external.AddToChat("Задержка на взятие задания");
                needToTake = false;
                questIsActive = false;
            }
        }
    }
    catch(err)
    {
        external.SBattleAbovePercent.Text = 100;
        external.AddToChat("Error in proverkaHandler function");
    }
}
 
function zadanieHandler()
{
    try
    {
        if(top.Battle.bInBattle || top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i) || !external.Started()) return;
 
        if(enableSellInShop && !beenInShop) return;
 
        var pgSource = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
 
        if(dungMode || (!dungMode && !dungeonLocked && (needToTake || questIsActive)))
        {
            if(!currentRoom.match(/Спуск в Катакомбы|inQuestWindow|Пещеры Мглы|Пещера Тысячи проклятий|Грибница|Спуск в Бездну/) || (currentRoom.match(/Пещера Тысячи проклятий/) && pgSource.match(/Никогда и никому не говорите пароль от своего персонажа/)))
            {
                MoveToDung();
                return;
            }           
        }
 
        if(!questIsActive && !needToTake && !dungMode)
        {
            if(currentRoom == "inQuestWindow") external.ClickLink("Вернуться",4);
            if(external.dungeonEnabled) external.dungeonEnabled = false;
            if(!currentRoom.match(/Зал воинов/))
                MoveFromDung();
            else
                external.SBattleAbovePercent.Text = 100;
            return;
        }
 
        if(needToTake || needToFinish)
        {
            if(currentRoom != "inQuestWindow") external.ClickLink("Задания",4);
            else
            {
                if(pgSource.match(/Для вас нет заданий/))
                {
                    needToTake  = false;
                    questIsActive = false;
                    needToFinish = false;
                    return;
                }
                var gotRep = pgSource.match(/Вы получили \d* награды за выполнение задания/);
                if(gotRep) external.AddToChat(gotRep);
 
                var btns = top.frames[external.mainFrameIndex].document.getElementsByName("finishquest");
                if(questID != "" && needToFinish && btns)
                {           
                    for(var i = 0; i < btns.length; i++)
                        if(btns[i].onclick && String(btns[i].onclick).match(questID) && btns[i].style.visibility != "hidden")
                        {
                            needToTake  = true;
                            questIsActive = false;
                            needToFinish = false;
                            questName = "";
                            questID = "";
                            needToDo = -1;
                            hasBeenDone = -1;
                            btns[i].click();
                            return;
                        }
                    external.AddToChat("Не нашел кнопки завершения задания");   
                }           
 
                if(external.SCity.Text == "suncity" && pgSource.match(/Репутация в Suncity: 0/))
                {
                    needToTake  = false;
                    questIsActive = false;
                    return;
                }
 
                needToTake  = false;
                questIsActive = true;
                if(external.ClickLink("Получить задание",4)) external.AddToChat("Работает взятие задания");
                else external.AddToChat("Задание уже есть");               
            }
        }
        else if(questIsActive || !needToTake)
        {
            if(currentRoom == "inQuestWindow" && pgSource.match(/Для вас нет заданий/))
            {
                questIsActive = false;
                needToTake = false;
                external.ClickLink("Вернуться",4);
                return;
            }
 
            if(currentRoom == "inQuestWindow") external.ClickLink("Вернуться",4);
 
            if(currentRoom != "inQuestWindow" && currentRoom.match(/Спуск в Катакомбы|Пещера Тысячи проклятий|Пещеры Мглы|Грибница|Спуск в Бездну/))
            {
                var fp = GetPathFileName();
                if(fp == "")
                {
                    questIsActive = false;
                    needToTake = false;
                    external.AddToChat("Файл маршрута не найден");
                    return;
                }
 
                if(!dungMode)
                {
                    external.DungeonLoadPath(fp);
                    external.dungeonEnabled = true;
                    external.SBattleAbovePercent.Text = 100;
                }               
            }
        }
    }
    catch(err)
    {
        external.AddToChat("Error in zadanieHandler function");
    }
}
 
function SellAction()
{
    try
    {
        if(!external.Started()) return;
        if(top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i))
        {
            beenInShop = false;
            return;
        }       
        if(beenInShop) return;   
 
        var sellTmp = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        if(currentRoom != "Магазин" || sellTmp.indexOf("dem_newbot_magaz") > -1) MoveFromDung();
        else
        {
            if(!sellTmp.match(/Отдел \"Скупка\"/i)) external.ClickLink("Продать вещи",4);
            else
            {
                var items = sellTmp.match(/<a\s(?:onclick="[^"]*"\s)?href="shop\.pl\?sl=[^"]*">продать за .*? кр.<\/a><\/td>[\s\n\r]*<td[^>]*><a [^>]*>[^&<]*/ig);
                if(!items)
                {
                    beenInShop = true;
                    return;
                }
                for(var i = 0; i < items.length; i++)
                {
                    items[i] = items[i].match(/<a\s(?:onclick="[^"]*"\s)?href="(shop\.pl\?sl=[^"]*)">продать за .*? кр.<\/a><\/td>[\s\n\r]*<td[^>]*><a [^>]*>([^&<]*)/i);
                    if(!items[i]) continue;
                    items[i][1] = items[i][1].replace(/&amp;/g, '&');
                    if(!items[i][1]) continue;
                    if(itemsToSell.inArray(items[i][2]))
                    {
                        top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/" + items[i][1];
                        return;
                    }
                }
                beenInShop = true;
            }
        }
    }
    catch(err)
    {
        external.AddToChat("Error in SellAction function");
    }
}
 
function GetQuestFromInfo(inf)
{
    try
    {
        var flds = inf.match(/<fieldset>[^<]*<legend>\s?Текущие (?:квесты|задания)[^@]*<\/fieldset>/i);
        if(!flds) return false;
        flds = flds[0].match(/<img[^>]*>[^@]*<span [^>]*>\d*\/\d*<\/span>/ig);
        if(!flds) return false;
         for(var i = 0; i < flds.length; i++)
        {
            var tmp = flds[i].match(/<img[^@]*quest_name=([^(?:&|")]*)[^>]*>([^@]*)<span[^>]*>([^<]*)<\/span>/i);
            if(!tmp) return false;
            if(CheckForQuestInInv(tmp[2]))
            {           
                questID = tmp[1];                                                         // 1 == идентификатор квеста
                questName = tmp[2];                                                     // 2 == текст квеста
                hasBeenDone = parseInt(tmp[3].match(/[^\d]*(\d*)[^\/]*/)[1].toString());// 3 == сделано
                needToDo = parseInt(tmp[3].match(/[^\/]*\/(\d*)/)[1].toString());         // 4 == надо сделать                   
                return true;   
            }
        }
        return false;
    }
    catch(err)
    {
        external.AddToChat("Error in GetQuestFromInfo function");
    }
}
 
function CheckForQuestInInv(inf)
{
    try
    {
        var indexArray = -1;
        if(external.SCity.Text == "suncity") indexArray = 4;
        else if(external.SCity.Text == "sandcity") indexArray = 2;
        else if(external.SCity.Text == "angelscity") indexArray = 0;
        else if(external.SCity.Text == "demonscity") indexArray = 3;
        else if(external.SCity.Text == "mooncity") indexArray = 1;
        if(indexArray == -1) return false;
 
        for(var i = 0; i < allQuests[indexArray].length; i++)
            if(inf.match(allQuests[indexArray][i]))
                return true;
        return false;
    }
    catch(err)
    {
        external.AddToChat("Error in CheckForQuestInInv function");
    }
}
 
function isPickingQuest()
{
    try
    {
        if(external.SCity.Text == "suncity" && questName.match(/[(?:&quot;|<b>|\")]*(?:Грибн[аяыеух]* (?:[Шш]ляп[као]*|[Нн]ож[каеи]*))|[(?:&quot;|<b>|\")]*Глазик|[(?:&quot;|<b>|\")]*(?:Грибн[аяыеух]* [Гг]усениц)|[(?:&quot;|<b>|\")]*(?:Потерявш[ихсяйме]* [Гг]усениц)|[(?:&quot;|<b>|\")]*Улит[окаи]*|[(?:&quot;|<b>|\")]*Слизняк|[(?:&quot;|<b>|\")]*Кореш[окив]*|[(?:&quot;|<b>|\")]*(?:Отрост[кови]* [Гг]рибницы)|[(?:&quot;|<b>|\")]*Сем[еная]*|[(?:&quot;|<b>|\")]*(?:Мелки[ехйм]* [Хх]люп)|[(?:&quot;|<b>|\")]*(?:Пуст[аяуюие]* бутыл)/))
                return true;
        else if(external.SCity.Text.match(/sandcity|angelscity/) && questName.match(/[(?:&quot;|<b>|\")]*Хрустал[яь]|[(?:&quot;|<b>|\")]*(?:Дракон[ьегоий]* [Кк]ам[еньяй]*)|[(?:&quot;|<b>|\")]*Гранит|[(?:&quot;|<b>|\")]*(?:Пещерн[ыйого]* [Мм][оха]*)|[(?:&quot;|<b>|\")]*(?:Подгорн[ыхйе]* [Ээ]дельвейс)/))
                return true;
        else if(external.SCity.Text == "mooncity" && questName.match(/[(?:&quot;|<b>|\")]*Хрустал[яь]|[(?:&quot;|<b>|\")]*(?:Дракон[ьегоий]* [Кк]ам[еньяй]*)|[(?:&quot;|<b>|\")]*Гранит|[(?:&quot;|<b>|\")]*(?:Пещерн[ыйого]* [Мм][оха]*)|[(?:&quot;|<b>|\")]*(?:Подгорн[ыхйе]* [Ээ]дельвейс)|[(?:&quot;|<b>|\")]*Инструмент|[(?:&quot;|<b>|\")]*(?:Череп[аов]* [пП]утешественн)/))
                return true;
        return false;
    }
    catch(err)
    {
        external.AddToChat("Error in isPickingQuest function");
    }
}
 
function MoveToDung()
{
    try
    {
        if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/drwfl\("(?:Геммайя|Мухатор|Юверриат|Фелико)",\d*/) && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/завершить разговор|уйти/))
        {   
            external.AddToChat("Завис у диалогового бота");
            external.ClickLink(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/завершить разговор|уйти/)[0],2);           
        }
        else if(currentRoom == "Магазин" && top.frames[external.mainFrameIndex].check_access())
        {
            if(external.SCity.Text == "sandcity") external.ClickLink("Лавка Бартоломея",2);
            else if(external.SCity.Text.match(/suncity|angelscity|mooncity/)) external.ClickLink("Прилавки с товарами",2);
            else if(external.SCity.Text == "demonscity") external.ClickLink("Торговый Разлом",2);
        }
        else if (currentRoom == "Прилавки с товарами")
        {
            if(external.SCity.Text == "suncity") external.ClickLink("Центральная грибница",1);
            if(external.SCity.Text == "angelscity") external.ClickLink("Торговые скалы",1);
            if(external.SCity.Text == "mooncity") external.ClickLink("Рыночная площадь",1);
        }
        else if(currentRoom == "Бойцовский Клуб")
        {
            if(external.SCity.Text == "sandcity") external.ClickLink("Центральный Оазис",1);
            else if(external.SCity.Text == "angelscity") external.ClickLink("Центральный утес",1);
            else if(external.SCity.Text == "suncity") external.ClickLink("Центральная грибница",1);
            else if(external.SCity.Text == "mooncity") external.ClickLink("Центр падения",1);
            else if(external.SCity.Text == "demoncity") external.ClickLink("Центральный Разлом",1);
        }
        else if(currentRoom.match(/Зал воинов/))
            external.ClickLink("Бойцовский Клуб",1);
        else if (currentRoom == "Центральная грибница") //sun
            external.ClickLink("Грибная лужайка",1);
        else if(currentRoom == "Грибная лужайка")
            external.ClickLink("Странное Место",1);
        else if(currentRoom == "Странное Место")
            external.ClickLink("Грибная поляна",1);
        else if(currentRoom == "Грибная поляна")
            external.ClickLink("Грибница",1);            //end sun
        else if (currentRoom == "Лавка Бартоломея")        //sand
            external.ClickLink("Базар",1);
        else if (currentRoom == "Базар")
            external.ClickLink("Центральный Оазис",1);
        else if(currentRoom == "Центральный Оазис")
            external.ClickLink("Цветочный Пустырь",1);
        else if(currentRoom == "Цветочный Пустырь")
            external.ClickLink("Последний Привал",1);
        else if(currentRoom == "Последний Привал")
            external.ClickLink("Внутренний двор",1);
        else if(currentRoom == "Внутренний двор")   
            external.ClickLink("Пещеры Мглы",1);        //end sand
        else if (currentRoom == "Торговые скалы")         //angels
            external.ClickLink("Центральный утес",1);
        else if(currentRoom == "Центральный утес")
            external.ClickLink("Каменно-цветочная гряда",1);
        else if(currentRoom == "Каменно-цветочная гряда")
            external.ClickLink("Утес безысходности",1);
        else if(currentRoom == "Утес безысходности")
            external.ClickLink("Вход в Заповедник",1);
        else if(currentRoom == "Вход в Заповедник")       
            external.ClickLink("Спуск в Бездну",1);        //end angels
        else if(currentRoom == "Торговый Разлом")        //demons
            external.ClickLink("Разлом Великолепия",1);
        else if(currentRoom == "Разлом Великолепия")
            external.ClickLink("Центральный Разлом",1);
        else if(currentRoom == "Центральный Разлом")
            external.ClickLink("Разлом Поклонения",1);
        else if(currentRoom == "Разлом Поклонения")
            external.ClickLink("Дорога Храбрости",1);
        else if(currentRoom == "Дорога Храбрости")
            external.ClickLink("Спуск в катакомбы",1);
        else if(currentRoom == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/))
            external.ClickLink("Спуск в Катакомбы",1); //end demons
        else if (currentRoom == "Рыночная площадь")        //moon
            external.ClickLink("Центр падения",1);
        else if (currentRoom == "Центр падения")
            external.ClickLink("Спящая площадь",1);
        else if (currentRoom == "Спящая площадь")
            external.ClickLink("Улица Камней",1);
        else if (currentRoom == "Улица Камней")
            external.ClickLink("Проклятые руины",1);
        else if (currentRoom == "Проклятые руины")
            external.ClickLink("Пещера тысячи проклятий",1);
        else if(currentRoom == "Пещера Тысячи проклятий" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/))
            external.ClickLink("Пещера Тысячи проклятий",1);  //end moon
    }
    catch(err)
    {
        external.AddToChat("Error in MoveToDung function");
    }
}
 
function MoveFromDung()
{   
    try
    {
        if(currentRoom == "Пещера Тысячи проклятий" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/))
            external.ClickLink("Проклятые Руины",1);
        else if(currentRoom.match(/Спуск в Катакомбы|Пещеры Мглы|Пещера Тысячи проклятий|Грибница|Спуск в Бездну/))
        {
            if(external.SCity.Text == "suncity") external.ClickLink("Грибная поляна",2);
            else if(external.SCity.Text == "sandcity") external.ClickLink("Внутренний двор",2);
            else if(external.SCity.Text == "angelscity") external.ClickLink("Вход в Заповедник",2);
            else if(external.SCity.Text == "demonscity") external.ClickLink("Спуск в катакомбы",2);
            else if(external.SCity.Text == "mooncity") external.ClickLink("Пещера Тысячи проклятий",2);
        }
        else if(currentRoom == "Бойцовский Клуб")
            external.ClickLink("Зал воинов",1);
        else if(currentRoom == "Грибная поляна")            //sun
            external.ClickLink("Странное Место",1);
        else if(currentRoom == "Странное Место")
            external.ClickLink("Грибная лужайка",1);
        else if(currentRoom == "Грибная лужайка")
            external.ClickLink("Центральная грибница",1);     //end sun
        else if(currentRoom == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/))
            external.ClickLink("Дорога Храбрости",1);
        else if(currentRoom == "Дорога Храбрости")
            external.ClickLink("Разлом Поклонения",1);
        else if(currentRoom == "Разлом Поклонения")
            external.ClickLink("Центральный Разлом",1);
        else if(currentRoom == "Разлом Великолепия")
            external.ClickLink("Торговый Разлом",1);
        else if(currentRoom == "Торговый Разлом")
            external.ClickLink("Магазин",1);                //end dem         
        else if(currentRoom == "Проклятые Руины")            //moon
            external.ClickLink("Улица Камней",1);
        else if(currentRoom == "Улица Камней")
            external.ClickLink("Спящая площадь",1);
        else if(currentRoom == "Спящая площадь")
            external.ClickLink("Центр падения",1);          //end moon   
        else if(currentRoom == "Вход в Заповедник")            //ang
            external.ClickLink("Утес безысходности",1);
        else if(currentRoom == "Утес безысходности")
            external.ClickLink("Каменно-цветочная гряда",1);
        else if(currentRoom == "Каменно-цветочная гряда")
            external.ClickLink("Центральный утес",1);         //end ang
        else if(currentRoom == "Внутренний двор")            //sand
            external.ClickLink("Последний Привал",1);
        else if(currentRoom == "Последний Привал")
            external.ClickLink("Цветочный Пустырь",1);
        else if(currentRoom == "Цветочный Пустырь")
            external.ClickLink("Центральный Оазис",1);        //end sand
        else if(currentRoom == "Магазин" && external.SCity.Text == "demonscity" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.indexOf("dem_newbot_magaz") > 0)
            external.ClickLink("dem_newbot_magaz",3);
        else if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/drwfl\("(?:Илена|Мафи|Бартоломей|Амарл)",\d*/) && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/подойти к прилавк[аму]*|пройти к прилавк[аум]*/))
            external.ClickLink(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/подойти к прилавк[аму]*|пройти к прилавк[аум]*/)[0],2);
        else if (currentRoom.match(/Центральная грибница|Торговые скалы/))
            external.ClickLink("Прилавки с товарами",1);
        else if (currentRoom == "Прилавки с товарами" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Илена|Мафи/))
            external.ClickLink(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Илена|Мафи/)[0],3);
        else if (currentRoom == "Базар")
            external.ClickLink("Лавка Бартоломея",1);
        else if (currentRoom == "Лавка Бартоломея")
            external.ClickLink("Бартоломей",3);
        else if (currentRoom.match(/Центральный Оазис|Центральный утес|Центральная грибница|Центр падения|Центральный Разлом/))
        {
            if(!enableSellInShop && !dungMode) external.ClickLink("Бойцовский Клуб",1);
            if(!beenInShop && enableSellInShop)
            {
                if(currentRoom == "Центральный Разлом")
                    external.ClickLink("Разлом Великолепия",1);
                else if (currentRoom == "Центральный утес")
                    external.ClickLink("Торговые скалы",1);
                else if (currentRoom == "Центральный Оазис")
                    external.ClickLink("Базар",1);
                else if (currentRoom == "Центральная грибница")
                    external.ClickLink("Прилавки с товарами",1);
                else if (currentRoom == "Центр падения")
                    external.ClickLink("Рыночная площадь",1);   
            }
        }
    }
    catch(err)
    {
        external.AddToChat("Error in MoveFromDung function");
    }
}
 
function doLoad(url)
{
    try
    {
        if (window.XMLHttpRequest) req = new XMLHttpRequest();
        else req = new ActiveXObject("Microsoft.XMLHTTP");     
        req.open("GET", url, false);
        req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
        req.send(null);
        return req.responseText;
    }
    catch(err)
    {
        external.AddToChat("Error in doLoad function");
    }
}
 
function GetPathFileName()
{
    try
    {
        if(external.SCity.Text == "suncity") return pathSun;
        else if(external.SCity.Text == "sandcity") return pathSand;
        else if(external.SCity.Text == "angelscity") return pathAngels;
        else if(external.SCity.Text == "demonscity") return pathDemons;   
        else if(external.SCity.Text == "mooncity") return pathMoon;   
        return "";
    }
    catch(err)
    {
        external.AddToChat("Error in GetPathFileName function");
    }
}

Что не так?

Так как при включенных плагинах авто продажи пура в гос и задания, работает только плагин "задание", я скопировал перечень вещей из одного плагина в другой (из автопродажи в задание), но что-то не пойму насколько правильно он работает. Дело в том что без моего участия бот зашел в магазин и тут же выскочил из него, пошел в пещеру копать дальше(а ведь загружен пуром по горло), но когда я зашел сам и нажал на вкладку продажи, то тут же начался прирост кредитов, причем очень-очень быстро на верху где обчно отображалось действие, например:"проданы перчатки за 0,70кр", сейчас пусто. Продал около 20вещей меньше чем за 10секунд, при этом интервал вне боя 7000-9000, в подземелье 2000-5000, в бою 1000-3000. Могут ли они оба работать коректно? Один исключительно для заданий. а второй на  автопродажу. Или же как объеденить правильно?

131

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

ок, тогда на днях сам выложу.

132

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

А как насчет плагина наковальни в Бездне? Скинет кто-нить  откоректированный?

133

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

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

134

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

Значит и Сане маршрут должен заработать? Или  работоспособность конструктора не влияет на работу маршрута?

135

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

За мун огромное спасибище, но вот в сане вознила проблема: После 1 смерти стоит на входе и не ходит + снимает все вещи. Обрав контроль и использование комплектов решилась проблема со сниманием вещей, но по маршрут по-прежнему не ходит, даже если конструктором написать маршрут. Что же произошло? Админы за Сан взялись?
А теперь еще конструктор выдает ошибку при нажатии "получить текущую позицию" Неудается получить свойство "1" ссылки, значение которой не определенно или является NULL. Что это еще такое?

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

137

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

Не уж то нет вариантов для решения? Может плагин для перезахода или выставления подбора вещей настраиваемого на вписанное имя?

138

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

function Obmengribov(enabled)
{
    if(enabled)
    {
        //должна быть одна из двух строк
PluginsOnLoad["Obmengribov"] = "ObmengribovHandler"; // работать по обновлению верхнего фрейма
    }
    else
    {
        //должна быть одна из двух строк
PluginsOnLoad["Obmengribov"] = ""; // выключить обработку по обновлению верхнего фрейма
    }
}

function gribi()
{
    if(top.Battle.bInBattle) return;


if(get_mainframe().document.all[0].innerHTML.match(/Я бы хотел обменять/))
    external.ClickLink("Я бы хотел обменять",2);
else
if(get_mainframe().document.all[0].innerHTML.match(/Давайте/))
    external.ClickLink("Давайте",2);
else
if(get_mainframe().document.all[0].innerHTML.match(/У меня есть еще/))
    external.ClickLink("У меня есть еще",2);
else
if(get_mainframe().document.all[0].innerHTML.match(/Простите/))
{   
    external.ClickLink("Простите",2);
    top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/" + dungName  + "?rnd=" + Math.random() +"&path=rl";
}
else
if(get_mainframe().document.all[0].innerHTML.match(/Благодарю за общение/))
{   
    external.ClickLink("Благодарю за общение",2);
    top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/" + dungName  + "?rnd=" + Math.random() +"&path=rl";
}
}

function ObmengribovHandler()
{
        try
{
gribi();
}

        catch(err)
        {
//                alert(err.description); // выводит сообщение, если в результате выполнения кода была получена ошибка. Если сообщения не нужна - удалить эту строку, оставив конструкцию try{}catch(err){}
        }
}



Вот этот проверил работает, но теперь не пойму как сделать в маршруте что б диалог состоялся? Так как через конструктор со всеми включенными галочками Гесениц игнорируется и проходит мимо. sad

139

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

Так Obmengribov  работает коректно? И после диалога поворачивается в какую сторону?

140

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

Помогите разобраться и настроить двух различных ботов на поход по пещерам. Как уже видно из заголовка проблема в том что низкий уровень должен быть в качестве прицепа (поднимать всё кроме пура), а проводник - драться, гребти пур и элики на НР, но по правилам БК проводник высокого уровня не может взять прицепа низкого уровня.  Возможно ли это или только прицеп и проводник должны быть одного уровня? Как сделать распределение "Нашедшему VP"? при этом что бы поднимал пур более старший уровень?

141

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

Эх....ё, а я то уже размечтался big_smile  ок, пасиб за инфу. Ради такого не пойму зачем заморачиваться hmm

142

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

А кто нить писал маршрут для ледяной пещеры? Ибо если ходить каждые 45 мин это 256 шариков в день, а за десять дней примерно 2500 (тоесть за десять дней можно собрать очень жесткий баф). Если кто-то писал - выложите, а если нет , то подскажите идетнификатор приема "Пальнуть Снежком"(для снежкомета).

143

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

за 12 часов стабильной работы! Спасибище!

144

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

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

145

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

Закройте пожалуйста тему, а то как-то стыдно... Действительно с третей попытки достал нужную спичку.

146

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

это прием или плагин? (я так понимаю на свитки 120НР)

147

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

Всё гениальное просто! Спасибо! Это ж ведь элементарно,а я чего то и не подумал об этом сразу.

148

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

volok пишет:

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

  Включен контроль и включен  переодевание комплектов, в боевом стоит необходимый, а в востановительном голый и значение НР на 5НР больше, чем у голово. Если НР не полные, то заходит и всё лечит, но вот если НР полные (будь-то с вещами или без) смело идет дальше и получает по щам, а после этого лечиться и начинает всё сначала. Что я делаю не так?

149

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

Действительно, делает шаг, а затем лечиться и в связи с этим возникает масса проблем: голый нападет(умирает), на голого нападают(умирает) и как следствие начинает идти заново. А если это происходит на первом этаже, то на клетке перед мерцающим круго(ключ управляющего) не юзает её - всё зависший бот, ходит вперед, назад(палевно). Поможет кто? sad

150

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

otherway пишет:

бывает такое.. или наоборот всё подряд хватает... лечится: после изменений в списке перезапускай program.exe


Спасибо, помогло.