Author Topic: Скрипт не может прочитать фото  (Read 2251 times)

0 Members and 1 Guest are viewing this topic.

Treyvin

  • Зашел в гости
  • *
  • Posts: 11
  • Front-end
    • View Profile
Скрипт не может прочитать фото
« on: January 19, 2018, 05:58:44 AM »
Привет, можете помочь?

Суть скрипта в том что бы нажимать по заданному пикселю, далее открывается страница, и на ней ищем иконку Лайка, нашли кликнули вышли, обновили страницу и по циклу.

Смотря логи, у меня почему то не видет иконки лайка хотя она попадает в область и прям перед носом даже листать не надо, но по принтам уходит в место
Code: (clickermann) [Select]
print("Не Вижу лайк - Кручу колесо")
Code: (clickermann) [Select]
$button_blue = 15832619
$button_green = 4893514

GETSCREEN
IF_PIXEL_IN(1727,261,1858,319, $button_blue)
   LCLICK($_return1, $_return2)
   WAIT(3)
END_IF

IF($time < $_time_t)
   $count = 0
   print($count)
   $time = $_time_t + 30 // Выделяемое время в секундах
END_IF

IF($count < 1) // Количество лайков
   GETSCREEN
   WAIT(30)
   print("Получаю Скрин фотографии")
   IF_PICTURE_IN(472,227,1456,964, "like.bmp")
    print("Вижу лайк - Лайкаю")
      MOVE($_return1, $_return2)
      WAIT(3)
      LCLICK($_return1, $_return2)
      MOVE(1200,600)
      WAITMS(2000)
   Else
LCLICK(1122,244)
      print("Не Вижу лайк - Кручу колесо")
      WHEELDOWN(2)
      WAIT(3)
   END_IF
END_IF
 

Помогите пожалуйста советом, или какие функции лучше использовать для данной задачи. Спасибо.
Начинаю что то понимать
LOADING . . .

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Скрипт не может прочитать фото
« Reply #1 on: January 19, 2018, 08:17:27 AM »
Странный скрипт. Особенно странно делать снимок а потом ждать аж 30 секунд прежде чем сделать анализ.
На счет "не видит лайка", используй цветокоррекцию и процент совпадения. В системах выше XP используется сглаживание которое при каждом открытии окна немного по другому смазывает пиксели. Поэтому твоя картинка не совпадает.

Code: (clickermann) [Select]
$button_blue = 15832619
$button_green = 4893514

GETSCREEN
IF_PIXEL_IN(1727,261,1858,319, $button_blue)
   LCLICK($_return1, $_return2)
   WAIT(3)
END_IF

$time = $_time_t + 30 // таймер на 30 секунд
WHILE($time > $_time_t) // цикл крутит код 30 секунд
   GETSCREEN
   IF_PICTURE_IN(472,227,1456,964, "like.bmp", -1, 100) // поиск со 100% совпадением
      $time = 0 // если найдено обнуляем значение таймера и цикл прекратит повторяться.
      print("Вижу лайк - Лайкаю")
      MOVE($_return1, $_return2)
      WAITMS(50)
      LCLICK($_return1, $_return2)
      WAITMS(50)
      MOVE(1200,600)
      WAIT(2)
   ELSE
      LCLICK(1122,244)
      WAITMS(50)
      print("Не Вижу лайк - Кручу колесо")
      WHEELDOWN(2)
      WAITMS(500)
   END_IF
END_CYC
« Last Edit: January 19, 2018, 08:24:35 AM by Oraven »

Treyvin

  • Зашел в гости
  • *
  • Posts: 11
  • Front-end
    • View Profile
Re: Скрипт не может прочитать фото
« Reply #2 on: January 19, 2018, 03:12:29 PM »
Странный скрипт. Особенно странно делать снимок а потом ждать аж 30 секунд прежде чем сделать анализ.

я просто пытался заставить увидеть его. думал getscreen сделал скрин, и надо время на анализ прежде чем рассмотреть снимок. По началу делея не было.
Спасибо за ответ)) , а так в целом какие функции лучше использовать при данных задачах? я понимаю у меня код очень примитивный + еще много проверок не доделано.
Начинаю что то понимать
LOADING . . .

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Скрипт не может прочитать фото
« Reply #3 on: January 19, 2018, 06:30:22 PM »
На какой анализ? Анализом у нас занимается как раз IF_PICTURE_IN.
GETSCREEN делает снимок. Выполнение пойдет дальше только после отработки функции. Поэтому никаких задержек между GETSCREEN и последующими функциями ставить не нужно.

Я не очень представляю что ты там делаешь. Если это очередной скрипт для автолайков тогда тебе нужно писать цикл поиска лайка.

Code: (clickermann) [Select]
$time = $_time_t + 10 // таймер на 10 секунд
WHILE($time > $_time_t) // цикл крутит код 10 секунд
   GETSCREEN
   IF_PICTURE_IN(472,227,1456,964, "like.bmp", -1, 100) // поиск со 100% совпадением
      $time = 0 // если найдено обнуляем значение таймера и цикл прекратит повторяться.
      print("Вижу лайк - Лайкаю")
      MOVE($_return1, $_return2)
      WAITMS(50)
      LCLICK($_return1, $_return2)
      WAITMS(50)
      MOVE(1200,600)
      WAIT(1)
   ELSE  // Если не найдено крутим страницу ниже и снова ищем
      WHEELDOWN(2)
      WAITMS(500)
   END_IF
END_CYC

// После цикла пишем другие команды.



Treyvin

  • Зашел в гости
  • *
  • Posts: 11
  • Front-end
    • View Profile
Re: Скрипт не может прочитать фото
« Reply #4 on: January 19, 2018, 06:47:59 PM »
На какой анализ? Анализом у нас занимается как раз IF_PICTURE_IN.
GETSCREEN делает снимок. Выполнение пойдет дальше только после отработки функции. Поэтому никаких задержек между GETSCREEN и последующими функциями ставить не нужно.

Я не очень представляю что ты там делаешь. Если это очередной скрипт для автолайков тогда тебе нужно писать цикл поиска лайка.

Code: (clickermann) [Select]
$time = $_time_t + 10 // таймер на 10 секунд
WHILE($time > $_time_t) // цикл крутит код 10 секунд
   GETSCREEN
   IF_PICTURE_IN(472,227,1456,964, "like.bmp", -1, 100) // поиск со 100% совпадением
      $time = 0 // если найдено обнуляем значение таймера и цикл прекратит повторяться.
      print("Вижу лайк - Лайкаю")
      MOVE($_return1, $_return2)
      WAITMS(50)
      LCLICK($_return1, $_return2)
      WAITMS(50)
      MOVE(1200,600)
      WAIT(1)
   ELSE  // Если не найдено крутим страницу ниже и снова ищем
      WHEELDOWN(2)
      WAITMS(500)
   END_IF
END_CYC

// После цикла пишем другие команды.


Да спасибо огромное) Да пишу скрипт для авто лайков ( для биржи лайков )
В данный момент получился вот такой скрипт

Code: (clickermann) [Select]
$button_blue = 15832619
$button_green = 4893514
$button_complite = "done.bmp"


begin:

//Если фотография то Скрыть
GETSCREEN
IF_PICTURE_IN(271,231,1879,347, "photo.bmp", -1, 100)
print("Попалась Фотография")
//Жму СКРЫТЬ
print("Нажимаю Скрыть")
WAIT(2)
MOVE(419,305)
WAITMS(100)
LCLICK(419,305)

print("Нажимаю на синию кнопку для излечения")
WAIT(2)
MOVE(1799,288)
WAITMS(100)
LCLICK(1799,288)
WAIT(3)

KEYPRESS(#F5)
   WAIT(3)
   print("Иду в начало")
   GOTO(begin)
END_IF


//Если Синяя кнопка
GETSCREEN
IF_PIXEL_IN(1727,261,1858,319, $button_blue)
   print("Кнопка Синяя")
   LCLICK($_return1, $_return2)
   print("1")
   WAIT(1)
print("2")
   WAIT(1)
print("3")
WAIT(1)
print("4")
WAIT(1)
print("5")
WAIT(1)
print("6")
WAIT(1)
print("7")
WAIT(1)
END_IF

//Если УЖЕ СТОИТ ЛАЙК
GETSCREEN
IF_PICTURE_IN(472,227,1456,964, "doLike.bmp", -1, 100)
   print("Уже стоит лайк")
   WAIT(2)
   MOVE(1443,177)
   WAITMS(50)
   LCLICK(1443,177)
   WAIT(5)
   KEYPRESS(#F5)
   print("Обновляюсь")
   WAIT(2)
   GOTO(begin)
END_IF

//Если кнопка Завершено
GETSCREEN
IF_PICTURE_IN(1727,261,1858,319, $button_complite, -1, 70)
print("Кнопка Завершено")
LCLICK(583,194)
WHEELUP(10)
KEYPRESS(#F5)
   WAIT(3)
   print("Иду в начало")
   GOTO(begin)
END_IF
 
$time = $_time_t + 30 // таймер на 30 секунд
WHILE($time > $_time_t) // цикл крутит код 30 секунд
print("Делаю Снимок")
print("1")
WAIT(1)
print("2")
WAIT(1)
print("3")
WAIT(1)
   GETSCREEN
   
  IF_PICTURE_IN(472,227,1456,964, "like.bmp", -1, 100) // поиск со 100% совпадением
      $time = 0 // если найдено обнуляем значение таймера и цикл прекратит повторяться.
      print("Вижу лайк - Лайкаю")
      MOVE($_return1, $_return2)
      WAITMS(50)
      LCLICK($_return1, $_return2)
      WAITMS(50)
      MOVE(1200,600)
      WAIT(2)
      MOVE(1443,177)
      WAITMS(50)
      LCLICK(1443,177)
      WAIT(5)
      KEYPRESS(#F5)
      print("Обновляюсь")
      WAIT(2)
   ELSE
      LCLICK(1122,244)
      WAITMS(50)
      print("Не Вижу лайк - Кручу колесо")
      WHEELDOWN(2)
      WAITMS(500)
   END_IF
END_CYC

Но все таки в некоторых конкретных случаях отказывается видеть картинку лайка,  не могу понять почему, вряд-ли иконки с лайками в вк разные . Если надо могу сказать под какой сайт делаю и какие задачи что бы легче понять было. так все работает отлично, не видит лайк под товарами в ВК
Начинаю что то понимать
LOADING . . .

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Скрипт не может прочитать фото
« Reply #5 on: January 19, 2018, 08:43:53 PM »
Это из за сглаживания в системе.

Сделай снимок вот таким кодом
Code: (clickermann) [Select]
// Получение скриншота с цветокоррекцией (фильтр 6)
GETSCREEN
COLORMODE(6)
SCREENSHOT
HALT

Снимок попадает в папку Screens по пути в заголовке редактора.
Из него вырежи лайк.

В своем скрипте тоже добавь COLORMODE с тем же уровнем
Code: (clickermann) [Select]
GETSCREEN // снимок
COLORMODE(6) // цветокоррекция
IF_PICTURE_IN(472,227,1456,964, "like.bmp", -1, 80) // поиск с 80% совпадением

Treyvin

  • Зашел в гости
  • *
  • Posts: 11
  • Front-end
    • View Profile
Re: Скрипт не может прочитать фото
« Reply #6 on: January 20, 2018, 02:17:47 AM »
Спасибо большое  :-*
Начинаю что то понимать
LOADING . . .