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

0 Members and 1 Guest are viewing this topic.

arx

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Code: (clickermann) [Select]
WAITMS(500)
   GETSCREEN
IF_PICTURE_IN (0,0, 826,503, "mana_cristal.bmp")
DBLCLICK($_return1+2, $_return2+2)
WAIT(1)
DBLCLICK($_return1+2, $_return2+2)
      WAIT(1)
END_IF
   WAITMS(500)
   
   $count = 3
 
GETSCREEN
FOR($num=1,$num<$count+1) // Ищем картинки от начала до конца
   IF_PICTURE_IN(0,0, 826,503, STRCONCAT("farm\ok",$num,".bmp"), -1, 100)
      LCLICK($_return1+1, $_return2+1)
      WAITMS(100)
      $num = 9999 // прерываем цикл если есть совпадение
   END_IF
END_CYC
   
WAITMS(500)
GETSCREEN
IF_PICTURE_IN (0,0, 826,503, "zabrat_runu.bmp")
LCLICK($_return1+2, $_return2+2)
      WAIT(1)
   END_IF   
      WAITMS(500)
GETSCREEN
IF_PICTURE_IN (0,0, 826,503, "povtorit.bmp")
LCLICK($_return1+2, $_return2+2)

ELSE
GOTO ENERGYMESSAGE
      WAIT(1)
   END_IF
   
:ENERGYMESSAGE
GETSCREEN
IF_PICTURE_IN (0,0, 826,503, "message.bmp")
LCLICK($_return1+2, $_return2+) 
END_IF
WAITMS(500)
GETSCREEN
IF_PICTURE_IN (0,0, 826,503, "poluchit.bmp")
LCLICK($_return1+2, $_return2+)   
END_IF
WAITMS(500)
GETSCREEN
IF_PICTURE_IN (0,0, 826,503, "krest.bmp")
LCLICK($_return1+2, $_return2+) 
END_IF
Доброго времени суток)
Не могу понять как после выполнения 31 строчки в случаи появления окна message.bmp уходить на метку energymessage
 иначе на прогонять скрипт с 1 строчки. Объясните как сделать? Заранее блогодарен

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите разобраться со скриптом
« Reply #1 on: March 25, 2019, 05:59:05 PM »
А мне не понятно что это за синтаксис такой
Code: (clickermann) [Select]
ELSE
GOTO ENERGYMESSAGE
WAIT(1)
END_IF

:ENERGYMESSAGE

Не нужно придумывать команды, образцы есть в меню Команды->Прочее
И это не говоря о том что использование гото в данном месте все го лишь пропустит задержку в 1 секунду.
То есть ты сначала написал задержку а потом прыжок гото чтоб её не выполнять?!

Дальше, здесь куда то пропали цифры
Code: (clickermann) [Select]
LCLICK($_return1+2, $_return2+)+ чего? Если стер число так и плюс сотри.

Не могу понять как после выполнения 31 строчки в случаи появления окна message.bmp уходить на метку energymessage

Судя по всему ты просишь цикл поиска с завершением после не обнаружения картинки.
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, 826,503, "message.bmp")       
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      $check = 1
      WAITMS(50)
   END_IF
END_CYC

иначе на прогонять скрипт с 1 строчки. Объясните как сделать?
А как же поиск "poluchit.bmp" и "krest.bmp"?

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Помогите разобраться со скриптом
« Reply #2 on: March 25, 2019, 06:05:19 PM »
Удивляюсь вашему терпению, ребят... Столько ЛЕТ одно и то же нам всем объяснять...
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Помогите разобраться со скриптом
« Reply #3 on: March 25, 2019, 06:07:15 PM »
Code: (clickermann) [Select]
WAITMS(500)
   GETSCREEN
IF_PICTURE_IN (0,0, 826,503, "mana_cristal.bmp")
DBLCLICK($_return1+2, $_return2+2)
WAIT(1)
DBLCLICK($_return1+2, $_return2+2)
      WAIT(1)
END_IF
   WAITMS(500)
   
   $count = 3
 
GETSCREEN
FOR($num=1,$num<$count+1) // Ищем картинки от начала до конца
   IF_PICTURE_IN(0,0, 826,503, STRCONCAT("farm\ok",$num,".bmp"), -1, 100)
      LCLICK($_return1+1, $_return2+1)
      WAITMS(100)
      $num = 9999 // прерываем цикл если есть совпадение
   END_IF
END_CYC
   
WAITMS(500)
GETSCREEN
IF_PICTURE_IN (0,0, 826,503, "zabrat_runu.bmp")
LCLICK($_return1+2, $_return2+2)
      WAIT(1)
   END_IF   
      WAITMS(500)
GETSCREEN
IF_PICTURE_IN (0,0, 826,503, "povtorit.bmp")
LCLICK($_return1+2, $_return2+2)

ELSE
GOTO ENERGYMESSAGE
      WAIT(1)
   END_IF
   
:ENERGYMESSAGE
GETSCREEN
IF_PICTURE_IN (0,0, 826,503, "message.bmp")
LCLICK($_return1+2, $_return2+) 
END_IF
WAITMS(500)
GETSCREEN
IF_PICTURE_IN (0,0, 826,503, "poluchit.bmp")
LCLICK($_return1+2, $_return2+)   
END_IF
WAITMS(500)
GETSCREEN
IF_PICTURE_IN (0,0, 826,503, "krest.bmp")
LCLICK($_return1+2, $_return2+) 
END_IF
Доброго времени суток)
Не могу понять как после выполнения 31 строчки в случаи появления окна message.bmp уходить на метку energymessage
 иначе на прогонять скрипт с 1 строчки. Объясните как сделать? Заранее блогодарен

Зачем столько раз GETSCREEN в скрипте...? И зачем вообще в нем все эти паузы...? Да еще такие долгие... Пауза в скрипте должна быть всего одна - в конце скрипта, и длительностью в 50-100 мс.
« Last Edit: March 25, 2019, 06:10:33 PM by Hito »
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Помогите разобраться со скриптом
« Reply #4 on: March 25, 2019, 08:52:41 PM »
Зачем столько раз GETSCREEN в скрипте...? И зачем вообще в нем все эти паузы...? Да еще такие долгие... Пауза в скрипте должна быть всего одна - в конце скрипта, и длительностью в 50-100 мс.
Когда человек на форуме откровенно занимается вредительством, по другому это оценить ни как нельзя, то нужно банить такого деятеля длительностью всего 3153600000 мс. Будет время подумать зачем столько раз GETSCREEN в скрипте..
Ты о чем?
Я не ду... Потому и не бу...

arx

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Помогите разобраться со скриптом
« Reply #5 on: March 25, 2019, 11:08:59 PM »
Про набор команд не знал спасибо.
А мне не понятно что это за синтаксис такой
Code: (clickermann) [Select]
ELSE
GOTO ENERGYMESSAGE
WAIT(1)
END_IF

:ENERGYMESSAGE

Не нужно придумывать команды, образцы есть в меню Команды->Прочее
И это не говоря о том что использование гото в данном месте все го лишь пропустит задержку в 1 секунду.
То есть ты сначала написал задержку а потом прыжок гото чтоб её не выполнять?!

цифры поправил просмотрел пока копировал

Дальше, здесь куда то пропали цифры
Code: (clickermann) [Select]
LCLICK($_return1+2, $_return2+)+ чего? Если стер число так и плюс сотри.

Не могу понять как после выполнения 31 строчки в случаи появления окна message.bmp уходить на метку energymessage

Судя по всему ты просишь цикл поиска с завершением после не обнаружения картинки.
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, 826,503, "message.bmp")       
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      $check = 1
      WAITMS(50)
   END_IF
END_CYC

иначе на прогонять скрипт с 1 строчки. Объясните как сделать?
А как же поиск "poluchit.bmp" и "krest.bmp"?

после message получить и крет запихаю туда же. Имелось введу что если мессадж не появляется то скрипт начинается с самого верху.
Спасибо что указали на ошибки буду эксперементировать

arx

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Помогите разобраться со скриптом
« Reply #6 on: March 25, 2019, 11:12:34 PM »
Много гетскринов потому что изображения разные, паузы нужна так как изображение появляется с задержкой что бы не проскочить между ними

Зачем столько раз GETSCREEN в скрипте...? И зачем вообще в нем все эти паузы...? Да еще такие долгие...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Помогите разобраться со скриптом
« Reply #7 on: March 26, 2019, 08:49:23 AM »
Много гетскринов потому что изображения разные, паузы нужна так как изображение появляется с задержкой что бы не проскочить между ними

Зачем столько раз GETSCREEN в скрипте...? И зачем вообще в нем все эти паузы...? Да еще такие долгие...
"Много гетскринов потому что изображения разные" - А гетскрину не все равно - какое изображение ловить...? Давай так... Расставь приоритеты. Сейчас объясню - что я имею ввиду. Допустим, что у тебя есть картинки - pic1 и pic2. Допустим так же, что при присутствии на экране картинки pic1, тебя не интересует присутствие картинки pic2. Это и есть - приоритет. Значит картинка pic1 у нас будет в приоритете и вот тебе мой вариант, в котором скрипт сначала ищет картинку pic1, а если ее нет, то ищет pic2, и делает все это по одному скрину, не фоткая экран каждый раз. К тому же, не смотря на отсутствие пауз (кроме одной - в конце), в моем варианте никогда не произойдет клик по одной и той же картинке чаще, чем раз в секунду и сам скрипт при этом будет работать намного быстрее.

Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "pic1.bmp", -1, 100)
   IF($click_pic1 < $_time_t)
      LCLICK($_return1, $_return2)
      $click_pic1 = $_time_t+1
   END_IF
else
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "pic2.bmp", -1, 100)
      IF($click_pic2 < $_time_t)
         LCLICK($_return1, $_return2)
         $click_pic2 = $_time_t+1
      END_IF
   END_IF
END_IF
WAITMS(50)
« Last Edit: March 26, 2019, 09:57:05 AM by Hito »
Я не ду... Потому и не бу...

arx

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Помогите разобраться со скриптом
« Reply #8 on: March 26, 2019, 03:30:40 PM »
Спасибо попробую

Много гетскринов потому что изображения разные, паузы нужна так как изображение появляется с задержкой что бы не проскочить между ними

Зачем столько раз GETSCREEN в скрипте...? И зачем вообще в нем все эти паузы...? Да еще такие долгие...
"Много гетскринов потому что изображения разные" - А гетскрину не все равно - какое изображение ловить...? Давай так... Расставь приоритеты. Сейчас объясню - что я имею ввиду. Допустим, что у тебя есть картинки - pic1 и pic2. Допустим так же, что при присутствии на экране картинки pic1, тебя не интересует присутствие картинки pic2. Это и есть - приоритет. Значит картинка pic1 у нас будет в приоритете и вот тебе мой вариант, в котором скрипт сначала ищет картинку pic1, а если ее нет, то ищет pic2, и делает все это по одному скрину, не фоткая экран каждый раз. К тому же, не смотря на отсутствие пауз (кроме одной - в конце), в моем варианте никогда не произойдет клик по одной и той же картинке чаще, чем раз в секунду и сам скрипт при этом будет работать намного быстрее.

Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "pic1.bmp", -1, 100)
   IF($click_pic1 < $_time_t)
      LCLICK($_return1, $_return2)
      $click_pic1 = $_time_t+1
   END_IF
else
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "pic2.bmp", -1, 100)
      IF($click_pic2 < $_time_t)
         LCLICK($_return1, $_return2)
         $click_pic2 = $_time_t+1
      END_IF
   END_IF
END_IF
WAITMS(50)

arx

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Помогите разобраться со скриптом
« Reply #9 on: April 11, 2019, 12:50:59 PM »
Имеется код все картинки находит подскажите почему не нажимает на картинку message.bmp а сразу переходит на magazin.bmp ? окна   message и magazin появляются враз
Code: (clickermann) [Select]
GETSCREEN
       IF_PICTURE_IN (0,0, 826,503, "message.bmp")       
          LCLICK($_return1+2, $_return2+2)
          WAITMS(500)
          END_IF                             
           GETSCREEN
      IF_PICTURE_IN (0,0, 826,503, "poluchit.bmp")
         LCLICK($_return1+2, $_return2+2)   
            END_IF
            WAITMS(500)
      GETSCREEN
      IF_PICTURE_IN (0,0, 826,503, "krest.bmp")
         LCLICK($_return1+2, $_return2+2) 
          WAITMS(500)
       END_IF

    GETSCREEN
      IF_PICTURE_IN (0,0, 826,503, "magazin.bmp")
         LCLICK($_return1+2, $_return2+2)   
            END_IF
            WAITMS(500)
    GETSCREEN
      IF_PICTURE_IN (0,0, 826,503, "cristal_magazin.bmp")
         LCLICK($_return1+2, $_return2+2)   
            END_IF
            WAITMS(500)
    GETSCREEN
      IF_PICTURE_IN (0,0, 826,503, "da_magazin.bmp")
         LCLICK($_return1+2, $_return2+2)   
            END_IF
            WAIT(1)
    GETSCREEN
      IF_PICTURE_IN (0,0, 826,503, "ok_magazin.bmp")
         LCLICK($_return1+2, $_return2+2)   
            END_IF
            WAITMS(500)
    GETSCREEN
      IF_PICTURE_IN (0,0, 826,503, "close_magazin.bmp")
         LCLICK($_return1+2, $_return2+2)   
            END_IF
            WAITMS(500)
« Last Edit: April 11, 2019, 01:01:20 PM by arx »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите разобраться со скриптом
« Reply #10 on: April 11, 2019, 01:17:49 PM »
Имеется код все картинки находит подскажите почему не нажимает на картинку message.bmp а сразу переходит на magazin.bmp ? окна   message и magazin появляются враз

Если не нажимает значит картинка не найдена.
Запись лога позволяет разобраться что там выполняется а что нет.

Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, 826,503, "message.bmp")
   LCLICK($_return1+2, $_return2+2)
   WAITMS(500)
   LOGWRITE ("Найдено message.bmp")
END_IF
GETSCREEN
IF_PICTURE_IN (0,0, 826,503, "poluchit.bmp")
   LCLICK($_return1+2, $_return2+2)
   LOGWRITE ("Найдено poluchit.bmp")
END_IF

arx

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Re: Помогите разобраться со скриптом
« Reply #11 on: April 11, 2019, 01:27:39 PM »
Спасибо Oraven разобрался уже выставил задержку перед message и все заработало картинку находит по отдельности работают они