Author Topic: Помогите, всю голову сломал!!!  (Read 10332 times)

0 Members and 1 Guest are viewing this topic.

Kingbobkov

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Помогите, всю голову сломал!!!
« on: November 25, 2015, 05:53:30 PM »
Доброго дня.
Третий день пытаюсь выполнить следующие условия.
Кто может подскажите пожалуйста, я в этом деле полный нуб.
1. Кликаем координаты
2. Ждём 30 сек.
3. Ищем картинку
4. Если находим картинку #1
5. Возвращаемся в п. #1.
6. Если находим картинку # 2
7. То кликаем новые координаты

* Картинки # 1 и 2 появляются в одних и тех же местах

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите, всю голову сломал!!!
« Reply #1 on: November 25, 2015, 07:36:28 PM »
Если не найдем картинку 2 то что? После седьмого пункта что?

Code: (clickermann) [Select]
LCLICK(100,100) // 1
WAIT(30) // 2

GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100) // если находим 1 то ничего не делаем
ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 100) // если находим 2
      LCLICK(300, 300) // то кликаем
      WAITMS(100)
   END_IF
END_IF

// после этого скрипт начнется заново
« Last Edit: November 25, 2015, 07:39:23 PM by Oraven »

Kingbobkov

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: Помогите, всю голову сломал!!!
« Reply #2 on: November 25, 2015, 07:44:16 PM »
По задумке да.
Спасибо большое, приеду домой буду побывать.

Kingbobkov

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: Помогите, всю голову сломал!!!
« Reply #3 on: December 06, 2015, 08:01:21 PM »
Доброго дня побывал, побывал.Вот что получилось.Посмотрите что не так.Пожалуйста  :)
Code: (clickermann) [Select]
$x=864
$y=520
$x2=758
$y2=346
$x3=829
$y3=188
DBLCLICK($x3,$y3)     
KEYSTRING("#1")
LCLICK($x,$y) // Кликаем по координатам
WAIT(80)       // Ждем 80 сек.(В идеале запустить поиск картинки и как только одна из двух появится делать следующие действия)
 
GETSCREEN
IF_PICTURE_IN (543,377, 701,486, "1.bmp", -1, 100) \\ Если нашли картинку №1 то  закрываем окно с координатами х2,у2 и в начало
  WAIT(1)
  LCLICK($x2,$y2)
  WAIT(1)
  DBLCLICK($x3,$y3)     
 KEYSTRING("#1")
 LCLICK($x,$y)
  WAIT(80)
ELSE
IF_PICTURE_IN (543,377, 701,486, "2.bmp", -1, 100) \\ Если нашли картинку №2 то  закрываем окно с координатами х2,у2  вводим текст в х3,у3 и кликаем в х,у.
     WAIT(3)
     LCLICK($x2,$y2)
     WAIT(1)
 
DBLCLICK($x3,$y3)

     
KEYSTRING("#3")
LCLICK($x,$y)
     WAIT(80) // Ждем 80 сек.(В идеале запустить поиск картинки и как только одна из двух появится делать следующие действия)

GETSCREEN   \\ Если нашли картинку №1 то  закрываем окно с координатами х2,у2 и в начало
     SCREENSHOTEX ((543,377, 701,486)
     IF_PICTURE_IN (543,377, 701,486, "1.bmp", -1, 100)
       WAIT(3)
       LCLICK($x2,$y2)
       WAIT(1)
       DBLCLICK($x3,$y3)     
      KEYSTRING("#1")
       LCLICK($x,$y)
       WAIT(80)
     ELSE
     IF_PICTURE_IN (543,377, 701,486, "2.bmp", -1, 100) \\ Если нашли картинку №2 то  закрываем окно с координатами х2,у2  вводим текст в х3,у3 и кликаем в х,у.
     WAIT(3)
     LCLICK($x2,$y2)
     WAIT(1)
 
DBLCLICK($x3,$y3)

     
KEYSTRING("#9")
LCLICK($x,$y)
     WAIT(80)
     
GETSCREEN
            IF_PICTURE_IN (543,377, 701,486, "1.bmp", -1, 100)
        WAIT(3)
        LCLICK($x2,$y2)
        WAIT(1)
DBLCLICK($x3,$y3)     
KEYSTRING("#1")
LCLICK($x,$y)
        WAIT(80)
      ELSE
      IF_PICTURE_IN (543,377, 701,486, "2.bmp", -1, 100)
       WAIT(3)
       LCLICK($x2,$y2)
       WAIT(1)
 
DBLCLICK($x3,$y3)

     
KEYSTRING("#18")
LCLICK($x,$y)
       WAIT(80)
GETSCREEN
        SCREENSHOTEX ((543,377, 701,486)
        IF_PICTURE_IN (543,377, 701,486, "1.bmp", -1, 100) \\ Если нашли картинку №1 то  закрываем окно с координатами х2,у2 и в начало
         WAIT(3)
         LCLICK($x2,$y2)
         WAIT(1)
DBLCLICK($x3,$y3)     
KEYSTRING("#1")
LCLICK($x,$y)          WAIT(80)
        ELSE
        IF_PICTURE_IN (543,377, 701,486, "2.bmp", -1, 100) \\Если нашли картинку №2 то  закрываем окно с координатами х2,у2  делаем запись в лог и в ночало.
         WAIT(3)
         LCLICK($x2,$y2)
         WAIT(1)
 
DBLCLICK($x3,$y3)

     
KEYSTRING("#52")
LCLICK($x,$y)
         WAIT(80)
END_IF
\\И так по кругу до бесконечности
Спасибо
« Last Edit: December 06, 2015, 08:47:55 PM by Oraven »

Kingbobkov

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: Помогите, всю голову сломал!!!
« Reply #4 on: December 06, 2015, 08:03:40 PM »
Вот схема задумки

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите, всю голову сломал!!!
« Reply #5 on: December 06, 2015, 08:27:24 PM »
Да кругом одни ошибки, что за
Code: (clickermann) [Select]
KEYSTRING("#52")Ты что хочешь напечатать 52? Потому что эта функция именно так и работает.
Черты комментов не в ту сторону! Вот так правильно //
Лишние скобки и порядочное отсутствие END_IF


Kingbobkov

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: Помогите, всю голову сломал!!!
« Reply #6 on: December 06, 2015, 08:30:24 PM »
Ввод цифры 52 вуказанные координаты .
Он работает, но через раз.
Иногда отрабатвает, а иногда после нахождения 1 картинки останавливается.
И за чёрточки спасибо.
« Last Edit: December 06, 2015, 08:32:17 PM by Kingbobkov »

Kingbobkov

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: Помогите, всю голову сломал!!!
« Reply #7 on: December 06, 2015, 08:39:24 PM »
Я понимаю как сделать что бы одно из двух условий выполнить, но когда их больше не могу понять.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите, всю голову сломал!!!
« Reply #8 on: December 06, 2015, 08:43:35 PM »
Вот все написал, теперь будет работать так как ты хочешь. Только не понял логику с увеличением числа? На сколько нужно увеличивать каждый раз и есть ли предел?
Code: (clickermann) [Select]
$x=864
$y=520
$x2=758
$y2=346
$x3=829
$y3=188

DBLCLICK($x3,$y3)
WAITMS(50)

KEYSTRING("1")
WAITMS(50)

LCLICK($x,$y) // Кликаем по координатам
WAITMS(50)

$check = 0
WHILE($check = 0) // Ждем rартинки и как только одна из двух появится делать следующие действия
   GETSCREEN
   IF_PICTURE_IN (543,377, 701,486, "1.bmp", -1, 100) // Если нашли картинку №1 то  закрываем окно с координатами х2,у2 и в начало
      WAIT(1)
      LCLICK($x2,$y2)
      $check = 1
      WAIT(1)
   ELSE
      IF_PICTURE_IN (543,377, 701,486, "2.bmp", -1, 100) // Если нашли картинку №2 то  закрываем окно с координатами х2,у2  вводим текст в х3,у3 и кликаем в х,у.
         WAIT(3)
         LCLICK($x2,$y2)
         WAIT(1)
         DBLCLICK($x3,$y3)
         WAITMS(50)
         
         KEYSTRING("3") // не понял логику увеличения числа?!
         WAITMS(50)
         
         LCLICK($x,$y)
         WAITMS(50)
      ELSE
         WAITMS(50)
      END_IF
   END_IF
END_CYC
« Last Edit: December 06, 2015, 08:45:53 PM by Oraven »

Kingbobkov

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: Помогите, всю голову сломал!!!
« Reply #9 on: December 06, 2015, 08:51:11 PM »
Вначале пишем 1 если не совпало первая картинка то
Потом 3
потом 9
потом 18
потом 36 если до сюда не попала картинка 1 то в начало с записью в лог.
как дальше сделать, чтобы в случии картинки 2 пошел дальнш?
« Last Edit: December 06, 2015, 08:53:31 PM by Kingbobkov »

Kingbobkov

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: Помогите, всю голову сломал!!!
« Reply #10 on: December 06, 2015, 08:55:38 PM »
 :) Правда в отчаянии был.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите, всю голову сломал!!!
« Reply #11 on: December 06, 2015, 09:01:55 PM »
Вот так тогда.
Code: (clickermann) [Select]
$x=864
$y=520
$x2=758
$y2=346
$x3=829
$y3=188

$count = 0
DBLCLICK($x3,$y3)
WAITMS(50)

KEYSTRING("1")
WAITMS(50)

LCLICK($x,$y) // Кликаем по координатам
WAITMS(50)

$check = 0
WHILE($check = 0) // Ждем картинки и как только одна из двух появится делать следующие действия
   GETSCREEN
   IF_PICTURE_IN (543,377, 701,486, "1.bmp", -1, 100) // Если нашли картинку №1 то  закрываем окно с координатами х2,у2 и в начало
      WAIT(1)
      LCLICK($x2,$y2)
      $check = 1
      WAIT(1)
   ELSE
      IF_PICTURE_IN (543,377, 701,486, "2.bmp", -1, 100) // Если нашли картинку №2 то  закрываем окно с координатами х2,у2  вводим текст в х3,у3 и кликаем в х,у.
         WAIT(3)
         LCLICK($x2,$y2)
         WAIT(1)
         DBLCLICK($x3,$y3)
         WAITMS(50)
         
         INC($count,1)
         SWITCH($count)
         CASE(1)
            KEYSTRING("3")
         CASE(2)
            KEYSTRING("9")
         CASE(3)
            KEYSTRING("18")
         CASE(4)
            KEYSTRING("36")
            $check = 1
         DEFAULT
         END_SWITCH
         WAITMS(50)
         
         LCLICK($x,$y)
         WAITMS(500)
      ELSE
         WAITMS(50)
      END_IF
   END_IF
END_CYC

Kingbobkov

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: Помогите, всю голову сломал!!!
« Reply #12 on: December 06, 2015, 09:04:12 PM »
Спасибо.
Буду пробывать :)
Я бы в жизни не сообразил бы.

Kingbobkov

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: Помогите, всю голову сломал!!!
« Reply #13 on: December 06, 2015, 09:16:39 PM »
Что-то не пойму, это получается на уровне  case 1, 2 и.т., если появится картинка 1 то кликер застывает а не возвращается в начало.

Kingbobkov

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: Помогите, всю голову сломал!!!
« Reply #14 on: December 06, 2015, 09:26:50 PM »
Сори все отлично .
Спасибо большое .