Poll

Была ли полезна вам эта тема?)

Да
Нет
От части
Не читал xD
Очень полезна

Author Topic: Цикл нажимающий на куче повторённого изабражения  (Read 7429 times)

0 Members and 2 Guests are viewing this topic.

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
или надо снаружи ставить в теле скрипта а не ифов?
ЕСТЕСТВЕННО!!!

ну черт подери, за столько времени и постов с вопросами и ответами, можно же было уже наконец понять, что если картинки нет и ее не нашло, тогда  то, что в твоем "ифе", не срабатывает, и твои задержки также не срабатывают. для этого и существуют условия "ифы", либо сработает либо нет, при определенных условиях. в данном случае, это условие присутствия картинки.

Quote
если он ищет все ифы одновременно что сверхъестественно для обычного процесса,
читай то что я написал выше.

Quote
у меня он же ищет в мелких областях экрана а не фулл что не должно сильно нагружать цп при последовательном выполнении ифов вместо одновременного бреда ;D
а это не важно, хоть ты один пиксель проверяй. без задержек он у тебя в секунду тыщи раз проверит, и при этом попытается выжать максимум с производительности твоего пк.
« Last Edit: April 28, 2018, 08:17:02 PM by dramster »

Иллидан

  • Освоившийся
  • **
  • Posts: 40
  • Дзен-Мастер
    • View Profile
области обновления графического буфера не указаны.
Если он всунул десятку на слабый комп, забитый пылью и с большим монитором или несколькими, плюс параллельно работает несколько процессов и прожорливый игровой клиент, то такой код будет тормозить по любому.

затруднения с точным определением необходимых задержек между поиском картинок.
логично использовать не проверку, а ожидание картинок в заданном порядке с приемлемой разгрузкой внутри циклов ожидания.
0. Изи топовый лэптоп 17.2 дюйма, 3.4ГГц, 8 озу, 2.5 взу, HDD, винда заводское ограниченное гавно 10 home(ещё жду смерти гарантии)...  :P
0.1. Параллельно работает рабочий стол на котором тестирую эти скрины задействованные фоном рабочего стола, действительно много жрёт правда не в этой вселенной 8)
1. области то везде де над указаны.
2. вотэта у меня виснит на 2 цыкле и жрёт 30% цп ничё неделая ???
Code: [Select]
$time = $_time_t + 2
WHILE($time > $_time_t)
   GETSCREEN
   COLORMODE(6)
   IF_PICTURE_IN (748,825,854,875,"инвайт.bmp", -1, 100)
      $time = 0
MOVE($_return1,$_return2)
MOVE($_return1+29, $_return2+9)
      WAIT(0.5)
   ELSE
      WAIT(1)
   END_IF
END_CYC

$time = $_time_t + 2
WHILE($time > $_time_t)
   GETSCREEN
   COLORMODE(6)
   IF_PICTURE_IN (356,190,1306,750,"выход.bmp", -1, 90)
      $time = 0
      MOVE($_return1,$_return2)
    LCLICK($_return1+277,$_return2+61)
      WAIT(0.5)
   ELSE
      WAIT(1)
   END_IF
END_CYC

тут же норм задержки, стандартный шаблон а чё не так? :P
« Last Edit: April 29, 2018, 03:54:15 AM by Иллидан »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Речь идет об ограничении области снимка и цветокоррекции
Пример
Code: (clickermann) [Select]
$time = $_time_t + 2
WHILE($time > $_time_t)
   GETSCREEN(748,825,854,875)
   COLORMODE(6,748,825,854,875)
   IF_PICTURE_IN (748,825,854,875,"инвайт.bmp", -1, 100)
      $time = 0
      MOVE($_return1,$_return2)
      MOVE($_return1+29, $_return2+9)
      WAIT(0.5)
   ELSE
      WAIT(1)
   END_IF
END_CYC

$time = $_time_t + 2
WHILE($time > $_time_t)
   GETSCREEN(356,190,1306,750)
   COLORMODE(6,356,190,1306,750)
   IF_PICTURE_IN (356,190,1306,750,"выход.bmp", -1, 90)
      $time = 0
      MOVE($_return1,$_return2)
      LCLICK($_return1+277,$_return2+61)
      WAIT(0.5)
   ELSE
      WAIT(1)
   END_IF
END_CYC

Но у тебя другая проблема. Если на долго виснет при поиске картинки то значит эта картинка слишком большого размера.
Какой размер в пикселах картинок "инвайт.bmp" и "выход.bmp"?

Иллидан

  • Освоившийся
  • **
  • Posts: 40
  • Дзен-Мастер
    • View Profile
Какой размер в пикселах картинок "инвайт.bmp" и "выход.bmp"?
54x21(тупо кнопка)
329x68(слева кусок текста, справа 2 кнопки)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Вот смотри
54x21 = 1134 пикселов
329x68 = 22372 пикселов

Вторая картинка будет искаться в 19 раз дольше чем первая

Чем больше пикселов на сравнение тем дольше поиск. Во время работы функции горячие клавиши недоступны, поэтому кликер невозможно остановить, а анализироваться такая большая картинка (329x68) будет ощутимо долго.

Все что тебе нужно, срезать картинку до приемлемого размера
329x3 = 987


Иллидан

  • Освоившийся
  • **
  • Posts: 40
  • Дзен-Мастер
    • View Profile
Все что тебе нужно, срезать картинку до приемлемого размера
329x3 = 987
приемлемый эт меньше 1 КБ или скок мона?
Все уменьшил меньше КБ и пока вроде всё норм.

А как их правильно всунуть друг в друга чтоб если первый блок не выполняется 2 других пропускались и так с остальными такими кучками?)
у меня всего штук 18 таких циклоифов ;)

так или мона лучше?

Code: [Select]
$time = $_time_t + 2
WHILE($time > $_time_t)
   GETSCREEN(1515,863,$_xmax,$_ymax)
   COLORMODE(1515,863,$_xmax,$_ymax)
   IF_PICTURE_IN (1515,863,$_xmax,$_ymax,"тык.bmp", -1, 100)
      $time = 0
      MOVE($_return1,$_return2)
      LCLICK($_return1+25,$_return2+2)
      WAIT(1)

$time = $_time_t + 2
WHILE($time > $_time_t)
   GETSCREEN(513,340,1087,465)
   COLORMODE(6,513,340,1087,465)
   IF_PICTURE_IN (513,340,1087,465,"конец.bmp", -1, 100)
      $time = 0
      MOVE($_return1,$_return2)
      LCLICK($_return1+47,$_return2+53)
      WAIT(2)
      HALT
   ELSE
      WAIT(1)
   END_IF
END_CYC

   ELSE
      WAIT(1)
   END_IF
END_CYC

$time = $_time_t + 1
WHILE($time > $_time_t)
   GETSCREEN(276,165,432,205)
   COLORMODE(6,276,165,432,205)
   IF_PICTURE_IN (276,165,432,205,"поиск.bmp", -1, 100)
      $time = 0
      MOVE($_return1,$_return2)
      LCLICK($_return1+26,$_return2+3)
      WAIT(1)

$time = $_time_t + 1
WHILE($time > $_time_t)
   GETSCREEN(427,209,464,257)
   COLORMODE(6,427,209,464,257)
   IF_PICTURE_IN (427,209,464,257,"инвайт.bmp", -1, 100)
      $time = 0
      MOVE($_return1,$_return2)
      LCLICK($_return1+10,$_return2+9)
      WAIT(1)

$time = $_time_t + 1
WHILE($time > $_time_t)
   GETSCREEN(999,769,1157,807)
   COLORMODE(6,999,769,1157,807)
   IF_PICTURE_IN (999,769,1157,807,"тык.bmp", -1, 100)
      $time = 0
      MOVE($_return1,$_return2)
      LCLICK($_return1+24,$_return2+2)
      WAIT(1)
   ELSE
      WAIT(1)
   END_IF
END_CYC

   ELSE
      WAIT(1)
   END_IF
END_CYC

   ELSE
      WAIT(1)
   END_IF
END_CYC
« Last Edit: April 30, 2018, 02:55:59 PM by Иллидан »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Все что тебе нужно, срезать картинку до приемлемого размера
329x3 = 987
приемлемый эт меньше 1 КБ или скок мона?
Все уменьшил меньше КБ и пока вроде всё норм.

Не в килобайтах мерить надо а в пикселах.
50х50 что равняется 2500 пикселов считается нормой. Но картинку всегда нужно резать по минимуму, это сильно влияет на скорость поиска. Также на скорость влияет процент совпадения.

А как их правильно всунуть друг в друга чтоб если первый блок не выполняется 2 других пропускались и так с остальными такими кучками?)
у меня всего штук 18 таких циклоифов ;)

Ну правильно, если функция не найдет картинку то условие не выполнится и все что написано в нем тоже.



Иллидан

  • Освоившийся
  • **
  • Posts: 40
  • Дзен-Мастер
    • View Profile
бальшое пасиба коту!  ;D
/кот Oraven

а можно какнить скомпилировать скрипт кликермана в собственный бот-экзешник со своим интерфейсом шоб в скрипт не лез никто?

Иллидан

  • Освоившийся
  • **
  • Posts: 40
  • Дзен-Мастер
    • View Profile

Code: (clickermann) [Select]
$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
чё мне над дописать чтоб если найдёт больше 10 картинок то ставил не 999 секунд поиска времени а 10?)