151

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

gorlum пишет:

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

Если делать некрасиво, то external.Stop-Start smile

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

152

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

external.SBattleAbovePercent.Text = 100;
external.dungeonEnabled = false;
Software is like sex: it's better when it's free! © LinusTorvalds

153

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

Обновил шапку топа, велкам)

154

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

Ещё вопрос Анахронику: как называется екстернал, который отвечает за комплект костылей для лича?

155

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

gorlum пишет:
else if(room == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Спуск в катакомбы");

вот этот участок не работает. как я понимаю из-за того что именно то место где уже пещера она называется "Спуск в Катакомбы", а предбанник "Спуск в катакомбы".

gorlum, поменяй тот участок на:

else if(room == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Спуск в Катакомбы");

Проверено, инфа 100%

Отредактировано drsn (2011-07-05 18:59:13)

156

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

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

157

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

drsn пишет:

и еше)) при включенном плагине бот вообще не ходит по пещере, а стоит и тупо втыкает) (демонс)

Не знаю что именно происходит, но напоминаю заголовок этой темы:
Плагин взятия задания, сан и ангелс (пока что). От Gorlum

Навеки ваш, Капитан Очевидность.

(Please log in or register to see this URL)

158

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

gorlum пишет:

Ещё вопрос Анахронику: как называется екстернал, который отвечает за комплект костылей для лича?

external.SLichKostyl.Text

Software is like sex: it's better when it's free! © LinusTorvalds

159

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

Обновил переходы.

160

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

drsn пишет:

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

А вот эту проблему я не знаю как решить, может быть кто-то поможет.

161

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

hyppo пишет:
drsn пишет:

и еше)) при включенном плагине бот вообще не ходит по пещере, а стоит и тупо втыкает) (демонс)

Не знаю что именно происходит, но напоминаю заголовок этой темы:
Плагин взятия задания, сан и ангелс (пока что). От Gorlum

Навеки ваш, Капитан Очевидность.

открою секрет что поменяли название топика)))  Плагин взятия задания, все города, нужно протестить. От Gorlum

поэтому я и потестил демонс и написал

Отредактировано drsn (2011-07-05 21:17:01)

162

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

Ну, я поменял только после замечания от хиппи))

163

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

gorlum пишет:
drsn пишет:

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

А вот эту проблему я не знаю как решить, может быть кто-то поможет.

Только что потестил. Дело не в коде, а в external.DungeonEnabled. Видать, поломался.

SPOILER Show

var uspeh=false;
var proverkaTimer = {};
var zadanieTimer = {};
var questIsActive = false;
var room ='';
var randomValue;
var min = 360000;
var max = 400000;
 
function zadanie(enabled)
{
    if(enabled)
    {
        proverkaTimer[mylogin] = setInterval("proverkaHandler()",1000);
    }
    else
    {
        if(zadanieTimer[mylogin]) clearInterval(zadanieTimer[mylogin]);
        external.SBattleAbovePercent.Text = 100;
        clearInterval(proverkaTimer[mylogin]);
    }
}
 
function proverkaHandler()
{
    clearInterval(proverkaTimer[mylogin]);
    randomValue = Math.floor(Math.random()*(max - min) + min);
    proverkaTimer[mylogin] = setInterval("proverkaHandler()", randomValue);
    if(top.Battle.bInBattle || top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i))
    {
        external.SBattleAbovePercent.Text = 100;
        return;
    }
    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";
    if(external.SCity.Text == "sandcity")
        tempstr = "Sandcity</B> - Рыцарь первого круга, 100300 / 24999";
    if(external.SCity.Text == "angelscity")
        tempstr = "Angels city</B> - Рыцарь первого круга, 10000 / 24999";
    if(external.SCity.Text == "demonscity")
        tempstr = "Demons city</B> - Рыцарь первого круга, 24999 / 24999";
    if(external.SCity.Text == "mooncity")
        tempstr = "Mooncity</B> - Рыцарь первого круга, 24999 / 24999";
 
    if(zadanieTimer[mylogin]) clearInterval(zadanieTimer[mylogin]);   
    zadanieTimer[mylogin] = setInterval("zadanieHandler()",3000);
 
    if(temp_inf.indexOf(tempstr) > -1 )
    {
        external.AddToChat("Задания не требуется");
        uspeh = true;
        questIsActive = false;
        return;
    }
    var patt = external.SCity.Text + " - \\d+ (мин|ч.|сек)";
    if(!temp_inf.toLowerCase().match(patt))
    {
        external.AddToChat("Требуется взять задание");
        uspeh = false;
    }
    else
    {
        external.AddToChat("Задания не требуется");
        uspeh = true;
        questIsActive = false;
    }
}
 
function zadanieHandler()
{
    try
    {
        if(top.Battle.bInBattle || top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i)) return;
        var temp_p = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        if(room = temp_p.match(/<nobr>([^<]+)<\/nobr>/))
            room = String(room[1])
 
        if(uspeh==false || questIsActive)
        {
            if(room)
            {
                if (room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Грибная лужайка");
                else if(room == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Странное Место");
                else if(room == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Грибная поляна");
                else if(room == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Грибница");
                else if(room == "Бойцовский Клуб" && external.SCity.Text == "suncity" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Центральная грибница");
                else if(room == "Бойцовский Клуб" && external.SCity.Text == "angelscity" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Центральный утес");
                else if(room == "Бойцовский Клуб" && external.SCity.Text == "mooncity" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Центр падения");
                else if(room == "Бойцовский Клуб" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Центральный Оазис");
                else if(room == "Бойцовский Клуб" && external.SCity.Text == "demoncity" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Центральный Разлом");
                else if(room.match(/Зал воинов/i) && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("\'Бойцовский Клуб\'");
                else if(room == "Центральный утес" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Каменно-цветочная гряда");
                else if(room == "Каменно-цветочная гряда" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Утес безысходности");
                else if(room == "Утес безысходности" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Вход в Заповедник");
                else if(room == "Вход в Заповедник" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Спуск в Бездну");
                else if(room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Цветочный Пустырь");
                else if(room == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Последний Привал");
                else if(room == "Последний Привал" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Внутренний двор");
                else if(room == "Внутренний двор" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Пещеры Мглы");
                else if(room == "Центр падения" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Спящая площадь");
                else if(room == "Спящая площадь" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Улица Камней");
                else if(room == "Улица Камней" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Проклятые Руины");
                else if(room == "Центральный Разлом" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Разлом Поклонения");
                else if(room == "Разлом Поклонения" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Дорога Храбрости");
                else if(room == "Дорога Храбрости" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Спуск в катакомбы");
                else if(room == "Проклятые Руины" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Пещера Тысячи проклятий");
                else if(room == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Спуск в Катакомбы");
                else if(room == "Пещера Тысячи проклятий" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Пещера Тысячи проклятий");
                else if((room == "Спуск в Катакомбы" || room == "Пещера Тысячи проклятий" || room == "Пещеры Мглы" || room == "Грибница" || room == "Спуск в Бездну"))
                {
                    if(uspeh == false && top.frames[external.mainFrameIndex].document.getElementsByName("pass").length > 0)
                    {
                        var btn = top.frames[external.mainFrameIndex].document.getElementsByTagName("INPUT");
                        for(i = 0;i<btn.length;i++)
                        {
                            if(btn[i].outerHTML.match(/Задания/) && btn[i].style.visibility!="hidden")
                            {
                                btn[i].click();
                                break;
                            }
                        }
                    }
                }
            }
            else
            {
                if(top.frames[external.mainFrameIndex].document.getElementsByName("quest_name").length > 0 && uspeh == false)
                {
                    external.AddToChat("Завершаем задание");
                    if(top.frames[external.mainFrameIndex].document.getElementsByName("finishquest").length > 0)
                    {
                        top.frames[external.mainFrameIndex].document.getElementsByName("finishquest")[0].click();
                        uspeh = false;
                        questIsActive = false;
                        external.AddToChat("Завершаем задание");
                    }
                    if(!top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Репутация в Suncity: 0/))
                    {
                        if(top.frames[external.mainFrameIndex].document.getElementsByName("getquest").length > 0)
                        {
                            top.frames[external.mainFrameIndex].document.getElementsByName("getquest")[0].click();
                            external.AddToChat("Работает взятие задания");
                        }
                        else external.AddToChat("Задание уже есть");
                        uspeh=true;
                        questIsActive = true;
                    }
 
                    if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Вы получили новое задание/))
                    {
                        uspeh=true;
                        questIsActive = true;
                    }
                    else if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Для вас нет заданий/))
                        {
                            uspeh = true;
                            questIsActive = false;
                        }
 
                    if(uspeh == true)
                    {
                        external.AddToChat("Работает выход из комнаты");
                        btn = top.frames[external.mainFrameIndex].document.getElementsByTagName("INPUT");
                        for(i = 0;i<btn.length;i++)
                        {
                            if(btn[i].outerHTML.match(/Вернуться/) && btn[i].style.visibility!="hidden")
                            {
                                btn[i].click();
                                break;
                            }
                        }
                    }           
                }
            }
        }
        if(questIsActive && uspeh)
        {
            if(top.frames[external.mainFrameIndex].document.getElementsByName("pass").length > 0 && (room == "Спуск в Катакомбы" || room == "Пещера Тысячи проклятий" || room == "Пещеры Мглы" || room == "Грибница" || room == "Спуск в Бездну"))
            {
                external.dungeonEnabled = true;
                external.SBattleAbovePercent.Text = 100;
            }
        }
        if(!questIsActive && uspeh)
        {
            external.dungeonEnabled = false;
            var loc = '';
            if(external.SCity.Text == "suncity")
                loc = "Грибная поляна";
            if(external.SCity.Text == "sandcity")
                loc = "Внутренний двор";
            if(external.SCity.Text == "angelscity")
                loc = "Вход в Заповедник";
            if(external.SCity.Text == "demonscity")
                loc = "Спуск в катакомбы";
            if(external.SCity.Text == "mooncity")
                loc = "Пещера Тысячи проклятий";
 
            if((room == "Спуск в Катакомбы" || room == "Пещера Тысячи проклятий" || room == "Пещеры Мглы" || room == "Грибница" || room == "Спуск в Бездну") && top.frames[external.mainFrameIndex].document.getElementsByName("pass").length > 0)
            {
                external.SBattleAbovePercent.Text = 101;
                var tmp = top.frames[external.mainFrameIndex].document.anchors;
                for(i = 0;i<tmp.length;i++)
                {
                    if(tmp[i].outerHTML.match(loc) && tmp[i].style.visibility!="hidden" && tmp[i].onclick)
                    {
                        tmp[i].click();
                        break;
                    }
                }
            }
            else if(room == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Странное Место");
            else if(room == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Дорога Храбрости");   
            else if(room == "Пещера Тысячи проклятий" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Проклятые Руины");
            else if(room == "Дорога Храбрости" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Разлом Поклонения");
            else if(room == "Разлом Поклонения" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Центральный Разлом");               
            else if(room == "Проклятые Руины" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Улица Камней");
            else if(room == "Улица Камней" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Спящая площадь");
            else if(room == "Спящая площадь" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Центр падения");
            else if(room == "Центр падения" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Бойцовский Клуб");                 
            else if(room == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Грибная лужайка");
            else if(room == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Центральная грибница");
            else if(room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Бойцовский Клуб");
            else if(room == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Зал воинов");
            else if(room == "Вход в Заповедник" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Утес безысходности");
            else if(room == "Утес безысходности" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Каменно-цветочная гряда");
            else if(room == "Каменно-цветочная гряда" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Центральный утес");
            else if(room == "Центральный утес" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Бойцовский Клуб");
            else if(room == "Внутренний двор" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Последний Привал");
            else if(room == "Последний Привал" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Цветочный Пустырь");
            else if(room == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Центральный Оазис");
            else if(room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Бойцовский Клуб");               
            else if(room == "Зал воинов")
                external.SBattleAbovePercent.Text = 100;
        }
    }
    catch(err)
    {
        external.AddToChat("Ошибка!");
    }
}
 
function Walk(name)
{
    var imgs = top.frames[external.mainFrameIndex].document.images;
    for(i = 0;i<imgs.length;i++)
    {
        if(imgs[i].outerHTML.match(name) && imgs[i].style.visibility != "hidden" && imgs[i].onclick && (imgs[i].height*imgs[i].width)>60)
        {
            external.AddToChat("Иду в " + name);
            imgs[i].click();
            break;
        }
    }
}
 
function doLoad(url)
{
    if (window.XMLHttpRequest)
        req = new XMLHttpRequest();
    else
        req = new ActiveXObject("Microsoft.XMLHTTP");
 
       req.open("GET", url, false); // задать параметры методу open
       req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); //чтоб не кэшировались GET запросы
       req.send(null); // отправить запрос     
    return req.responseText;
}


Исправил мелкие ошибки и кой-чего подправил в плане работы.

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

164

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

gorlum пишет:

Ну, я поменял только после замечания от хиппи))

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

165

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

Блин, и что теперь с этим екстерналом делать?) Да, кстати, я вот думаю, может выложить 2 версии? Одна - одет в пещеру после взятия, а другая возвращается в хаоты. Может тут кто-то не может ходить на боте в одиночку, и ходит ручками, а вот задание во-время взять - будет хорошо.

166

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

Exile пишет:
gorlum пишет:
drsn пишет:

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

А вот эту проблему я не знаю как решить, может быть кто-то поможет.

Только что потестил. Дело не в коде, а в external.DungeonEnabled. Видать, поломался.

SPOILER Show

var uspeh=false;
var proverkaTimer = {};
var zadanieTimer = {};
var questIsActive = false;
var room ='';
var randomValue;
var min = 360000;
var max = 400000;
 
function zadanie(enabled)
{
    if(enabled)
    {
        proverkaTimer[mylogin] = setInterval("proverkaHandler()",1000);
    }
    else
    {
        if(zadanieTimer[mylogin]) clearInterval(zadanieTimer[mylogin]);
        external.SBattleAbovePercent.Text = 100;
        clearInterval(proverkaTimer[mylogin]);
    }
}
 
function proverkaHandler()
{
    clearInterval(proverkaTimer[mylogin]);
    randomValue = Math.floor(Math.random()*(max - min) + min);
    proverkaTimer[mylogin] = setInterval("proverkaHandler()", randomValue);
    if(top.Battle.bInBattle || top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i))
    {
        external.SBattleAbovePercent.Text = 100;
        return;
    }
    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";
    if(external.SCity.Text == "sandcity")
        tempstr = "Sandcity</B> - Рыцарь первого круга, 100300 / 24999";
    if(external.SCity.Text == "angelscity")
        tempstr = "Angels city</B> - Рыцарь первого круга, 10000 / 24999";
    if(external.SCity.Text == "demonscity")
        tempstr = "Demons city</B> - Рыцарь первого круга, 24999 / 24999";
    if(external.SCity.Text == "mooncity")
        tempstr = "Mooncity</B> - Рыцарь первого круга, 24999 / 24999";
 
    if(zadanieTimer[mylogin]) clearInterval(zadanieTimer[mylogin]);   
    zadanieTimer[mylogin] = setInterval("zadanieHandler()",3000);
 
    if(temp_inf.indexOf(tempstr) > -1 )
    {
        external.AddToChat("Задания не требуется");
        uspeh = true;
        questIsActive = false;
        return;
    }
    var patt = external.SCity.Text + " - \\d+ (мин|ч.|сек)";
    if(!temp_inf.toLowerCase().match(patt))
    {
        external.AddToChat("Требуется взять задание");
        uspeh = false;
    }
    else
    {
        external.AddToChat("Задания не требуется");
        uspeh = true;
        questIsActive = false;
    }
}
 
function zadanieHandler()
{
    try
    {
        if(top.Battle.bInBattle || top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i)) return;
        var temp_p = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        if(room = temp_p.match(/<nobr>([^<]+)<\/nobr>/))
            room = String(room[1])
 
        if(uspeh==false || questIsActive)
        {
            if(room)
            {
                if (room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Грибная лужайка");
                else if(room == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Странное Место");
                else if(room == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Грибная поляна");
                else if(room == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Грибница");
                else if(room == "Бойцовский Клуб" && external.SCity.Text == "suncity" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Центральная грибница");
                else if(room == "Бойцовский Клуб" && external.SCity.Text == "angelscity" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Центральный утес");
                else if(room == "Бойцовский Клуб" && external.SCity.Text == "mooncity" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Центр падения");
                else if(room == "Бойцовский Клуб" && external.SCity.Text == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Центральный Оазис");
                else if(room == "Бойцовский Клуб" && external.SCity.Text == "demoncity" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Центральный Разлом");
                else if(room.match(/Зал воинов/i) && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("\'Бойцовский Клуб\'");
                else if(room == "Центральный утес" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Каменно-цветочная гряда");
                else if(room == "Каменно-цветочная гряда" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Утес безысходности");
                else if(room == "Утес безысходности" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Вход в Заповедник");
                else if(room == "Вход в Заповедник" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Спуск в Бездну");
                else if(room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Цветочный Пустырь");
                else if(room == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Последний Привал");
                else if(room == "Последний Привал" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Внутренний двор");
                else if(room == "Внутренний двор" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Пещеры Мглы");
                else if(room == "Центр падения" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Спящая площадь");
                else if(room == "Спящая площадь" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Улица Камней");
                else if(room == "Улица Камней" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Проклятые Руины");
                else if(room == "Центральный Разлом" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Разлом Поклонения");
                else if(room == "Разлом Поклонения" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Дорога Храбрости");
                else if(room == "Дорога Храбрости" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Спуск в катакомбы");
                else if(room == "Проклятые Руины" && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Пещера Тысячи проклятий");
                else if(room == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Спуск в Катакомбы");
                else if(room == "Пещера Тысячи проклятий" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
                    Walk("Пещера Тысячи проклятий");
                else if((room == "Спуск в Катакомбы" || room == "Пещера Тысячи проклятий" || room == "Пещеры Мглы" || room == "Грибница" || room == "Спуск в Бездну"))
                {
                    if(uspeh == false && top.frames[external.mainFrameIndex].document.getElementsByName("pass").length > 0)
                    {
                        var btn = top.frames[external.mainFrameIndex].document.getElementsByTagName("INPUT");
                        for(i = 0;i<btn.length;i++)
                        {
                            if(btn[i].outerHTML.match(/Задания/) && btn[i].style.visibility!="hidden")
                            {
                                btn[i].click();
                                break;
                            }
                        }
                    }
                }
            }
            else
            {
                if(top.frames[external.mainFrameIndex].document.getElementsByName("quest_name").length > 0 && uspeh == false)
                {
                    external.AddToChat("Завершаем задание");
                    if(top.frames[external.mainFrameIndex].document.getElementsByName("finishquest").length > 0)
                    {
                        top.frames[external.mainFrameIndex].document.getElementsByName("finishquest")[0].click();
                        uspeh = false;
                        questIsActive = false;
                        external.AddToChat("Завершаем задание");
                    }
                    if(!top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Репутация в Suncity: 0/))
                    {
                        if(top.frames[external.mainFrameIndex].document.getElementsByName("getquest").length > 0)
                        {
                            top.frames[external.mainFrameIndex].document.getElementsByName("getquest")[0].click();
                            external.AddToChat("Работает взятие задания");
                        }
                        else external.AddToChat("Задание уже есть");
                        uspeh=true;
                        questIsActive = true;
                    }
 
                    if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Вы получили новое задание/))
                    {
                        uspeh=true;
                        questIsActive = true;
                    }
                    else if(top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Для вас нет заданий/))
                        {
                            uspeh = true;
                            questIsActive = false;
                        }
 
                    if(uspeh == true)
                    {
                        external.AddToChat("Работает выход из комнаты");
                        btn = top.frames[external.mainFrameIndex].document.getElementsByTagName("INPUT");
                        for(i = 0;i<btn.length;i++)
                        {
                            if(btn[i].outerHTML.match(/Вернуться/) && btn[i].style.visibility!="hidden")
                            {
                                btn[i].click();
                                break;
                            }
                        }
                    }           
                }
            }
        }
        if(questIsActive && uspeh)
        {
            if(top.frames[external.mainFrameIndex].document.getElementsByName("pass").length > 0 && (room == "Спуск в Катакомбы" || room == "Пещера Тысячи проклятий" || room == "Пещеры Мглы" || room == "Грибница" || room == "Спуск в Бездну"))
            {
                external.dungeonEnabled = true;
                external.SBattleAbovePercent.Text = 100;
            }
        }
        if(!questIsActive && uspeh)
        {
            external.dungeonEnabled = false;
            var loc = '';
            if(external.SCity.Text == "suncity")
                loc = "Грибная поляна";
            if(external.SCity.Text == "sandcity")
                loc = "Внутренний двор";
            if(external.SCity.Text == "angelscity")
                loc = "Вход в Заповедник";
            if(external.SCity.Text == "demonscity")
                loc = "Спуск в катакомбы";
            if(external.SCity.Text == "mooncity")
                loc = "Пещера Тысячи проклятий";
 
            if((room == "Спуск в Катакомбы" || room == "Пещера Тысячи проклятий" || room == "Пещеры Мглы" || room == "Грибница" || room == "Спуск в Бездну") && top.frames[external.mainFrameIndex].document.getElementsByName("pass").length > 0)
            {
                external.SBattleAbovePercent.Text = 101;
                var tmp = top.frames[external.mainFrameIndex].document.anchors;
                for(i = 0;i<tmp.length;i++)
                {
                    if(tmp[i].outerHTML.match(loc) && tmp[i].style.visibility!="hidden" && tmp[i].onclick)
                    {
                        tmp[i].click();
                        break;
                    }
                }
            }
            else if(room == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Странное Место");
            else if(room == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Дорога Храбрости");   
            else if(room == "Пещера Тысячи проклятий" && top.frames[external.mainFrameIndex].document.all[0].innerHTML.match(/Никогда и никому не говорите пароль от своего персонажа/) && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Проклятые Руины");
            else if(room == "Дорога Храбрости" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Разлом Поклонения");
            else if(room == "Разлом Поклонения" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Центральный Разлом");               
            else if(room == "Проклятые Руины" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Улица Камней");
            else if(room == "Улица Камней" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Спящая площадь");
            else if(room == "Спящая площадь" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Центр падения");
            else if(room == "Центр падения" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Бойцовский Клуб");                 
            else if(room == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Грибная лужайка");
            else if(room == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Центральная грибница");
            else if(room == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Бойцовский Клуб");
            else if(room == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Зал воинов");
            else if(room == "Вход в Заповедник" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Утес безысходности");
            else if(room == "Утес безысходности" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Каменно-цветочная гряда");
            else if(room == "Каменно-цветочная гряда" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Центральный утес");
            else if(room == "Центральный утес" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Бойцовский Клуб");
            else if(room == "Внутренний двор" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Последний Привал");
            else if(room == "Последний Привал" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Цветочный Пустырь");
            else if(room == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Центральный Оазис");
            else if(room == "Центральный Оазис" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Бойцовский Клуб");               
            else if(room == "Зал воинов")
                external.SBattleAbovePercent.Text = 100;
        }
    }
    catch(err)
    {
        external.AddToChat("Ошибка!");
    }
}
 
function Walk(name)
{
    var imgs = top.frames[external.mainFrameIndex].document.images;
    for(i = 0;i<imgs.length;i++)
    {
        if(imgs[i].outerHTML.match(name) && imgs[i].style.visibility != "hidden" && imgs[i].onclick && (imgs[i].height*imgs[i].width)>60)
        {
            external.AddToChat("Иду в " + name);
            imgs[i].click();
            break;
        }
    }
}
 
function doLoad(url)
{
    if (window.XMLHttpRequest)
        req = new XMLHttpRequest();
    else
        req = new ActiveXObject("Microsoft.XMLHTTP");
 
       req.open("GET", url, false); // задать параметры методу open
       req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); //чтоб не кэшировались GET запросы
       req.send(null); // отправить запрос     
    return req.responseText;
}


Исправил мелкие ошибки и кой-чего подправил в плане работы.

Насчёт поломки - хз, он же в саму пещеру залазит вродь? И если обычным способом ботом заходить в пещеру - то всё работает.

167

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

gorlum пишет:

Блин, и что теперь с этим екстерналом делать?) Да, кстати, я вот думаю, может выложить 2 версии? Одна - одет в пещеру после взятия, а другая возвращается в хаоты. Может тут кто-то не может ходить на боте в одиночку, и ходит ручками, а вот задание во-время взять - будет хорошо.

Босс обещал в новой версии починить нерабочие экстерналы)

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

168

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

Насчёт поломки - хз, он же в саму пещеру залазит вродь? И если обычным способом ботом заходить в пещеру - то всё работает.

Я проверял двумя способами: вручную включал подземку и через dungeonEnabled. В первом случае всё гуд, во втором - спуск и затуп.

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

169

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

Exile пишет:
Насчёт поломки - хз, он же в саму пещеру залазит вродь? И если обычным способом ботом заходить в пещеру - то всё работает.

Я проверял двумя способами: вручную включал подземку и через dungeonEnabled. В первом случае всё гуд, во втором - спуск и затуп.

Тогда может быть есть другой способ запуска подземки?

170

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

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

Software is like sex: it's better when it's free! © LinusTorvalds

171

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

Хм, а после выполнения и сдачи задания можно сделать выход из программы?) Тогда можно было бы ежедневно запускать в определенное время бота, делать задание и закрываться...

Ответы на большинство вопросов связанных с ботом, вы найдёте здесь: (Please log in or register to see this URL)
(Please log in or register to see this URL) - проверил лично! Подробнее (Please log in or register to see this URL)

172

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

Петро пишет:

Хм, а после выполнения и сдачи задания можно сделать выход из программы?) Тогда можно было бы ежедневно запускать в определенное время бота, делать задание и закрываться...

Так а смысл плагина в том, что если надо задание - он идёт, берет его, выполняет. Потом через минут 20-30 проверяет, можно ли взять задание? Если да, то идёт, берет и выполняет, если нет - сидит дальше в хаотах.

173

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

Так вот я к тому, что не хочу сидеть в хаотах... т.к. мало статов, допустим, или пур. вещи на персе... wink

Ответы на большинство вопросов связанных с ботом, вы найдёте здесь: (Please log in or register to see this URL)
(Please log in or register to see this URL) - проверил лично! Подробнее (Please log in or register to see this URL)

174

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

Петро пишет:

Так вот я к тому, что не хочу сидеть в хаотах... т.к. мало статов, допустим, или пур. вещи на персе... wink

тогда просить анахроника добавить какой external.close)

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

175

Re: Плагин взятия задания, все города, нужно протестить. От Gorlum

ага, и мне даный плагин больше интересен без хаотов)