Author Topic: помогите, пожалуйста, на языке кликермана написать то, что я описал в коде словами  (Read 2988 times)

0 Members and 2 Guests are viewing this topic.

1337

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
товарищи, доброго всем
помогите, пожалуйста, на языке кликермана написать то, что я описал в коде словами
понятно ли я написал?
заранее спасибо
[spoiler]
Code: [Select]
getscreen
IF_PICTURE_IN (x, y, x2, y2, "1.bmp") // поиск картинки "1.bmp"
move($_return1+10, $_return2+10) // можно ли поставить рэндомное значение на сколько мышку переместить ? от 10 до 20 например
WAIT(delay) // можно ли поставить рэндомное значение ? от и до
LCLICK ($_return1+10, $_return2+10)
WAIT(delay)

 getscreen
 IF_PICTURE_IN (x, y, x2, y2, "2.bmp")
 move($_return1+5, $_return2+5)
 WAIT(delay)
 LCLICK ($_return1+5, $_return2+5)
 WAIT(delay)
 
  getscreen
  IF_PICTURE_IN (x, y, x2, y2, "3.bmp")
  move($_return1-10, $_return2-10)
  WAIT(delay)
  LCLICK($_return1-10, $_return2-10)
  WAIT(delay)
  KEYDOWN(#CTRL)
  KEYDOWN (87)
  KEYUP (#CTRL)
  KEYUP (#87)
  WAIT(delay)
 
// Если все удачно, то повторяем заново, зациклить
 
   //ЕСЛИ КАРТИНКУ "3.bmp" не нашло,
   //то WAIT(delay)
   //Повторить поиск "3.bmp"
   getscreen
   IF_PICTURE_IN (x, y, x2, y2, "3.bmp")
   move($_return1-10, $_return2-10)
   WAIT(delay)
   LCLICK($_return1-10, $_return2-10)
   WAIT(delay)
   KEYDOWN(#CTRL)
   KEYDOWN (87)
   KEYUP (#CTRL)
   KEYUP (#87)
   WAIT(delay)
 
    //6 раз повторить поиск картинки "3.bmp"
    //если не нашло, то закрыть вкладку
    KEYDOWN(#CTRL)
    KEYDOWN (87)
    KEYUP (#CTRL)
    KEYUP (#87)
    WAIT(delay)

// Если картинку "1.bmp" не нашло,
// то начать поиск картинки "1.1.bmp"
// Если картинку "1.1.bmp" нашло, то повторить то же самое, что и с "1.bmp"
// Если Картинку "1.1.bmp" не нашло, то перейти к поиску картинки "1.2.bmp"
// Итак 10 картинок перебрать,
// Если одну из картинок "1.X.bmp" нашло, то делаем с ней, что и с "1.bmp"
// Если все удачно, то повторяем заново, зациклить
// если не нашло, то

END_IF

HALT
[/spoiler]

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Code: (clickermann) [Select]
// имена картинок от "1.0.bmp" до "1.10.bmp"

FOR($num=0,$num<11)
   GETSCREEN
   IF_PICTURE_IN (100,100, 800,800, STRCONCAT("1.", $num, ".bmp")) // поиск картинок "1.0.bmp" - "1.10.bmp"
      move($_return1+RND(10,20), $_return2+RND(10,20))
      WAITMS(RND(60,120)) // рандомное значение от 60 до 120 мс
      LCLICK ($_return1+10, $_return2+10)
      WAIT(1)
     
      GETSCREEN
      IF_PICTURE_IN (100,100, 800,800, "2.bmp")
         move($_return1+5, $_return2+5)
         WAITMS(RND(60,120))
         LCLICK ($_return1+5, $_return2+5)
         WAIT(1)
         
         $time = $_time_t + 10 // таймер на 10 секунд
         WHILE($time > $_time_t)
            GETSCREEN
            IF_PICTURE_IN (100,100, 800,800, "3.bmp") // ожидание картинки 3 не более 10 секунд
               $time = 0
               move($_return1-10, $_return2-10)
               WAITMS(RND(60,120))
               LCLICK($_return1-10, $_return2-10)
               WAIT(1)
               KEYDOWN(#CTRL)
               KEYDOWN(#W)
               WAITMS(50)
               KEYUP(#W)
               KEYUP(#CTRL)
               WAIT(1)
            ELSE
               WAITMS(50)
            END_IF
         END_CYC
         IF($time ! 0)
            // время истекло, картинка не найдена
            KEYDOWN(#CTRL)
            KEYDOWN(#W)
            WAITMS(50)
            KEYUP(#W)
            KEYUP(#CTRL)
            WAIT(5)
         END_IF
      END_IF
      $num=0
   ELSE
      WAITMS(100)
   END_IF
END_CYC

HALT

1337

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Спасибо

[spoiler]WAIT(5)
GetScreen
IF_PICTURE_IN (0, 0, 1280, 1024, "1.bmp", -1, 100)
move($_return1+RND(10,20), $_return2+RND(10,20))
WAIT(RND(2,5))
LCLICK ($_return1+RND(10,20), $_return2+RND(10,20))
WAIT(RND(2,5))
END_IF
GetScreen
IF_PICTURE_IN (0, 0, 1280, 1024, "2.bmp", -1, 100)
move($_return1+RND(10,20), $_return2+RND(10,20))
WAIT(RND(2,5))
LCLICK ($_return1+RND(10,20), $_return2+RND(10,20))
WAIT(RND(2,5))
END_IF
WAIT(RND(2,5))
GetScreen
IF_PICTURE_IN (0, 0, 1280, 1024, "3.bmp", -1, 75)
move($_return1+RND(10,15), $_return2+RND(10,15))
WAIT(RND(2,5))
LDOWN($_return1+RND(10,15), $_return2+RND(10,15))
WAIT(RND(2,5))
LUP (100, 670)
END_IF
A:
$time = $_time_t + 50
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (0,0, 1280,1024, "4.bmp", -1, 100)
      $time = -1
      move($_return1+RND(20,28), $_return2+RND(20,28))
      WAIT(RND(1,4))
      lclick($_return1+RND(20,28), $_return2+RND(20,28))
      WAITMS(100)
      ELSE
         GOTO(B)
      END_IF
END_CYC
GOTO(A)
B:
$time = $_time_t + 50
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (100,670, 1280,1024, "5.bmp", -1, 100)
      $time = -1
      lclick($_return1+RND(20,28), $_return2+RND(20,28))
      WAIT(1)
         ELSE
         GOTO(D)
      END_IF
END_CYC
GOTO(B)
D:
GetScreen
IF_PICTURE_IN (100, 650, 1280, 1024, "6.bmp", -1, 50)
      move($_return1+RND(2,8), $_return2+RND(2,8))
      WAIT(RND(2,8))
      LCLICK($_return1+RND(2,8), $_return2+RND(2,8))
   WAIT(RND(5,10))
   KEYDOWN(#CTRL)
   KEYDOWN (87)
   KEYUP (#CTRL)
   KEYUP (#87)
WAIT(RND(2,8))
END_IF
GetScreen
IF_PICTURE_IN (100, 650, 1280, 1024, "7.bmp", -1, 50)
move($_return1+RND(2,8), $_return2+RND(2,8))
WAIT(RND(2,8))
LCLICK($_return1+RND(2,8), $_return2+RND(2,8))
   WAIT(RND(5,10))
   KEYDOWN(#CTRL)
   KEYDOWN (87)
   KEYUP (#CTRL)
   KEYUP (#87)
WAIT(RND(2,8))
END_IF
HALT

[/spoiler]
Может кто подсказать почему в данном скрипте GOTO не срабатывает?
После "3.bmp" сразу перескакивает на действия с "6.bmp"

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Выпрыгивать из циклов не рекомендуется. не говоря уже о том что ты там своими гото лишаешь эти циклы всякого смысла. 4 и 5 пропускаются видимо потому что картинки не найдены.
Вот это что?
Code: (clickermann) [Select]
   KEYDOWN(#CTRL)
   KEYDOWN (87)
   KEYUP (#CTRL)
   KEYUP (#87)
Если ты думаешь что это Ctrl+W то нет.
Вот так правильно!
Code: (clickermann) [Select]
KEYDOWN(#CTRL)
KEYDOWN(#W)
WAITMS(50)
KEYUP(#W)
KEYUP(#CTRL)

Вот верный скрипт
Code: (clickermann) [Select]
WAIT(5)
GetScreen
IF_PICTURE_IN (0, 0, 1280, 1024, "1.bmp", -1, 100)
   move($_return1+RND(10,20), $_return2+RND(10,20))
   WAIT(RND(2,5))
   LCLICK ($_return1+RND(10,20), $_return2+RND(10,20))
   WAIT(RND(2,5))
END_IF
GetScreen
IF_PICTURE_IN (0, 0, 1280, 1024, "2.bmp", -1, 100)
   move($_return1+RND(10,20), $_return2+RND(10,20))
   WAIT(RND(2,5))
   LCLICK ($_return1+RND(10,20), $_return2+RND(10,20))
   WAIT(RND(2,5))
END_IF
WAIT(RND(2,5))
GetScreen
IF_PICTURE_IN (0, 0, 1280, 1024, "3.bmp", -1, 75)
   move($_return1+RND(10,15), $_return2+RND(10,15))
   WAIT(RND(2,5))
   LDOWN($_return1+RND(10,15), $_return2+RND(10,15))
   WAIT(RND(2,5))
   LUP (100, 670)
END_IF

$check = 0
WHILE($check = 0) // цикл выполняется если картинка найдена
   GETSCREEN
   IF_PICTURE_IN (0,0, 1280,1024, "4.bmp", -1, 100)
      move($_return1+RND(20,28), $_return2+RND(20,28))
      WAIT(RND(1,4))
      lclick($_return1+RND(20,28), $_return2+RND(20,28))
      WAITMS(100)
   ELSE
      $check = 1 // и прекращает выполняться если не найдена
   END_IF
END_CYC

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (100,670, 1280,1024, "5.bmp", -1, 100)
      lclick($_return1+RND(20,28), $_return2+RND(20,28))
      WAIT(1)
   ELSE
      $check = 1
   END_IF
END_CYC

GetScreen
IF_PICTURE_IN (100, 650, 1280, 1024, "6.bmp", -1, 50)
   move($_return1+RND(2,8), $_return2+RND(2,8))
   WAIT(RND(2,8))
   LCLICK($_return1+RND(2,8), $_return2+RND(2,8))
   WAIT(RND(5,10))
   KEYDOWN(#CTRL)
   KEYDOWN(#W)
   WAITMS(50)
   KEYUP(#W)
   KEYUP(#CTRL)
   WAIT(RND(2,8))
END_IF

GetScreen
IF_PICTURE_IN (100, 650, 1280, 1024, "7.bmp", -1, 50)
   move($_return1+RND(2,8), $_return2+RND(2,8))
   WAIT(RND(2,8))
   LCLICK($_return1+RND(2,8), $_return2+RND(2,8))
   WAIT(RND(5,10))
   KEYDOWN(#CTRL)
   KEYDOWN(#W)
   WAITMS(50)
   KEYUP(#W)
   KEYUP(#CTRL)
   WAIT(RND(2,8))
END_IF
HALT

1337

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Oraven, спасибо.

[spoiler]$check = 0
WHILE($check = 0) // цикл выполняется если картинка найдена
   GETSCREEN
   IF_PICTURE_IN (0,0, 1280,1024, "4.bmp", -1, 100)
      move($_return1+RND(20,28), $_return2+RND(20,28))
      WAIT(RND(1,4))
      lclick($_return1+RND(20,28), $_return2+RND(20,28))
      WAITMS(100)
   ELSE
      $check = 1 // и прекращает выполняться если не найдена
   END_IF
END_CYC[/spoiler]
К этому циклу возможно добавить ожидание картинку в течение нескольких минут, но если картинка появляется через 30 сек, чтобы сразу жал на нее?
или масло масленое с циклами выйдет?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Code: (clickermann) [Select]
$time = $_time_t + 60 // время на поиск 60 секунд
$check = 0
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (0,0, 1280,1024, "4.bmp", -1, 100)
      $check = 1
      move($_return1+RND(20,28), $_return2+RND(20,28))
      WAIT(RND(1,4))
      lclick($_return1+RND(20,28), $_return2+RND(20,28))
      WAITMS(100)
   ELSE
      IF($check = 1)
         $check = 0
         $time = $_time_t + 1
      ELSE
         WAITMS(50)
      END_IF
   END_IF
END_CYC

1337

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Oraven,

один раз находит картинку, выполняет действие, а потом цикл завершается. Почему то не хочет ее заново ожидать 60 секунд ( а  она появляется раз в 20-50 секунд в том же месте )

Что нетак ?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Вот так проще

Code: (clickermann) [Select]
$time = $_time_t + 60 // время на поиск 60 секунд
$check = 0
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (0,0, 1280,1024, "4.bmp", -1, 100)
      move($_return1+RND(20,28), $_return2+RND(20,28))
      WAIT(RND(1,4))
      lclick($_return1+RND(20,28), $_return2+RND(20,28))
      WAITMS(100)
      $time = $_time_t + 60 // снова заводим таймер
   ELSE
      WAITMS(50)
   END_IF
END_CYC
« Last Edit: December 28, 2015, 08:12:34 PM by Oraven »