1 826

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

Целью тестирования должно являться:
1) Работоспособность бота и плагина в целом, чтоб бот не стопорился от него просто так без причины.
2) Появление в блокноте записи о том, что вы подняли бумагу такой-то ценой.

Главная цель - найти и подобрать чек любой и сообщить о результатах smile

Да, и кто будет тестировать, отпишитесь тут хотябы...чтоб я знал, что хоть кто-то занимается тестированием, а не просто сижу и теряю время smile

1 827

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

Эксперементальная версия.
Прошу потестировать только тех людей, которые уже DungeonLog использовали и знают, как он работает.

var SellCost=0.5;        //Цена чека(лучше чуть занизить)
var SellCostSum = 9;        //Общая цена всех чеков в инвентаре для продажи
var Current = 0.95;         //Проценты, при которых ваш бот начинает подабвать заявки на бой(из настроек)
 
function DungeLog(enabled)
{
    if(enabled)
    {
        PluginsOnLoad["DungeLog"] = "LogHandler";
 
    }
    else
    {
        PluginsOnLoad["DungeLog"] = "";
    }
}
 
function LogHandler(){
    if (!external.inBattle){
        var itemlog1 = top.frames[3].document.all[0].outerHTML.match(/Вы подняли \'(.+)\'/);
        var itemlog2 = top.frames[3].document.all[0].outerHTML.match(/Вы получили \'(.+)\'/);
        if(itemlog1){
            if(itemlog1[1]=="Бумага") 
                BumagaCheck();
            else   
                SaveLog(itemlog1[1]);
        }
        if(itemlog2)
        {
            if(itemlog1[1]=="Бумага") 
                BumagaCheck();
            else   
            SaveLog2(itemlog2[1]);
        }
    }
}
 
function BumagaCheck(){
    external.dungeonEnabled=false;        //Прекратит поход
    external.SBattleAbovePercent.Text = 200;    //Прекратит бои
    //Это чтоб при проверке инвентаря не произошло обновления страницы
 
    var cost=0;
    var costSum = 0;
    var myArray;
    var myRe = new RegExp("target\=\_blank\>Бумага[^~]{1,}Цена\: (.+) кр","gi");
    var testingtext = doLoadInv("http://" + external.SCity.Text + ".combats.com/main.pl?edit=4&" + Math.random());
    alert(testingtext);
    while ((myArray = myRe.exec(testingtext)) != null)
    {
        cost = myArray[1];
        costSum = costSum + cost;
    }
 
    SaveLog2("Бумагу стоимостью "+cost+"кр.\nВ инвентаре чеков на "+costSum+".кр"); //Фиксируем в логе событие о поднятой бумаге
 
    if(cost>=SellCost||costSum>=SellCostSum) //Если бумага стоит столько, сколько мы хотим. Или если общая сумма всех чеков в инветаре подходит для выхода из данжа и продажи.
    {
        top.frames[3].location = top.frames[3].document.links[0].href; //Выйти из данжа       
    }
    else
    {
        external.dungeonEnabled=true;        //Продолжаем поход
        external.SBattleAbovePercent.Text = Current;    //Возвращаем возможность начинать бои
    }
}
 
function SaveLog(Mes){
    var now1 = new Date();
    var localtime1 = now1.toString();
    var resultfile = external.LoadFile(mylogin+".txt");
    resultfile=resultfile+localtime1+"\n Вы подняли "+Mes+"\n\n";
    external.SaveFile(mylogin+".txt",resultfile);
}
function SaveLog2(Mes){
    var now1 = new Date();
    var localtime1 = now1.toString();
    var resultfile = external.LoadFile(mylogin+".txt");
    resultfile=resultfile+localtime1+"\n Вы получили "+Mes+"\n\n";
    external.SaveFile(mylogin+".txt",resultfile);
}
 
function doLoadInv(url) {
    var req;
 
    if (window.XMLHttpRequest)
        req = new XMLHttpRequest();
    else
        req = new ActiveXObject("Microsoft.XMLHTTP");
 
    req.open("GET", url, false);
    req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); //чтоб не кэшировались GET запросы
    req.send(null); // отправить запрос
    return req.responseText;
}

Алгоритм:
1) Задаются параметры
2) Если поднимается какая-либо вещь, кроме бумаги, она заносится в лог-файл, как и раньше.
3) Если поднимается бумага, то запускается функция BumagaCheck():
    3.1) Сперва останавливает поход и устанавливает %ХП для начала боя таким, чтоб бот всегда оставался в состоянии "Восстанавливаю ХП". Это для того, чтоб в процессе проверки инвентаря не произошло резкого обновления фрейма, результат которого может либо вобще не сказаться на работе, либо сказаться плохо...я ещё не решил smile Поэтому всётаки решил оставить эту заглушку.
    3.2) Далее невидимым человеку запросом проверяется инвентарь и ищется Бумага. Отдельно выделяется Цена бумаги. Через цикл происходит сложение всех Цен бумаг для варианта "Продать, если чеков на 20кр." например. И, через него же сохраняется цена самого нижнего в инвентаре чека(который и должен оказаться последним поднятым).
    3.3) Происходит запись в лог-файле общем. Пример записи:
    "Вы получили Бумагу стоимостью 5кр.
    В инвентаре чеков на 15кр."
    3.4) Если цена последнего поднятого чека, или сумма всех чеков больше указанных в самом начале файла, то происходит выход из данжа(при этом бот не будет делать ничего: ни пытаться пойти в данж, ни пытаться создать бой). Иначе высавляются обратно параметры для продолжения похода и для подач/приёма заявок на бои.

Недочёты:
Понятия не имею ещё...
Но точно знаю, что когда скрипт выставляется параметр на прекращение похода, то галочка в меню не снимается. Этого пугаться не надо. Там просто галочку снял-поставил и бот снова пойдёт в поход.

Опять же не проверено совсем - нету времени sad
Уже убегать надо smile

1 828

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

Да я как-то и не ожидал, что ты его тестить будешь smile
Но думал, что хотябы глазами по нему пробежишься smile
Ну да ладно smile

Сейчас доделываю алгоритм работы DungeonLog'a с проверкой на подобранный чек.
Потом этот алгоритм надо реализовать....а потом уже надо будет маршруты по городам с чеками достать где-нить smile
Куча работы, короче smile

А потом даже и не знаю, как это тестировать smile
Видимо придётся просить местных жителей тестировать на чеках 5кр и выше smile

1 829

(5 ответов, оставленных в Проблемы / Баги / Неполадки)

Не ну почему сразу позорный? smile
Кто из нас хоть раз так глупо не ошибался и долго не мог понять, где косяк и почему его скурить не получается? smile

1 830

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

Помнишь я тебе присылал скриптик заготовочный под этот самый плагин.
Я в нём реализовал красные ХП...в демонсе(или девилсе...или как там тот единственный город, под который у меня маршрут был) ходил, сбрасывал ХП стабильно у...друга и просто хорошего человека, хотевшего помочь smile
Ты его хоть посмотрел? smile

1 831

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

Красные ХП разве не спасут от этого?

1 832

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

Может вам ещё чтоб кофе в постель приносил сделать? smile
Я 7-й уровень - нету у меня возможности летать по городам и маршруты записывать smile
Я даже не в курсе, в каких городах какие чеки падают smile

1 833

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

Вопрос:
При подборе предмета он в списке в инвентаре всегда в самом низу будет? smile
Просто если искать по инвентарю Бумагу, а их у вас несколько, то необходимо определить, какая из них была поднята последней smile

P.S.
Да, я помню, что обещал разобраться с этим плагином smile

1 834

(6 ответов, оставленных в Проблемы / Баги / Неполадки)

Интервал действий в приёмах не учитывается...он только в качестве отсчёта до приминения серии приёмов используется.
Значит он бы всёравно не помог smile

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

1 835

(6 ответов, оставленных в Проблемы / Баги / Неполадки)

Лучше бы ты сам приём приписал к этому smile
Правильным то он может быть, а логику его тоже надо увидеть smile

1 836

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

Вот и я о том же...
покачто Отмена является несбыточной мечтой... hmm

1 837

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

Я теряюсь в догадках, откуда вытаскивать данные об ударе...
Я знаю два вариант:
1)из нижнего фрэйма(чата)
2)из лога боя.

Фрэйм нижний часто глючит и не обновляется.
А за частое обращение к логу вешают бан на доступ к логам...
Т.е. оба варианта отпадают...

Остаётся только смотреть на состояние ХП на персонаже...но в реальном времени за время одного обновления по тебе могут ударить 2-3 раза и тогда и этот вариант не является надёжным.

Короче думать надо...

1 838

(3 ответов, оставленных в Проблемы / Баги / Неполадки)

в криво прописанных приёмах, если это версия 8.1

1 839

(17 ответов, оставленных в Проблемы / Баги / Неполадки)

не может ни на что повлиять.

Это кусок из Main.js, отвечающий за смену комплектов с комментариями от меня

if(external.SComplectEnabled.Checked)
                    {
                        if(external.hpCurrent < parseInt(external.SComplectChangeOn.Text)) // Тут явно видно, что если ТекущееХП меньше указанного к одеванию боевого, то будет переодевание на хил-комплект
                        {
                            if(!external.healWeared && external.SComplectHeal.Text.length > 0) //Если Хил не одет и он вобще вбит - одевает хил
                            {
                                top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?skmp=" + external.SComplectHeal.Text;
                                return;
                            }
                        }
                        else if(!external.battleWeared && external.SComplectBattle.Text.length > 0) //Если ТукущееХП больше или равно указанному то если не одет боевой и он задан - одевается боевой
                        {
                            top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?skmp=" + external.SComplectBattle.Text;
                            return;
                        }
                    }

Это я просто суть работы расписать пытался....чтоб убрать миф про красные ХП smile

1 841

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

external не определяется?
7-ая версия чтоли?
плагин для 8-й только есть.
С другой стороны и "D:\bor\combots\Dungeon\Dungeon.js": ну допустим bor это bot с опечаткой, но почему dungeon.js в папке Dungeon? о.О

И ещё меня ставит в тупик формулировка "когд ав  файл .js заходит". Ты запустить файл пытаешься чтоли? Его редактировать надо только в блокноте например....запускается он сам через бота.

1 842

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

SnaF пишет:

А еще лучше ctr+w smile

Ничего личного, но я бы руки отрывал за такие советы smile

1 843

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

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

1 844

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

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

Судя по аватарке inborn - одноглаз smile

1 845

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

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

1 846

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

с обычными - ничего.
а вот серебряные на золотые меняются...

Я фиг знает как давно для одного хорошего человека такую вещь придумал:
1) Если maxHP< указываемых, то ставится флаг, чтоб в бой не лез
2) Далее если нет травмы, то идёт проверка того, что на тебе есть эффект указанного элика.
3) Если на тебе есть элик нужный - посылается запрос на одевание комплекта, из поля Боевой комплект в настройках.

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

Ну если нужно, то(все изменения делаются в Main.js. до внесения изменений сделайте резервную копию данного файла)

top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?upr=save&" + currentStat + "=1";
                            return;
                        }
                    }
                }
//----------------------------------------------------------
                if(external.hpMaximum<setMaxHP){
      BattleReady=false;
      if(external.injury==false){
      checkstatus = top.frames[3].document.all[0].innerHTML;
      if(checkstatus.indexOf(Elik)>=0)  {top.frames[3].location = "http://" + external.SCity.Text + ".combats.com/main.pl?skmp=" + external.SComplectBattle.Text;}
      }}
      else{ BattleReady=true;}
//----------------------------------------------------------
                var cHPPercent = external.hpCurrent * 100 / external.hpMaximum;
                if (cHPPercent < external.SBattleAbovePercent.Text)

Вставить то, что между "//----------------------------------------------------------"(остальные строки даны для того, чтобы место для вставки найти).
Далее найти

if(!external.dungeonEnabled)
                        PutZayavka(external.SBattleType.SelectedIndex);
                }

Сделать вот так

if(!external.dungeonEnabled && BattleReady==true)
                        PutZayavka(external.SBattleType.SelectedIndex);
                }

И в самое начало

var cBattle = false;
var ZayavkaOut = 0;
var ZayavkaTimer = 0;
var setMaxHP=400; //тут ХП, ниже которых становится ясно, что комплект нифига не одет
var BattleReady;
var Elik="Зелье Разума"; //тут элик указать, необходимый для одевания
var checkstatus;

Всё дл версии 8.1, естественно.




Есть один косяк: если в магазин зайти в состоянии ХП ниже указанного и в раздел магазина Элексиры - то бот будет в инвентарь переходить(пытаться комплект одеть). Поэтому боту нужно Стоп нажимать в таком случае.

1 848

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

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

1 849

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

Хочу одну кнопку: большую и красную! tongue

Вобще у меня вчера вечером сомбатс полностью сдох.
Такчто не блочили никого