1

Тема: Бот-проводник и Бот-прицеп

НЕ ПОДХОДИТ ДЛЯ 9-Й ВЕРСИИ, Т.К. КОД СТАЛ ЗАКРЫТЫМ. ПЛАНИРУЕТСЯ ИНТЕГРИРОВАНИЕ В БОТА(во всяком случае я планирую...Зерг может одобрит, а может и не одобрит - это его авторское дело:) )

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

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

Для 8.4+ версии

1. Модификация файла Dungeon.js для автоматического создания и приёма в группы.

Последнии внесённые изменения:
1) добавлены списки отказа/подбора вещей(прописывается в файле контретного пользователя...читать ниже)
2) прицеп часто тупо вставал перед монстрами и ждал обновления экрана, хотя монстра проводник уже убил. Введено обновление с частотой, прописанной в настройках как Интервал действий бота(обновляет только если у прицепа достаточное ХП для условия нападения, а галочка нападения выключена)
3) теперь можно использовать в приёмах переменную death_count, которая хранит количество смертей в текущем походе.
Пример:
если вы умерли в данже менее 3-х раз - используем последний удар

if(death_count<3)
_name='hp_laststrike';

4) встроены "фразы Грибницы" от Петро.

Установка:
1) Открытый код файла в мессаг не влез....а жаль. Пришлось выложить на серваке:
(Please log in or register to see this URL)
Сделайте резервную копию своего Dungeon.js, а потом выставьте скаченный как основной файл.


2) после изменения обязательно в папке Modules создаете папку DungeonUsers.
В ней, для каждого используемого данным клиентом, создаёте файл ТочноеИмяПерсонажаВключаяПробелыИЗаглавныеБуквы.txt
Пример содержания файлов(список поднимаемых предметов и предметов для отказа вы формировать должны САМИ):

var groupkanal = true;            //Если идёте один - false
 
    var items_pass = [];            //Вещи, от которых будем ОТКАЗЫВАТЬСЯ )))
    items_pass.push('грибах');
    items_pass.push('заживляющ(?:ая|ий)');
 
    var items_get = [];             //Вещи, которые будем подбирать даже при выключенной галочке
    items_get.push('ключ');
    items_get.push('ман(?:а|ы)');
    items_get.push('жижи');
    items_get.push('Грибочки');
 
    var not_your = true;            //Пытаться подобрать чужие вещи. true - пытаться. false - не пытаться
 
    if(groupkanal==true){
    ////////////////////        Групповой поход           ////////////////////
    //Если вы идете один, просто выставьте groupkanal = false и параметры ниже можно
    //не изменять.
        var provodnik = "НЕ ЗАБЫТЬ УКАЗАТЬ";            //Кто является проводником/лидером. Это обязательно надо указать и для самого проводника, и для прицепа.
         if(provodnik==mylogin){var liderstvo = true;}else{var liderstvo = false;}
      var grouppass = "321456";            //Пароль группы
        var partija = "2";                //Количество людей в партии, включая вас.
    }

var provodnik = "НЕ ЗАБЫТЬ УКАЗАТЬ";   - Тут ник того, кто будет создавать заявку для похода.
provodnik==mylogin - ЭТО НЕ ТРОГАТЬ!!! И прекратите это спрашивать!!!! smile
Примечание:
items_get - массив, хранящий вещи, которые бот будет пытаться поднять даже при выключенной галочке.
items_get - массив, хранящий вещи, от которых бот будет отказываться....совсем отказываться. и даже не попытается поднять.
Оба массива не чувствительны к регистру и вы можете вписать 'ключ' и он будет срабатывать на предметах и "Ключ", и "ключ" и даже "КлЮч"

Примеры:
    items_get.push('ключ'); - поднимать любой предмет, в названии которого есть "ключ"
    items_get.push('ман(?:а|ы)'); - поднимать любой предмет, в названии которого есть "мана" или "маны". т.е. эта страшная конструкция может быть записана двумя строками, если вы боитесь ошибиться:items_get.push('мана');items_get.push('маны');
items_get.push('ман(?:а|ы|у)'); - это для примера, как сделать три вида окончания, дл распознавания "маны", "мана" и "ману"

Тот же принцып работы у ОТКАЗА ОТ ПОДБОРА:
    items_pass.push('грибах'); - отказ от любого предмета, в названии которого есть "грибах"
    items_pass.push('заживляющ(?:ая|ий)');


Строки типа items_pass.push и items_get.push МОЖНО добавлять свои. И не просто можно, а НУЖНО ДАЖЕ! smile
а можно ещё и убирать лишние.

Не надо путать items_pass и items_get при формировании настроек!!! Буду злиться.




2. Плагин для прицепа.
Описание: если у прицепа достаточно ХП для нападения, проводник в бою и его ХП отвечает заданному условию(например если ХП проводника <50%), то прицеп вламывается в бой и помогает крошить врагов(на деле ему просто делается активной галочка Нападать на монстров, а когда условие перестает быть верным - снимается) smile

Установка: в папке Plugins создаем файл PricepHelp.js с содержанием

function PricepHelp(enabled)
{
    if(enabled)
    {
        PluginsOnLoad["PricepHelp"] = "PricepHelpHandler";
 
    }
    else
    {
        PluginsOnLoad["PricepHelp"] = "";
    }
}
 
 
function PricepHelpHandler(){
         if(IsProvodFighting(provodnik) && getPersHPproc(provodnik)<=100){
        external.SDungeonAttackMobs.Checked=true;
                                           }
          else {
        external.SDungeonAttackMobs.Checked=false;
        }
}
 
function getPersHPproc(nick){
var personalInf="";
var re = new RegExp(/HP\=([0-9\.]{1,})\/([0-9]{1,})/);
personalInf = doLoad("http://" + external.SCity.Text + ".combats.com/inf.pl?short=1&login="+nick);
if(personalInf){
var matched = re.exec(personalInf);
var procentHP=matched[1]*100/matched[2];
return procentHP;
}
}
 
function IsProvodFighting(nick){
var personalInf="";
var re = new RegExp(/battle_id=/);
personalInf = doLoad("http://" + external.SCity.Text + ".combats.com/inf.pl?short=1&login="+nick);
if(personalInf){
var matched = re.exec(personalInf);
if(matched){ return true }else{return false}
}
}
 
function doLoad(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;
}

Проводником считается именно тот, кто создавал группу.
Если у вас создал группу тот персонаж, который должен быть прицепом - в плагине замените переменную provodnik на "ТочныйНикАтакующегоПерсонажа".

Отредактировано anahronik (2010-05-03 23:44:13)

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

2

Re: Бот-проводник и Бот-прицеп

будет ли работать вот это: // номер шага с которого начинать движение при смерти. Если машрут для второго этажа то пишите шаг 10, если маршрут на Оба этажа то шаг 180.    var startDirection = 180;    если просто вписать его в скрипт для версии 7 ?

3

Re: Бот-проводник и Бот-прицеп

там больше изменений, чем просто добавленная переменная.
в выложенной моей версией есть выделения комментариями, где вносились изменеия.
Поэтому предлагаю тебе взять тот модифицированный kanal.txt и внести изменения согласно моему.
В результате должен получиться объединённый вариант.

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

4

Re: Бот-проводник и Бот-прицеп

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

5

Re: Бот-проводник и Бот-прицеп

так нечё и непонел. в твоём нвоом файле тоже нету этого((

6

Re: Бот-проводник и Бот-прицеп

так нечё и непонел. в твоём нвоом файле тоже нету этого((

Я повторяю ещё раз: чужого кода, кроме базового из комплекта бота, в своё я вставлять не буду. Я не проверял его, я его не писал, мне влом разбирать его. Я в своем выделил комментариями те места, где я вносил изменения. Больше ничем по этому вопросу я помочь не могу, да и не желаю.

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

Проводнику тоже было задано время выхода?
видимо таки значение dungeonStartTime плохо присваивается...думаю.

var dungeonStartTime = parseInt(String(date.getTime()).substring(0,10));


отсюда убрать "var "

Отредактировано anahronik (2009-08-25 20:22:37)

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

7

Re: Бот-проводник и Бот-прицеп

у меня на персах кнопка старт неактивная, почему?

8

Re: Бот-проводник и Бот-прицеп

Правильно! smile  Так их smile))
По вопросу - глючит NET Framework. Либо перезагружайклиента, оибо переставляй фреймворк, либо сноси винду кчертям smile

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

9

Re: Бот-проводник и Бот-прицеп

Я попытался kanal.txt после изменения, которые Вы сделали здесь! все хорошо, но до ввода канал! проводник останавливается здесь, это даже не шаг. прицеп  идти все нормально!

PS: Извините за русский, но так переводится Google Translate

10

Re: Бот-проводник и Бот-прицеп

Пробуй перезагрузить клиент

Сообщение от паладинов :
27.04.10 21:13 httр://www.combats.com/TOS.html нарушение пункта 3.2.3

11

Re: Бот-проводник и Бот-прицеп

Anton2009 пишет:

Пробуй перезагрузить клиент

Я попытался, но не работает

Re: Бот-проводник и Бот-прицеп

Как я понял - прицепом нада входить в ручную? Ибо не нашел нигде где нужно вставлять Имя прицепа, только проводника...

Re: Бот-проводник и Бот-прицеп

Все, все отлично! В 8.1 в настройках есть 2 галочки - собирать предметы и нападать на ботов )) Тот кто ищет тот всегда найдет! Всем спасибо за внимание )

14

Re: Бот-проводник и Бот-прицеп

РЕбята я зделал всё как написано но у меня ошыбки дают когд ав  файл .js заходит: это у прицела>[Сценарий: D:\bot\combots\Plugins\PrincipeHelps.js >>>>> Строка:7>>>Символ:1>>>>Ошибка: "external"-определение отсутствует>>>Код: 800A1391>>> Источник: Ошибка выполнения Microsoft JScript] А теперь у Dungeon>>>[сценарий: D:\bor\combots\Dungeon\Dungeon.js>>>>>Строка" 13>>>>>> Символ:1>>>>Ошибка: "external'-определение отсутствует>>>>>Код: 800A1391>>> Источник: Ошибка выполнения Microsoft JScript] обе ошибки в external помогите плз

15

Re: Бот-проводник и Бот-прицеп

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

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

Отредактировано anahronik (2009-10-03 16:17:41)

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

16

Re: Бот-проводник и Бот-прицеп

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

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

спасибо и респект тебе=)

17

Re: Бот-проводник и Бот-прицеп

Вобще просто создал и запустил smile

Сейчас заметил, что глупо прописал

"http://dreamscity.combats.com/inf.pl?short=1&login="+nick

надо бы это поменять на

"http://" + external.SCity.Text + ".combats.com/inf.pl?short=1&login="+nick

Косяк вполне может быть именно из-за этого...

Ещё там используется переменная "provodnik", которая в файле из папки DungeonUsers прописана...
В крайнем случае можно переменную provodnik в плагине поменять на ник проводника в кавычках, чтобы уж наверняка не в этом была проблема...

Отредактировано anahronik (2009-10-28 01:20:04)

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

18

Re: Бот-проводник и Бот-прицеп

чтото не получается у меня плагин правильно сделать(
а плагин надо же только прицепу создавать?
и еще, когда включен плагин, то должна стоять галочка нападать на монстров? или нет?

Отредактировано drsn (2009-10-28 20:40:28)

19

Re: Бот-проводник и Бот-прицеп

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

да, только прицепу...
а галочку нападать или не нападать сам плагин тебе выставит. Т.е. начальная позиция не имеет значения hmm

Вот этот кусок

function PricepHelpHandler(){
if(IsProvodFighting(provodnik) && getPersHPproc(provodnik)<=100){
external.SDungeonAttackMobs.Checked=true;
}
else {
external.SDungeonAttackMobs.Checked=false;
}
}

замени на

function PricepHelpHandler(){
if(IsProvodFighting(provodnik) && getPersHPproc(provodnik)<=100){
external.SDungeonAttackMobs.Checked=true;
}
else {
external.SDungeonAttackMobs.Checked=false;
}
external.AddToChat("У вашего проводника " + getPersHPproc(provodnik) + "% ХП. В бою:"+ IsProvodFighting(provodnik));
}

Тогда при каждом обновлении верхнего фрэйма будет в чат(видный только вам, а не отсылаемый на сервер) сообщение о том, сколько у проводника %ХП и в бою ли он(true/false).
Если выскакивает правильно - значит всё очень странно. Если не правильно - хоть понятно станет, куда копать smile

Отредактировано anahronik (2009-10-28 21:45:28)

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

20

Re: Бот-проводник и Бот-прицеп

поменял все, но при обновлении верхнего фрейма нету этой надписи в чат( и прицеп не входит в бои(

21

Re: Бот-проводник и Бот-прицеп

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

Сразу говорю: пароли, явки, личную инфу не собираю, не разглашаю и вобще меня интересует тут только написание интересных скриптов smile

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

22

Re: Бот-проводник и Бот-прицеп

Может я что-то пропустил?
версия 8.1
Вопрос такой: Прицепу ставлю галочку "не поднимать предметы" - он от спорных отказывается, а именной пропускает. Проводник "Поднимать предметы" - он поднимает всё кроме именного лута прицепа, который ему не нужен. Как сделать что бы именно лут поднимал прицеп, спорный проводник?

все остальные моменты можно настроить маршрутом, кроме старта, а с ним всё ясно в принципе

23

Re: Бот-проводник и Бот-прицеп

А там, вроде, не понять, какой он этот лут.
Т.е. пока не попробуешь поднять, не ясно будет именной он или спорный...
В принцыпе тут (Please log in or register to see this URL) подобный вопрос поднимался(только читай сразу всю тему...там нету конечного скрипта, а его надо самому из одного неверного решения и указания, где надо вставить, собрать) smile

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

24

Re: Бот-проводник и Бот-прицеп

когда выставляешь "Не поднимать предметы" он от спорных отказывается. а это целый алгоритм. "кликнуть по нему" -> "нажать НЕТ от розыгрыша".
Как сделать 2 окошка?
- Отказываться от розыгрыша (отказывается от розыгрыша спорного)
- Не поднимать предметы (не поднимает вообще ни чего)

25

Re: Бот-проводник и Бот-прицеп

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

Отредактировано pashka (2009-10-30 11:38:41)

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