51

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

abdul , попробуй отдельным плагином... должно работать, если ни где не ошибся.

SPOILER Show

// Заплатка Лича
// Возврта из ЗВ в ЦП/ЦГ/и т.д.
// Возврат от лича должен быть выставлен в настрйоках бота в ЗВ
 
 
function ComeBackLich(enabled){
    if(enabled){
      PluginsOnLoad["ComeBackLich"] = "ComeBackAction";
    }else{
      PluginsOnLoad["ComeBackLich"] = "";
    }
}
 
 
function ComeBackAction(){
  if(external.dungeonEnabled && !external.inBattle && external.Started()){
    if(external.room_name == 'Зал воинов' && top.frames[external.mainFrameIndex].check_access()){
       external.ClickLink('(?:Центральная грибница|Центральная Площадь|Центр падения|Центральный утес|Центральная Поляна|Дворцовая площадь|Центральный Разлом|Центральный Оазис)',1);
    }
  }
}

52

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

Гиря, ну это тоже временная заплатка smile

53

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

LEONxz, хм....

54

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

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

55

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

LEONxz пишет:

Немного не так.. Если плагин второй раз натыкается на вещь, которая уже была отмечена - он снимает галки).

возможно, сильно не разбирался smile

56

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

LEONxz,
пытаюсь реализовать подсчет ходов (разменов).
Пошарив во вкладке "Мой лог" нашел там разделитель между разменами в виде:

<div style="background: rgb(176, 176, 176) none repeat scroll 0% 0%; height: 1px; overflow: hidden;">
<img width="1" height="1">
</div>

Если их считать, то можно легко определить какой сейчас размен.
Вот и думал дернуть HTML код и в нем уже вести подсчет <img> тегов.

Как то так...

57

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

Каблук,
Да там... в коде кнопки будет видно слово в кавычках.
Надо отдельным плагином вешать.

Суть такая..
при каждом обновлении фрейма надо проверять наличие литейщика на экране... и если литейщик есть.. то нападать на него, если нет то плагин не будет отрабатывать код и бот по маршруту будет идти дальше.
Если прописывать в маршруте, то надо в каждую клетку вставлять, так как бот бродячий и может в любой клетке вас настигнуть smile

Есть у данного способа один минус, гипотетически если бот впереди от вас на расстоянии 2х клеток, то на экране он будет виден, но напасть на него вы не сможете. Возможно зацикливание кода, но надо проверять.

Кривое решение, но за неимением другого думаю пойдет smile

58

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

Каблук

// АААА - меняем на точное название Литейщика
  // ББББ - меняем на идентификатор ссылки "напасять"

менял?
скажи на что менял?

59

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

ну потестите еще... если что будем думать smile

60

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

рандомно ходит или фиксированое местоположение?

Если рандомно, то решается плагином

SPOILER Show

function killBill(enabled){
    if(enabled){
      PluginsOnLoad["killBill"] = "Ahtung";
    }else{
      PluginsOnLoad["killBill"] = "";
    }
}
 
function Ahtung(){
  // АААА - меняем на точное название Литейщика
  // ББББ - меняем на идентификатор ссылки "напасять"
  if(get_mainframe().document.indexOf("AAAA") >-1 ){
     $('area[title="AAAA"]',get_mainframe().document).each(function() {  this.click(); $('a[onclick*="ББББ"]',get_mainframe().document).each(function(){this.click()})})
  }
}


Если фиксированное место положение то как и все действия с ботами
SPOILER Show

$('area[title="AAAA"]',get_mainframe().document).each(function() {  this.click(); $('a[onclick*="ББББ"]',get_mainframe().document).each(function(){this.click()})})

Должно работать, но идентификаторы сами поправьте.

61

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

кнопка напасть есть?

62

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

что то тут не так smile

top.Chat.Self.oTab.arrTabs.mylog.oFrame

четко вижу через консоль FireBug (FF), что через innerHTML можно дернуть полный код моего лога боя...
но дернуть ни как не могу. Бот не видит и все тут.
Может быть косяк в FF?

63

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

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

64

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

Если известен кусок ника, то можно попробовать так:

var targetList = {
  "Паразит",
  "Рогонос",
  "моль"
};
 
for (var targetName in targetList){
  if(top.Battle.oBattle.sEnemyLogin.indexOf(targetName) > -1){
   // прием
   break;
  }
}

Этот вариант тоже, должен работать:

if(top.Battle.oBattle.sEnemyLogin.indexOf("Паразит") > -1 || top.Battle.oBattle.sEnemyLogin.indexOf("Рогонос") > -1 || top.Battle.oBattle.sEnemyLogin.indexOf("моль") > -1 ){
   // прием
  }

65

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

anahronik,
1. понял.
2. база только на текущий бой, не вижу смысла делать перепись БК smile  (ОЗУ 10 Gb)
3. Наоборот хочу каждый бой с чистого листа... но пока не сообразил как обнулять. Думал через привязку по урон (начало боя 0 урона), но не стабильная отметка (иногда бывает и в конце боя 0 урона  big_smile  )

66

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

waal, не исключаю... могу ошибаться smile
Насколько я знаю дроп из пещер уже неактуален в принципе.
После массового введения екро-шоток даже гос шмот за креды потерял ценность.
Экономика в принципе умерла...
Реальный расклад на сегодняшний день таков, что ботоводы шастающие по пещерам просто обивают ремонт шмота.
Почти у все нынешних игроков есть персы 10+ лвл и почти все пещеры вырыты...
Приход новых игроков минимален, т.к. БК морально устарел и у нового поколения геймеров другие требования и желания.

Для меня БК = Бот... и не ради фарма и регалий в качестве картинок в инфе, а дабы решать логические задачи через JS (мозг не должен сохнуть)
Я с 2002 по самое небалуйся на тыкался в кружочки...

Что касается

в боях качайтесь хоть до посинения

Хм.. мясо в хаотах нужно... а мясу отбить затраты в пещере нельзя?
Не справедливо как то smile

Что касается ГоГо как капчи, я вообще думаю это домыслы.
Скорее всего эвент бот и все.

67

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

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

68

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

foox84, вопросы на которых у vad802 идет зависание в базе есть...
так что тут просто сбой плагина

придумать условие при котором если попадается незнакомый вопрос - то ответ, к примеру 2
если неверный ответ - появляется второй вопрос - который уже может быть в списке плагинов

в этой версии реализован учет неизвестных вопросов:
()
но формирование БД сложновато, да и тестить плагин надо...
начал в рундучную известные вопросы/ответ заносить в БД... но времени нет smile

69

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

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

Суть такая берем за фильтр отлов статов(классов) соперника на против, для примера

if(Intell > 30) // как бы маг

Далее просто загоняем все ники подходящие по фильтру

if (typeof(targetList) == "undefined") { var targetList = {}; } // заполняемый массив
var AddName; // ключ для добавления в массив
 
if(Intell > 30){
  AddName = 0; // обнулили ключ
  var targetName = top.Battle.oBattle.sEnemyLogin; //цепанули логин текущего соперника
// перебор массива с никами
  for(var tmpName in targetList){
    if(tmpName == targetName){ // ловим совпадения
      AddName = 1; // если совпало, значит соперник уже нами отмечен
    }
  }
  if(AddName == 0){
    // если ноль, значит выше совпадения не было, нужно добавить товарища в список
      targetList.push('"'+targetName+'"'); // добавили
  }   
}

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

// собрали массив ников соперников
var enemies = top.Battle.oBattle.oGroupsLayer.getElementsByTagName("IMG")[1].sList.split(", ");
var changTarget = 1; // ключ на смену
// перебираем список с целями
for (var targetTMP in targetList){
  // сравниваем ники из массива с текущим соперником
  if(top.Battle.oBattle.sEnemyLogin.indexOf(targetTMP) > -1){
    changTarget = 0; // ключ меняем на 0, смена не нужна соперник из списка перед нами
  }
}
// осуществляем смену
if (changTarget == 1){ // ключ = 1 - перед нами соперник не из нашего списка
  for (var targetTMP in targetList){ // перебираем список с целями
    for(i=0; i<enemies.length; i++){ // перебираем массив ников из команды соперников
      if(enemies[i].indexOf(targetTMP) > -1){ // сравниваем совпадение инков из команды и списка
        // осуществляем смену, в случае совпадения
        _target = enemies[i];
        top.Battle.oBattle.Send({ skip: _target });
      }
    } 
  }
}

Тем самым получается что всегда будем выходить на нужных нам соперников.
Например выцепили мага с ником "Вася", "Боец (14)"... записали его в список целей и меняемся на него, если при разменах появился маг "Коля", тоже заносим его в наш список целей...
И дальше уже сравнивая текущий состав команды с нашим списком меняемся на нужного нам соперника...

Собственно теперь вопросы:
1. Дееспособная идея?
2. Как будет подгружать бота (сильно упадет скорость размена)?
3. Будет ли сохраняться массив с нашим списком между боями (надо его обнулять пи окончании боя)?

Сейчас пользуюсь чем то похожим в пещере со списком приоритетных ботов (но там фиксированные имена, там проще).

Забыл добавить... это будет как бы прием smile

70

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

есть подозрение, что привязывать плагин с таким большим количеством кода не самый лучший вариант... Может просто проскакивать код JS быстрее загрузки страницы, возможно подвисание бота и т.д.
Лучше через таймер привязку делать. Тогда есть шанс, что в случае сбоя(пропуска вопроса/ответа) при следующем вызове таймером функции плагина... будет подхватываться нужный кусок кода...
А так выходит следующее...
Страница прогрузилась, глюканул код/бот/БК... скрипт думает что клик прошел, а следующего обновления фрейма нет, т.к. клик не прошел...

З,Ы. мои соображения на этот счет...  могу ошибаться smile

71

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

Каблук в боте есть функция кормления. См. настройки

72

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

как выцепить наличие кнопки сменить?
что то не как не могу определить наличие смены sad

"Ледяное сердце", если "Острая грань[12]" , "Оледенение[12]" и  "Ядовитое облако[12]" не доступны:

if ((!top.Battle.oBattle.arrMethods["wis_water_strike"].oMethod.bEnable) && 
(!top.Battle.oBattle.arrMethods["wis_water_frost12"].oMethod.bEnable) &&
(!top.Battle.oBattle.arrMethods["wis_water_cloud12"].oMethod.bEnable))
_name = "wis_water_hiddenpower";

Оно?

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

Я вообще не секу в магах smile
Если только земля 8 лвл 2010 года выпуска )

75

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

gizmo пишет:

А как надо назвать плагин а то у меня не работает может из за этого

плагин всегда называется так же как и "главная"(первая) функция

function GoGo(enabled) {
    if (enabled)
        PluginsOnLoad["GoGo"] = "GoGoAct";
    else
        PluginsOnLoad["GoGo"] = "";
}