чем можно открыть файл ca2 ?

Блокнотом

нужно вытащить пасс от чара

пасс зашифрован, и это не md5

Как ее купить если Зерг все время офф?

а зерг уже не у дел)
анахроник, как я понял, в отпуске.

227

(8 ответов, оставленных в Флейм)

Вот уже где-то месяца два-три я просматриваю события чаров комбатса с сервиса 7клана.
За это время 95% закрытых чаров за ботоводство - лучники 8-9 уровней (остальные 5% - хайлевелы или чары с комплектом, отличным от лука).
Возникает вопрос:
а) Такой высокий процент блоков из-за того, что большинство ботоводов качают лукарей.
б) Есть какой-то лукоориентированный палевный клиент бота неизвестного происхождения.
в) Combots где-то палится в режиме стрелка.

А что думаете Вы?

228

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

Минерал пишет:

Ребят, как написать эту строку, чтоб продавал любое количество бутылок

var sellTimer = {};
var done = false;
var itemsToSell = [];
itemsToSell.push("вещь");
 
 
function SellInShop(enabled)
{
    if(enabled)
    {
        sellTimer[mylogin] = setInterval("SellAction()", 3000);
    }
    else
    {
        clearInterval(sellTimer[mylogin]);
    }
}
 
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) return;
        if(top.Battle.bInBattle || top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i))
        {
            done = false;
            return;
        }
 
        var s = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
 
        if(!done)
        {
            if(s.match(/drwfl\("Илена",/i) || s.match(/drwfl\("Бартоломей",/i))
                external.ClickLink("подойти к прилавку",2);
            else if (external.room_name == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Прилавки с товарами",3);
            else if (external.room_name == "Грибница" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Грибная поляна",2);
            else if (external.room_name == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Странное Место",3);
            else if (external.room_name == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Грибная лужайка",3);
            else if (external.room_name == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральная грибница",3);
            else if (external.room_name == "Прилавки с товарами")
                external.ClickLink("Илена",3);
            else if (external.room_name == "Пещеры Мглы" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Внутренний двор",2);
            else if (external.room_name == "Внутренний двор" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Последний Привал",3);
            else if (external.room_name == "Последний Привал" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Цветочный Пустырь",3);
            else if (external.room_name == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральный Оазис",3);
            else if (external.room_name == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Базар",3);
            else if (external.room_name == "Базар" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Лавка Бартоломея",3);
            else if (external.room_name == "Лавка Бартоломея")
                external.ClickLink("Бартоломей",3);
            else if(external.room_name == "Магазин")
            {               
                if(s.match(/Отдел \"Скупка\"/i) == null)
                    external.ClickLink("Продать вещи",4);
                else
                {
                    var items = s.match(/<a\shref="shop\.pl\?sl=[^"]*">продать за .*? кр.<\/a><\/td>[\s\n\r]*<td[^>]*><a [^>]*>[^&<]*/ig);
                    if(items != null)
                        for(var i = 0; i < items.length; i++)
                        {
                            items[i] = items[i].match(/<a\shref="(shop\.pl\?sl=[^"]*)">продать за .*? кр.<\/a><\/td>[\s\n\r]*<td[^>]*><a [^>]*>([^&<]*)/i);
                            items[i][1] = items[i][1].replace(/&amp;/g, '&');
                            if(itemsToSell.inArray(items[i][2]))
                            {
                                top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/" + items[i][1];
                                return;
                            }
                        }
                    done = true;
                }
            }
        }
        else
        {
            if (external.room_name == "Магазин" && top.frames[external.mainFrameIndex].is_accessible)
            {
                if(s.match(/Лавка Бартоломея/)) external.ClickLink("Лавка Бартоломея",2);
                if(s.match(/Прилавки с товарами/)) external.ClickLink("Прилавки с товарами",2);
            }
            else if (external.room_name == "Лавка Бартоломея" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Базар",3);
            else if (external.room_name == "Базар" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральный Оазис",3);
            else if (external.room_name == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Цветочный Пустырь",3);
            else if (external.room_name == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Последний Привал",3);
            else if (external.room_name == "Последний Привал" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Внутренний двор",3);
            else if (external.room_name == "Внутренний двор" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Пещеры Мглы",3);
            else if (external.room_name == "Прилавки с товарами" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральная грибница",3);
            else if (external.room_name == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Грибная лужайка",3);
            else if (external.room_name == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Странное Место",3);
            else if (external.room_name == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Грибная поляна",3);
            else if (external.room_name == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Грибница",3);
        }       
    }
    catch(err)
    {
        external.AddToChat("error");
    }
}

Попробуй так.

229

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

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

попробуй так

230

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

А моя не работает?(
f(room == "Спуск в катакомбы"

Ты переменную объявил?)
В неё название комнаты спарсил?)
Так что не работает)

231

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

gorlum пишет:

По задумке должно проверять каждые 5 минут, если ты не на входе - то будет заходить.

Исправленная версия:

function toDungeon(enabled)
{
    if(enabled)
    {
        toDungeonTimer = setInterval("toDungeonHandler()",36000);
    }
    else
    {
        clearInterval(toDungeonTimer);
    }   
}
function toDungeonHandler()
{
    if(external.room_name == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/))
        external.ClickLink("Спуск в Катакомбы",1);
}

232

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

anahronik пишет:

ArrowEnds - стрелы кончаются. Т.е. если стрелы есть, должен быть фолс. Если ставишь тру - это ошибка явно...

external.ArrowsEnds - возвращает false, если не нашлось нужных стрел. Значение true после этого надо задавать самому. Используется чито для контроля, на бота не влияет.

Дезинформируете, сударь)

233

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

LurkeR82 пишет:

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

Посмотри что хранится в external.ArrowEnds
Может быть каким-то хером бот не обновляет состояние переменной, хотя external.ArrowsEnds = true; имеется при переходе в зал.

234

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

LurkeR82 пишет:

Exile
Вот уррра! Хотя в чем разница? Клик по амуниции аналогичный

Тут, видимо, из-за того, что когда включался плагин, а стрел уже нету - то leftToBuy оставался равным нулю.

235

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

LurkeR82 пишет:
gorlum пишет:

А в закладку "Амуниция" заходит?

В том-то и дело, что не заходит

Exile

Вот здесь ошибка.

Пробовал и 2 и 4 все равно не выбирает Амуницию.

Хм...

var min = 1000;
var max = 3000;
var randomValue;
var needToBuy = 1;
var leftToBuy = 1;
var buyingFinished = false;
var room = '';
var streluTimer = {}
var itemName = "Обычные стрелы для арбалета";
 
function strelu(enabled)
{
    if(enabled)
    {
        leftToBuy = needToBuy;
        streluTimer[mylogin] = setInterval("streluHandler()",2000);   
    }
    else
    {
        clearInterval(streluTimer[mylogin]);
    }
}
function streluHandler()
{   
    try
    {
        clearInterval(streluTimer[mylogin]);
        randomValue = Math.floor(Math.random()*(max - min) + min);
        streluTimer[mylogin] = setInterval("streluHandler()", randomValue);
 
        if(external.ArrowsEnds)
        {
            leftToBuy = needToBuy;
            return;
        }
 
        if(get_mainframe().document.all[0].innerHTML.match(/Недостаточно места в рюкзаке/) || get_mainframe().document.all[0].innerHTML.match(/Недостаточно денег/))
            buyingFinished = true;
 
        external.SBattleAbovePercent.Text = 101;
        var s = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        if(room = s.match(/<nobr>([^<]+)<\/nobr>/))
                room = String(room[1]);
        if(!buyingFinished)
        {
            if(room == null)
                {
                    if(s.match(/drwfl\("Илена",/i)) external.ClickLink("пройти к прилавкам",2);
                    //тут идут условия для остальных ботов
                }
            else if(room.match(/Зал воинов/i) && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("\'Бойцовский Клуб\'",3);
            else if(room == "Бойцовский Клуб" && external.SCity.Text == "suncity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральная грибница",3);
            else if (room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
                    external.ClickLink("Прилавки с товарами",3);
            else if (room == "Прилавки с товарами" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Илена",3);
            else if(room == "Бойцовский Клуб" && (external.SCity.Text == "lowcity" || external.SCity.Text == "oldcity" || external.SCity.Text == "dreamcity") && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральная Площадь",3);
            else if (room == "Центральная Площадь" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Магазин",3);
            else if(room == "Магазин")
            {
                if(s.match(/Отдел \"Амуниция\"/i) == null) external.ClickLink("Амуниция",2);
                else
                {
                    if(leftToBuy == 0)
                    {
                        buyingFinished = true;
                        return;
                    }
                    if(external.level <= 7)
                    {
                        //покупка за зубы. Хз как сделать
                    }
                    else
                    {
                        external.ClickLink(itemName,3);
                        buyingFinished = true;
                        top.frames[external.mainFrameIndex].document.getElementsByName("count")[0].value = needToBuy;
                        top.frames[external.mainFrameIndex].document.forms[0].submit();                       
                    }                   
                }
            }
        }
        else
        {
            if(room == "Магазин" && external.SCity.Text == "suncity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Прилавки с товарами",2);
            else if (room == "Прилавки с товарами")
                external.ClickLink("Центральная грибница",3);
            else if (room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Бойцовский Клуб",3);
            else if(room == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
            {
                external.ClickLink("Зал воинов",3);
                external.ArrowsEnds = true;
                buyingFinished = false;
                external.SBattleAbovePercent.Text = 100;
            }
        }
    }
    catch(err)
    {
        external.AddToChat("err");
    }
}

Если и это не заработает - то я уже и хз.

236

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

external.level - как-то криво работает. Иногда выбивает как 0

237

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

if(s.match(/Отдел \"Амуниция\"/i) == null)
                    external.ClickLink("Амуниция",4);

Вот здесь ошибка.

238

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

Вопрос по clicklink:
при id = 2 поиск производится только по innerHTML?

239

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

А если вместо итемнейма вписать bolt_common100 например?

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

240

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

gorlum пишет:

В нубогороде не хочет заходить в магаз почему-то. И почему нельзя сделать покупку за зубы вот так?

пардон, ошибся в условии.

SPOILER Show

var min = 1000;
var max = 3000;
var randomValue;
var needToBuy = 10;
var leftToBuy = 0;
var buyingFinished = false;
var room = '';
var streluTimer = {}
var itemName = "Обычные стрелы для арбалета";
 
function strelu(enabled)
{
    if(enabled)
    {
        streluTimer[mylogin] = setInterval("streluHandler()",2000);   
    }
    else
    {
        clearInterval(streluTimer[mylogin]);
    }
}
function streluHandler()
{   
    try
    {
        clearInterval(streluTimer[mylogin]);
        randomValue = Math.floor(Math.random()*(max - min) + min);
        streluTimer[mylogin] = setInterval("streluHandler()", randomValue);
 
        if(external.ArrowsEnds)
        {
            leftToBuy = needToBuy;
            return;
        }
 
        if(get_mainframe().document.all[0].innerHTML.match(/Недостаточно места в рюкзаке/) || get_mainframe().document.all[0].innerHTML.match(/Недостаточно денег/))
            buyingFinished = true;
 
        external.SBattleAbovePercent.Text = 101;
        var s = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        if(room = s.match(/<nobr>([^<]+)<\/nobr>/))
                room = String(room[1]);
        if(!buyingFinished)
        {
            if(room == null)
                {
                    if(s.match(/drwfl\("Бартоломей",/i)) external.ClickLink("подойти к прилавку",2);
                    //тут идут условия для остальных ботов
                }
            else if(room.match(/Зал воинов/i) && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("\'Бойцовский Клуб\'",3);
            else if(room == "Бойцовский Клуб" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральный Оазис",3);
            else if (room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                    external.ClickLink("Базар",3);
            else if (room == "Базар" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Лавка Бартоломея",3);
            else if (room == "Лавка Бартоломея")
                    external.ClickLink("Бартоломей",3);
            else if(room == "Бойцовский Клуб" && (external.SCity.Text == "lowcity" || external.SCity.Text == "oldcity" || external.SCity.Text == "dreamcity") && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральная Площадь",3);
            else if (room == "Центральная Площадь" && top.frames[external.mainFrameIndex].is_accessible)
                    if(!external.ClickLink("Магазин",3)) alert("tt");
 
            else if(room == "Магазин")
            {
                if(s.match(/Отдел \"Амуниция\"/i) == null) external.ClickLink("Амуниция",2);
                else
                {
                    if(leftToBuy == 0)
                    {
                        buyingFinished = true;
                        return;
                    }
 
                    if(external.level <= 7)
                    {
                        //покупка за зубы. Хз как сделать
                    }
                    else
                    {
                        external.ClickLink(itemName,3);
                        buyingFinished = true;
                        top.frames[external.mainFrameIndex].document.getElementsByName("count")[0].value = needToBuy;
                        top.frames[external.mainFrameIndex].document.forms[0].submit();                       
                    }                   
                }
            }
        }
        else
        {
            if(room == "Магазин" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Лавка Бартоломея",2);
            else if (room == "Лавка Бартоломея")
                external.ClickLink("Базар",3);
            else if (room == "Базар" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральный Оазис",3);
            else if (room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Бойцовский Клуб",3);
            else if(room == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
            {
                external.ClickLink("Зал воинов",3);
                external.ArrowsEnds = true;
                buyingFinished = false;
                external.SBattleAbovePercent.Text = 100;
            }
        }
    }
    catch(err)
    {
        external.AddToChat("err");
    }
}


И почему нельзя сделать покупку за зубы вот так?

Во-первых, делать клики циклом категорически неправильно.
Во-вторых, как думаешь, что произойдет по external.ClickLink(itemName,3); ??? Подскажу: lib.combats.com

LurkeR82 пишет:

gorlum
Испытал. Порадовало что бот проверяет есть ли задание и если есть, то идет копать.
Но опять встал на первой клетке данжа.
external.DungeonLoadPath("имя") указывал и так и external.DungeonLoadPath("имя.path")
Все равно стоит. Может что не так делаю?

Попробуй поменять строки
external.DungeonEnabled и external.DungeonLoadPath местами. Мало ли, вдруг сработает.

242

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

drsn пишет:

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

в чем именно нужна помощь?
()
вот тут ж вроде уже работая версия, только сделана только под два города.

243

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

anahronik пишет:
else if (room == "Внутренний двор" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Последний Привал",3);

А зачем 3?
Если указать 1(кстати, 1-й какрас был создан для переходов по локациям...но не подходит для данжей, т.к. данжи только внешне схожи), то можно забить на top.frames[external.mainFrameIndex].is_accessible - у меня это предусмотрено...и даже чуть красивее smile

А хрен с ним, уже в лом править.
Буду знать на будущее.

Да, кстати, не помешал бы экстернал для диалога типа external.InDialog (true - если ведется диалог с ботом);

244

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

var sellTimer = {};
var done = false;
var room ='';
var itemsToSell = [];
itemsToSell.push("вещь");
 
 
function SellInShop(enabled)
{
    if(enabled)
    {
        sellTimer[mylogin] = setInterval("SellAction()", 3000);
    }
    else
    {
        clearInterval(sellTimer[mylogin]);
    }
}
 
Array.prototype.inArray = function(item)
{
    for (var i in this)
    {
        if (this[i] === item)
            return true;
    }
    return false;
}
 
function SellAction()
{
    try
    {
        if(!external.dungeonEnabled) return;
        if(top.Battle.bInBattle || top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i))
        {
            done = false;
            return;
        }
 
        var s = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        if(room = s.match(/<nobr>([^<]+)<\/nobr>/))
            room = String(room[1]);
 
        if(!done)
        {
            if(room == null && (s.match(/drwfl\("Илена",/i) || s.match(/drwfl\("Бартоломей",/i)))
                external.ClickLink("подойти к прилавку",2);
            else if (room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Прилавки с товарами",3);
            else if (room == "Грибница" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Грибная поляна",2);
            else if (room == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Странное Место",3);
            else if (room == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Грибная лужайка",3);
            else if (room == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральная грибница",3);
            else if (room == "Прилавки с товарами")
                external.ClickLink("Илена",3);
            else if (room == "Пещеры Мглы" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Внутренний двор",2);
            else if (room == "Внутренний двор" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Последний Привал",3);
            else if (room == "Последний Привал" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Цветочный Пустырь",3);
            else if (room == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральный Оазис",3);
            else if (room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Базар",3);
            else if (room == "Базар" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Лавка Бартоломея",3);
            else if (room == "Лавка Бартоломея")
                external.ClickLink("Бартоломей",3);
            else if(room == "Магазин")
            {               
                if(s.match(/Отдел \"Скупка\"/i) == null)
                    external.ClickLink("Продать вещи",4);
                else
                {
                    var items = s.match(/<a\shref="shop\.pl\?sl=[^"]*">продать за .*? кр.<\/a><\/td>[\s\n\r]*<td[^>]*><a [^>]*>[^&<]*/ig);
                    if(items != null)
                        for(var i = 0; i < items.length; i++)
                        {
                            items[i] = items[i].match(/<a\shref="(shop\.pl\?sl=[^"]*)">продать за .*? кр.<\/a><\/td>[\s\n\r]*<td[^>]*><a [^>]*>([^&<]*)/i);
                            items[i][1] = items[i][1].replace(/&amp;/g, '&');
                            if(itemsToSell.inArray(items[i][2]))
                            {
                                top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/" + items[i][1];
                                return;
                            }
                        }
                    done = true;
                }
            }
        }
        else
        {
            if (room == "Магазин" && top.frames[external.mainFrameIndex].is_accessible)
            {
                if(s.match(/Лавка Бартоломея/)) external.ClickLink("Лавка Бартоломея",2);
                if(s.match(/Прилавки с товарами/)) external.ClickLink("Прилавки с товарами",2);
            }
            else if (room == "Лавка Бартоломея" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Базар",3);
            else if (room == "Базар" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральный Оазис",3);
            else if (room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Цветочный Пустырь",3);
            else if (room == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Последний Привал",3);
            else if (room == "Последний Привал" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Внутренний двор",3);
            else if (room == "Внутренний двор" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Пещеры Мглы",3);
            else if (room == "Прилавки с товарами" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральная грибница",3);
            else if (room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Грибная лужайка",3);
            else if (room == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Странное Место",3);
            else if (room == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Грибная поляна",3);
            else if (room == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Грибница",3);
        }       
    }
    catch(err)
    {
        external.AddToChat("error");
    }
}

245

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

var min = 1000;
var max = 3000;
var randomValue;
var needToBuy = 10;
var leftToBuy = 0;
var buyingFinished = false;
var room = '';
var streluTimer = {}
var itemName = "Обычные стрелы для арбалета";
 
function strelu(enabled)
{
    if(enabled)
    {
        streluTimer[mylogin] = setInterval("streluHandler()",2000);   
    }
    else
    {
        clearInterval(streluTimer[mylogin]);
    }
}
function streluHandler()
{   
    try
    {
        clearInterval(streluTimer[mylogin]);
        randomValue = Math.floor(Math.random()*(max - min) + min);
        streluTimer[mylogin] = setInterval("streluHandler()", randomValue);
 
        if(external.ArrowsEnds)
        {
            leftToBuy = needToBuy;
            return;
        }
 
        if(!get_mainframe().document.all[0].innerHTML.match(/Недостаточно места в рюкзаке/) && !get_mainframe().document.all[0].innerHTML.match(/Недостаточно денег/))
            buyingFinished = true;
 
        external.SBattleAbovePercent.Text = 101;
        var s = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        if(room = s.match(/<nobr>([^<]+)<\/nobr>/))
                room = String(room[1]);
 
        if(!buyingFinished)
        {
            if(room == null)
                {
                    if(s.match(/drwfl\("Бартоломей",/i)) external.ClickLink("подойти к прилавку",2);
                    //тут идут условия для остальных ботов
                }
            else if(room.match(/Зал воинов/i) && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("\'Бойцовский Клуб\'",3);
            else if(room == "Бойцовский Клуб" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральный Оазис",3);
            else if (room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                    external.ClickLink("Базар",3);
            else if (room == "Базар" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Лавка Бартоломея",3);
            else if (room == "Лавка Бартоломея")
                    external.ClickLink("Бартоломей",3);
            else if(room == "Бойцовский Клуб" && (external.SCity.Text == "lowcity" || external.SCity.Text == "oldcity" || external.SCity.Text == "dreamcity") && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральная Площадь",3);
            else if (room == "Центральная Площадь" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Магазин",3);
 
            else if(room == "Магазин")
            {
                if(s.match(/Отдел \"Амуниция\"/i) == null) external.ClickLink("Амуниция",2);
                else
                {
                    if(leftToBuy == 0)
                    {
                        buyingFinished = true;
                        return;
                    }
 
                    if(external.level <= 7)
                    {
                        //покупка за зубы. Хз как сделать
                    }
                    else
                    {
                        external.ClickLink(itemName,3);
                        buyingFinished = true;
                        top.frames[external.mainFrameIndex].document.getElementsByName("count")[0].value = needToBuy;
                        top.frames[external.mainFrameIndex].document.forms[0].submit();                       
                    }                   
                }
            }
        }
        else
        {
            if(room == "Магазин" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Лавка Бартоломея",2);
            else if (room == "Лавка Бартоломея")
                external.ClickLink("Базар",3);
            else if (room == "Базар" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Центральный Оазис",3);
            else if (room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                external.ClickLink("Бойцовский Клуб",3);
            else if(room == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
            {
                external.ClickLink("Зал воинов",3);
                external.ArrowsEnds = true;
                buyingFinished = false;
                external.SBattleAbovePercent.Text = 100;
            }
        }
    }
    catch(err)
    {
        external.AddToChat("err");
    }
}

черновик
если прикручивать покупку за зубы - придется выдирать кусок кода из плагина покупки за зубы.

246

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

gorlum пишет:

Значит мне вообще не надо ставить clearInterval(streluTimer) в тот код, который ты написал выше?

Да, что-то я не подумал. clearInterval там не нужен. Плагин ж будет крутиться нон-стоп проверяя значение в ArrowsEnds

247

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

gorlum пишет:

Стоп, я изначально сделал функцию

function strelu(enabled)
{
    if(enabled)
    {
        streluTimer = setInterval("streluHandler()",2000);   
    }
    else
    {
        clearInterval(streluTimer);
    }

По идее мне вообще не надо ещё что-либо ставить? есть же выставленный интервал, или я туплю?

Да, уже есть. Твой метод streluHandler будет выполняться каждые две секунды.

248

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

gorlum пишет:

Да, не понял сразу) Если плагин называется strelu, то переменная должна быть streluHandler, как и название основной функции, правильно же?

Не.
Когда ты устанавливаешь таймер, метод setInterval возвращает идентификатор таймера, который нужен нам для остановки таймера, т.е.
var someVarName = setInterval(func() {...},time);

вот этот someVarName - и есть идентификатор установленного таймера. Его и надо юзать в clearInterval:
clearInterval(someVarName);

249

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

gorlum пишет:

Не хочет работать с клиринтервал

if(leftToBuy <= 0)
    {
        clearInterval("на вот этом вот символе видит синтаксическую ошибку"...);
        return;
    }

ээээ. Ты что, вместо троеточия не вставил имя переменной от setInterval-а?

gorlum пишет:
anahronik пишет:

Экстернал рабочий - просто надо маршрут указывать ещё.
Плагины выложить всегда успеешь smile

Так его надо указывать в плагине чтоль?

external.DungeonLoadPath("имя");
вот такой метод есть (по крайней мере был)