Author Topic: помогите разобраться  (Read 1125 times)

0 Members and 1 Guest are viewing this topic.

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
помогите разобраться
« on: January 12, 2018, 11:18:52 AM »
Здравствуйте, помогите пожалуйста, как мне в подпрограмме "ход_победа_поражение" при нахождении картинки "победа" перейти к строке 180 "$time2 = $_time_t + 2", а при нахождении картинки "поражение" перейти к строке 108 "$check1 = 0"?
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"), 100)  //  поиск
         $check = 1
         IF($par6 = 1) // если  указан  $par6 = 1 то делать клик по найденной картинке  0 - нет клика
            LCLICK($_return1+5, $_return2)
            WAITMS(100)
         END_IF
      ELSE
         WAITMS(100)
      END_IF
   END_CYC
END_SUB

SUB(ход_победа_поражение)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (905,142, 946,163, "screens\рабочие\ваш ход.bmp", 100)
         $check = 1
         WAITMS(100)
      ELSE
         IF_PICTURE_IN (764,127, 892,158, "screens\рабочие\победа.bmp", 100)
            $check = 1
            WAITMS(500)
           
         ELSE
            IF_PICTURE_IN (764,127, 892,158, "screens\рабочие\поражение.bmp", 100)
               $check = 1
               WAITMS(1000)
               LCLICK(1155,388)  // 16514043  выйти
               GETSCREEN
               WHILE(PXL (950,415) ! $var20)
                  WAITMS (100)
                  GETSCREEN
               END_CYC
               
            END_IF
         END_IF
      END_IF
   END_CYC
END_SUB

SUB(продажа)
   $check2 = 0
   WHILE($check2 = 0)
      $check3 = 0
      WHILE($check3 = 0)
         GETSCREEN
         IF_PICTURE_IN (1042,381, 1173,422, "screens\рабочие\продать 2.bmp", 100)
            $check2 = 1
            $check3 = 1
            LCLICK($_return1+5, $_return2+5)
            WAITMS(1000)
            $time1 = $_time_t + 2 // таймер на 2 секунды
            WHILE($time1 > $_time_t)
               GETSCREEN
               IF_PICTURE_IN (914,233, 1240,530, "screens\рабочие\продать 2.bmp", 100)
                  $time1 = 0
                  $check2 = 1
                  LCLICK($_return1+5, $_return2+5)
                  WAITMS(100)
               ELSE
                  IF_PICTURE_IN (914,233, 1240,530, "screens\рабочие\отдать.bmp", 100)
                     $time1 = 0
                     $check2 = 1
                     WAITMS(100)
                     ожидание картинки (1191,163, 1284,280, "рабочие\закрыть", 1)
                     WAITMS(2000)
                     LCLICK(1078,352)  // 16300391  клик по предмету
                     WAITMS(100)
                     ожидание картинки (1098,264, 1249,465, "рабочие\забрать", 1)
                  ELSE
                     WAITMS(100)
                  END_IF
               END_IF
            END_CYC
         ELSE
            IF_PICTURE_IN (1053,326, 1101,377, "screens\рабочие\пустой слот трофея.bmp", 100)
               $check2 = 1
               $check3 = 1
               WAITMS(100)
            ELSE
               WAITMS(100)
            END_IF
         END_IF
      END_CYC
   END_CYC
END_SUB

//=============================================


FOR($a1=734,$a1<816,24) // вызов 4 тел по списку
   
   
   LCLICK(1250,$a1)  // координаты клика указываются при вызове + 23 пикселя вниз
   WAITMS(500)
   ожидание картинки (1226,654, 1438,842, "рабочие\в гости", 1)  //  поиск в гости
   
   WAITMS(2000)
   GETSCREEN
   $var20 =PXL(950,415) // запомнил цвет
   WAITMS(100)
   
   $check1 = 0
   WHILE($check1 = 0)
      $check = 0
      WHILE($check = 0)
         GETSCREEN
         IF_PIXEL_IN(740,215, 740,215, 0)  //  окно с мобом
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(100)
         ELSE
            IF_PIXEL_IN(1038,149,1038,149, 4394)  //  окно школы магии
               LCLICK(1251,100)  // 5356019
               WAITMS(100)
            ELSE
               LCLICK(619,569)  // 3942955    монстр
               WAITMS(100)
               WAITMS(1000)
            END_IF
         END_IF
      END_CYC
     
      $check = 0
      WHILE($check = 0)
         GETSCREEN
         IF_PICTURE_IN (773,226, 867,365, "screens\мобы\громовержец.bmp", 100)
            $check = 1
            $check1 = 1
            WAITMS(100)
            ожидание картинки (922,196, 1224,504, "рабочие\напасть", 1)
         ELSE
            IF_PICTURE_IN (773,226, 867,365, "screens\мобы\снежная ведьма.bmp", 100)
               $check = 1
               $check1 = 1
               WAITMS(100)
               ожидание картинки (922,196, 1224,504, "рабочие\напасть", 1)
            ELSE
               IF_PICTURE_IN (773,226, 867,365, "screens\мобы\элементаль воды.bmp", 100)
                  $check = 1
                  $check1 = 0
                  WAITMS(100)
                  ожидание картинки (922,196, 1224,504, "рабочие\прогнать", 1)
                  WAITMS(1000)
               ELSE
                  IF_PICTURE_IN (773,226, 867,365, "screens\мобы\элементаль воздуха.bmp", 100)
                     $check = 1
                     $check1 = 0
                     WAITMS(100)
                     ожидание картинки (922,196, 1224,504, "рабочие\прогнать", 1)
                     WAITMS(1000)
                  ELSE
                     IF_PICTURE_IN (773,226, 867,365, "screens\мобы\эвринома.bmp", 100)
                        $check = 1
                        $check1 = 0
                        WAITMS(100)
                        ожидание картинки (922,196, 1224,504, "рабочие\прогнать", 1)
                        WAITMS(1000)
                     END_IF
                  END_IF
               END_IF
            END_IF
         END_IF
      END_CYC
   END_CYC
   
   
   ход_победа_поражение()
   //=============================================
   система боя
   //=============================================
   
   ожидание картинки (764,127, 892,158, "рабочие\победа", 0)
   
   $time2 = $_time_t + 2 // таймер на 2 секунды
   WHILE($time2 > $_time_t)
      GETSCREEN
      IF_PICTURE_IN (1052,326,1101,377, "screens\дроп\мифрил.bmp", 100)
         $time2 = 0
         WAITMS(100)
         LCLICK($_return1, $_return2)
         WAITMS(500)
         ожидание картинки (1098,264, 1249,465, "рабочие\забрать", 1)
      ELSE
         IF_PICTURE_IN (1052,326,1101,377, "screens\дроп\ветвь.bmp", 100)
            $time2 = 0
            WAITMS(100)
            LCLICK($_return1, $_return2)
            WAITMS(500)
            ожидание картинки (1098,264, 1249,465, "рабочие\забрать", 1)
         ELSE
            IF_PICTURE_IN (1052,326,1101,377, "screens\дроп\свиток.bmp", 100)
               $time2 = 0
               WAITMS(100)
               LCLICK($_return1, $_return2)
               WAITMS(500)
               ожидание картинки (1098,264, 1249,465, "рабочие\забрать", 1)
            ELSE
               WAITMS(500)
            END_IF
         END_IF
      END_IF
   END_CYC
   IF($time2 ! 0)
      LCLICK(951,557)  // 12773631
      продажа()
   END_IF
   
   ожидание картинки (1052,326, 1101,377, "рабочие\пустой слот трофея", 0)
   WAITMS(500)
   ожидание картинки (1179,384, 1277,429, "рабочие\выйти", 1)
   
   
   GETSCREEN
   WHILE(PXL (950,415) ! $var20)
      WAITMS (100)
      GETSCREEN
   END_CYC
   
END_CYC
Заранее большое спасибо

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите разобраться
« Reply #1 on: January 12, 2018, 02:34:53 PM »
1. я сократил скрипт для вашего удобства, подпрограмма "ход_победа_поражение" вызывается несколько раз в "системе боя", по этому мне нужно что бы она так и оставалась
2. на строке 180 (у моего варианта) начинается поиск картинок в определённой области, их там очень много, более 80 шт, а вариантов действия после нахождения одной из 80 картинок всего 4 (продать, забрать, разобрать, вскрыть) возможно ли это облачить в  SWITCH, но обязательно с таймером на 2 сек.?
3. я так понимаю запись в лог номера хода это просто прихоть?

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите разобраться
« Reply #2 on: January 12, 2018, 04:20:45 PM »
значит нужно после каждого вызова подпрограммы ставить SWITCH?

LLlteйn

  • Освоившийся
  • **
  • Posts: 58
    • View Profile
Re: помогите разобраться
« Reply #3 on: January 12, 2018, 05:10:52 PM »
благодарю