Мля, теперь мне нифига не понятно) Надо что бы кто-то потестил, есть желающие?

Exile пишет:

хотя последний кусок кода, который я написал - рабочий.

Я его и тестил. Он рабочий до тех пор, пока бот нормально обновляет external.room_name

Нашел у тебя недочет:
ты ставишь обновление страницы скилов раз в 6 мин. только вот страница эта у тебя обновляется каждые 5сек из zadanieHandler().

Может быть потому что эта фунция вызывается  zadanieHandler()-м, где уже прописан интервал в 5 сек?

Про кнопку вродь понял, в массив buttnos забрасываются все кнопки на странице, циклом идет их перебор, и если кнопка имеет текст "Задание", и она не скрыта - то эта кнопка жмётся.
А вот метод парсинга не понял, сбрось пожалуйста ссылку на весь плагин, буду разбираться.

ЗЫ: хотя последний кусок кода, который я написал - рабочий.

Сделал вот так, думаю должно работать в всех подземках

else if(external.room_name == "Грибница" && uspeh==false){
 
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?ql=" + Math.random();       
    if(!get_mainframe().document.all[0].innerHTML.match(/Задания отсюда недоступны/) && get_mainframe().document.all[0].innerHTML.match(/Репутация в/)&& !get_mainframe().document.all[0].innerHTML.match(/24999/))
            {
            get_mainframe().document.getElementsByName("getquest")[0].click();
            top.Chat.Self.AddMessage("Работает взятие задания");
            }
            proverkaHandler(uspeh);
        if(get_mainframe().document.all[0].innerHTML.match(/Для вас нет заданий в этом подземелье.../)||get_mainframe().document.all[0].innerHTML.match(/Время до смены задания:/)||get_mainframe().document.all[0].innerHTML.match(/Задания отсюда недоступны/))
 
            {
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?" + Math.random();
            top.Chat.Self.AddMessage("Работает выход из комнаты");
            }
 
       }

Вот только позже надо будет переделать это в функцию.

Кстати, в яваскрипте, функция может вызывать функию? В С++ такого точно нельзя, а тут как с этим?

где-то ошибка, не хочет в на кнопку "Задания" нажимать

else if(external.room_name == "Грибница" && uspeh==false)
{
    top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?ql=" + Math.random();         
    if(get_mainframe().document.all[0].innerHTML.match(/Репутация в Suncity/) && !get_mainframe().document.all[0].innerHTML.match(/24999/))
    {
        get_mainframe().document.getElementsByName("getquest")[0].click();
        uspeh=true;
        top.Chat.Self.AddMessage("Работает взятие задания");
    }
    if(get_mainframe().document.all[0].innerHTML.match(/Вы получили новое задание/)) uspeh=true;
    top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?" + Math.random();
    top.Chat.Self.AddMessage("Работает выход из комнаты");

Да, так наверное лучше всего)

Так наверное даже лучше

else if(external.room_name == "Грибница" && uspeh==false){
 
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?ql=" + Math.random();       
    if(!get_mainframe().document.all[0].innerHTML.match(/Задания отсюда недоступны/) && get_mainframe().document.all[0].innerHTML.match(/Репутация в Suncity/))
            {
            get_mainframe().document.getElementsByName("getquest")[0].click();
            top.Chat.Self.AddMessage("Работает взятие задания");
            }
        proverkaHandler(uspeh);
    if(get_mainframe().document.all[0].innerHTML.match(/Для вас нет заданий в этом подземелье.../))
             //Для вас нет заданий в этом подземелье...Задания отсюда недоступны///// пока что поставил 1-й вариант, чтобы проверить работоспособность
            {
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?" + Math.random();
            top.Chat.Self.AddMessage("Работает выход из комнаты");
            }
 
       }

При

function proverkaHandler()
{
    var temp_inf = doLoad("http://" + external.SCity.Text + ".combats.com/main.pl?skills=1&rand=" + Math.random());
    if(!temp_inf.match(/Время до смены задания:/)) uspeh=false;
    else
    uspeh=true;
    top.Chat.Self.AddMessage("Проверяю наличие задания");
}

Значит должно быть как-то так:

else if(external.room_name == "Грибница" && uspeh==false){
 
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?ql=" + Math.random();         
    if(!get_mainframe().document.all[0].innerHTML.match(/Задания отсюда недоступны/) && get_mainframe().document.all[0].innerHTML.match(/Репутация в Suncity/))
            {
            get_mainframe().document.getElementsByName("getquest")[0].click();
            top.Chat.Self.AddMessage("Работает взятие задания");
            }
    var temp_inf = doLoad("http://" + external.SCity.Text + ".combats.com/main.pl?skills=1&rand=" + Math.random());
    if(temp_inf.match(/Время до смены задания:/))
    uspeh=true;
    top.Chat.Self.AddMessage("Проверяю наличие задания");
    if(get_mainframe().document.all[0].innerHTML.match(/Для вас нет заданий в этом подземелье.../))
             //Для вас нет заданий в этом подземелье...Задания отсюда недоступны///// пока что поставил 1-й вариант, чтобы проверить работоспособность
            {
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?" + Math.random();
            top.Chat.Self.AddMessage("Работает выход из комнаты");
            }
 
       }

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

Вставил это

else if(external.room_name == "Грибница" && uspeh==false){
 
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?ql=" + Math.random();         
    if(!get_mainframe().document.all[0].innerHTML.match(/Задания отсюда недоступны/) && get_mainframe().document.all[0].innerHTML.match(/Репутация в Suncity/))
            {
            get_mainframe().document.getElementsByName("getquest")[0].click();
            top.Chat.Self.AddMessage("Работает взятие задания");
            }
    if(get_mainframe().document.all[0].innerHTML.match(/Для вас нет заданий в этом подземелье.../))
             //Для вас нет заданий в этом подземелье...Задания отсюда недоступны///// пока что поставил 1-й вариант, чтобы проверить работоспособность
            {
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?" + Math.random();
            uspeh=true;
            top.Chat.Self.AddMessage("Работает выход из комнаты");
            }
 
       }

но теперь в грибнице после взятия задания не меняет успех в тру, то есть не идёт обратно.

if(!temp_inf.match(external.SCity.Text + /" - [0-9] ч. [0-9] мин."/||external.SCity.Text + /" - [0-9] мин."/||external.SCity.Text + /" - [0-9] сек."/)) uspeh=false;

Вот так?

Да, и кста, что делает

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;
}

?

Я её не первый раз вижу в плагинах, но не могу понять для чего она.

если uspeh==false, то выполняется строка

else if(external.room_name == "Грибница" && uspeh==false){
 
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?ql=" + Math.random();         
    if(!get_mainframe().document.all[0].innerHTML.match(/Задания отсюда недоступны/) && get_mainframe().document.all[0].innerHTML.match(/Репутация в Suncity/))
            {
            get_mainframe().document.getElementsByName("getquest")[0].click();
            top.Chat.Self.AddMessage("Работает взятие задания");
            }
    if(get_mainframe().document.all[0].innerHTML.match(/Для вас нет заданий в этом подземелье.../))
             //Для вас нет заданий в этом подземелье...Задания отсюда недоступны///// пока что поставил 1-й вариант, чтобы проверить работоспособность
            {
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?" + Math.random();
            uspeh=true;
            top.Chat.Self.AddMessage("Работает выход из комнаты");
            }
 
       }

Где она берет задание. Если успех==тру, то выполняется возврат в зв1.

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

138

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

Кровавое месиво пишет:

Ребят, лучник не использует приемы "Занять позицию от защиты", "Занять позицию от атаки". Проблема только у меня или есть ещё?

_name = "defence_bestposition_blk"; 

это от защиты,

_name = "defence_bestposition_hit";

это от атаки.

var uspeh=false;
 
function zadanie(enabled)
{
    if(enabled)
    {
     zadanieTimer = setInterval("zadanieHandler()",5000);// тут ставил разный интервал что бы проверить, 5-10 секунд
 
    }
    else
    {
     clearInterval(zadanieTimer);
    }
}
function proverka(enabled)
{
    if(enabled)
    {
     zadanieTimer = setTimeout("proverkaHandler()",360000);
 
    }
    else
    {
     clearTimeout(proverkaTimer);
    }
}
function proverkaHandler(uspeh)
{
    top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?skills=1&rand=" + Math.random();
    if(!get_mainframe().document.all[0].innerHTML.match(/Время до смены задания:/))
    top.Chat.Self.AddMessage("Проверяю наличие задания");
    uspeh=false;
    return uspeh;
}
 
function zadanieHandler()
{
    external.battleWeared = false;
    top.Chat.Self.AddMessage(external.room_name);
    proverkaHandler(uspeh);
    if(uspeh==false){
    if (external.room_name == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o8&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду на грибную лужайку");
    else if(external.room_name == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в странное место");
    else if(external.room_name == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o0&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в грибную поляну");
    else if(external.room_name == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в грибницу");         
    else if(external.room_name == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o6&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду на ЦП");
    else if(external.room_name == "Зал воинов" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в БК");   
    else if(external.room_name == "Зал воинов 2" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в БК");
    else if(external.room_name == "Зал воинов 3" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в БК");
    else if(external.room_name == "Этаж 2" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o4&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в БК");
    else if(external.room_name == "Башня рыцарей-магов" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o2&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в Рыцарский зал");
    else if(external.room_name == "Рыцарский зал" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в Этаж 2");
    else if(external.room_name == "Торговый Зал" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в Этаж 2");
    else if(external.room_name == "Грибница" && uspeh==false){
 
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?ql=" + Math.random();         
    if(!get_mainframe().document.all[0].innerHTML.match(/Задания отсюда недоступны/) && get_mainframe().document.all[0].innerHTML.match(/Репутация в Suncity/))
            {
            get_mainframe().document.getElementsByName("getquest")[0].click();
            top.Chat.Self.AddMessage("Работает взятие задания");
            }
    if(get_mainframe().document.all[0].innerHTML.match(/Для вас нет заданий в этом подземелье.../))
             //Для вас нет заданий в этом подземелье...Задания отсюда недоступны///// пока что поставил 1-й вариант, чтобы проверить работоспособность
            {
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?" + Math.random();
            uspeh=true;
            top.Chat.Self.AddMessage("Работает выход из комнаты");
            }
 
       }     
      } 
 
 
 
    //Возврат в зв1
            if(uspeh==true)
            {
                if(external.room_name == "Грибница" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?rnd=" + Math.random()+"&path=1.108.1";
            else if(external.room_name == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o2&rnd=" + Math.random();
            else if(external.room_name == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random();
            else if(external.room_name == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o6&rnd=" + Math.random();
            else if(external.room_name == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o0&rnd=" + Math.random();
             else if(external.room_name == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd" + Math.random();
            }
//external.AddToChat("Взял задание");
 
}

Сделал функцию по проверке наличия задания, которая возвращает "uspeh", поставил интервал работы в 5 минут "setTimeout", я так понял что это оно. Но после запуска плагина бот постоянно проверяет наличие задания, значит он постоянно лезет в функцию "function proverkaHandler(uspeh)", и дальше не идёт.

А, понял, придёт Анахроник - скажет)

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

Как-то так?

тут запуск этой функции каждые полчаса
            if(!get_mainframe().document.all[0].innerHTML.match(/Время до смены задания: /))
            uspeh=true;

Да, только вот в регулярке убери последний пробел после двоеточия. А то реагирует неправильно.

Кстати, вручную можно включить режим данжа?


Это как "вручную"?

Как-то так?

тут запуск этой функции каждые полчаса
            if(!get_mainframe().document.all[0].innerHTML.match(/Время до смены задания: /))
            uspeh=true;
Exile пишет:
gorlum пишет:

Посмотрел через дебагбар закладку "Репутация", у неё есть id, которые равно L6, значит её можно нажать как-то так?

get_mainframe().document.getElementsById("L6")[0].click();

Зачем её нажимать?
Это лишь закладка цельной страницы, которая уже подгружена в documents.all[0]

То есть, можно сразу искать фразу "Время до смены задания: ", и по ней уже ориентироваться?

И привязать бота, если в "Репутации" нету теста "Время до смены задания: " - то uspeh=false. И сделать эту проверку каждые полчаса.

Посмотрел через дебагбар закладку "Репутация", у неё есть id, которые равно L6, значит её можно нажать как-то так?

get_mainframe().document.getElementsById("L6")[0].click();
descalui пишет:
hyppo пишет:

ZhEkA_BK не хочется упускать возможность брать задание через 23 часа, а не через 24 smile Поэтому раз в сутки по планировщику не катит. Делать так уж со всеми выкрутасами wink

Ну это уже из 86400000мс нужно час убавить... т.е. 86400000-360000мс=86040000мс (если я конечно не ошибаюсь)

Нет, на самом деле - делать по таймеру - плохая идея. Видимо только один я гружу комп раз в неделю)

ZhEkA_BK пишет:

Нужно ж еще условие if(uspeh=true)  добавить к функции возврата. Плюс как-то закрутить это все дело не только для хаотов, но и для подземки  roll
Ну и раз уже используешь top.frames[external.mainFrameIndex].is_accessible, то можно делать плагин не по работе счетчика по времени, а по обновлению верхнего фрейма.

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

Тут ещё надо подумать, как сделать так, чтобы через 24 часа успех снова становился фолсом.

ZhEkA_BK пишет:

uspeh=true; надо писать уже когда взято задание...т.е. когда появится строчка Задания отсюда недоступны
Т.е. в том месте, где стоит условие на выход из комнаты:

if(get_mainframe().document.all[0].innerHTML.match(/Задания отсюда недоступны/))
ссылка на выход с комнаты
uspeh=true;
top.Chat.Self.AddMessage("Работает выход из комнаты");

А ты пытался вставить в строку с условием типа "если нет строки Задания отсюда недоступны". Там у тебя воскл знак вначале стоит перед гетмаинфрейм.
Т.е. сперва у тебя должно стоять условие взятия задания, потом в условии перехода обратно в комнату в конце вставить успех=тру.
По поводу последнего поста вот правильная ссылка на возврат из задания

top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?" + Math.random();

Проблема была не в выходе из заданий, а в выходе на грибную поляну из грибницы. Та ссылка работает, спасибо, но нужна другая) Да и таймер изначально я хотел поставить не на действие бота, а что бы он каждые 86400000 млсек запускался (то есть ровно через сутки).

Ещё, ссылка на возврат на на грибную поляну имеет вид

http://suncity.combats.com/dungeon.pl?rnd=0.881243425895349&path=1.108.1

в плагине для выхода из грибницы написал

top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?rnd=" + Math.random() + "&path=" + Math.random();

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

http://suncity.combats.com/main.pl?top=72.4959358513555

и это вродь не подходит. Пробовал через дебагбар найти кнопку  по названию, но его нету(

var uspeh=false;
 
function zadanie(enabled)
{
    if(enabled)
    {
     zadanieTimer = setInterval("zadanieHandler()",5000);// тут ставил разный интервал что бы проверить, 5-10 секунд
 
    }
    else
    {
     clearInterval(zadanieTimer);
    }
}
 
function zadanieHandler()
{
    external.battleWeared = false;
    top.Chat.Self.AddMessage(external.room_name);
if (external.room_name == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o8&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду на грибную лужайку");
    else if(external.room_name == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в странное место");
    else if(external.room_name == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o0&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в грибную поляну");
    else if(external.room_name == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в грибницу");         
    else if(external.room_name == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o6&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду на ЦП");
    else if(external.room_name == "Зал воинов" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в БК");   
    else if(external.room_name == "Зал воинов 2" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в БК");
    else if(external.room_name == "Зал воинов 3" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в БК");
    else if(external.room_name == "Этаж 2" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o4&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в БК");
    else if(external.room_name == "Башня рыцарей-магов" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o2&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в Рыцарский зал");
    else if(external.room_name == "Рыцарский зал" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в Этаж 2");
    else if(external.room_name == "Торговый Зал" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o7&rnd=" + Math.random();
            //top.Chat.Self.AddMessage("Иду в Этаж 2");
    else if(external.room_name == "Грибница" && uspeh==false)
            {
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?ql=" + Math.random();         
    if(!get_mainframe().document.all[0].innerHTML.match(/Задания отсюда недоступны/) && get_mainframe().document.all[0].innerHTML.match(/Репутация в Suncity/))
            get_mainframe().document.getElementsByName("getquest")[0].click();
            top.Chat.Self.AddMessage("Работает взятие задания");
            }
    if(get_mainframe().document.all[0].innerHTML.match(/Для вас нет заданий в этом подземелье.../))
            { //Для вас нет заданий в этом подземелье...Задания отсюда недоступны///// пока что поставил 1-й вариант, чтобы проверить работоспособность
 
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/dungeon.pl?" + Math.random();
            top.Chat.Self.AddMessage("Работает выход из комнаты");
            }
 
 
 
 
    //Возврат в зв1
            else if(external.room_name == "Грибница" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?top=" + Math.random();
            else if(external.room_name == "Грибная поляна" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o2&rnd=" + Math.random();
            else if(external.room_name == "Странное Место" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd=" + Math.random();
            else if(external.room_name == "Грибная лужайка" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o6&rnd=" + Math.random();
            else if(external.room_name == "Центральная грибница" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o0&rnd=" + Math.random();
             else if(external.room_name == "Бойцовский Клуб" && top.frames[external.mainFrameIndex].is_accessible)
            top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?path=o1&rnd" + Math.random();
 
//external.AddToChat("Взял задание");
 
}

Никак не могу понять, куда вписать

uspeh=true;

чтобы бот шел обратно. Вставляю сюда

if(!get_mainframe().document.all[0].innerHTML.match(/Задания отсюда недоступны/) && get_mainframe().document.all[0].innerHTML.match(/Репутация в Suncity/))
            get_mainframe().document.getElementsByName("getquest")[0].click();
            uspeh=true;
            top.Chat.Self.AddMessage("Работает взятие задания");

и после этого кнопка "Получить задание" не жмётся. Пробовал тыкать этот  uspeh=true; уже куда угодно, но нажатие не пашет(