251

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

anahronik пишет:
Exile пишет:

А можно теперь список всех экстерналов?)

Можно - составляй smile
Не, серьёзно, составьте список известных вам, а я дополную уже, если потребуется smile

SPOILER Show

external.dungeonEnabled
external.ClickLink
external.mainFrameIndex
external.AddToChat
external.ArrowsEnds
external.Started()
external.LoadMethods
external.CurrentCell()
external.SCity.Text
external.inBattle
external.SBattleAbovePercent.Text
external.SLichKostyl.Text
external.Stop
external.Start
external.LoadFile
external.SaveFile
external.SDungeonExitTime.Text
external.SDungeonAttackMobs.Checked
external.SetStatusLabel
external.MD5Hash
external.SDungeonPickUpObjects.Checked
external.DungeonGetCodeForLocation
external.DungeonLoadPath
external.SetHPStatusLabel
external.SetTrayIcon
external.SCureInjuries.Checked
external.injury
external.SBattleWithInjury.Checked
external.SComplectBattle.Text
external.BrowserBusy
external.hpCurrent
xternal.battleWeared
external.SComplectChangeOn.Text
external.SComplectHeal.Text
external.SComplectEnabled.Checked
external.hpMaximum
external.room_name
external.RequestInfoFromServer
external.SRepairType.SelectedIndex
external.level
external.SBattleDogovorTimeout.SelectedIndex
external.SEliksirEnabled.Checked
external.SSvitokEnabled.Checked
external.SBattleDogovorZayavkaType.SelectedIndex
external.SBattleHaotZayavkaType.SelectedIndex
external.SAnimalEat.Checked
external.OnBattleStartEvent
external.healWeared
external.enemy_level
external.SBattleDogovorStatsAnalyze.SelectedIndex
external.my_stats
external.enemy_stats
external.SBattleDogovorType.SelectedIndex
external.SCharType.SelectedIndex
external.SBattleType.SelectedIndex
external.SStatsAdder.Checked
external.GetCurrentStat
external.my_default.stats
external.SBattleGroupTime.SelectedIndex;
external.SBattleGroupTimeout.SelectedIndex;
external.SBattleGroupAllies.Text;
external.SBattleGroupEnemies.Text;
external.SBattleGroupKulak.Checked;
external.SBattleGroupBlood.Checked;
external.SBattleGroupDeath.Checked;
external.SBattleGroupOtmoroz.Checked;
external.SBattleHaotTime.SelectedIndex;
external.SBattleHaotTimeout.SelectedIndex;
external.SBattleHaotType.SelectedIndex;
external.SBattleHaotBlood.Checked;
external.SBattleHaotDeath.Checked;
external.SBattleHaotInvisible.Checked;
external.SBattleHaotOtmoroz.Checked;
external.SPriem
external.SBattlePercent
external.SLichEnabled.Checked
external.SLickBackRoom.Text
external.SActionInterval.Text
external.SaveSettings.PerformClick
external.repairEnabled
external.objects
external.SDungeonAttackHP.Text


всё, что нашел через поиск.

252

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

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

Теоретически, должно работать для санда и сана.

253

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

А можно теперь список всех экстерналов?)

254

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

lenoxyx пишет:
Exile пишет:

судя по коду - плагин оч старый?

проблема в том что новый никто писать не хочет.

В этом плагине что-то не работает или работает не так, как надо?

255

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

судя по коду - плагин оч старый?

256

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

вопрос:
плагин привязан к обновлению фрейма или по таймеру?

если по тайму, то как-то так:

var needToBuy;
var leftToBuy;
 
leftToBuy = needToBuy;
 
if(!get_mainframe().document.all[0].innerHTML.match(/Недостаточно места в рюкзаке/) && !get_mainframe().document.all[0].innerHTML.match(/Недостаточно места/))
{
    if(leftToBuy <= 0)
    {
        clearInterval(...);
        return;
    }
    var imgs = top.frames[external.mainFrameIndex].document.images;
    for(var i = 0; i<imgs.length;i++)
    {             
        if(imgs[i].onclick && imgs[i].outerHTML.match(/bolt_common100/)&& btn[i].style.visibility!="hidden" && btn[i].length > 0 )
        {
            leftToBuy--;
            imgs[i].click();
            return;
        }
    }
}
else
{
    leftToBuy = 0;
    clearInterval(...);
}

257

(5 ответов, оставленных в Помойка)

Godness пишет:

а что за антивирус у тебя ?

у меня его вообще нету
я "бота" через онлайн-проверку прогнал
()

258

(5 ответов, оставленных в Помойка)

VirSCAN.org Scanned Report :
Scanned time   : 2011/07/17 18:39:16 (CST)
Scanner results: 14% Scanner(s) (5/37) found malware!
File Name      : ____________________combats.com..rar
File Size      : 2722167 byte
File Type      : RAR archive data, v1d, os
MD5            : 417e606fe8fee4b5e5677b50347ba83a
SHA1           : 93b544476ee934c2637775149eaea70f1a8a8bfa
Online report  : http://file.virscan.org/report/c455df2623a1caba858a9cc30f24b4d9.html
 
Scanner        Engine Ver      Sig Ver           Sig Date    Time   Scan result
a-squared      5.1.0.3         20110716230535    2011-07-16  10.86  -
AhnLab V3      2011.07.16.00   2011.07.16        2011-07-16  12.37  -
AntiVir        8.2.6.16        7.11.11.172       2011-07-15  0.30   -
Antiy          2.0.18          20110714.11186501 2011-07-14  0.65   Trojan/Win32.VKont.akj[Stealer]
Arcavir        2011            201107140423      2011-07-14  1.18   Trojan.Psw.Vkont.Axa
Authentium     5.1.1           201107162100      2011-07-16  11.88  -
AVAST!         4.7.4           110716-1          2011-07-16  0.05   -
AVG            8.5.850         271.1.1/3770      2011-07-17  0.95   HackTool.MMN
BitDefender    7.90123.8538524 7.38327           2011-07-17  4.91   -
ClamAV         0.97.1          13324             2011-07-16  2.07   -
Comodo         4.0             9412              2011-07-17  2.51   -
CP Secure      1.3.0.5         2011.07.16        2011-07-16  0.00   -
Dr.Web         5.0.2.3300      2011.07.17        2011-07-17  14.57  -
F-Prot         4.6.2.117       20110716          2011-07-16  10.17  -
F-Secure       7.02.73807      2011.07.17.02     2011-07-17  12.63  -
Fortinet       4.2.257         13.447            2011-07-17  0.77   -
GData          22.1346         20110716          2011-07-16  0.11   -
ViRobot        20110716        2011.07.16        2011-07-16  0.40   -
Ikarus         T3.1.32.20.0    2011.07.17.78851  2011-07-17  5.28   -
JiangMin       13.0.900        2011.07.14        2011-07-14  1.62   -
Kaspersky      5.5.10          2011.07.17        2011-07-17  1.03   -
KingSoft       2009.2.5.15     2011.7.17.9       2011-07-17  0.93   -
McAfee         5400.1158       6409              2011-07-16  9.35   Generic.dx!xcx
Microsoft      1.7000          2011.07.17        2011-07-17  3.55   -
NOD32          3.0.21          6295              2011-07-14  0.42   -
Norman         6.07.10         6.07.00           2011-07-17  12.02  W32/OnlineGames.LVXS
Panda          9.05.01         2011.07.17        2011-07-17  2.12   -
Trend Micro    9.200-1012      8.294.01          2011-07-17  0.68   -
Quick Heal     11.00           2011.07.16        2011-07-16  1.27   -
Rising         20.0            23.66.04.03       2011-07-15  2.63   -
Sophos         3.20.2          4.66              2011-07-17  4.07   -
Sunbelt        3.9.2497.2      9881              2011-07-17  1.53   -
Symantec       1.3.0.24        20110716.003      2011-07-16  0.23   -
nProtect       20110717.01     3560481           2011-07-17  7.11   -
The Hacker     6.7.0.1         v00257            2011-07-16  0.50   -
VBA32          3.12.16.4       20110715.0937     2011-07-15  6.31   -
VirusBuster    5.3.0.4         14.0.127.0/56508152011-07-17  0.00   -

259

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

ZhEkA_BK пишет:

А такой перебор при каждом обновлении фрейма не сильно бота нагружает?

smile Будь там сотни ссылок, тогда возможно нагрузка бы и возросла. Но в верхнем фрейме, во первых, от силы будет ссылок 20, следовательно и короткий цикл, и всего несколько операций сравнения, которые являются очень дешевыми в плане ресурсоемкости.
Да и ведь можно повесить проверку, открыт ли диалог с ботом или нет.

Блин, как трудно без лямбда-выражений c# =\ Можно было бы объемные куски кода с хреновой тучей условий заменить одной строкой(

260

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

function GoToNextDialog(btn)
{
    var lnks = top.frames[external.mainFrameIndex].document.links;
    for(var i = 0; i <  lnks.length; i++)
    {
        if(lnks[i].style.visibility!="hidden" && lnks[i].innerHTML.match(btn) && lnks[i].innerHTML.getElementsByTagName("img").length == 0)
        {
            lnks[i].click();
            break;
        }
    }
}

где btn - текст моей искомой строки диалога.
Вот как-то так.

261

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

ZhEkA_BK пишет:

Кстати, Exile, так может ты знаешь какой способ, чтоб избавиться от прямых ссылок? Мот подскажешь ? smile
P.S: обычно не привык 2 сообщения подряд писать, но тут приходится, чтоб тема подсветилась в новых
сообщениях.

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

update: забыл, правда, добавить проверку на картинку

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

Первый круг вроде как работает.
Не хватает только одного диалога 2-го круга

263

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

gorlum пишет:

В коде это пишется сразу, без ещё каких-либо операций?

Надо же ещё переключить в магазине закладку "амуниция", но это вроде понятно как делать, а вот как тогда выделить именно стрелы, чтобы потом использовать выше написанное? Как-то в ссылку на покупку добавлять?

var imgs = top.frames[external.mainFrameIndex].document.images;
        for(var i = 0; i<imgs.length;i++)
        {
            if(imgs[i].onclick && String(imgs[i].onclick).match(/AddCount/) && imgs[i].outerHTML.match(/bolt_common100/))
                {
                imgs[i].click();
                break;
                }
        }
        top.frames[external.mainFrameIndex].document.getElementsByName("count")[0].value = 2;
        top.frames[external.mainFrameIndex].document.forms[0].submit();

В голом виде - так.
Но это, повторюсь, голый вид, т.е. без проверок на закомменченность, видимость и т.д.

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

264

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

AddCount - лишь делает видимым окно для задания кол-ва покупаемых предметов, а ('arrow_common100', 'Обычные стрелы для лука') - параметры конструктора окна.

Чтобы задать кол-во стрел

top.frames[external.mainFrameIndex].document.getElementsByName("count")[0].value = ХХХ;

Чтобы купить

top.frames[external.mainFrameIndex].document.forms[0].submit();

265

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

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

()
не оправдываешь ты свой ник

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

Добавил диалоги для первого круга. Не тестил.

Петро пишет:

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

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

269

(18 ответов, оставленных в Торговля / Коммерческие дела)

Евгений Ваганович пишет:

я за некоторые плагины и 100 евро отдавал.,хоть там работы на 2-3 часа было

Евгений Ваганович пишет:

стукнуть по мотору-1 рубль,знать где стукнуть-99 рублей (с)

ахренеть!
что ж там за плагины были и где я был в это время?)

270

(18 ответов, оставленных в Торговля / Коммерческие дела)

malrom пишет:

50евро)

да тут работы всего на день-два, с учетом того, что есть все диалоги с ангелом. Максимум, что можно попросить за плагин - 10уе. А если учесть то, что он уже почти что готов, и надо лишь заменить фразы - так вообще не больше 5-ти.

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

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

gorlum пишет:

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

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

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


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

274

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

Заметил следующее:
проверка на оружие приоритетнее проверки на травму. Т.е., если висит тяж, но одеты костыли - бот считает, что всё ОК и ломится в бой.

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

Исправил ошибки.