126

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

Вот когда я тестил - как раз так и делал, только ручками. Понял, спасибо)

127

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

Фигня какая-то с выставлением 101% для подачи заявки. Плагин не работает и выбивает ошибку. Вставлял вот так:

var uspeh=false;
var questIsActive = false;
var room ='';
var randomValue;
var min = 360000;
var max = 400000;
 
function zadanie(enabled)
{
    if(enabled)
    {
        zadanieTimer = setInterval("zadanieHandler()",2000);
        proverkaTimer = setInterval("proverkaHandler()",1000);
    }
    else
    {
        clearInterval(zadanieTimer);
        clearInterval(proverkaTimer);
    }
}
 
function proverkaHandler()
{   
    clearInterval(proverkaTimer);
    randomValue = Math.floor(Math.random()*(max - min) + min);
    proverkaTimer = setInterval("proverkaHandler()", randomValue);
    if(top.Battle.bInBattle) return;
    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 - Рыцарь первого круга, 24999 / 24999";
    if(external.SCity.Text == "sandcity")
        tempstr = "Sandcity - Рыцарь первого круга, 10000 / 24999";
    if(external.SCity.Text == "angelscity")
        tempstr = "Angels city - Рыцарь первого круга, 10000 / 24999";
    if(external.SCity.Text == "demonscity")
        tempstr = "Demons city - Рыцарь первого круга, 24999 / 24999";
    if(external.SCity.Text == "mooncity")
        tempstr = "Mooncity - Рыцарь первого круга, 24999 / 24999";
    if(temp_inf.indexOf(tempstr) > -1 )
    {
        external.AddToChat("Задания не требуется");
        uspeh = true;
        questIsActive = false;
        return;
    }
    if(!temp_inf.toLowerCase().match(external.SCity.Text + " - "))
    {
        external.AddToChat("Требуется взять задание");
        uspeh = false;
    }
    else
    {
        external.AddToChat("Задания не требуется");
        uspeh = true;
        questIsActive = false;
    }
 
}
 
function zadanieHandler()
{
    try
    {
        if(top.Battle.bInBattle) return;
       // if(get_mainframe().document.all[0].innerHTML.match(/смотрим на/)) return;
        var temp_p = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        if(room = temp_p.match(/<nobr>([^<]+)<\/nobr>/))
            room = String(room[1])
        //external.battleWeared = false;
        if(uspeh==false || questIsActive)
        {   
           // external.SBattleAbovePercent = 101; если работает - выбивает ошибка
            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 == "sandcity" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("Центральный Оазис");
            else if(room == "Зал воинов" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("\'Бойцовский Клуб\'");
            else if(room == "Зал воинов 2" && top.frames[external.mainFrameIndex].is_accessible)
                Walk("\'Бойцовский Клуб\'");
            else if(room == "Зал воинов 3" && 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 == "Пещеры Мглы" && uspeh == false)
            {
                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(room == "Грибница" && uspeh == false)
            {
                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(room == "Спуск в Бездну" && uspeh == false)
            {
                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;
                    }
                }
                external.AddToChat(uspeh);
                external.AddToChat(questIsActive);               
            }
            else if(top.frames[external.mainFrameIndex].document.getElementsByName("quest_name").length > 0 && uspeh == false)
            {
                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("Работает взятие задания");
                        external.AddToChat(uspeh);
                        external.AddToChat(questIsActive); 
                    }
                    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("Работает выход из комнаты");
                    external.AddToChat(uspeh);
                    external.AddToChat(questIsActive); 
                    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)
        {
            external.dungeonEnabled = true;
            external.SBattleAbovePercent = 100;
        }
        if(!questIsActive && uspeh)
        {       
            if(room == "Грибница" && top.frames[external.mainFrameIndex].is_accessible)
            {
                external.SBattleAbovePercent = 101;
                var tmp = top.frames[external.mainFrameIndex].document.anchors;
                for(i = 0;i<tmp.length;i++)
                {
                    if(tmp[i].outerHTML.match(/Грибная поляна/) && tmp[i].style.visibility!="hidden" && tmp[i].onclick)
                    {
                        tmp[i].click();
                        break;
                    }
                }
            }
            else if(room == "Спуск в Бездну" && top.frames[external.mainFrameIndex].is_accessible)
            {
                var tmp = top.frames[external.mainFrameIndex].document.anchors;
                for(i = 0;i<tmp.length;i++)
                {
                    if(tmp[i].outerHTML.match(/Вход в Заповедник/) && tmp[i].style.visibility!="hidden" && tmp[i].onclick)
                    {
                        tmp[i].click();
                        break;
                    }
                }
            }
            else if(room == "Пещеры Мглы" && top.frames[external.mainFrameIndex].is_accessible)
            {
                var tmp = top.frames[external.mainFrameIndex].document.anchors;
                for(i = 0;i<tmp.length;i++)
                {
                    if(tmp[i].outerHTML.match(/Внутренний двор/) && 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].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 = 100;
                external.dungeonEnabled = false;
        }
    }
    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;
}

Отредактировано gorlum (2011-07-01 21:41:23)

128

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

Завтра днём посмотрю, работают ли в плагинах эти экстерналы hmm
Ошибка про гусей - это здорово, но err.description был бы нагляднее smile

Кстати, кусок напряг слегка:

else if(room == "Зал воинов")
                external.SBattleAbovePercent = 100;
                external.dungeonEnabled = false;

где фигурные скобки? smile

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

129

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

anahronik пишет:

Завтра днём посмотрю, работают ли в плагинах эти экстерналы hmm
Ошибка про гусей - это здорово, но err.description был бы нагляднее smile

Кстати, кусок напряг слегка:

else if(room == "Зал воинов")
                external.SBattleAbovePercent = 100;
                external.dungeonEnabled = false;

где фигурные скобки? smile

Упс, завтыкал)

130

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

Видимо не посмотрю я сегодня ничего sad
всё на работе забыл...точне забыть не забыл, а скопировалось хреново - не все файлы заменились актуальными, а проверить было некогда.

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

131

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

Ну вот)))Значит будут полноценные выходные)))

Вранье.Вранье.Вранье.Правда.(с)Rand

132

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

anahronik пишет:

Видимо не посмотрю я сегодня ничего sad
всё на работе забыл...точне забыть не забыл, а скопировалось хреново - не все файлы заменились актуальными, а проверить было некогда.

Ну и фиг с ним) Выходные для отдыха) Да, кста, по поводу вопроса о зарядке стрел, а нельзя ли отталкиваться от

top.Chat.Self.AddMessage("Не могу зарядить лук закончились стрелы");

?
Как-то так сделать:

if(top.Chat.Self.AddMessage("Не могу зарядить лук закончились стрелы"))
{
    что-то делаем
}

133

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

{
    что-то делаем(топаем в гос за стрелами,раз переходы сделаны)
}

Вранье.Вранье.Вранье.Правда.(с)Rand

134

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

Mr Blanco пишет:

{
    что-то делаем(топаем в гос за стрелами,раз переходы сделаны)
}

Ну это я и имел в виду)

135

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

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

Вранье.Вранье.Вранье.Правда.(с)Rand

136

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

Mr Blanco пишет:

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

Угу, я как раз об этом думал. Попробую сделать, вот только с этим закончу, осталось не много.

137

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

Демонс:
Бойцовский Клуб - Центральный Разлом

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

Центральный Разлом - Разлом Поклонения

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

Разлом Поклонения - Дорога Храбрости

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

Дорога Храбрости - Спуск в катакомбы

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

Спуск в катакомбы - Спуск в Катакомбы

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

Обратный путь:

Спуск в катакомбы - Дорога Храбрости

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

Дорога Храбрости - Разлом Поклонения

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

Разлом Поклонения - Центральный Разлом

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

Центральный Разлом  - Бойцовский Клуб

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

тогда вроде вот так должно быть

Отредактировано drsn (2011-07-03 23:06:13)

138

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

Тут не названия, тут ссылки нужны smile

У меня все работает, что я делаю не так ?

139

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

предлагаю рабочий плагин поставить во главе каждой страницы

(Please log in or register to see this URL)

140

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

Godness пишет:

предлагаю рабочий плагин поставить во главе каждой страницы

а чем плохо если он только на первой будет?

141

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

ZhEkA_BK пишет:

Тут не названия, тут ссылки нужны smile

Помоему только названия) Алгоритм ходьбы же другой)

142

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

gorlum пишет:
ZhEkA_BK пишет:

Тут не названия, тут ссылки нужны smile

Помоему только названия) Алгоритм ходьбы же другой)

ну в любом случае выложил и то и другое) если чтото еще надо - говори)

143

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

Godness пишет:

предлагаю рабочий плагин поставить во главе каждой страницы

Когда мне автор скажет что плагин готов для публикации, то либо я тут всё сотру кроме первого поста, либо эту тему закрою, чтобы автор открыл новую. Пока идёт разработка пишите сколько хотите, кому надо заглянет на первую страницу или даже прочитает всё тему smile Кто в теме тем не сложно листать, глядя на фрагменты кода они понимают о чём речь, старый это код или новый или проба какая-то. Те же кто не участвует в разработке пусть ждут. Если что-то надо тестировать отдельно объявят.

(Please log in or register to see this URL)

144

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

hyppo пишет:
Godness пишет:

предлагаю рабочий плагин поставить во главе каждой страницы

Когда мне автор скажет что плагин готов для публикации, то либо я тут всё сотру кроме первого поста, либо эту тему закрою, чтобы автор открыл новую. Пока идёт разработка пишите сколько хотите, кому надо заглянет на первую страницу или даже прочитает всё тему smile Кто в теме тем не сложно листать, глядя на фрагменты кода они понимают о чём речь, старый это код или новый или проба какая-то. Те же кто не участвует в разработке пусть ждут. Если что-то надо тестировать отдельно объявят.

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

145

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

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

Тут не названия, тут ссылки нужны smile

Помоему только названия) Алгоритм ходьбы же другой)

ну в любом случае выложил и то и другое) если чтото еще надо - говори)

Ещё маршруты муна нужны)

146

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

hyppo пишет:
Godness пишет:

предлагаю рабочий плагин поставить во главе каждой страницы

Когда мне автор скажет что плагин готов для публикации, то либо я тут всё сотру кроме первого поста, либо эту тему закрою, чтобы автор открыл новую. Пока идёт разработка пишите сколько хотите, кому надо заглянет на первую страницу или даже прочитает всё тему smile Кто в теме тем не сложно листать, глядя на фрагменты кода они понимают о чём речь, старый это код или новый или проба какая-то. Те же кто не участвует в разработке пусть ждут. Если что-то надо тестировать отдельно объявят.

Ну, тереть может и не надо, может быть потом кто-то тоже захочет писать плагины, а в этом топе есть куча ответов на банальные и не очень вопросы)

147

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

а если я не силен в плагинах и считаю что мне не пригодятся эти знания
могу ли я рассчитывать на то что автор и соавторы безвозмездно со мной поделятся своими трудами ? wink

(Please log in or register to see this URL)

148

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

Godness пишет:

а если я не силен в плагинах и считаю что мне не пригодятся эти знания
могу ли я рассчитывать на то что автор и соавторы безвозмездно со мной поделятся своими трудами ? wink


Само собой, мне не жалко) Да и делаю я это скорее для себя, расширение знаний так сказать) А если это ещё и пригодиться кому-то - я буду очень рад)

149

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

gorlum пишет:

Ну, тереть может и не надо, может быть потом кто-то тоже захочет писать плагины, а в этом топе есть куча ответов на банальные и не очень вопросы)

Как скажешь. Твоя тема smile

(Please log in or register to see this URL)

150

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

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