Author Topic: Поиск картинки(ок) на экране и клик по ней(памагите)  (Read 2704 times)

0 Members and 1 Guest are viewing this topic.

sarkis95

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Помогите пожалуйста в написании скрипта
задача в том, чтобы на экране обнаружить бота, который "танцует"(немного дрыгает руками от чего одного скрина бота не достаточно для обнаружения) и кликнуть по нему, через шаблоны сделать не выходит, кликер долго думает и не находит, на форуме похожих скриптов не нашел, какую переменную вставить чтобы кликер искал "или одну или вторую или третью и т.д" фотографию бота тоже не нашел.
и если не трудно, подскажите какие переменные вставлять после "вайт 5 сек" для банального клика по определенным кординатам
заранее очень признателен!
« Last Edit: January 25, 2019, 07:10:36 PM by sarkis95 »

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Выложи полную картинку игрового окна с этим ботом
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»

sarkis95

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Выложи полную картинку игрового окна с этим ботом

скрин общий https://pastenow.ru/db481897ff921ee8052b439c655a3b03
и те, что код взятый по шаблону не находит

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Скорее всего через раз будет находить и не факт что бота  ;D

Code: (clickermann) [Select]
GETSCREEN
COLORMODE(5)
SCANPXL($array_scan, 0,0, $_xmax,$_ymax, 8339295)
$size = ARRSIZE($array_scan)
FOR($i = 0, $i < $size, 2)
   FOR($k = $i + 2, $k < $size, 2)
      $y =     $array_scan[$k+1] - $array_scan[$i+1]
      $x = ABS($array_scan[$k]   - $array_scan[$i])
      IF( ($y > - 1 & $y < 5) & ($x > 10 & $x < 50) )
         MOVE(ROUND( ($array_scan[$i] + $array_scan[$k]) / 2, 0), ROUND( ($array_scan[$i+1] + $array_scan[$k+1]) / 2, 0))
         $size = 0
      END_IF
   END_CYC
END_CYC

UNDEFINE($array_scan)

HALT
« Last Edit: January 25, 2019, 11:28:09 PM by Космич »
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
А с чего он найдет эти картинки если фон все время меняется. Плюс эффекты сглаживания плюс возможная частичная прозрачность этих роботов.

Искать надо уникальный цвет робота,

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
а я и имел ввиду цвет, хотя мона еще попробовать с разложением на RGB цвета, но это будет еще дольше)
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»

sarkis95

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Скорее всего через раз будет находить и не факт что бота  ;D

Code: (clickermann) [Select]
GETSCREEN
COLORMODE(5)
SCANPXL($array_scan, 0,0, $_xmax,$_ymax, 8339295)
$size = ARRSIZE($array_scan)
FOR($i = 0, $i < $size, 2)
   FOR($k = $i + 2, $k < $size, 2)
      $y = $array_scan[$k+1] - $array_scan[$i+1]
      $dist = DIST($array_scan[$i], $array_scan[$i+1], $array_scan[$k], $array_scan[$k+1])
      IF( ($y > -1 & $y < 10) & ($dist > 5 & $dist < 40)  )
         $x = ROUND( ($array_scan[$i]   + $array_scan[$k])   / 2, 0)
         $y = ROUND( ($array_scan[$i+1] + $array_scan[$k+1]) / 2, 0)
         MOVE($x, $y)
         $size = 0
      END_IF
   END_CYC
END_CYC

UNDEFINE($array_scan)

HALT

большое спасибо! буду пытаться дополнить)

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Я уже изменил, там дистанция между пикселями излишне
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»