Author Topic: Оптимизация скрипта  (Read 1165 times)

0 Members and 1 Guest are viewing this topic.

KOSTIK320

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Оптимизация скрипта
« on: September 08, 2019, 11:00:00 AM »
Добрый день, подскажите как ускорить скрипт на этапе распознавания картинки "pereiti" и "vipolnil"? В остальном работает более менее шустро но вот в этих 2-х моментах задумывается секунд на 10-15.
Code: [Select]
WHEELDOWN(RND(1,70))
WHEELUP(RND(1,48))
WAIT(1)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax,"posmotret.bmp")
   LCLICK($_return1+10, $_return2+10)

   END_IF
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax,"pereiti.bmp")
LCLICK($_return1+10, $_return2+10)

   END_IF
WAIT(4)
LOGCLEAR
GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax,"Podpisatsya.bmp")     
      LCLICK($_return1+10, $_return2+10)
      WAIT (1)
END_IF
ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax,"podat.bmp")     
      LCLICK ($_return1+10, $_return2+10)
      WAIT (1)
      END_IF
ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax,"vstypit.bmp")     
      LCLICK ($_return1+10, $_return2+10)
      WAIT (1)
      END_IF   
ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax,"dobavitvdr.bmp")     
      LCLICK ($_return1+10, $_return2+10)
      WAIT (1)
      END_IF       
MCLICK(343,18)
GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax,"vipolnil.bmp")       
      LCLICK($_return1+10, $_return2+10)
      WAIT (1)
   END_IF
WAIT(4)
LOGCLEAR
GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax,"ok.bmp")     
      LCLICK($_return1+10, $_return2+10)
      WAIT (1)
   END_IF
ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax,"nazad.bmp")           
      LCLICK ($_return1+10, $_return2+10)
      WAIT (1)
   END_IF
LOGCLEAR

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Оптимизация скрипта
« Reply #1 on: September 08, 2019, 12:05:09 PM »
Тут, для начала, нужно ошибки исправить. Зачем там LOGCLEAR если лог даже не пишется?

Куча ELSE вне условий. Это надо писать несколько иначе.
Code: (clickermann) [Select]
WHEELDOWN(RND(1,70))
WHEELUP(RND(1,48))
WAIT(1)

GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax,"posmotret.bmp")
   LCLICK($_return1+10, $_return2+10)
END_IF

GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax,"pereiti.bmp")
   LCLICK($_return1+10, $_return2+10)
END_IF
WAIT(4)

GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax,"Podpisatsya.bmp")
   LCLICK($_return1+10, $_return2+10)
   WAIT (1)
ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax,"podat.bmp")
      LCLICK ($_return1+10, $_return2+10)
      WAIT (1)
   ELSE
      IF_PICTURE_IN (0,0, $_xmax,$_ymax,"vstypit.bmp")
         LCLICK ($_return1+10, $_return2+10)
         WAIT (1)
      ELSE
         IF_PICTURE_IN (0,0, $_xmax,$_ymax,"dobavitvdr.bmp")
            LCLICK ($_return1+10, $_return2+10)
            WAIT (1)
         END_IF
      END_IF
   END_IF
END_IF

MCLICK(343,18)
WAITMS(500)

GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax,"vipolnil.bmp")
   LCLICK($_return1+10, $_return2+10)
   WAIT (1)
END_IF
WAIT(4)

GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax,"ok.bmp")
   LCLICK($_return1+10, $_return2+10)
   WAIT (1)
ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax,"nazad.bmp")
      LCLICK ($_return1+10, $_return2+10)
      WAIT (1)
   END_IF
END_IF

На счет оптимизации, нужно сократить область поиска до примерной области возможного появления объектов. Чем больше размер экрана тем больше тратится время на анализ всего скриншота.

Картинки тоже нужно подсократить. Достаточно небольшой тонкой полоски вдоль слова высотой 2-5 пикселей.

KOSTIK320

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: Оптимизация скрипта
« Reply #2 on: September 08, 2019, 12:12:11 PM »
С логами понятно, за ELSE спасибо. Картинки пробовал сократить, ничего не менялось. Область в IF_PICTURE_IN я меня даже до размеров самой кнопки но всё равно ничего не менялось.

Попробовал Ваш скрипт он совсем перестал жмакать на кнопку перейти.
« Last Edit: September 08, 2019, 12:22:43 PM by KOSTIK320 »