26

Re: Вопросы от Andy_SPB

разбираю плагин ГГ.
Что бы не засорять рабочий топ, решил спросить тут

var question = $("a[href*='move_dialog']",get_mainframe().document).first().parent()[0].innerText.match(/Проверка знаний!\s*(.*)\?/)[1];
var picture = $("a[href*='move_dialog']",get_mainframe().document).first().parent().find("img[src*='http://img.combats.com/i/chars']").attr("Src");
if(picture) picture = picture.substring(picture.lastIndexOf('/')+1); // оставляем только имя файла
question = picture ? question + "picture" : question;

что то смущает строка, а именно кавычки

question = picture ? question + "picture" : question;

в случае наличия картинки в вопросе перемененная question будет иметь значение:

Кто это?picture

а оп идее должно иметь(например):

Кто это?1260_zxclvrr

тогда код должен быть вроде такой

question = picture ? question + picture : question;

Или я уже загоняюсь smile

Отредактировано Andy_SPB (2015-08-31 23:22:32)

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

27

Re: Вопросы от Andy_SPB

уж лучше в рабочий топ smile
писал...недосмотрел...естественно не текст а переменная имелась ввиду там

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

28

Re: Вопросы от Andy_SPB

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

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

29

Re: Вопросы от Andy_SPB

top.Battle.oBattle.arrButtons["change_enemy"]
Software is like sex: it's better when it's free! © LinusTorvalds

30

Re: Вопросы от Andy_SPB

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

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

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

Отредактировано Andy_SPB (2015-09-06 00:55:56)

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

31

Re: Вопросы от Andy_SPB

1. Идея дееспособная. Главное не наглей и не выгружай напрямую информацию по списку противников в начале боя через фоновые запросы - могут не понять юмора и забанить за наглость smile
2. По производительности сказать трудно - это получается фигова туча запомненных противников (если базу вести не на 1 бой)...с другой стороны, если оператива позволяет, то нормально.
3. Ты хочешь, чтобы сохранялись или наоборот? По умолчанию - будет сохраняться до перезапуска бота.

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

32

Re: Вопросы от Andy_SPB

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

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

33

Re: Вопросы от Andy_SPB

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

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

34

Re: Вопросы от Andy_SPB

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

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

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

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

35

Re: Вопросы от Andy_SPB

Andy_SPB пишет:

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

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

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

Я многое в боте не могу сделать, что в фф с лёгкостью..)
P.s. Не помог - так апнул))

Йа нуб!!!

Шарите в js? Уверены?) Тогда загляните (Please log in or register to see this URL), может вы ошибаетесь в своих силах smile

36

Re: Вопросы от Andy_SPB

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> тегов.

Как то так...

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

37

Re: Вопросы от Andy_SPB

Andy_SPB пишет:

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> тегов.

Как то так...

Учитывай, что лог имеет свойство чиститься) т.е. через определённое количество разменов(пусть будет 30 --- цифра из головы), у тебя всё время разделителей будет 29. Так что надо будет каждые 25 разменов, допустим, чистить свой лог.. Но тут встаёт вопрос лагов.. на 1-5 разменов(количество ботов, которые могут мгновенно ответить) может ошибаться такой подсчёт...

Отредактировано LEONxz (2015-09-08 00:47:37)

Йа нуб!!!

Шарите в js? Уверены?) Тогда загляните (Please log in or register to see this URL), может вы ошибаетесь в своих силах smile

38

Re: Вопросы от Andy_SPB

LEONxz, хм....

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

39

Re: Вопросы от Andy_SPB

Если играть магом, то можно считать ходы путем считывания с верхнего фрейма надписи Успешно использован прием "Атакующий прием, тратящий ход". При таком раскладе будут "вылетать" только ходы, в которых перс шокнут/парализован.
Что, много конечно...

Не стоит ездить быстрей, чем летает твой ангел-хранитель

40

Re: Вопросы от Andy_SPB

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

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

41

Re: Вопросы от Andy_SPB

я вообще не вкуриваю в чем проблема... бот - костыль? combats -> бот -> плагин -> бот -> combats  big_smile

42

Re: Вопросы от Andy_SPB

перепись бк в 2010 вроде делал...толи 17 с хвостиком... тысяч персов получилось...сложил всех в базу... и еще icq повыдергивал из профиля.... потом их тролил icq ботом...

43

Re: Вопросы от Andy_SPB

есть еще 1 вариант:
через задержку сбора тактик smile
первым разменом юзать, а дальше парсить по фразе...

Задержка: 100 (еще 90)

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

44

Re: Вопросы от Andy_SPB

Приветствую всех!
Подскажите хороший учебник(справочник/статьи) на русском по AJAX.
Попросили решить одну задачку(для сторонней игрушки), но чую без AJAX не решить... а я в нем 0 smile
Неделю сижу читаю все что нашел в гугле... что то вообще все мимо (в основном одно и тоже, и совсем уж общее представление) smile

З.Ы. Я хоть в правильном направлении роюсь...
Суть вот в чем... есть интерфейс при клике на кнопку в броузере без перезагрузке открывает меню (просто добавляется HTML код в исходную страницу).
На ней есть данные, которые надо обработать...
при открытии менюхи меняет url страницы...
был

...../#/page:village/villId:57734895


стал

...../#/page:village/villId:57734895/tab:Crop/window:productionOverview

+ прямой переход по ссылке открывает страницу с меню
Соответственно задумка получить HTML код по url в фоновом режиме и дальше уже обработать.
Вроде как AJAX это может?

Заранее спасибо, за просвещение smile

Отредактировано Andy_SPB (2016-04-16 13:27:23)

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

45

Re: Вопросы от Andy_SPB

(Please log in or register to see this URL)
(Please log in or register to see this URL) - не русский, но вполне понятный, и не только по ajax

46

Re: Вопросы от Andy_SPB

БатоВед пишет:

(Please log in or register to see this URL)
(Please log in or register to see this URL) - не русский, но вполне понятный, и не только по ajax

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

Может ошибка в "исходниках":)
Суть вот какая.
Через Firebug в ручную выбрал нужные запросы.
Собственно вот что выдает FB  в консоли.

POST http://ks3-ru.travian.com/api/?c=player&a=getAll&t1464546535983

Параметры запроса в FB:

SPOILER Show

a    getAll
c    player
t1464546535983

   
Параметры самого POST запроса в FB
SPOILER Show

JSON
            action     "getAll"
            controller     "player"
            params    Object {}
            session    "d5151dc23969d8504cf4"
 
Исходный код
{"controller":"player","action":"getAll","params":{},"session":"d5151dc23969d8504cf4"}

Все переменные так или иначе вытащил. (сессию из куки, t1464546535983 - это getTime()).
Но вот как я не пытался организовать запрос.. все мимо.
Посылаю запрос:

jQuery.post(fullurl,{"controller":"player","action":"getAll","params":{},"session": ArraySys[0]},function(data){ console.info("ответ = "+data); });

Получаю ответ:

{"error":{"type":"ClientException","number":0,"message":"Authentication failed"},"response":[]}

Похоже POST запрос не правильно формирую.
В FB выдает мне мой запрос:

SPOILER Show

Параметры application/x-www-form-urlencoded    
action    getAll
controller    player
session    6f7081eaef43331ae9b1
 
Исходный код
controller=player&action=getAll&session=6f7081eaef43331ae9b1


может подскажите чего? А то всю башку сломал smile

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).