Author Topic: Подскажите что не так...  (Read 2094 times)

0 Members and 1 Guest are viewing this topic.

Optibater

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Подскажите что не так...
« on: October 11, 2016, 01:09:14 AM »
Доброй ночи всем!

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

Code: (clickermann) [Select]
SUB(boy, 2)
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PICTURE_IN (841,128, 886,156, "6.bmp", -1, 95) // Если на экране есть 6.bmp то цыкл выполняется по кругу, иначе идет дальше
KEYPRESS(#ENTER)
WAITMS(300)
KEYPRESS(#ENTER)
WAITMS(100)

IF_PICTURE_IN (65,104, 211,274, "10.bmp", -1, 100)  // находит 10.bmp и кликает на 7.bmp
    IF_PICTURE_IN (676,318, 742,361, "7.bmp", -1, 100)
     LCLICK($_return1+7, $_return2+7)
      WAITMS(RND(500,600))

IF_PICTURE_IN (432,316, 479,353, "1.bmp", -1, 95) //просто кликает 1.bmp если есть
   LCLICK($_return1+7, $_return2+7)
   WAITMS(300)

IF_PICTURE_IN (475,319, 522,353, "5.bmp", -1, 95) //просто кликает 5.bmp если есть
   LCLICK($_return1+7, $_return2+7)
   WAITMS(300)

IF_PICTURE_IN (510,104, 864,237, "vernutsia.bmp", -1, 95) //просто кликает vernutsia.bmp если есть
   LCLICK($_return1+7, $_return2+7)
   WAITMS(300)

ELSE

$check = 1
wait(500)
END_IF
END_IF
END_IF
END_IF
END_IF
END_CYC
END_SUB
« Last Edit: October 11, 2016, 12:15:06 PM by Oraven »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
посчитай, сколько у тебя условий IF_PICTURE_IN, и сколько завершений этих условий END_IF. чегото не хватает.
используй кнопку "расставить отсупы" (волшебная палочка) в редакторе, и все встанет на свои места. и станет ясно, что чегото не хватает.

Code: (clickermann) [Select]
SUB(boy, 2)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (841,128, 886,156, "6.bmp", -1, 95) // Если на экране есть 6.bmp то цыкл выполняется по кругу, иначе идет дальше
         KEYPRESS(#ENTER)
         WAITMS(300)
         KEYPRESS(#ENTER)
         WAITMS(100)
         
         IF_PICTURE_IN (65,104, 211,274, "10.bmp", -1, 100)  // находит 10.bmp и кликает на 7.bmp
            IF_PICTURE_IN (676,318, 742,361, "7.bmp", -1, 100)
               LCLICK($_return1+7, $_return2+7)
               WAITMS(RND(500,600))
               
               IF_PICTURE_IN (432,316, 479,353, "1.bmp", -1, 95) //просто кликает 1.bmp если есть
                  LCLICK($_return1+7, $_return2+7)
                  WAITMS(300)
                 
                  IF_PICTURE_IN (475,319, 522,353, "5.bmp", -1, 95) //просто кликает 5.bmp если есть
                     LCLICK($_return1+7, $_return2+7)
                     WAITMS(300)
                     
                     IF_PICTURE_IN (510,104, 864,237, "vernutsia.bmp", -1, 95) //просто кликает vernutsia.bmp если есть
                        LCLICK($_return1+7, $_return2+7)
                        WAITMS(300)
                       
                     ELSE
                       
                        $check = 1
                        wait(500)
                     END_IF
                  END_IF
               END_IF
            END_IF
         END_IF
      END_IF
   END_CYC
END_SUB

возможно я вставил END_IF не там где требуется, зависит от поставленной задачи.



а вот судя по этой цитате:
Quote
Если на экране есть 6.bmp то цыкл выполняется по кругу, иначе идет дальше
то должно быть вот так
Code: (clickermann) [Select]
SUB(boy, 2)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (841,128, 886,156, "6.bmp", -1, 95) // Если на экране есть 6.bmp то цыкл выполняется по кругу, иначе идет дальше
         KEYPRESS(#ENTER)
         WAITMS(300)
         KEYPRESS(#ENTER)
         WAITMS(100)
         
         IF_PICTURE_IN (65,104, 211,274, "10.bmp", -1, 100)  // находит 10.bmp и кликает на 7.bmp
            IF_PICTURE_IN (676,318, 742,361, "7.bmp", -1, 100)
               LCLICK($_return1+7, $_return2+7)
               WAITMS(RND(500,600))
               
               IF_PICTURE_IN (432,316, 479,353, "1.bmp", -1, 95) //просто кликает 1.bmp если есть
                  LCLICK($_return1+7, $_return2+7)
                  WAITMS(300)
                 
                  IF_PICTURE_IN (475,319, 522,353, "5.bmp", -1, 95) //просто кликает 5.bmp если есть
                     LCLICK($_return1+7, $_return2+7)
                     WAITMS(300)
                     
                     IF_PICTURE_IN (510,104, 864,237, "vernutsia.bmp", -1, 95) //просто кликает vernutsia.bmp если есть
                        LCLICK($_return1+7, $_return2+7)
                        WAITMS(300)
                       
                       
                     END_IF
                  END_IF
               END_IF
            END_IF
         END_IF
      ELSE         
         $check = 1
         wait(500)
      END_IF
   END_CYC
END_SUB

« Last Edit: October 11, 2016, 01:36:30 AM by dramster »

Optibater

  • Освоившийся
  • **
  • Posts: 22
    • View Profile

а вот судя по этой цитате:
Quote
Если на экране есть 6.bmp то цыкл выполняется по кругу, иначе идет дальше
то должно быть вот так
Code: (clickermann) [Select]
SUB(boy, 2)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (841,128, 886,156, "6.bmp", -1, 95) // Если на экране есть 6.bmp то цыкл выполняется по кругу, иначе идет дальше
         KEYPRESS(#ENTER)
         WAITMS(300)
         KEYPRESS(#ENTER)
         WAITMS(100)
         
         IF_PICTURE_IN (65,104, 211,274, "10.bmp", -1, 100)  // находит 10.bmp и кликает на 7.bmp
            IF_PICTURE_IN (676,318, 742,361, "7.bmp", -1, 100)
               LCLICK($_return1+7, $_return2+7)
               WAITMS(RND(500,600))
               
               IF_PICTURE_IN (432,316, 479,353, "1.bmp", -1, 95) //просто кликает 1.bmp если есть
                  LCLICK($_return1+7, $_return2+7)
                  WAITMS(300)
                 
                  IF_PICTURE_IN (475,319, 522,353, "5.bmp", -1, 95) //просто кликает 5.bmp если есть
                     LCLICK($_return1+7, $_return2+7)
                     WAITMS(300)
                     
                     IF_PICTURE_IN (510,104, 864,237, "vernutsia.bmp", -1, 95) //просто кликает vernutsia.bmp если есть
                        LCLICK($_return1+7, $_return2+7)
                        WAITMS(300)
                       
                       
                     END_IF
                  END_IF
               END_IF
            END_IF
         END_IF
      ELSE         
         $check = 1
         wait(500)
      END_IF
   END_CYC
END_SUB

Теперь последние 3 условия IF_PICTURE_IN не работают... Эх ладно, буду уже днем ковырять дальше.

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Подскажите что не так...
« Reply #3 on: October 11, 2016, 01:19:40 PM »
Quote
Теперь последние 3 условия IF_PICTURE_IN не работают... Эх ладно, буду уже днем ковырять дальше.
используй логирование, чтобы точно знать, какие картинки у тебя находит, а какие нет. если не срабатывают последние 3 условия, то скорее всего "7.bmp" не находит, а значит не ищет и "1.bmp","5.bmp","vernutsia.bmp". немного поджредактируем, но не факт что так правильно. ты бы подробнее пояснил что должен делать скрипт и при каких условиях. так как "// находит 10.bmp и кликает на 7.bmp" лишено смысла. ели ты уверен что "10.bmp" и "7.bmp" должны быть одновременно на экране, то какой смысл искать "10.bmp", можно же сразу искать "7.bmp".
ну да ладно, мои экстрасенсорные способности подсказывают что нужно делать так:
Code: (clickermann) [Select]
SUB(boy, 2)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (841,128, 886,156, "6.bmp", -1, 95) // Если на экране есть 6.bmp то цыкл выполняется по кругу, иначе идет дальше
         KEYPRESS(#ENTER)
         WAITMS(300)
         KEYPRESS(#ENTER)
         WAITMS(100)
         
         IF_PICTURE_IN (65,104, 211,274, "10.bmp", -1, 100)  // находит 10.bmp и кликает на 7.bmp
            IF_PICTURE_IN (676,318, 742,361, "7.bmp", -1, 100)
               LCLICK($_return1+7, $_return2+7)
               WAITMS(RND(500,600))
            END_IF
           
            IF_PICTURE_IN (432,316, 479,353, "1.bmp", -1, 95) //просто кликает 1.bmp если есть
               LCLICK($_return1+7, $_return2+7)
               WAITMS(300)
               
               IF_PICTURE_IN (475,319, 522,353, "5.bmp", -1, 95) //просто кликает 5.bmp если есть
                  LCLICK($_return1+7, $_return2+7)
                  WAITMS(300)
                 
                  IF_PICTURE_IN (510,104, 864,237, "vernutsia.bmp", -1, 95) //просто кликает vernutsia.bmp если есть
                     LCLICK($_return1+7, $_return2+7)
                     WAITMS(300)
                  END_IF
               END_IF
            END_IF
         END_IF
      ELSE
         $check = 1
         wait(500)
      END_IF
   END_CYC
END_SUB

Optibater

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Re: Подскажите что не так...
« Reply #4 on: October 11, 2016, 08:34:55 PM »
Не работает  :(....
Логирование еще ни разу не пробовал применять.

Code: (clickermann) [Select]
SUB(boy, 2)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (841,128, 886,156, "6.bmp", -1, 95) // Если видит эту картинку, то делает удары и применяет приемы усиления, если картинку не видит, то цыкл останавливается.
         KEYPRESS(#ENTER)  // делает удары
         WAITMS(300)
         KEYPRESS(#ENTER) // делает удары
         WAITMS(100)
 
         IF_PICTURE_IN (65,104, 211,274, "10.bmp", -1, 100)  // На персонаже висит ослабление
            IF_PICTURE_IN (676,318, 742,361, "7.bmp", -1, 100) // этот прием снимает ослабление (Появляется в процесе боя)
               LCLICK($_return1+7, $_return2+7)
               WAITMS(RND(500,600))
            END_IF
 
            IF_PICTURE_IN (432,316, 479,353, "1.bmp", -1, 95) // прием усиления (Появляется в процесе боя)
               LCLICK($_return1+7, $_return2+7)
               WAITMS(300)
 
               IF_PICTURE_IN (475,319, 522,353, "5.bmp", -1, 95) // прием усиления (Появляется в процесе боя)
                  LCLICK($_return1+7, $_return2+7)
                  WAITMS(300)
 
                  IF_PICTURE_IN (510,104, 864,237, "vernutsia.bmp", -1, 95) //просто кликает vernutsia.bmp если есть
                     LCLICK($_return1+7, $_return2+7)
                     WAITMS(300)
                  END_IF
               END_IF
            END_IF
         END_IF
      ELSE
         $check = 1
         wait(500)
      END_IF
   END_CYC
END_SUB
« Last Edit: October 11, 2016, 08:54:18 PM by Optibater »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Подскажите что не так...
« Reply #5 on: October 11, 2016, 11:05:44 PM »
ну сейчас вроде более менее понятно.
Code: (clickermann) [Select]
SUB(boy, 2)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (841,128, 886,156, "6.bmp", -1, 95) // пока есть на экране "коврики" 6.бмп, то дубасим на энтер
         KEYPRESS(#ENTER)  // делает удары
         WAITMS(300)
         KEYPRESS(#ENTER) // делает удары
         WAITMS(100)
         print("идет бой, жмем энтер")
         
         IF_PICTURE_IN (65,104, 211,274, "10.bmp", -1, 100)  // На персонаже висит ослабление
            print("на персонаже висит ослабление")
            IF_PICTURE_IN (676,318, 742,361, "7.bmp", -1, 100) // этот прием снимает ослабление (Появляется в процесе боя)
               LCLICK($_return1+7, $_return2+7)
               print("снимаем ослабление")
               WAITMS(RND(500,600))
            END_IF
         END_IF
         
         
         IF_PICTURE_IN (432,316, 479,353, "1.bmp", -1, 95) // прием усиления (Появляется в процесе боя)
            LCLICK($_return1+7, $_return2+7)
            print("прием усиления 1.бмп")
            WAITMS(300)
         END_IF
         
         IF_PICTURE_IN (475,319, 522,353, "5.bmp", -1, 95) // прием усиления (Появляется в процесе боя)
            LCLICK($_return1+7, $_return2+7)
            print("прием усиления 5.бмп")
            WAITMS(300)
         END_IF
         
         IF_PICTURE_IN (510,104, 864,237, "vernutsia.bmp", -1, 95) //просто кликает vernutsia.bmp если есть
            LCLICK($_return1+7, $_return2+7)
            print("просто кликает vernutsia.bmp")
            WAITMS(300)
         END_IF
                           
      ELSE
         $check = 1
         print("коврика нет. ждем 500сек.!!! :/")
         wait(500)
      END_IF
   END_CYC
END_SUB

в каждом условии вставил вывод в лог, так что можно наблюдать, какие картинки находит, а какие нет. окно лога, надеюсь, знаешь как открыть.

Optibater

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Re: Подскажите что не так...
« Reply #6 on: October 12, 2016, 12:30:30 AM »
ну сейчас вроде более менее понятно.

в каждом условии вставил вывод в лог, так что можно наблюдать, какие картинки находит, а какие нет. окно лога, надеюсь, знаешь как открыть.


Да, открыл лог, посмотрел. Так все работает.
Огромное спасибо! Жизнь моя стала теперь чуточку проще  8)