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

Основной раздел => Общие вопросы => Topic started by: Ramzesia on November 19, 2020, 05:06:01 PM

Title: Поиск картинок
Post by: Ramzesia on November 19, 2020, 05:06:01 PM
Картинки находи все работает норм, но после того как найдет картинку, клики идут с лева на право и сверху вниз. Возможно ли сделать так что бы прокликивалось наоборот, с низу вверх и с права на лево?
Code: (clickermann) [Select]
FOR($Varr=1, $Varr < 30)
   GETSCREEN
   SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, STRCONCAT($Varr, ".bmp"), -1, 100)
   $scan_size = ARRSIZE($ARR_SCAN)
   FOR($ARR_NUM=0, $ARR_NUM < $scan_size, 2)
      $X = $ARR_SCAN[$ARR_NUM]
      $Y = $ARR_SCAN[$ARR_NUM+1]
      LCLICK($X + 3, $Y + 3)
      WAITMS(100)
   END_CYC
   UNDEFINE($ARR_SCAN)
   WAITMS(50)
END_CYC
Title: Re: Поиск картинок
Post by: Vint on November 20, 2020, 08:50:12 AM
Code: (clickermann) [Select]
FOR($Varr=1, $Varr < 30)
    GETSCREEN
    SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, STRCONCAT($Varr, ".bmp"))
    $scan_size = ARRSIZE($ARR_SCAN)
    FOR($ARR_NUM=$scan_size-2, $ARR_NUM >= 0, -2)
        $X = $ARR_SCAN[$ARR_NUM]
        $Y = $ARR_SCAN[$ARR_NUM+1]
        LCLICK($X + 3, $Y + 3)
        WAITMS(100)
    END_CYC
    UNDEFINE($ARR_SCAN)
    WAITMS(50)
END_CYC
Title: Re: Поиск картинок
Post by: Ramzesia on November 21, 2020, 12:31:27 PM
Спасибо большое, но это не совсем то что нужно, теперь он делает следующее, если одна из искомых картинок найдена больше чем 1, то он проликивает как я хотел с низу и на лево а вот если всего одна то кликает с верху на право. Я так понимаю нужно сам поиск картинки изменить, если он будет сканировать с низу в лево то и кликать будет так как нужно.
Title: Re: Поиск картинок
Post by: Ramzesia on November 21, 2020, 12:48:03 PM
А можно как то не кликать сразу по найденным картинкам, а записать все координаты найденных картинок и после поиска прокликать их все снизу в лево?
Title: Re: Поиск картинок
Post by: Vint on November 23, 2020, 09:15:40 AM
а вот если всего одна то кликает с верху на право.
Это сверх моего понимания. Как он может прокликивать, одну точку, не в том направлении. Какое направление у одной точки?

А можно как то не кликать сразу по найденным картинкам, а записать все координаты найденных картинок и после поиска прокликать их все снизу в лево?
Конечно можно. Ты до сих пор не понимаешь что делает каждая строка?

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

Что нужно? Поиск всех 29 картинок в одну кучу и прокликивание их всех справа-налево снизу-вверх?
Если да, то учти, что картинки теперь разные и вырезал ты их с разных мест по высоте. Найдёт образец на 1px выше  и не важно, что она в середине ряда, прокликает последней. Это устраивает? Если нет, как это будешь решать?
Title: Re: Поиск картинок
Post by: Ramzesia on November 23, 2020, 05:46:55 PM
Виноват прошу прощения, не правильно написал, мне нужно найти кучу картинок, и прокликать их в обратном направлении. Я понимаю что делает этот скрипт но не могу понять как он работает и не могу изменить его под мою ситуацию.
Я понимаю что если картинка одна и она ищется первой и находится наверху то получается она прокликается первой, потом найдется другая где то в конце и так далее. Мне надо найти все картинки, и прокликать их с низу вверх с права налево. Почему мне это надо, дело в том что если кликнуть первую картинку, она уйдет и все остальные сместятся на одну ячейку выше, получается следующее, нашел первую картинку клик по ней, пока она уйдет кликер находит вторую, но в момент клика второй ее уже нет там она сместилась на ячейку выше и клик происходит уже по соседней картинке. Выложу картинку для наглядности, задача есть 7 цветов от A до G найдено 9 цветов все по одному, цвет G 3шт надо прокликать так как я пронумеровал их.
(https://i.ibb.co/grYsHLn/111.png) (https://imgbb.com/)
Title: Re: Поиск картинок
Post by: Vint on November 24, 2020, 05:55:21 PM
Code: (clickermann) [Select]
SUB(sort_y) //==================================================================
    $len = ARRSIZE($corr)
    FOR($a=1, $a < ($len-2), 2)
        $min = $corr[$a]
        $ind = $a
        FOR($b=$a+2, $b < $len, 2)
            INC($iter)
            IF($corr[$b] < $min)
                $min = $corr[$b]
                $ind = $b
            END_IF
        END_CYC
        $X = $corr[$ind-1]
        $Y = $corr[$ind]
        //LOGWRITE("$min = ", $min, "   ", $X, " - ", $Y)
       
        $corr[$ind-1] = $corr[$a-1]
        $corr[$ind] = $corr[$a]
        $corr[$a-1] = $X
        $corr[$a] = $Y
        INC($rearrangement)
    END_CYC
END_SUB

SUB(sort_x, $st, $en) //========================================================
    //LOGWRITE("sort_x. $st/$en  ", $st, "/", $en)
    IF($st ! $en)
        FOR($a=$st, $a < $en, 2)
            $min = $corr[$a]
            $ind = $a
            FOR($b=$a+2, $b <= $en, 2)
                INC($iter)
                IF($corr[$b] < $min)
                    $min = $corr[$b]
                    $ind = $b
                END_IF
            END_CYC
            $X = $corr[$ind]
            $Y = $corr[$ind+1]
            //LOGWRITE("$min = ", $min, "   ", $X, " - ", $Y)
           
            $corr[$ind] = $corr[$a]
            $corr[$ind+1] = $corr[$a+1]
            $corr[$a] = $X
            $corr[$a+1] = $Y
            INC($rearrangement)
        END_CYC
    END_IF
END_SUB

SUB(sort_yx) //================================================================
    // сортируем по X, пары с одинаковым Y (с допуском limit_y)  len_equal_y
    $start = 0
    $end = 0
    $old = $corr[1]
    FOR($i=3, $i < $len, 2)
        INC($iter)
        IF(ABS($corr[$i] - $old) <= $limit_y)
            $old = $corr[$i]
            $end = $i - 1
        ELSE
            $old = $corr[$i]
            sort_x($start, $end)
            $start = $i - 1
            $end = $i - 1
        END_IF
    END_CYC
    sort_x($start, $end)
END_SUB

//==============================================================================


UNDEFINE($ARR_SCAN)
GETSCREEN
FOR($Varr=1, $Varr < 30)
    SCANPICTURE($corr, 0,0, $_xmax,$_ymax, STRCONCAT($Varr, ".bmp"))
    WAITMS(5)
END_CYC

$limit_y = 0  // допуск по y когда считаются в одном ряду
sort_y()
sort_yx()

$scan_size = ARRSIZE($corr)
FOR($ARR_NUM=$scan_size-2, $ARR_NUM >= 0, -2)
    $X = $corr[$ARR_NUM]
    $Y = $corr[$ARR_NUM+1]
    LCLICK($X + 3, $Y + 3)
    WAITMS(100)
END_CYC
Title: Re: Поиск картинок
Post by: Ramzesia on November 24, 2020, 10:37:56 PM
Просто шедеврально, я в восторге, идеально прям то что нужно, спасибо огромнейшее, еще и за 7 сек все делает.
Title: Re: Поиск картинок
Post by: Atas on November 25, 2020, 09:10:39 AM
Code: (clickermann) [Select]
FOR($a = 1, $a <= 7) // ищем 7 картинок
   
   GETSCREEN
   SCANPICTURE($arr, 667,416, 1249,718, STRCONCAT("bmp\", $a, ".bmp"), -1, 100) // указать свои координаты области поиска
   
   FOR($b = 0, $b < ARRSIZE($arr), 2)
      $x = STRCONCAT("000", $arr[$b])
      $y = STRCONCAT("000", $arr[$b+1])
      ARRPUSH($arr2, STRCONCAT(STRCUT($y, STRLEN($y)-3, 4), STRCUT($x, STRLEN($x)-3, 4)))
   END_CYC
   UNDEFINE($arr)
   WAITMS(30) // пауза после поиска каждой картинки
   
END_CYC

ARRSORT($arr2) // сортировка с учетом X и Y (в приоритете Y)

WHILE(ARRSIZE($arr2))
   $str = ARRPOP($arr2)
   LCLICK(STRCUT($str, 5, 8), STRCUT($str, 1, 4))
   WAITMS(300) // пауза между кликами
END_CYC

HALT

Title: Re: Поиск картинок
Post by: Vint on November 25, 2020, 10:30:49 AM

Прикольно. Раньше тоже строки любил. Жаль, что CM не нормальный и с массивами работает очень медленно, да и инструментов мало.
Код не делал, а достал свой старый из нафталина, тогда ещё небыло ARRSORT.

И беда в версии 4.14. Он при ARRSORT принудительно переводит в числа и выковыривать координаты тяжелее. Код нужно дорабатывать.

(https://i.ibb.co/JdWsRjP/2020-11-25-09-56-37.png) (https://imgbb.com/)

И разница во времени выполнения, это из-за сломанного принта в лог на 4.14.003b (на скрине ошибся, написал 002). Он каждый раз всё перерисовывает или в цикле выводит, ХЗ
https://youtu.be/tw93Q7NgvxY
Title: Re: Поиск картинок
Post by: Atas on November 25, 2020, 11:15:20 AM
Проверил сейчас свой скрипт на CM v4.14.000b x32 (19.03.2019) - нормально всё работает.
Других версий у себя не нашел. Но все равно они из будущего. :)
Title: Re: Поиск картинок
Post by: Vint on November 25, 2020, 11:18:03 AM
Почему будущего? Самое что ни на есть настоящее.
Title: Re: Поиск смысла
Post by: kiril on November 25, 2020, 01:45:33 PM
Я уже решил, что все эти мёртворождённые 4.14 -остались В ПРОШЛОМ.
Title: Re: Поиск картинок
Post by: shatun on March 11, 2022, 04:49:59 PM
Прошу прощения код от Atas у меня не работает, а если запускаю код который написал Vint всё чётко работает. Может что-то делаю не так...
Так или иначе большое вам спасибо. уже дней пять смотрю на форуме решение и ничего ближе к своей задаче пока не нашёл.
Уточняющий вопрос по этой теме - а можно настроить этот скрипт чтобы он работал с анимированными картинками?
Ну например разные монетки из разных цветов вращаются вокруг своей оси и опускаются вниз. Скрипт здорово работает именно по той логике которой описал автор топика, но у меня почему-то не получается чтобы он кликал по двигающимся вниз монеткам. Подскажите пожалуйста как доработать этот скрипт?
Я уже  пробовал менять   COLORMODE и размер окна в котором происходит поиск, но пока мои попытки не увенчались успехом.
Или кликермен не может искать анимированные (картинки в движении) и нажимать на них? Если вдруг кто нашёл похожее обсуждение оставьте пожалуйста ссылочку.
За ранее благодарю!
Title: Re: Поиск картинок
Post by: Oblie1968 on March 13, 2022, 03:04:12 AM
дело в том что если кликнуть первую картинку, она уйдет и все остальные сместятся на одну ячейку выше
Может, надо просто кликать по тому месту, где первая картинка, раз остальные смещаются на её место, и кликать по нему пока на этом первом месте есть эта картинка?  :D

Насчёт поиска анимаций. Можно, всё можно сделать, но нужно понимать, что кликерман работает с моментальным снимком экрана. Один из вариантов - разобрать анимацию по кадрам (мх будет не много) и искать все эти кадры отдельно, потом сводить найденное в общий массив и дальше по сценарию. Если вдруг у вас все монетки крутятся синхронно, то можно "фотографировать" экран, пока не встретится нужная картинка. Может, при кручении монет есть отдельные пиксели, которые не меняются, тогда можно для ускорения ориентироваться на эти пиксели, и если нужно, потом уже проверять, то ли вы нашли.
Я вообще стараюсь не пользоваться поиском картинок, обычно всегда можно выделить характерные для этой картинки пиксели и работать с ними, всё проходит намнооооооого быстрее.
Title: Re: Поиск картинок
Post by: shatun on March 13, 2022, 01:09:27 PM
Да, Вы правы.
Я уже пошёл по этому пути. Обработка при поиске пикселей действительно происходит намного быстрее в отличии от картинок. Закинул в SUB и вызываю его раз 30)))) пока не закончится игра (не прокликаются все монетки). Только со скоростью просмотра и нажатия на найденные пиксели ещё нужно поработать.
Code: [Select]
SUB(cocfff)
 GETSCREEN(526,371, 1375, 857)
  IF_PIXEL_IN(526,371, 1374, 856, 6542231)
      LCLICK($_return1, $_return2+30)
   END_IF
WAITMS(100)
 GETSCREEN(526,371, 1375, 857)
  IF_PIXEL_IN(526,371, 1374, 856, 1205465)
      LCLICK($_return1, $_return2+30)
   END_IF
WAITMS(100)
 GETSCREEN(526,371, 1375, 857)
  IF_PIXEL_IN(526,371, 1374, 856, 1263545)
      LCLICK($_return1, $_return2+60) // здесь спец. нажатие ниже т.к. появляется похожий объект с приближённым цветом по которому нельзя нажимать
   END_IF
WAITMS(100)
 GETSCREEN(526,371, 1375, 857)
  IF_PIXEL_IN(526,371, 1374, 856, 4564812)
      LCLICK($_return1, $_return2+30)
   END_IF
WAITMS(100)
END_SUB
Title: Re: Поиск картинок
Post by: Vint on March 13, 2022, 10:38:13 PM
Только со скоростью просмотра и нажатия на найденные пиксели ещё нужно поработать.

А зачем там столько вызовов GETSCREEN? И пауза должна быть после клика внутри условия, а не после него.
И если координаты одни, в IF_PIXEL_IN можно указывать несколько цветов через запятую. Сработает на первом найденном.

Примерно так
Code: (clickermann) [Select]
SUB(cocfff)
    GETSCREEN(526,371, 1375, 857)
    IF_PIXEL_IN(526,371, 1374, 856, 6542231, 1205465, 4564812)
        LCLICK($_return1, $_return2+30)
        WAITMS(100)
    END_IF   
    IF_PIXEL_IN(526,371, 1374, 856, 1263545)
        LCLICK($_return1, $_return2+60) // здесь спец. нажатие ниже т.к. появляется похожий объект с приближённым цветом по которому нельзя нажимать
        WAITMS(100)
    END_IF
END_SUB
Title: Re: Поиск картинок
Post by: shatun on March 14, 2022, 09:01:31 AM
Quote
А зачем там столько вызовов GETSCREEN?
я думал поскольку картинки динамические и постоянно меняют расположение нужно постоянно скринить экран и по новому скрину искать пиксели. Блин здорово если это не так. Это по сути должно ускорить работу скрипта.
Quote
И если координаты одни, в IF_PIXEL_IN можно указывать несколько цветов через запятую. Сработает на первом найденном.
у меня было много раз когда выпала одна монетка (например красная), а далее подряд сыпятся штуки 4 монетки (например зелёные)
Если кликер сразу не попал по красной картинке (такое тоже часто случается) она опустится ниже пока кликер будет жать все зелёные монетки ну и проигрыш.

Т.е. если алгоритм будет такой?:
- поиск красной
- клик по красной (промахнулся)
- поиск зелёной
- клик по зелёной
- поиск зелёной
- клик по зелёной
- поиск зелёной
- клик по зелёной
или он будет искать и жать на красную пока не нажмёт её?

Я вот уже думаю в сторону Вашего скрипта написанного выше, но для пикселей а не для картинок т.к. с анимацией он у меня не работает, но логика именно та - поиск с низу вверх как описывал автор топика.
Title: Re: Поиск картинок
Post by: Hito on March 14, 2022, 11:53:40 AM
Даю не большой лайфхак по скорейшему поиску динамических картинок. Плюс в том, что способ САМЫЙ быстрый, на который способен Clickermann, при максимальной точности совпадения картинок. Минуса два... Первый минус в том, что придется собирать базу картинок, но с этим справится сам Clickermann, а вот второй более весомый - координаты картинок должны быть статичны. И так - поехали...
Как пример, возьмем распознание локаций в той же fantastic fishing. Там в локациях название на фоне облаков, плюс смена погоды и времени суток и так далее и потому картинки получаются динамические.

(https://sun9-13.userapi.com/impf/01ouKxOV_a_9WfJxU5Q8kogGZb4JxMIlYFpn4w/0PucidhD4xs.jpg?size=1032x795&quality=95&sign=2ba3899b4d40c279ff9ae7ad5079fbf9&type=album)

Код скрипта будем использовать такой:

Code: (clickermann) [Select]
GETSCREEN (357,25, 642,39)
$count = PXLCRC (357,25, 642,39)

IF(FExists(STRCONCAT("скрины\локации"))=0)
   FCREATE (STRCONCAT("скрины\локации"))
END_IF

$loka = 0
GETDIRLIST ($arr, "скрины\локации\*")
IF(ARRSIZE($arr) > 0)
   FOR($i=0,$i<ARRSIZE($arr))
      IF(FEXISTS(STRCONCAT("скрины\локации\",$arr[$i],"\*.bmp")))
         $loka = 1
         LOGWRITE ($arr[$i])
         $i = ARRSIZE($arr)
      END_IF
   END_CYC
END_IF

IF($loka = 0)
   LOGWRITE ("Локация не распознана...")
   if (FExists(STRCONCAT("скрины\локации\",$count,".bmp"))=0)
      SCREENSHOTFIX(357,25, 642,39, STRCONCAT("скрины\локации\",$count,".bmp"), 0)
   end_if
END_IF




WAITMS(50)

Сначала запустим скрипт и дадим ему поработать круглые (игровые) сутки, чтоб день ночью сменился и наоборот. Потом в папке "локации", создадим папку с названием самой локации, скрины которой Clickermann собирал игровые сутки, и переместим в эту папку все скрины, которые Clickermann создал в папке  "локации". То же самое потом повторяем с другой локацией.
Думаю, что сам механизм сейчас вам уже понятен.

Это могут быть не локации, а какие-нибудь вращающиеся монеты и так далее. Обычно для анимации таких объектов используется всего несколько статичных картинок, быстро повторяющихся друг за другом.

Title: Re: Поиск картинок
Post by: Oblie1968 on March 14, 2022, 02:07:51 PM
Даю не большой лайфхак по скорейшему поиску динамических картинок.
Метод рабочий. Самосбор картинок и цветов пикселей использую постоянно.
Пара технических замечаний.
1. В моей версии кликермана функций FExists и FCREATE нет, но всё равно, какой смысл использовать STRCONCAT с одним аргументом?
2. IF на строке 10, мне кажется, лишний, цикл и так не будет выполняться, если ARRSIZE($arr)==0
   
Title: Re: Поиск картинок
Post by: Hito on March 14, 2022, 02:35:49 PM
1. В моей версии кликермана функций FExists и FCREATE нет, но всё равно, какой смысл использовать STRCONCAT с одним аргументом?

А я просто рассеянный чуток по жизни и часто прописываю SCREENSHOTFIX в несуществующую папку, а потом ловлю ошибки скрипта. А STRCONCAT с одним аргументом потому, что я его часто использую и если он нужен, то я всю строку копирую просто не далеко и вставляю туда, куда надо. Иными словами, причина такой глупости элементарная - лень.

2. IF на строке 10, мне кажется, лишний, цикл и так не будет выполняться, если ARRSIZE($arr)==0

У меня иногда бывают условия типа:

Code: (clickermann) [Select]
IF(ARRSIZE($arr) > 0)
   FOR($i=0,$i<ARRSIZE($arr))
      IF(FEXISTS(STRCONCAT("скрины\локации\",$arr[$i],"\*.bmp")))
         $loka = 1
         LOGWRITE ($arr[$i])
         $i = ARRSIZE($arr)
      END_IF
   END_CYC
else
   
END_IF

Вот и вставил по привычке. Не думаю, что привычка очень уж плохая...
Title: Re: Поиск картинок
Post by: Oblie1968 on March 14, 2022, 02:43:31 PM
1. В моей версии кликермана функций FExists и FCREATE нет, но всё равно, какой смысл использовать STRCONCAT с одним аргументом?
А я просто рассеянный чуток по жизни и часто прописываю SCREENSHOTFIX в несуществующую папку, а потом ловлю ошибки скрипта.
Я не про это, это понятно, я про STRCONCAT с одним аргументом.
Title: Re: Поиск картинок
Post by: Hito on March 14, 2022, 02:46:52 PM
Я не про это, это понятно, я про STRCONCAT с одним аргументом.
Я поправил ответ выше и сделал это раньше, чем увидел это сообщение. Сорри...
Title: Re: Поиск картинок
Post by: shatun on March 16, 2022, 08:08:04 AM
.... а вот второй более весомый - координаты картинок должны быть статичны.
т.е. если монета просто вращается вокруг оси то это ТОП по скорости поиска анимированных картинок, а если она вращается и двигается (вверх, вниз, вправо или влево) этот скрипт работать небудет?
Title: Re: Поиск картинок
Post by: Hito on March 16, 2022, 08:53:29 AM
.... а вот второй более весомый - координаты картинок должны быть статичны.
т.е. если монета просто вращается вокруг оси то это ТОП по скорости поиска анимированных картинок, а если она вращается и двигается (вверх, вниз, вправо или влево) этот скрипт работать небудет?
Нет - не будет, к сожалению. Ну... Если только координаты поиска в скрипте не будут плыть вслед за монеткой )) Хотя... Есть варианты... Сейчас опишу.
Title: Re: Поиск картинок
Post by: Hito on March 16, 2022, 09:51:46 AM
Объясню на таком примере...

(https://sun9-87.userapi.com/impf/J5VEhAIIyI4n2-GIpfJKvJ7gKRgkrOQHKJkDaw/umaksSTcysY.jpg?size=1032x795&quality=95&sign=caebe4a8768fcbe2c8f9f28cb3301171&type=album)

Ловить будем название выскочившей панели - "Клад халявный". Почему этот пример нам подходит...? Такие панели в игре всплывают разных размеров (названия панелей на разной высоте - зависит от количества информации внутри них) + названия у них могут быть разными. Мы не можем нашим способом вычислять и собирать базу картинок, изменяющихся и при этом с плавающими координатами, НО мы можем искать какие-нибудь не изменяющиеся картинки, тоже с плавающими координатами, но к координатам которых уже привязаны наши изменяющиеся картинки, которые нам нужны. Теперь понятна мысли?
Сначала ищем по всему экрану рамку, в которой находится сама надпись. (Для понимания ситуации, картинку увеличу)

(https://sun9-48.userapi.com/impf/_PpkzTz6t0H5G3Cy5K1D5Jmgl6QgzLy7HVnzpw/aXOHYP1q2Y0.jpg?size=1510x80&quality=95&sign=5150795ff349e431ef111c99cac59073&type=album)

 Но эту рамку, которую мы будем искать, мы слегка обработаем.

(https://sun9-19.userapi.com/impf/ixk-QsJ9WoX6TxMK1a0HKZi-Ee5nsZ_zrG0ltQ/eygHn5qsR8E.jpg?size=1510x40&quality=95&sign=749f86045dc26769a64457ae6646a029&type=album)

Закрасим места рамки, которые могут изменяться, черным цветом (я закрашиваю черным).
Далее наш скрипт:

Code: (clickermann) [Select]
GETSCREEN
COLORMODE (6)

IF_PICTURE_IN (0,0, $_xmax,$_ymax, "скрины\рамка.bmp", 0, 100)  // bgcolor отметим не -1, как обычно, а 0 - черный  (что за bgcolor в IF_PICTURE_IN - читаем в справке)
   
   LOGWRITE ("Найдена панель")
   
   IF(FExists(STRCONCAT("скрины\панели\заголовки"))=0)
      FCREATE (STRCONCAT("скрины\панели\заголовки"))
   END_IF
   
   $count = PXLCRC ($_return1+18,$_return2+2, $_return1+284,$_return2+13) // Подсчитываем хеш пикслей, для сравнения с базой, но уже отталкиваясь от координат, в которых найдена рамка
   // А дальше все по старой схеме
   $loka = 0
   GETDIRLIST ($arr, "скрины\панели\заголовки\*")
   IF(ARRSIZE($arr) > 0)
      FOR($i=0,$i<ARRSIZE($arr))
         IF(FEXISTS(STRCONCAT("скрины\панели\заголовки\",$arr[$i],"\*.bmp")))
            $loka = 1
            LOGWRITE ($arr[$i])
            $i = ARRSIZE($arr)
         END_IF
      END_CYC
   END_IF
   
   IF($loka = 0)
      LOGWRITE ("Заголовок панели не распознан...")
      if (FExists(STRCONCAT("скрины\панели\заголовки\",$count,".bmp"))=0)
         SCREENSHOTFIX(357,25, 642,39, STRCONCAT("скрины\панели\заголовки\",$count,".bmp"), 0)
      end_if
   END_IF
END_IF

WAITMS(50)
Title: Re: Поиск картинок
Post by: Hito on March 16, 2022, 11:17:16 AM
Вот, например, ситуация только что произошла ) У меня затилинькал мобильник, так как в группу в ВК пришло сообщение:

(https://sun9-85.userapi.com/impf/3yfD3yU62ewcipD38d6Q1_COHqCeuBUY5V5npA/8flGcO5yIXo.jpg?size=778x1600&quality=95&sign=35a84742cedfc7e0bd71dc2af6932d21&type=album)

А в игре ситуация:

(https://sun9-38.userapi.com/impf/lgNOm6nNA66kAdG9lKEnLgwacAArw_UArWRy2A/Ku1vhBn_Yf4.jpg?size=1032x795&quality=95&sign=921f87191c291f992e973a24adf0be97&type=album)

И скрипт сделал скрин:

(https://sun9-57.userapi.com/impf/jSd0u8Rt-S9OS8DVMGgRyS7v6kG5ZioesofDQw/o46rKct5JJ4.jpg?size=942x72&quality=95&sign=175459d95d3c0b484c5b56a386c79ea0&type=album)
Title: Re: Поиск картинок
Post by: Hito on March 16, 2022, 09:33:03 PM
Вот, кстати, еще пример... Я в БДО, при ловле рыбы, капчу выискивал вот такой сеткой. Там координаты капчи немного плавают.

(https://sun9-78.userapi.com/impf/HwDPqVrq4aIZ6VzWgwvODg9HJdvwk7rA23BuOg/lOX84oo3nBg.jpg?size=1113x174&quality=95&sign=6ea100415c570ae932eecddec815f5a8&type=album)

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