Author Topic: Вопрос В помощи освоения условий Else, WHILE,  (Read 13015 times)

0 Members and 1 Guest are viewing this topic.

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
Re: Вопрос В помощи освоения условий Else, WHILE,
« Reply #15 on: December 29, 2019, 02:56:22 PM »
Ого  я  не  ожидал что сам Oraven ответит  ето   для меня  как   личное   приветствие )))
так  теперь  по  делу почему етот скрипл  с  wiaitms
Code: [Select]
LOGWRITE ("нажимаем 5")
KEYPRESS(#5)  // 1.  нажимаем "5" //  2. если нет   нажимаем"5"  и все  поновой  ищем  первую картинку.
WAITMS(1000)

GETSCREEN    //следущее  действие  гринскрин
IF_PICTURE_IN (5,197, 559, 795, "KAT666.bmp")  // поиск картинки
   LOGWRITE ("найдена картинка")
   
   LCLICK($_return1, $_return2)    // если нашло кликает
   WAITMS(1200)
   //если кликнуло  ищем  пексель нашли  клик  и так  ЧЕТЫРЕ ! раза  ищем  одинаковый  пиксель  но  по  разным  кординатам
   GETSCREEN
   IF_PIXEL_IN(486,963, 515,998, 213)
      LCLICK($_return1, $_return2)
      WAITMS(100)
      LOGWRITE ("пиксель 1")
   END_IF
   WAITMS(400)
   GETSCREEN
   IF_PIXEL_IN(368,815, 451,837, 11513775)
      LCLICK($_return1, $_return2)
      WAITMS(100)
      LOGWRITE ("пиксель 2")
   END_IF
   WAITMS(420)
   GETSCREEN
   IF_PIXEL_IN(355,682, 499,697, 213)
      LCLICK($_return1, $_return2)
      WAITMS(100)
      LOGWRITE ("пиксель 3")
   END_IF
   WAITMS(400)
   GETSCREEN
   IF_PIXEL_IN(356,624, 500,637, 213)
      LCLICK($_return1, $_return2)
      WAITMS(100)
      LOGWRITE ("пиксель 4")
   END_IF
   WAITMS(300)
   GETSCREEN
   IF_PIXEL_IN(355,682, 499,697, 213)
      LCLICK($_return1, $_return2)
      WAITMS(100)
      LOGWRITE ("пиксель 5")
   END_IF
   WAITMS(150)
   GETSCREEN
   IF_PIXEL_IN(361,606, 502,618, 213)
      LCLICK($_return1, $_return2)
      WAITMS(100)
      LOGWRITE ("пиксель 6")
   END_IF
   
   WAITMS(400)
ELSE
   LOGWRITE ("картинки нет")
END_IF
лудше  работает  чем  етот  который  с  ожиданием  картинки ?  поидее  с  ожиданием картинки  должен  лудше  работать 
Code: [Select]
LOGWRITE ("нажимаем 5")
KEYPRESS(#5)  // 1.  нажимаем "5" //  2. если нет   нажимаем"5"  и все  поновой  ищем  первую картинку.
WAITMS(1000)

GETSCREEN    //следущее  действие  гринскрин
IF_PICTURE_IN (5,197, 559, 795, "KAT666.bmp")  // поиск картинки
   LOGWRITE ("найдена картинка")
   
   LCLICK($_return1, $_return2)    // если нашло кликает
   WAITMS(1200)
   //если кликнуло  ищем  пексель нашли  клик  и так  ЧЕТЫРЕ ! раза  ищем  одинаковый  пиксель  но  по  разным  кординатам
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(486,963, 515,998, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 1")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   WAITMS(400)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(368,815, 451,837, 11513775)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 2")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   WAITMS(420)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(355,682, 499,697, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 3")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   WAITMS(400)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(356,624, 500,637, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 4")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   WAITMS(300)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(355,682, 499,697, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 5")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   WAITMS(150)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(361,606, 502,618, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 6")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   WAITMS(400)
ELSE
   LOGWRITE ("картинки нет")
END_IF
пожалуста  ответьте как  лудше  то  иногда  бывает так что  скрипт  который  с waitms просто  дает осечку  ну   задержка  интернета и все скрипт  тупит.   порекомендуйте  как лудше
если  есть  возможность  объясни  по  скайпу  что  да  как

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Вопрос В помощи освоения условий Else, WHILE,
« Reply #16 on: December 29, 2019, 04:34:59 PM »
Первый скрипт ищет пиксели 1 - 6, если не найдено переходит к следующему.
Второй скрипт перейдет к следующему только если пиксель найден.

Я не представляю что ты имеешь ввиду под "лучше работает". Если дело в скорости, так убери задержки между циклами второго скрипта, они там ненужны.
Code: (clickermann) [Select]
LOGWRITE ("нажимаем 5")
KEYPRESS(#5)  // 1.  нажимаем "5" //  2. если нет   нажимаем"5"  и все  поновой  ищем  первую картинку.
WAITMS(1000)

GETSCREEN    //следущее  действие  гринскрин
IF_PICTURE_IN (5,197, 559, 795, "KAT666.bmp")  // поиск картинки
   LOGWRITE ("найдена картинка")
   
   LCLICK($_return1, $_return2)    // если нашло кликает
   WAITMS(1200)
   //если кликнуло  ищем  пексель нашли  клик  и так  ЧЕТЫРЕ ! раза  ищем  одинаковый  пиксель  но  по  разным  кординатам
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(486,963, 515,998, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 1")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC

   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(368,815, 451,837, 11513775)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 2")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC

   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(355,682, 499,697, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 3")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC

   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(356,624, 500,637, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 4")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC

   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(355,682, 499,697, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 5")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC

   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(361,606, 502,618, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(400)
         LOGWRITE ("пиксель 6")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   
ELSE
   LOGWRITE ("картинки нет")
END_IF



JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
орвен скажи   для  быстрого  отклика  как  сделать   разделить правильно   свой  скрипт  задача: нужно чтобы LOGWRITE ("нажимаем 5")
KEYPRESS(#5) работала  параллельно  поиску  первой картинки  точнее  из  поиска  сделать также  ожидание   и  если   первую нашло  то пошло дальше  как  в  етом  скрипте   тут  5 ищет и  так  покругу   поправите  если  не  так
Code: [Select]
LOGWRITE ("нажимаем 5")
KEYPRESS(#5)  // 1.  нажимаем "5" //  2. если нет   нажимаем"5"  и все  поновой  ищем  первую картинку.


GETSCREEN    //следущее  действие  гринскрин
IF_PICTURE_IN (5,197, 559, 795, "KAT666.bmp")  // поиск картинки
   LOGWRITE ("найдена картинка")
   
   LCLICK($_return1, $_return2)    // если нашло кликает
   
   //если кликнуло  ищем  пексель нашли  клик  и так  ЧЕТЫРЕ ! раза  ищем  одинаковый  пиксель  но  по  разным  кординатам
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(486,963, 515,998, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 1")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(368,815, 451,837, 11513775)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 2")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(355,682, 499,697, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 3")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(356,624, 500,637, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         
         LOGWRITE ("пиксель 4")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(355,682, 499,697, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 5")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(361,606, 502,618, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 6")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   
ELSE
   LOGWRITE ("картинки нет")
END_IF
  картинки  улетают  со скоростью  света  Отцы   прошу  на  советы  картинка  размером 2x30  пиксель в длинну  (примерно)
если  есть  возможность  объясни  по  скайпу  что  да  как

Дядя_Витя

  • Освоившийся
  • **
  • Posts: 36
    • View Profile
Вероятно вам нужно чтото такое.
Код не проверял щас далеко от компа так что если что сторожилы поправят.
Code: (clickermann) [Select]
//Оптимизируем код так как он повторяется 6 раз
SUB(Find_pix, $x, $y, $x1, $y1, $color, $check = 0)
    WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN($x, $y, $x1, $y1, $color)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("pix fined")
      ELSE
         WAITMS(50)
      END_IF
    END_CYC
end_sub


LOGWRITE ("нажимаем 5")
KEYPRESS(#5)  // 1.  нажимаем "5" //  2. если нет   нажимаем"5"  и все  поновой  ищем  первую картинку.

//Ждем картинку
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (5,197, 559, 795, "KAT666.bmp")
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

 
//Если картинка найдена то ищем пиксели итд.
Find_pix(486, 963, 515, 998, 213)
Find_pix(368, 815, 451, 837, 11513775)
Find_pix(355, 682, 499, 697, 213)
Find_pix(356, 624, 500, 637, 213)
Find_pix(355, 682, 499, 697, 213)
Find_pix(361, 606, 502, 618, 213)
         
« Last Edit: January 05, 2020, 02:04:23 AM by Дядя_Витя »

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
Ребята как  сделать так  чтобы  скрипт  параллельно   нажимал "5" c  задержкой 1 сек(Wait(1))  и   не  мешая  поиску  первой  картинки  то есть 5  нажимается  себе а  поиск  ищет  себе  и  ето все  одновременно?  чтобы  уменьшить скажем  так  шанс  осечки. и  все  ето  желательно в  1  запущенном  Clicermann
P.S.
я проверю но  для меня  тут много непонятного)   хотя все понятно но  хз  не работал  так  еще   я  завтра   отпишу  что как  работает.
« Last Edit: January 05, 2020, 06:42:16 AM by JacsoN »
если  есть  возможность  объясни  по  скайпу  что  да  как

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Ребята как  сделать так  чтобы  скрипт  параллельно   нажимал "5" c  задержкой 1 сек(Wait(1))  и   не  мешая  поиску  первой  картинки  то есть 5  нажимается  себе а  поиск  ищет  себе  и  ето все  одновременно?  чтобы  уменьшить скажем  так  шанс  осечки. и  все  ето  желательно в  1  запущенном  Clicermann
P.S.
я проверю но  для меня  тут много непонятного)   хотя все понятно но  хз  не работал  так  еще   я  завтра   отпишу  что как  работает.

А для чего у нас потоки?
Code: (clickermann) [Select]
THREAD(t1, 1) // данный поток выполняется независимо от задержек остального скрипта.
   LOGWRITE ("нажимаем 5")
   KEYPRESS(#5)  // 1.  нажимаем "5" //  2. если нет   нажимаем"5"  и все  поновой  ищем  первую картинку.
   WAIT(1)
END_THREAD

GETSCREEN    //следущее  действие  гринскрин
IF_PICTURE_IN (5,197, 559, 795, "KAT666.bmp")  // поиск картинки
   SETTHREAD (t1, 2) // останавливаем поток нажатия "5"
   
   LOGWRITE ("найдена картинка")
   
   LCLICK($_return1, $_return2)    // если нашло кликает
   
   //если кликнуло  ищем  пексель нашли  клик  и так  ЧЕТЫРЕ ! раза  ищем  одинаковый  пиксель  но  по  разным  кординатам
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(486,963, 515,998, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 1")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(368,815, 451,837, 11513775)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 2")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(355,682, 499,697, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 3")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(356,624, 500,637, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         
         LOGWRITE ("пиксель 4")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(355,682, 499,697, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 5")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(361,606, 502,618, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("пиксель 6")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   SETTHREAD (t1, 1) // запускаем поток нажатия "5"
ELSE
   LOGWRITE ("картинки нет")
END_IF

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

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
Oraven скажи   что ты  думаешь на  щет скрипта  от ДЯДЯ ВИТЯ ?  непонимаю  а какая  разница  между
Quote
THREAD(t1, 1) // данный поток выполняется независимо от задержек остального скрипта.
   LOGWRITE ("нажимаем 5")
   KEYPRESS(#5)  // 1.  нажимаем "5" //  2. если нет   нажимаем"5"  и все  поновой  ищем  первую картинку.
   WAIT(1)
END_THREAD
и  просто keepres (#5)?
если  есть  возможность  объясни  по  скайпу  что  да  как

Дядя_Витя

  • Освоившийся
  • **
  • Posts: 36
    • View Profile
Создавать отдельный поток ради нажатия одной клавиши это как стрелять из пушки по воробьям))) Весело но не логично)))
Ну сделайте так)
Code: (clickermann) [Select]
//Оптимизируем код так как он повторяется 6 раз
SUB(Find_pix, $x, $y, $x1, $y1, $color, $check = 0)
    WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN($x, $y, $x1, $y1, $color)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("pix fined")
      ELSE
         WAITMS(50)
      END_IF
    END_CYC
end_sub
 
KEYPRESS(#5) // Жмяк 5

//Ждем картинку
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (5,197, 559, 795, "KAT666.bmp")
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
// Если картинка не нашлась то вероятно клавиша 5 не сработала. Жмяк еще раз ее. и снова проверяем наличие картинки через секунду
      KEYPRESS(#5)
      WAITMS(1000)
   END_IF
END_CYC
 
 
//Если картинка найдена то ищем пиксели итд.
Find_pix(486, 963, 515, 998, 213)
Find_pix(368, 815, 451, 837, 11513775)
Find_pix(355, 682, 499, 697, 213)
Find_pix(356, 624, 500, 637, 213)
Find_pix(355, 682, 499, 697, 213)
Find_pix(361, 606, 502, 618, 213)
 

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
 ;D ;D ;D рассмешил!   зачтено.  но  цифра 5  у  меня   задействована  как  обновление  принудительно
если  есть  возможность  объясни  по  скайпу  что  да  как

Дядя_Витя

  • Освоившийся
  • **
  • Posts: 36
    • View Profile
Тоесть если я вас правильно понял, вам нужен следующий алгоритм. Жмем 5=обновляем. Картинка найдена=обновляем. Нашли первый пиксель=обновляем и так далие?

Дядя_Витя

  • Освоившийся
  • **
  • Posts: 36
    • View Profile
Если я вас правильно понял вот мой вариант решения.
Code: (clickermann) [Select]
//Оптимизируем код так как он повторяется 6 раз
SUB(Find_pix, $x, $y, $x1, $y1, $color, $check = 0)
    WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN($x, $y, $x1, $y1, $color)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(50)
         KEYPRESS(#5)
         WAITMS(100)
         LOGWRITE ("pix fined")
      ELSE
         LOGWRITE ("pix not fined")
         WAITMS(50)
      END_IF
    END_CYC
end_sub
 
KEYPRESS(#5) // Жмяк 5
 
//Ждем картинку
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (5,197, 559, 795, "KAT666.bmp")
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(50)
      KEYPRESS(#5)
      WAITMS(100)
   ELSE
// Если картинка не нашлась то вероятно клавиша 5 не сработала. Жмяк еще раз ее. и снова проверяем наличие картинки через секунду
      LOGWRITE ("picture not fined")
      KEYPRESS(#5)
      WAITMS(100)
   END_IF
END_CYC
 
 
//Если картинка найдена то ищем пиксели итд.
Find_pix(486, 963, 515, 998, 213)
Find_pix(368, 815, 451, 837, 11513775)
Find_pix(355, 682, 499, 697, 213)
Find_pix(356, 624, 500, 637, 213)
Find_pix(355, 682, 499, 697, 213)
Find_pix(361, 606, 502, 618, 213)
 
Ну и для любителей обьемного кода)) Такое решение)))
Code: (clickermann) [Select]
LOGWRITE ("нажимаем 5")
KEYPRESS(#5)  // 1.  нажимаем "5" //  2. если нет   нажимаем"5"  и все  поновой  ищем  первую картинку.
WAITMS(1000)
 
//Ждем картинку
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (5,197, 559, 795, "KAT666.bmp")
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(50)
      KEYPRESS(#5)
      WAITMS(100)
   ELSE
// Если картинка не нашлась то вероятно клавиша 5 не сработала. Жмяк еще раз ее. и снова проверяем наличие картинки через секунду
      LOGWRITE ("picture not fined")
      KEYPRESS(#5)
      WAITMS(100)
   END_IF
END_CYC

   //если кликнуло  ищем  пексель нашли  клик  и так  ЧЕТЫРЕ ! раза  ищем  одинаковый  пиксель  но  по  разным  кординатам
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(486,963, 515,998, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(50)
         KEYPRESS(#5)
         WAITMS(100)
         LOGWRITE ("пиксель 1")
      ELSE
         LOGWRITE ("pix 1 not fined")
         WAITMS(50)
      END_IF
   END_CYC
 
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(368,815, 451,837, 11513775)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(50)
         KEYPRESS(#5)
         WAITMS(100)
         LOGWRITE ("пиксель 2")
      ELSE
         LOGWRITE ("pix 2 not fined")
         WAITMS(50)
      END_IF
   END_CYC
 
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(355,682, 499,697, 213)
         $check = 1
         LCLICK($_return1, $_return2)
          WAITMS(50)
         KEYPRESS(#5)
         WAITMS(100)
         LOGWRITE ("пиксель 3")
      ELSE
         LOGWRITE ("pix 3 not fined")
         WAITMS(50)
      END_IF
   END_CYC
 
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(356,624, 500,637, 213)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(50)
         KEYPRESS(#5)
         WAITMS(100)
         LOGWRITE ("пиксель 4")
      ELSE
         LOGWRITE ("pix 4 not fined")
         WAITMS(50)
      END_IF
   END_CYC
 
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(355,682, 499,697, 213)
         $check = 1
         LCLICK($_return1, $_return2)
          WAITMS(50)
         KEYPRESS(#5)
         WAITMS(100)
         LOGWRITE ("пиксель 5")
      ELSE
         LOGWRITE ("pix 5 not fined")
         WAITMS(50))
      END_IF
   END_CYC
 
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(361,606, 502,618, 213)
         $check = 1
         LCLICK($_return1, $_return2)
          WAITMS(50)
         KEYPRESS(#5)
         WAITMS(100)
         LOGWRITE ("пиксель 6")
      ELSE
         LOGWRITE ("pix 6 not fined")
         WAITMS(50)
      END_IF
   END_CYC
« Last Edit: January 05, 2020, 01:37:00 PM by Дядя_Витя »

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
Так  ребята  Вопрос!!!!  8) 8) 8)
Как  искать  несколько  картинок  тут
Code: [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
если  есть  возможность  объясни  по  скайпу  что  да  как

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
Жду  ответа  от  Знающих   как  искать  несколько  разных  картинок ??? ?
если  есть  возможность  объясни  по  скайпу  что  да  как

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Жду  ответа  от  Знающих   как  искать  несколько  разных  картинок ??? ?
Прописать несколько условий с поиском разных картинок, Ватсон...
Я не ду... Потому и не бу...

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
Code: (clickermann) [Select]
//Оптимизируем код так как он повторяется 6 раз
SUB(Find_pix, $x, $y, $x1, $y1, $color, $check = 0)
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN($x, $y, $x1, $y1, $color)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("pix fined")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
end_sub


LOGWRITE ("нажимаем 5")
KEYPRESS(#5)  // 1.  нажимаем "5" //  2. если нет   нажимаем"5"  и все  поновой  ищем  первую картинку.

//Ждем картинку
$check = 0
WHILE($check = 0)
   LOGWRITE ("нажимаем 5")
   KEYPRESS(#5)
   wait(1)
   GETSCREEN
   IF_PICTURE_IN (5,197, 559, 795, "KAT999.bmp")
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC


//Если картинка найдена то ищем пиксели итд.
Find_pix(486, 963, 515, 998, 213)
Find_pix(368, 815, 451, 837, 11513775)
Find_pix(355, 682, 499, 697, 213)
Find_pix(356, 624, 500, 637, 213)
Find_pix(355, 682, 499, 697, 213)
Find_pix(361, 606, 502, 618, 213)
  б"И"да  пришла  !!  в етом  скрипте   произходит  2-3  клика  по нужным  картинкам  а  потом  Сюрпрайз)  что не  так   подскажите  Скрипт  Не  мой  в Ветке  есть  такойже   но   етот работает но  тормозится ((
« Last Edit: January 11, 2020, 09:47:08 PM by JacsoN »
если  есть  возможность  объясни  по  скайпу  что  да  как