Author Topic: помогите пожалуйста  (Read 5262 times)

0 Members and 1 Guest are viewing this topic.

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
помогите пожалуйста
« on: November 20, 2017, 09:16:55 PM »
народ помогите ни как не в дуплю как сделать так чтобы при поиске картинки "продать 1" если в течении 2х секунд искомая картинка не появится кликер должен снова перейти к метке GO5
вот сам скрипт:
Code: (clickermann) [Select]
SUB(ожидание картинки, $par1,$par2,$par3,$par4,$par5,$par6) // подпрограмма с параметрами
   GO4:
   $check = 0
   WHILE($check = 0)
      GETSCREEN ($par1,$par2,$par3,$par4)
      IF_PICTURE_IN ($par1,$par2,$par3,$par4,STRCONCAT("screens\",$par5,".bmp"), 75)  //  поиск
         $check = 1
         IF($par6= 1) // если  указан  $par6= 1 то делать клик по найденной картинке  0- нет клика
            LCLICK($_return1, $_return2)
            WAITMS(100)
         END_IF
      ELSE
         WAITMS(100)
      END_IF
   END_CYC
END_SUB



SUB(объединить)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (1033,528, 1379,693, "screens\рабочие\объединить.bmp", 75)
         $check = 1
         LCLICK($_return1+5, $_return2+5)
         WAITMS(100)
         MOVE(951,549)  // 12642047
         WAITMS(3000)
      END_IF
   END_CYC
END_SUB







SUB(продать)
   GO8:
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (688,189, 1381,523, "screens\рабочие\продать 1.bmp", 75)
         $check = 1
         LCLICK($_return1+5, $_return2+5)
         WAITMS(100)
         MOVE(951,549)  // 12642047
         WAITMS(100)
         $time = $_time_t + 1 // таймер на 1 секунд
         WHILE($time > $_time_t)
            GETSCREEN
            IF_PICTURE_IN (949,460, 1081,482, "screens\рабочие\продать 2.bmp", 75)
               $time = 0
               LCLICK($_return1, $_return2)
               WAITMS(500)
               MOVE(951,549)  // 12642047
               WAITMS(500)
            END_IF
         END_CYC
         IF($time ! 0)
            GOTO(GO8)
         END_IF
      END_IF
   END_CYC
END_SUB



SUB(продажа рабов в сундуке)
     
   GO5:
   
   $time = $_time_t + 2 // таймер на 2 секунд
   WHILE($time > $_time_t)
      GETSCREEN
      IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб девы.bmp", 75)
         $time = 0
         LCLICK($_return1, $_return2)
         WAITMS(100)
         продать()
         GOTO(GO5)
      ELSE
         IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб защитника.bmp", 75)
            $time = 0
            LCLICK($_return1, $_return2)
            WAITMS(100)
            продать()
            GOTO(GO5)
         ELSE
            IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб праздника.bmp", 75)
               $time = 0
               LCLICK($_return1, $_return2)
               WAITMS(100)
               продать()
               GOTO(GO5)
            ELSE
               IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб разрушителя.bmp", 75)
                  $time = 0
                  LCLICK($_return1, $_return2)
                  WAITMS(100)
                  продать()
                  GOTO(GO5)
               ELSE
                  IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб скорби.bmp", 75)
                     $time = 0
                     LCLICK($_return1, $_return2)
                     WAITMS(100)
                     продать()
                     GOTO(GO5)
                  ELSE
                     IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб ужасающего.bmp", 75)
                        $time = 0
                        LCLICK($_return1, $_return2)
                        WAITMS(100)
                        продать()
                        GOTO(GO5)
                     ELSE
                        IF_PICTURE_IN (687,190, 1213,449, "screens\рабочие\некупленный слот.bmp", 75)
                           $time = 0
                           WAITMS(100)
                           LCLICK(878,490)  // 2904698          1ая страница сундука
                           WAITMS(100)
                        END_IF
                     END_IF
                  END_IF
               END_IF
            END_IF
         END_IF
      END_IF
   END_CYC
   IF($time ! 0)
      LCLICK(1052,491)  // 2169104  следующая страница сундука
      WAITMS(1000)
      GOTO(GO5)
   END_IF
   
   
END_SUB





SUB(объединение в рюкзаке)
   ожидание картинки (980,549, 1020,584, "дроп\клетка с пригодными рабами", 1)
   WAITMS(500)
   объединить()
   
   ожидание картинки (1032,549, 1074,588, "дроп\клетка с пригодными рабами", 1)
   WAITMS(500)
   объединить()
   
   ожидание картинки (1088,550, 1126,586, "дроп\клетка с пригодными рабами", 1)
   WAITMS(500)
   объединить()
   
   ожидание картинки (1140,550, 1180,588, "дроп\клетка с пригодными рабами", 1)
   WAITMS(500)
   объединить()
   
   ожидание картинки (1194,549, 1233,585, "дроп\клетка с пригодными рабами", 1)
   WAITMS(500)
   объединить()
   
   ожидание картинки (980,603, 1021,638, "дроп\клетка с пригодными рабами", 1)
   WAITMS(500)
   объединить()
   
   ожидание картинки (1034,601, 1072,639, "дроп\клетка с пригодным рабом", 1)
   WAITMS(500)
   объединить()
   
END_SUB










FOR($a=0,$a<99)
   
   
   GO1:
   
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (983,549, 1234,640, "screens\дроп\клетка с пригодными рабами.bmp", 75)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(500)
      ELSE
         IF_PICTURE_IN (983,549, 1234,640, "screens\дроп\клетка с пригодным рабом.bmp", 75)
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(500)
         END_IF
      END_IF
   END_CYC
   
   
   $time = $_time_t + 1 // таймер на 1 секунд
   WHILE($time > $_time_t)
      GETSCREEN
      IF_PICTURE_IN (1034,527, 1185,666, "screens\рабочие\вскрыть.bmp", 75)
         $time = 0
         LCLICK($_return1, $_return2)
         WAITMS(100)
      END_IF
   END_CYC
   IF($time ! 0)
      GOTO(GO1)
   END_IF
   
   
   
   
   $time = $_time_t + 5 // таймер на 5 секунд
   WHILE($time > $_time_t)
      GETSCREEN
      IF_PIXEL_IN(950,345, 952,347, 8242155)  //  ожидание вскрытия
         $time = 0
         WAITMS(100)
         $check = 0
         WHILE($check = 0)
            GETSCREEN
            IF_PIXEL_IN(950,345, 952,347, 8633312)
               $check = 1
               WAITMS(100)
            END_IF
         END_CYC
      ELSE
         IF_PIXEL_IN(943,344, 945,346, 12642047)  //   нет свободных слотов
            $time = 0
            WAITMS(100)
            LCLICK(929,403)  // 7165237     ок
            WAITMS(100)
            MOVE(951,549)  // 12642047
            WAITMS(3000)
            продажа рабов в сундуке()
            WAITMS(100)
         END_IF
      END_IF
   END_CYC
   IF($time ! 0)
      GOTO(GO1)
   END_IF
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
END_CYC


объединение в рюкзаке()




GO3:
LCLICK(76,49)  // 987432      обновить страницу
WAITMS(500)

GO2:
$time = $_time_t + 60 // таймер на 60 секунд
WHILE($time > $_time_t)
   
   MOVE(967,503)
   WAITMS(500)
   GETSCREEN
   IF_PIXEL_IN(962,498, 972,508, 81118, 81614, 81111, 13084830, 16184304)     // арена
      $time = 0
      WAITMS(500)
      LCLICK(553,158)  // 262402  персонаж
      WAITMS(500)
      $check = 0
      WHILE($check = 0)
         GETSCREEN
         IF_PIXEL_IN(865,93, 875,103, 70185)  //  сундук
            $check = 1
            WAITMS(500)
            LCLICK($_return1, $_return2)
            WAITMS(1000)
         END_IF
      END_CYC
     
   ELSE
      MOVE(632,594)
      WAITMS(500)
      GETSCREEN
      IF_PIXEL_IN(632,594, 632,594, 9192960)      // не зашёл в игру
         $time = 0
         LCLICK($_return1, $_return2)
         WAITMS(100)
         GOTO(GO2)
      ELSE
         MOVE(794,156)  // 10743039
         WAITMS(500)
         GETSCREEN
         IF_PIXEL_IN(791,149, 931,170, 2401224, 3595007, 6024447, 9568255, 8383743)    // забор ежедневного подарка
            $time = 0
            WAITMS(500)
            LCLICK(912,607)  // 3684408   забрать ежедневный подарок
            WAITMS(500)
            GOTO(GO3)
         END_IF
      END_IF
   END_IF
END_CYC
IF($time ! 0)
   GOTO(GO3)
END_IF


Заранее благодарю
« Last Edit: December 08, 2017, 07:49:36 PM by LLlteйn »

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #1 on: November 21, 2017, 06:02:33 AM »
живу как могу

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: помогите пожалуйста
« Reply #2 on: November 21, 2017, 08:12:24 AM »
Нельзя выпрыгивать из циклов и подпрограмм через гото, или впрыгивать куда тебе заблагорассудится.

Избавил код от ненужных гото и добавил таймер который и ты просил.
Code: (clickermann) [Select]
SUB(ожидание_картинки, $par1,$par2,$par3,$par4,$par5,$par6) // подпрограмма с параметрами
   $check = 0
   WHILE($check = 0)
      GETSCREEN ($par1,$par2,$par3,$par4)
      IF_PICTURE_IN ($par1,$par2,$par3,$par4,STRCONCAT("screens\",$par5,".bmp"), 75)  // "  поиск
         $check = 1
         IF($par6= 1) // если  указан  $par6= 1 то делать клик по найденной картинке  0- нет клика
            LCLICK($_return1, $_return2)
            WAITMS(100)
         END_IF
      ELSE
         WAITMS(100)
      END_IF
   END_CYC
END_SUB

SUB(объединить)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (1033,528, 1379,693, "screens\рабочие\объединить.bmp", 75)
         $check = 1
         LCLICK($_return1+5, $_return2+5)
         WAITMS(100)
         MOVE(951,549)  // 12642047
         WAITMS(3000)
      END_IF
   END_CYC
END_SUB

SUB(продать)
   $time4 = $_time_t + 2 // таймер на 2 секунды
   WHILE($time4 > $_time_t)
      GETSCREEN
      IF_PICTURE_IN (688,189, 1381,523, "screens\рабочие\продать 1.bmp", 75)
         $time4 = 0
         LCLICK($_return1+5, $_return2+5)
         WAITMS(100)
         MOVE(951,549)  // 12642047
         WAITMS(100)
         $time1 = $_time_t + 1 // таймер на 1 секунд
         WHILE($time1 > $_time_t)
            GETSCREEN
            IF_PICTURE_IN (949,460, 1081,482, "screens\рабочие\продать 2.bmp", 75)
               $time1 = 0
               LCLICK($_return1, $_return2)
               WAITMS(500)
               MOVE(951,549)  // 12642047
               WAITMS(500)
            END_IF
         END_CYC
         IF($time1 ! 0)
            $time4 = $_time_t + 2 // таймер на 2 секунды
         END_IF
      END_IF
   END_CYC
END_SUB

SUB(продажа_рабов_в_сундуке)
   $check2 = 0
   WHILE($check2 = 0)
      $time2 = $_time_t + 2 // таймер на 2 секунд
      WHILE($time2 > $_time_t)
         GETSCREEN
         IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб девы.bmp", 75)
            $time2 = 1
            LCLICK($_return1, $_return2)
            WAITMS(100)
            продать()
         ELSE
            IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб защитника.bmp", 75)
               $time2 = 1
               LCLICK($_return1, $_return2)
               WAITMS(100)
               продать()
            ELSE
               IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб праздника.bmp", 75)
                  $time2 = 1
                  LCLICK($_return1, $_return2)
                  WAITMS(100)
                  продать()
               ELSE
                  IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб разрушителя.bmp", 75)
                     $time2 = 1
                     LCLICK($_return1, $_return2)
                     WAITMS(100)
                     продать()
                  ELSE
                     IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб скорби.bmp", 75)
                        $time2 = 1
                        LCLICK($_return1, $_return2)
                        WAITMS(100)
                        продать()
                     ELSE
                        IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб ужасающего.bmp", 75)
                           $time2 = 1
                           LCLICK($_return1, $_return2)
                           WAITMS(100)
                           продать()
                        ELSE
                           IF_PICTURE_IN (687,190, 1213,449, "screens\рабочие\некупленный слот.bmp", 75)
                              $time2 = 0
                              $check2 = 1
                              WAITMS(100)
                              LCLICK(878,490)  // 2904698          1ая страница сундука
                              WAITMS(100)
                           END_IF
                        END_IF
                     END_IF
                  END_IF
               END_IF
            END_IF
         END_IF
      END_CYC
      IF($time2 ! 0)
         LCLICK(1052,491)  // 2169104  следующая страница сундука
         WAITMS(1000)
      END_IF
   END_CYC
END_SUB

SUB(объединение_в_рюкзаке)
   ожидание_картинки (980,549, 1020,584, "дроп\клетка с пригодными рабами", 1)
   WAITMS(500)
   объединить()
   
   ожидание_картинки (1032,549, 1074,588, "дроп\клетка с пригодными рабами", 1)
   WAITMS(500)
   объединить()
   
   ожидание_картинки (1088,550, 1126,586, "дроп\клетка с пригодными рабами", 1)
   WAITMS(500)
   объединить()
   
   ожидание_картинки (1140,550, 1180,588, "дроп\клетка с пригодными рабами", 1)
   WAITMS(500)
   объединить()
   
   ожидание_картинки (1194,549, 1233,585, "дроп\клетка с пригодными рабами", 1)
   WAITMS(500)
   объединить()
   
   ожидание_картинки (980,603, 1021,638, "дроп\клетка с пригодными рабами", 1)
   WAITMS(500)
   объединить()
   
   ожидание_картинки (1034,601, 1072,639, "дроп\клетка с пригодным рабом", 1)
   WAITMS(500)
   объединить()
   
END_SUB

FOR($a=0,$a<99)
   
   GO1:
   
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (983,549, 1234,640, "screens\дроп\клетка с пригодными рабами.bmp", 75)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(500)
      ELSE
         IF_PICTURE_IN (983,549, 1234,640, "screens\дроп\клетка с пригодным рабом.bmp", 75)
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(500)
         END_IF
      END_IF
   END_CYC
   
   $time = $_time_t + 1 // таймер на 1 секунд
   WHILE($time > $_time_t)
      GETSCREEN
      IF_PICTURE_IN (1034,527, 1185,666, "screens\рабочие\вскрыть.bmp", 75)
         $time = 0
         LCLICK($_return1, $_return2)
         WAITMS(100)
      END_IF
   END_CYC
   IF($time ! 0)
      GOTO(GO1)
   END_IF
   
   $time3 = $_time_t + 5 // таймер на 5 секунд
   WHILE($time3 > $_time_t)
      GETSCREEN
      IF_PIXEL_IN(950,345, 952,347, 8242155)  //  ожидание вскрытия
         $time3 = 0
         WAITMS(100)
         $check = 0
         WHILE($check = 0)
            GETSCREEN
            IF_PIXEL_IN(950,345, 952,347, 8633312)
               $check = 1
               WAITMS(100)
            END_IF
         END_CYC
      ELSE
         IF_PIXEL_IN(943,344, 945,346, 12642047)  //   нет свободных слотов
            $time3 = 0
            WAITMS(100)
            LCLICK(929,403)  // 7165237     ок
            WAITMS(100)
            MOVE(951,549)  // 12642047
            WAITMS(3000)
            продажа_рабов_в_сундуке()
            WAITMS(100)
         END_IF
      END_IF
   END_CYC
   IF($time ! 0)
      GOTO(GO1)
   END_IF
   
END_CYC

объединение_в_рюкзаке()

$check3 = 0
WHILE($check3 = 0)
   
   LCLICK(76,49)  // 987432      обновить страницу
   WAITMS(500)
   
   $time = $_time_t + 60 // таймер на 60 секунд
   WHILE($time > $_time_t)
     
      MOVE(967,503)
      WAITMS(500)
      GETSCREEN
      IF_PIXEL_IN(962,498, 972,508, 81118, 81614, 81111, 13084830, 16184304)     // арена
         $time = 0
         WAITMS(500)
         LCLICK(553,158)  // 262402  персонаж
         WAITMS(500)
         $check = 0
         WHILE($check = 0)
            GETSCREEN
            IF_PIXEL_IN(865,93, 875,103, 70185)  //  сундук
               $check = 1
               WAITMS(500)
               LCLICK($_return1, $_return2)
               WAITMS(1000)
            END_IF
         END_CYC
         
      ELSE
         MOVE(632,594)
         WAITMS(500)
         GETSCREEN
         IF_PIXEL_IN(632,594, 632,594, 9192960)      // не зашёл в игру
            LCLICK($_return1, $_return2)
            WAITMS(100)
            $time = $_time_t + 60
         ELSE
            MOVE(794,156)  // 10743039
            WAITMS(500)
            GETSCREEN
            IF_PIXEL_IN(791,149, 931,170, 2401224, 3595007, 6024447, 9568255, 8383743)    // забор ежедневного подарка
               $time = 1
               WAITMS(500)
               LCLICK(912,607)  // 3684408   забрать ежедневный подарок
               WAITMS(500)
            END_IF
         END_IF
      END_IF
   END_CYC
   IF($time = 0)
      $check3 = 1
   END_IF
END_CYC
« Last Edit: November 22, 2017, 06:06:49 PM by Vint »

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #3 on: November 21, 2017, 06:53:57 PM »
благодарю

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #4 on: November 22, 2017, 06:03:26 PM »
ребята помогите, как исправить мой срипт написанный выше, нужно чтобы он искал картинку "продать 1" в течении 2х секунд, если не находит то он должен перейти к метке GO5, так же нужно с поиском картинки "объединить", но только переход к метке GO4, тот скрипт который исправил Oraven работает не корректно (он находит всего одного из 50ти возможных и переходит к следующей странице сундука и на каждой странице находит по одному и продаёт и так далее до конца сундука)
заранее благодарю

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #5 on: November 22, 2017, 06:06:14 PM »
желательно сильно не затронув остальную часть скрипта

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: помогите пожалуйста
« Reply #6 on: November 23, 2017, 07:55:24 AM »
Действительно в моем случаи если "продать 1" за 2 сек не найдено происходит нажатие "LCLICK(1052,491)  // 2169104  следующая страница сундука"
Но это легко исправить.

Зачем тебе куча не нужных подпрограмм? Например "SUB(объединение_в_рюкзаке)" вызов всего один.
Подпрограмма "объединить" идет сразу же за "ожидание_картинки". Почему бы не объединить это в одну подпрограмму, и тут уже можно написать цикл возврата.

Code: (clickermann) [Select]
SUB(ожидание_картинки, $par1,$par2,$par3,$par4,$par5,$par6) // подпрограмма с параметрами
   $check1 = 0
   WHILE($check1 = 0)
      $check2 = 0
      WHILE($check2 = 0)
         GETSCREEN ($par1,$par2,$par3,$par4)
         IF_PICTURE_IN ($par1,$par2,$par3,$par4,STRCONCAT("screens\",$par5,".bmp"), 75)  //" поиск
            $check2 = 1
            IF($par6= 1) // если  указан  $par6= 1 то делать клик по найденной картинке  0- нет клика
               LCLICK($_return1, $_return2)
               WAITMS(100)
            END_IF
         ELSE
            WAITMS(100)
         END_IF
      END_CYC
      WAITMS(500)
     
      $time = $_time_t + 2 // таймер на 2 секунды
      WHILE($time > $_time_t)
         GETSCREEN
         IF_PICTURE_IN (1033,528, 1379,693, "screens\рабочие\объединить.bmp", 75)
            $time = 0
            $check1 = 1
            LCLICK($_return1+5, $_return2+5)
            WAITMS(100)
            MOVE(951,549)  // 12642047
            WAITMS(3000)
         ELSE
            WAITMS(50)
         END_IF
      END_CYC
   END_CYC
END_SUB

SUB(продать)
   $time4 = $_time_t + 2 // таймер на 2 секунды
   WHILE($time4 > $_time_t)
      GETSCREEN
      IF_PICTURE_IN (688,189, 1381,523, "screens\рабочие\продать 1.bmp", 75)
         $time4 = 0
         LCLICK($_return1+5, $_return2+5)
         WAITMS(100)
         MOVE(951,549)  // 12642047
         WAITMS(100)
         $time1 = $_time_t + 1 // таймер на 1 секунд
         WHILE($time1 > $_time_t)
            GETSCREEN
            IF_PICTURE_IN (949,460, 1081,482, "screens\рабочие\продать 2.bmp", 75)
               $time1 = 0
               LCLICK($_return1, $_return2)
               WAITMS(500)
               MOVE(951,549)  // 12642047
               WAITMS(500)
            END_IF
         END_CYC
         IF($time1 ! 0)
            $time4 = $_time_t + 2 // таймер на 2 секунды
         END_IF
      END_IF
   END_CYC
   IF($time4 ! 0)
      $time2 = 0
   END_IF
END_SUB

SUB(продажа_рабов_в_сундуке)
   $check2 = 0
   WHILE($check2 = 0)
      $time2 = $_time_t + 2 // таймер на 2 секунд
      WHILE($time2 > $_time_t)
         GETSCREEN
         IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб девы.bmp", 75)
            $time2 = 1
            LCLICK($_return1, $_return2)
            WAITMS(100)
            продать()
         ELSE
            IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб защитника.bmp", 75)
               $time2 = 1
               LCLICK($_return1, $_return2)
               WAITMS(100)
               продать()
            ELSE
               IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб праздника.bmp", 75)
                  $time2 = 1
                  LCLICK($_return1, $_return2)
                  WAITMS(100)
                  продать()
               ELSE
                  IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб разрушителя.bmp", 75)
                     $time2 = 1
                     LCLICK($_return1, $_return2)
                     WAITMS(100)
                     продать()
                  ELSE
                     IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб скорби.bmp", 75)
                        $time2 = 1
                        LCLICK($_return1, $_return2)
                        WAITMS(100)
                        продать()
                     ELSE
                        IF_PICTURE_IN (687,190, 1213,449, "screens\дроп\пригодный раб ужасающего.bmp", 75)
                           $time2 = 1
                           LCLICK($_return1, $_return2)
                           WAITMS(100)
                           продать()
                        ELSE
                           IF_PICTURE_IN (687,190, 1213,449, "screens\рабочие\некупленный слот.bmp", 75)
                              $time2 = 0
                              $check2 = 1
                              WAITMS(100)
                              LCLICK(878,490)  // 2904698          1ая страница сундука
                              WAITMS(100)
                           END_IF
                        END_IF
                     END_IF
                  END_IF
               END_IF
            END_IF
         END_IF
      END_CYC
      IF($time2 ! 0)
         LCLICK(1052,491)  // 2169104  следующая страница сундука
         WAITMS(1000)
      END_IF
   END_CYC
END_SUB

FOR($a=0,$a<99)
   
   GO1:
   
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (983,549, 1234,640, "screens\дроп\клетка с пригодными рабами.bmp", 75)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(500)
      ELSE
         IF_PICTURE_IN (983,549, 1234,640, "screens\дроп\клетка с пригодным рабом.bmp", 75)
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(500)
         END_IF
      END_IF
   END_CYC
   
   $time = $_time_t + 1 // таймер на 1 секунд
   WHILE($time > $_time_t)
      GETSCREEN
      IF_PICTURE_IN (1034,527, 1185,666, "screens\рабочие\вскрыть.bmp", 75)
         $time = 0
         LCLICK($_return1, $_return2)
         WAITMS(100)
      END_IF
   END_CYC
   IF($time ! 0)
      GOTO(GO1)
   END_IF
   
   $time3 = $_time_t + 5 // таймер на 5 секунд
   WHILE($time3 > $_time_t)
      GETSCREEN
      IF_PIXEL_IN(950,345, 952,347, 8242155)  //  ожидание вскрытия
         $time3 = 0
         WAITMS(100)
         $check = 0
         WHILE($check = 0)
            GETSCREEN
            IF_PIXEL_IN(950,345, 952,347, 8633312)
               $check = 1
               WAITMS(100)
            END_IF
         END_CYC
      ELSE
         IF_PIXEL_IN(943,344, 945,346, 12642047)  //   нет свободных слотов
            $time3 = 0
            WAITMS(100)
            LCLICK(929,403)  // 7165237     ок
            WAITMS(100)
            MOVE(951,549)  // 12642047
            WAITMS(3000)
            продажа_рабов_в_сундуке()
            WAITMS(100)
         END_IF
      END_IF
   END_CYC
   IF($time ! 0)
      GOTO(GO1)
   END_IF
   
END_CYC

ожидание_картинки (980,549, 1020,584, "дроп\клетка с пригодными рабами", 1)
ожидание_картинки (1032,549, 1074,588, "дроп\клетка с пригодными рабами", 1)
ожидание_картинки (1088,550, 1126,586, "дроп\клетка с пригодными рабами", 1)
ожидание_картинки (1140,550, 1180,588, "дроп\клетка с пригодными рабами", 1)
ожидание_картинки (1194,549, 1233,585, "дроп\клетка с пригодными рабами", 1)
ожидание_картинки (980,603, 1021,638, "дроп\клетка с пригодными рабами", 1)
ожидание_картинки (1034,601, 1072,639, "дроп\клетка с пригодным рабом", 1)

$check3 = 0
WHILE($check3 = 0)
   
   LCLICK(76,49)  // 987432      обновить страницу
   WAITMS(500)
   
   $time = $_time_t + 60 // таймер на 60 секунд
   WHILE($time > $_time_t)
     
      MOVE(967,503)
      WAITMS(500)
      GETSCREEN
      IF_PIXEL_IN(962,498, 972,508, 81118, 81614, 81111, 13084830, 16184304)     // арена
         $time = 0
         WAITMS(500)
         LCLICK(553,158)  // 262402  персонаж
         WAITMS(500)
         $check = 0
         WHILE($check = 0)
            GETSCREEN
            IF_PIXEL_IN(865,93, 875,103, 70185)  //  сундук
               $check = 1
               WAITMS(500)
               LCLICK($_return1, $_return2)
               WAITMS(1000)
            END_IF
         END_CYC
         
      ELSE
         MOVE(632,594)
         WAITMS(500)
         GETSCREEN
         IF_PIXEL_IN(632,594, 632,594, 9192960)      // не зашёл в игру
            LCLICK($_return1, $_return2)
            WAITMS(100)
            $time = $_time_t + 60
         ELSE
            MOVE(794,156)  // 10743039
            WAITMS(500)
            GETSCREEN
            IF_PIXEL_IN(791,149, 931,170, 2401224, 3595007, 6024447, 9568255, 8383743)    // забор ежедневного подарка
               $time = 1
               WAITMS(500)
               LCLICK(912,607)  // 3684408   забрать ежедневный подарок
               WAITMS(500)
            END_IF
         END_IF
      END_IF
   END_CYC
   IF($time = 0)
      $check3 = 1
   END_IF
END_CYC
« Last Edit: November 23, 2017, 09:12:51 AM by Vint »

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #7 on: November 23, 2017, 04:09:33 PM »
благодарю за помощь, просто я не очень разбираюсь и мне так проще и спасибо за идеи

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #8 on: December 04, 2017, 06:35:29 PM »
Здравствуйте скажите а как нужно или можно сделать правильно?
Дело в том что нужно что бы в подпрограмме отсутствовали метки GO, но нужно что бы в 3х из 4х случаев подпрограмма зацикливалась на самой себе. Вот пример:

Code: (clickermann) [Select]

SUB(проверка победы или поражения)
GO1:
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (1056,133, 1141,164, "screens\рабочие\арена.bmp", 75)
         $check = 1
         WAITMS(100)
         LCLICK(1142,528)  // 4106455  в бой
         WAITMS(1000)
         GOTO(GO1)
      ELSE
         IF_PICTURE_IN (1056,133, 1141,164, "screens\рабочие\победа.bmp", 75)
            $check = 1
            WAITMS(100)
            LCLICK(1156,482)  // 2097234
            WAITMS(1000)
            GOTO(GO1)
         ELSE
            IF_PICTURE_IN (1056,133, 1141,164, "screens\рабочие\поражение.bmp", 75)
               $check = 1
               WAITMS(100)
               LCLICK(1156,482)  // 2097234
               WAITMS(1000)
               GOTO(GO1)
            ELSE
               IF_PICTURE_IN (1056,133, 1141,164, "screens\рабочие\поиск оппонента.bmp", 75)
                  $check = 1
                  WAITMS(100)
               END_IF
            END_IF
         END_IF
      END_IF
   END_CYC
END_SUB
« Last Edit: December 04, 2017, 06:38:05 PM by LLlteйn »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: помогите пожалуйста
« Reply #9 on: December 04, 2017, 06:42:47 PM »
Всё просто. В твоём коде уже всё есть.
Осталось убрать лишнее.
Убрать метку GO1:, и все GOTO(GO1)
Убрать $check = 1 там, где нужно зацикливание.
Здесь у тебя создан цикл, если $check станет равна не 0, цикл завершится.
Управляй своим кодом сам, а не плыви по волнам. Нужно прервать цикл в последнем условии, значит там и делаешь выход стр. 29
$check = 1
А не везде, где попало.
« Last Edit: December 04, 2017, 06:45:06 PM by Vint »


LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #10 on: December 04, 2017, 07:03:51 PM »
благодарю, скажите а есть способ проверки всех картинок находящихся в определённой папке и как это можно реализовать?

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #11 on: December 04, 2017, 08:08:03 PM »
Народ, я знаю что из подпрограмм нельзя выпрыгивать и мне показывали как выйти из неё  и перейти к нужной метке, но как быть когда в подпрограмме 2 метки к которым нужно перейти в двух разных случаях?
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (906,143, 946,161, "screens\рабочие\ваш ход.bmp", 75)
      $check = 1
      WAITMS(100)
   ELSE
      IF_PICTURE_IN (768,126, 893,158, "screens\рабочие\победа.bmp", 75)
         $check = 1
         WAITMS(500)
         GOTO(GO3)
      ELSE
         IF_PICTURE_IN (768,126, 893,158, "screens\рабочие\поражение.bmp", 75)
            $check = 1
            WAITMS(100)
            LCLICK(1156,482)  // 2097234  новый соперник
            WAITMS(500)
            GOTO(GO1)
         END_IF
      END_IF
   END_IF
END_CYC
Заранее благодарю
« Last Edit: December 04, 2017, 10:56:48 PM by LLlteйn »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: помогите пожалуйста
« Reply #12 on: December 05, 2017, 07:38:46 AM »
благодарю, скажите а есть способ проверки всех картинок находящихся в определённой папке и как это можно реализовать?

Будет нормально работать только в последней бета версии кликера. v4.13 и выше
http://crapware.aidf.org/forum/index.php?topic=356.msg24549#msg24549

Папка "Images" должна находиться в папке скрипта.
Code: (clickermann) [Select]
UNDEFINE($arr_Images)
GETFILELIST($arr_Images, "Images\*.bmp") // Получаем массив имен файлов в указанной папке
GETSCREEN
FOR($a=0,$a<ARRSIZE($arr_Images))
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT("Images\", $arr_Images[$a]), -1, 100)
      LCLICK($_return1, $_return2)
      WAITMS(100)
     $a=ARRSIZE($arr_Images) // Прерываем поиск после нахождения картинки. Выходим из цикла.
   END_IF
END_CYC
« Last Edit: December 05, 2017, 07:41:26 AM by Oraven »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: помогите пожалуйста
« Reply #13 on: December 05, 2017, 07:40:53 AM »
Народ, я знаю что из подпрограмм нельзя выпрыгивать и мне показывали как выйти из неё  и перейти к нужной метке, но как быть когда в подпрограмме 2 метки к которым нужно перейти в двух разных случаях?

Присваиваем в разных случаях переменной $check свое значение. Таким образом корректно выходим из цикла, а условие после цикла позволят использовать ГОТО без глюков.
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (906,143, 946,161, "screens\рабочие\ваш ход.bmp", 75)
      $check = 1
      WAITMS(100)
   ELSE
      IF_PICTURE_IN (768,126, 893,158, "screens\рабочие\победа.bmp", 75)
         $check = 2 // Присваиваем $check значение 2
         WAITMS(500)
      ELSE
         IF_PICTURE_IN (768,126, 893,158, "screens\рабочие\поражение.bmp", 75)
            $check = 3
            WAITMS(100)
            LCLICK(1156,482)  // 2097234  новый соперник
            WAITMS(500)
         ELSE
            WAITMS(50)
         END_IF
      END_IF
   END_IF
END_CYC

IF($check = 2) // Если в итоге $check равна 2 то выполняем это
   GOTO(GO3)
END_IF
IF($check = 3)
   GOTO(GO1)
END_IF

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите пожалуйста
« Reply #14 on: December 05, 2017, 09:58:02 AM »
Благодарю, скажите я так понимаю "$arr_Images" это сама папка с файлами которые нужно будит проверить, а если у меня папка в папке то здесь нужно будет указывать "$arr_Images_(название папки второй папки)" или это переносится в "Images\(название папки второй папки)\*.bmp" и второй вопрос если у меня установлен таймер поиска в течении 5ти секунд и нужно провести поиск, скажем, в трёх разных папках, как это более правильно реализовать?