Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: maxempolk on June 25, 2017, 09:00:30 PM

Title: Поиск постоянно меняющегося объекта на экране.
Post by: maxempolk on June 25, 2017, 09:00:30 PM
Уже второй день немогу догадаться ...
Есть игра , в игре есть герой , он постоянно двигается , но куда бы он не пошёл над ним всегда будет полоска жизней. Скрипт должен найти эту полоску (которая постоянно может менятся в зависимости от количевства его жизней). И по количевству пикселей в полоске узнать количевство жизней . Есть подтверждённая инфа что 1 кубик в шкале жизней это 200 хп , нужно что бы искало 2 или меньше кубика хп . Картинка героя и его шкалы жизней во "Вложке".Причём это ещё не всё  ;D будет 5 вариантов . И в каждом будет снимать разное количевство хп . Зарание спасибо за ответ .
Title: Re: Поиск постоянно меняющегося объекта на экране.
Post by: Oraven on June 26, 2017, 08:48:49 AM
Сначала нужно найти героя. Сделать это можно по имени. Я искал первую букву M.
Далее относительно координат буквы M начинаем считать пикселы в зоне под буквой M
Картинку "M.bmp" я сделал в COLORMODE 6 закрасив в ней несколько пикселей зеленым и указал этот цвет как прозрачность в функции 65280. Процент поиска поставил 90% потому что в одном случаи Mi в другом Mo картинки немного разные но так находит обе.

Цвет полоски взят в COLORMODE 7 так она становится полностью однородной.

Вот написал по твоим картинкам.
Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "M.bmp", 65280, 90)
   //   MOVE($_return1, $_return2) // Это для теста поиска героя
   //   WAITMS(100)
   COLORMODE(7)
   $life = PXLCOUNT($_return1-2, $_return2+10, $_return1+55, $_return2+18, 8355839) // считаем количество пикселей
   LOGWRITE ("Жизней: ", $life)
   IF($life < 60) // если меньше 60
      HINTPOPUP("Мало жизней", "Внимание!")
   END_IF
   
END_IF

HALT

В итоге смотрим лог полученный с двух картинок:
Code: [Select]
9:38:23 Жизней: 60
9:38:43 Жизней: 135
Title: Re: Поиск постоянно меняющегося объекта на экране.
Post by: maxempolk on June 26, 2017, 10:35:20 PM
Администратор у каждого героя разный ник , и отпределить это не как нельзя .
Title: Re: Поиск постоянно меняющегося объекта на экране.
Post by: Qwerry on June 27, 2017, 07:02:15 PM
Нескромный вопрос, так речь про героя -вашего персонажа- о жизнях которого нам надо узнать или же есть куча мобов рядом с героем, жизни которых надо проанализиновать, чтобы найти среди них самого слабого?
Или правильный вариант- это то, что у вас в подчинении куча героев, причем с рандомными именами, слабейшему из которых что-то там надо (пару других менее вероятных вариантов - пока не рассматриваю).

И как вы планируете отличать полоски жизней своего персонажа от полосок жизней других мобов или игроков? Или надо анализировать все красные полоски, которые видно (во втором случае - зачем написано "в игре есть герой", будто бы он один и должен быть выделен среди остальных)?

Пожалуйста, постарайтесь объясняться максимально точно, чтоб не допускать НИКАКИХ разночтений ::) Ведь если вам кажется, что всё понятно, это не значит, что людям незнакомым с игрой действительно будет ясно, что именно нарисовано на вашем экране и что скрипту надо делать.  И в итоге эти люди  могут потратить свое время и силы абсолютно впустую :(