426

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

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

427

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

anahronik пишет:

вот только смысла в инновациях этих мало:
1) чем меньше редактируется исходный код - тем лучше
2) с такими изменениями на проводника и на прицепа требуется свой клиент
3) если проводник - маг, то Dohit он вобще не использует и будет убивать всех и вся

А вобще - инициатива похвальна smile

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

428

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

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

выражаю благодарность за инновации!! big_smile

не за что... )

429

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

anahronik Оки... спс smile
нашел ошибку в исходнике скобку потерял и подправил это условие:

if(top.Battle.oBattle.sEnemyLogin.indexOf("Рогонос") < 0){

и заработало на ура smile

430

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

Петро пишет:

оно вообще ни на ком работать не будет...по моему... в  одну строку сделай, тогда всё будет хорошо

в таком виде тоже должно работать... если в  скрипте ошибок нет...

431

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

в файле main.js есть функция... DoHit()...
пишим функцию в таком виде...

function DoHit()
{
  if (!top.Battle.oBattle.arrButtons.commit.disabled){
      if(top.Battle.oBattle.sEnemyLogin.indexOf("Рогонос") < 0){
        var arrParams = { enemy: top.Battle.oBattle.sEnemy, attack0: GetRandomPoint(0), attack1: GetRandomPoint(1), defend0: GetRandomPoint(2) };
        top.Battle.oBattle.Send(arrParams);     
      }else{
          if(top.Battle.oBattle.oEnemySlot.nHP > 200){
            var arrParams = { enemy: top.Battle.oBattle.sEnemy, attack0: GetRandomPoint(0), attack1: GetRandomPoint(1), defend0: GetRandomPoint(2) };
            top.Battle.oBattle.Send(arrParams);
          }else{
            setTimeout("DoHit()", 1000);
          }
      }
  }else{
    setTimeout("DoHit()", 1000);
  }
}

432

(27 ответов, оставленных в Подземелье / Маршруты)

Павел пишет:

Извеняюсь за нубство, но так и не понял куда втавлять в какое место файла Dungeon.js?

строка 168
после...

if(top.frames[external.mainFrameIndex].arrLayers[1][0]["l"].arrObjects[0])
   {

433

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

SnaF пишет:

Я прописал у себя вот так :

if(((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) > 34) && (typeof(top.Battle.oBattle.oEnemySlot.arrEffects["ggsvern"]) != "object") && (typeof(top.Battle.oBattle.oEnemySlot.arrEffects["ggcocon"]) != "object") && (typeof(top.Battle.oBattle.oMySlot.arrEffects["ggsliz"]) != "object"))
_name = "block_revenge";

угу

434

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

ggcocon - эффект кокон

if((typeof(top.Battle.oBattle.oEnemySlot.arrEffects["ggsvern"]) != "object") && (typeof(top.Battle.oBattle.oEnemySlot.arrEffects["ggcocon"]) != "object"))

так же можно еще добавить

(typeof(top.Battle.oBattle.oMySlot.arrEffects["ggsliz"]) != "object")

это на случай если на тебя рогоносец повесил ослабу -50% мф. урона...

435

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

ни фига не смог настроить... подъем дропа...
просто закоментил кусок скрипта, где проверяет что брать а что нет...
терь берут оба... и все... что видят... по правилу кто первый взял... того и дроп smile

436

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

тут такое дело... проводник не берет свой квестовый дроп... хотя в настройках выставил.. чтобы он брал все(и свое и чужое)

var not_your = true;  //Пытаться подобрать чужие вещи. true - пытаться. false - не пытаться

хм... прицеп тоже что то дроп не берет smile

items_get.push('Грибочки');
items_get.push('грибах');
items_get.push('заживляющ(?:ая|ий)');
 
var not_your = true;  //Пытаться подобрать чужие вещи. true - пытаться. false - не пытаться


А что то Маленькие Грибочки не взял sad

437

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

Набор приемов для пещеры(Sun/Sand).
Содержимое файла *.cm:

<?xml version="1.0" encoding="windows-1251"?>
<Methods>
  <Priem1>if((typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_water_poison08"]) == "object") ||
   (typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_water_cloud08"]) == "object") ||
   (typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_fire_flamming08"]) == "object") ||
   (typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_air_mark"]) == "object") ||
   (typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_earth_mark"]) == "object") ||
   (typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_water_mark"]) == "object") ||
   (typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_fire_mark"]) == "object"))
{
  _name = "hp_cleance";
}</Priem1>
  <Priem2>if(((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) &lt; 32) &amp;&amp;
    (parseInt(top.Battle.oBattle.arrRes["spirit"].innerHTML) &gt; 0)){
     _name = "hit_willpower";
}</Priem2>
  <Priem3>if((top.Battle.oBattle.arrRes["hit"].innerHTML &gt; 22) ||
(parseInt(top.Battle.oBattle.arrRes["spirit"].innerHTML) &lt; 0.01)){
  _name = "hit_empower";
}</Priem3>
  <Priem4>if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) &gt; 32){
  _name = "krit_bloodlust";
}</Priem4>
  <Priem5>_name = "block_fullshield";</Priem5>
  <Priem6>if((parseInt(top.Battle.oBattle.arrRes["counter"].innerHTML) &gt; 5) ||
  ((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) &lt; 55)){
  _name = "counter_winddance";
}</Priem6>
  <Priem7>if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) &gt; 32){
  _name = "counter_deathwalk"; 
}</Priem7>
  <Priem8>hp_enragelvl = top.Battle.oBattle.oMySlot.oEffects.innerHTML.match(/&lt;br&gt;&lt;span[^&gt;]*&gt;.(\d)?&lt;\/span&gt;&lt;\/div&gt;&lt;img[^"]*".+\/hp_enrage\.gif"&gt;/i);
hp_defencelvl = top.Battle.oBattle.oMySlot.oEffects.innerHTML.match(/&lt;br&gt;&lt;span[^&gt;]*&gt;.(\d)?&lt;\/span&gt;&lt;\/div&gt;&lt;img[^"]*".+\/hp_defence\.gif"&gt;/i);
 
if((hp_enragelvl != null) &amp;&amp; (hp_defencelvl != null) &amp;&amp; (parseInt(top.Battle.oBattle.arrRes["hp"].innerHTML) &gt; 5)){
  if((hp_enragelvl[1] &gt; 2) &amp;&amp; (hp_defencelvl[1] &gt; 2) &amp;&amp; ((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) &lt; 100)){
    _name = "hp_regen";
  }else if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) &lt; 32){
    _name = "hp_regen";
  }else{
    _name = "";
  }
}</Priem8>
  <Priem9>if(((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) &gt; 32) &amp;&amp;
   (parseInt(top.Battle.oBattle.arrRes["hp"].innerHTML) &gt; 5)){
  _name = "hp_enrage";
}</Priem9>
  <Priem10>hp_enragelvl = top.Battle.oBattle.oMySlot.oEffects.innerHTML.match(/&lt;br&gt;&lt;span[^&gt;]*&gt;.(\d)?&lt;\/span&gt;&lt;\/div&gt;&lt;img[^"]*".+\/hp_enrage\.gif"&gt;/i);
if(hp_enragelvl != null){
if(((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) &gt; 32) &amp;&amp;
   (parseInt(top.Battle.oBattle.arrRes["hp"].innerHTML) &gt; 5) &amp;&amp;
   (hp_enragelvl[1] &gt; 2)
  ){
  _name = "hp_defence";
} 
}</Priem10>
  <Priem11>bloodlustCount = top.Battle.oBattle.oMySlot.oEffects.innerHTML.match(/&lt;br&gt;&lt;span[^&gt;]*&gt;.(\d)?&lt;\/span&gt;&lt;\/div&gt;&lt;img[^"]*".+\/krit_bloodlust\.gif"&gt;/i);
if(bloodlustCount != null){
if((((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) &lt; 32) || (bloodlustCount[1] &gt; 2))){
  _name = "krit_wildluck";
}
}</Priem11>
  <Priem12>_name = "parry_prediction"; </Priem12>
  <Priem13>
  </Priem13>
  <Priem14>
  </Priem14>
  <Priem15>
  </Priem15>
  <Priem16>
  </Priem16>
  <Priem17>
  </Priem17>
  <Priem18>
  </Priem18>
  <Priem19>
  </Priem19>
  <Priem20>
  </Priem20>
  <Priem21>
  </Priem21>
  <Priem22>
  </Priem22>
  <Priem23>
  </Priem23>
  <Priem24>
  </Priem24>
</Methods>

Приемы:
Очиститься кровью, Воля к победе, Усиленные удары, Жажда крови, Полная защита, Танец ветра, Поступь смерти, Дикая удача, Предвиденье, Ярость, Стойкость, Утереть пот.

438

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

Knight Jedi пишет:
if(parseInt(top.Battle.oBattle.arrRes["krit"].innerHTML) > 12)
else
_name = "krit_blooddrink"

чтото прием не светится в настройках и не работает. в чем ошибка?

пьем кровь, если тактик крита больше 12?
если да, то лишняя "else" и после названия приема не хватает ";"

if(parseInt(top.Battle.oBattle.arrRes["krit"].innerHTML) > 12)
_name = "krit_blooddrink";
hyppo пишет:

Начинай писать smile Все будут рады если у тебя получится!
Пока что все попытки написать простое и краткое описание бота заканчивались либо FAQ, либо "юзай поиск", либо пожеланиями снять ролик. Я простых способов вообще не вижу. Слишком много вариантов в настройке бота чтобы всё кратенько описать.

Думал заняться... пока писал себе маршруты Sand... хотел описать как это делается... набросал в ворде страницы полторы текста... налепил скринов... пошел чайку попил.. вернулся почитал.. фигня полная... по факту описал элементарные вещи(на мой взгляд)  smile
я могу взяться за манула... но есть пару но...
1. Сам не сильно силен в боте.... не так он у меня давно...
2. Не особо четко представляю... в чем трудность использования бота... возможно я не все функции использую, но те которыми пользуюсь.. вроде как все ясно и понятно...

если есть перечень вопросов, которые нужно осветить...  я готов над этим потрудиться...
просто пока все вопросы, которые я видел на форуме... сводились...
1. как написать прием... (аля мне надо, что бы было так и так)
2. почему не запускается бот
3. не работает плагин...
а данные вещи в манула не свести... как не крути... так как они все индивидуальные...

у кого-нибудь есть соображения в каком виде и что описать в мануале? smile

440

(143 ответов, оставленных в Подземелье / Маршруты)

Tester пишет:

Вручную не бегал давно, и потому вопрос: пыги из соседних корридоров не прибегают?

ПГ носятся будь здоров.. на первом этаже в первом коридоре(j на карте дарков) всех собираю(ну или почти всех)...
на втором ботом не ходил... ибо не тянет бедняга smile

441

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

Bobr1k пишет:

... ничего делать как в АК не будут...

а жаль smile

442

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

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

и еще такой вопросик...
можно ли в следующих версиях... предусмотреть возможность нанесения автоудара в ручном режиме(как в Автокомбатсе через F2)...
т.е. что бы бот был выключен... а точки расставляются и кнопка "В перед" жмется через одну кнопку...
порой хочется так сказать самому по воевать smile
В принципе не принципиально... но избавило бы от необходимости... пере заходить под другим клиентом... тем более, что скрипт автоудара уже в боте написан осталось только привязать его на какую-нибудь кнопку smile
Заранее спасибо smile

443

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

ZhEkA_BK пишет:

Незнаю как ваша логика, но я когда на 8м крито-уворотом играл, то при оставшихся 8 хп успевал штуку еще сверху снести иногда  big_smile
Andy_SPB,и как там на 9м критоуворотом? Я просто раньше когда играл, сильно разочаровался после фикса вертунов.

согласен... бывало... на первых разменах 80% хп теряешь... а потом весь бой рулишь... но у меня, почему то так редко бывало...
на 9ке... руками не плохо... ботом хуже smile
но тут хз... я ведь ботом на 8ке под конец играл... т.е. была сильная 8ка... а ща слабая 9ка... м/б по этому и не особо рулит...

терь по существу...

Защита от метеорита.
На базе трех приемов Магическая защита, Осторожность, Полная защита.
Выставил в трех слотах(приемы в боте)

Первым - Маг. защиту:

if(typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_earth_meteor08"]) == "object"){
  _name = "block_magicshield";
}

Описание: Если на чаре висит метеорит, применяем маг. защиту.

Вторым - Осторожность:

if((typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_earth_meteor08"]) == "object") && (typeof(top.Battle.oBattle.oMySlot.arrEffects["block_magicshield"]) != "object")){
  _name = "counter_ward";
}

Описание: Если на чаре висит метеорит и не висит маг.защита, используем осторожность(50% защиты от маг. урона)

Третьим - Полная защита:

if((parseInt(top.Battle.oBattle.arrRes["block"].innerHTML) > 7)||((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) < 32) ||((typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_earth_meteor08"]) == "object") && (typeof(top.Battle.oBattle.oMySlot.arrEffects["block_magicshield"]) != "object"))){
  _name = "block_fullshield";
}

Описание: Работает при трех исходах:
1. Количество тактик блока > 7 - применяем полную защиту.
2. ХП в красной зоне - применяем полную защиту.
3. Если на чаре висит метеорит и не висит маг. защита - применяем полную защиту.

P.S. На счет целесообразности данной связки ни чего утверждать не буду...маги порой надоедают вот и повесил себе в приемы smile

hydralysk пишет:

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

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

случайно набрел на эту тему...
на мой взгляд... простого мануала...
типо этого.... () заглаза smile
повесть пару скринов... более подробно расписать все...
на много проще реализовать...

446

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

Virus пишет:

Andy_SPB, логика хорошая, мне нравиться, спасибо. Поставил себе, буду тестить.
Вставляю в 1 сообщения ?

не возражаю smile

447

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

Есть предложение по приемам...
Простое использование поступи мало эффективно(на мой взгляд)...
Лучше добавить в приемы танец ветра(уворот за три тактики контрудара) в следующем виде...

if((parseInt(top.Battle.oBattle.arrRes["counter"].innerHTML) > 7) || 
  ((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) < 32)){
  _name = "counter_winddance";
}

а поступь прописать в виде...

if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) > 32){
  _name = "counter_deathwalk"; 
}

на мой взгляд порой лучше увернуться когда ХП мало... и прожить на 1 размен дольше... чем усилить урон на 1 ход(так как второго может и не быть) wink

проверено: крито-уворот 8 лвл...
В данный момент обкатываю тактику на 9 лвл, тоже крито-уворот... smile

448

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

anahronik пишет:

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

хм... уворот 9 лвл...
идет бой... по условиям скрипта приемов бот должен использовать к примеру Ярость(к примеру номер приема 4)... он применяет прием... в этот момент идет размен с противником, под которого он походил скажем хода два назад... в итоге получает доп тактику... пускай контрудар... в результате есть возможность использовать танец(номер приема 2)... но бот не сделал ход.. поэтому он идет дальше по списку п. 5... 6... и т.д. до 20... в результате танец он использует только в следующем рамене(когда по новой прогоняет весь список)... так вот вопрос...
можно ли с помощью данной команды устранить данный минус smile

Петро пишет:

Andy_SPB
открой HTML код в котором описывается количество кастов этого приёма - на порядок станет понятнее smile

согласен... что будет понятнее... но не на много smile

anahronik пишет:

Ладно.
Расшифрую таки всю строку:

...

Что-нить ещё объяснить?:)

*чешет репу*
пока нет... ибо все выше изложенное нужно еще обмозговать... smile

hyppo пишет:

Я тоже нифига не понимаю smile Не программист и не я автор.
Знаю только что это поиск на выходе которого будет значение цифры означающей колличество заданных эффектов на персонаже.

Про то, что эта чудо строчка вытаскивает заветную циферку эт я тоже сообразил smile
я сам не шибко шарю в яве... так во времена автодока и автокаста... кое в чем разобрался... но к регулярные выражениям(как я понимаю эт оно и есть) я всегда относился по принципу... "оно так, потому что оно так есть и по другому оно не работает"   big_smile

anahronik пишет:

как он в приёме самом выглядит:

/<br><span[^>]*>.(\d)?<\/span><\/div><img[^"]*".+\/krit_bloodlust\.gif">/i

вот (\d) - это цифра, которая означает, сколько раз наложен эффект krit_bloodlust.

чую придется устраивать мозговой штурм smile