Author Topic: Помогите разобраться! Последовательный анализ наличия пикселя + анализ картинки.  (Read 11549 times)

0 Members and 1 Guest are viewing this topic.

GetHigh

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
Доброго времени суток, друзья!

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

Мне очень понравились возможности Clickermann. Автору, огромная благодарность.
Вот захотелось освоить её потихоньку.
Взял за основу одну браузерную игрушку, в которую играю пол-года. Написал скрипт, всё работает, ресурсы собираются, войска строятся, потом нападают на врагов, тырят ресурсы.
Но, за ночь нафармил, лишь такое количество ресурсов, которое можно за одно нападение сделать. Хорошо, хоть в минус не ушел.
А всё почему?  Да, потому что, нападаю я на кого попало: ПРИМЕР: (есть кнопка переключения на следующего врага) у него может быть и 1000 ресурсов, а у другого целых 150000 ресурсов.

Описание моей задачи.
1) Clickermann делает скрин определённой области экрана с этими вашими colormod(6) (и именно определенной, потому что вверху экрана такая же картинка с моими ресурсами)   ::)
2) Распознаёт (я так понимаю, нужно будет нарезать все циферки и т.д. и т.п. разжуйте пожалуйста) Или может настроить распознавание в файн ридере? То тогда нужно только скрипт на 3 пункт:
3) Если значение меньше 40000 (ресурсов), то не - нападать и щелкать в определенное место один раз и снова анализ определённой области,
если больше - то грабить корованы.



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

Вообщем хочу искать определенных врагов которые будут не старше 60 уровня, при этом будут иметь более 40000 ресурсов.

Заранее спасибо! Сильно надеюсь на вашу, помощь!
« Last Edit: March 20, 2014, 01:43:18 PM by GetHigh »

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
Re: Помогите разобраться!
« Reply #1 on: March 19, 2014, 05:27:10 PM »
Предлагаю плясать от количества цифр в числе ресурсов и длине строки .
если строка с количеством ресурсов не центрируется а выравнивается по левому краю то искать белый пиксель в области где появляется 5 цифра в ресурсах тобиш на 9999 ресурсов не нападет а на 10000 или 10001 уже нападет )


agclient не предлагаю изза его платности

GetHigh

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
Re: Помогите разобраться!
« Reply #2 on: March 19, 2014, 05:29:12 PM »
Предлагаю плясать от количества цифр в числе ресурсов и длине строки .
если строка с количеством ресурсов не центрируется а выравнивается по левому краю то искать белый пиксель в области где появляется 5 цифра в ресурсах тобиш на 9999 ресурсов не нападет а на 10000 или 10001 уже нападет )


agclient не предлагаю из-за его платности
Как вариант, спасибо!

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
только учитывай что шрифт не моноширинный как я вижу поэтому 11111 будет уже(от слова "узко") чем 00000

GetHigh

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
только учитывай что шрифт не моноширинный как я вижу поэтому 11111 будет уже(от слова "узко") чем 00000

Учту, поставлю подальше, есть большая вероятность нарваться на заброшенную базу, где много ресурсов больше 100000

GetHigh

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
Re: Помогите разобраться!
« Reply #5 on: March 20, 2014, 01:00:58 AM »
Предлагаю плясать от количества цифр в числе ресурсов и длине строки .
если строка с количеством ресурсов не центрируется а выравнивается по левому краю то искать белый пиксель в области где появляется 5 цифра в ресурсах тобиш на 9999 ресурсов не нападет а на 10000 или 10001 уже нападет )


agclient не предлагаю из-за его платности
Как вариант, спасибо!

РАБОТАЕТ!!!11

Причем выяснилось, что если игрок не состоит в клане, то его ресурсы смещаются вверх и не анализируются, это хорошо, т.к. у них частенько мало ресурсов)
« Last Edit: March 20, 2014, 01:02:54 AM by GetHigh »

GetHigh

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
Вопрос об анализе пикселя в заданном месте решён, теперь осталось ещё сделать связку с уровнем героя, для принятия верного решения. т.к. нападение на игрока выше 70 уровня не принесет большого количества ресурсов, защита базы на таком уровне слишком велика.
Жду ваших предложений как это сделать.

ЗАДАЧА:
Анализ пикселя в заданной точке (решен)
Анализ картинки с уровнем героя и определение его уровня.
Осуществлять нападение если пиксель будет найден в определенном месте при условии что уровень врага не выше  60.
Как сделать такую связку?
« Last Edit: March 20, 2014, 11:42:08 AM by GetHigh »

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
левую половину щита с первой цифрой лвла игрока(7*,8*,9*,10*,11*) и сравниваешь с ней если совпало не нападаешь )

GetHigh

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
левую половину щита с первой цифрой лвла игрока(7*,8*,9*,10*,11*) и сравниваешь с ней если совпало не нападаешь )
Идея, спасибо!
Вначале анализирую наличие пикселя, а потом уже уровень. Только я не разобрался как задать область поиска для сравнения маленькой картинки "половины щита"

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
if_picture_in(x1,y1,x2,y2, somepic.bmp, -1, nn%)
//совпало
//что нибудь делаем
else
// не совпало
end_if

GetHigh

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
if_picture_in(x1,y1,x2,y2, somepic.bmp, -1, nn%)
//совпало
//что нибудь делаем
else
// не совпало
end_if

Всё понятно, кроме -1, nn% за что отвечают?

GetHigh

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
if_picture_in(x1,y1,x2,y2, somepic.bmp, -1, nn%)
//совпало
//что нибудь делаем
else
// не совпало
end_if

getscreen
colormode (6)
if_pixel_in(864, 300, $_xmax, $_ymax, 14654614) //нашёл пиксель в определенной точке (у меня работало и причем отличные цели находило с нужным количеством ресов)
if_picture_in(x1,y1,x2,y2, 3.bmp, -1, nn%)  // игрок после 30 уровня
// нападаем, высаживаем войска, заканчиваем бой возвращаемся на базу
else
// Ищем другую цель
end_if   // конец условия
getscreen
colormode (6)
if_pixel_in(864, 300, $_xmax, $_ymax, 14654614)
if_picture_in(x1,y1,x2,y2, 4.bmp, -1, nn%)  // игрок после 40 уровня
// нападаем, высаживаем войска, заканчиваем бой возвращаемся на базу
else
// Ищем другую цель
end_if   // конец условия
getscreen
colormode (6)
if_pixel_in(864, 300, $_xmax, $_ymax, 14654614)
if_picture_in(x1,y1,x2,y2, 5.bmp, -1, nn%)  // игрок после 50 уровня
// нападаем, высаживаем войска, заканчиваем бой возвращаемся на базу
else   
// Ищем другую цель
end_if   // конец условия

Мудрить дальше не буду... как правильно сделать?
 
 
« Last Edit: March 20, 2014, 01:28:06 PM by GetHigh »

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
прочитай справку в кликермане там каждая команда расписана

GetHigh

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
прочитай справку в кликермане там каждая команда расписана

Прочитал:

getscreen
colormode (6)
if_pixel_in(864, 300, $_xmax, $_ymax, 14654614)  //нашёл пиксель в определенной точке (у меня работало и причем отличные цели находило с нужным количеством ресов)
if_picture_in(x1,y1,x2,y2, 3.bmp, -1, nn%) | (x1,y1,x2,y2, 4.bmp, -1, nn%) | if_picture_in(x1,y1,x2,y2, 5.bmp, -1, nn%) // игроки после 30,40,50 уровня
// нападаем, высаживаем войска, заканчиваем бой возвращаемся на базу
else
// Ищем другую цель
end_if   // конец условия

Теперь верно?
« Last Edit: March 20, 2014, 03:45:11 PM by GetHigh »

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
у тебя и до этого было правильно
if_picture_in(x1,y1,x2,y2, 5.bmp, -1, nn%)
-1 это цвет фона, в значении "-1" фон не задается

nn% это процент совпадения, искомой картинки

то есть при 50% он будет искать не точное соответствие а с отклонениями
при 1% может срабатывать практически на все подряд