Author Topic: Пока sub1 на таймере - выполнять sub2  (Read 1097 times)

0 Members and 1 Guest are viewing this topic.

Николясик

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Пока sub1 на таймере - выполнять sub2
« on: February 20, 2018, 04:28:44 PM »
Здравствуйте!

Помогите плиз, как сделать пока у sub(1) идет таймер паузы, то срабатывал sub(2) до тех пор пока у sub(1) не пройдет время таймера, затем sub(2) останавливался пока sub(1) опять не встанет на паузу

SUB(1)
LCLICK(621,732)
WAIT(600)
LCLICK(621,732)
END_IF
END_SUB

SUB(time2)
LCLICK(657,604)
WAIT(5)
LCLICK(657,604)
END_IF
END_SUB

1()
wait(1)
2()

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Пока sub1 на таймере - выполнять sub2
« Reply #1 on: February 20, 2018, 05:38:18 PM »
Зачем там END_IF? Это ошибка. Не стоит писать имена подпрограмм цифрами.
Плахой пример, у тебя в "sub(2)" задержка на 5 секунд, а задержка после "sub(1)" на одну секунду.
Зачем вообще тут подпрограммы.

Code: (clickermann) [Select]
IF($time < $_ms) // это условие сможет выполниться снова минимум через секунду
   LCLICK(621,732)
   WAIT(600)
   LCLICK(621,732)
   WAITMS(50)
   $time = $_ms + 1000
END_IF

LCLICK(657,604)
WAIT(5)
LCLICK(657,604)
WAITMS(50)

Николясик

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: Пока sub1 на таймере - выполнять sub2
« Reply #2 on: February 21, 2018, 12:25:27 AM »
Это как пример( просто не углядел стирая лишний код), я имел ввиду - как только sub(1) входит в ожидание wait(600) то нужно чтобы включался sub(2) и останавливался как только у sub(1) кончится wait(600) и так далее

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Пока sub1 на таймере - выполнять sub2
« Reply #3 on: February 21, 2018, 08:41:49 AM »
Это как пример( просто не углядел стирая лишний код), я имел ввиду - как только sub(1) входит в ожидание wait(600) то нужно чтобы включался sub(2) и останавливался как только у sub(1) кончится wait(600) и так далее

Только через поток

Code: (clickermann) [Select]
THREAD(time2, 0)
   WAIT(0)
   LCLICK(657,604)
   WAIT(5)
   LCLICK(657,604)
   WAITMS(50)
END_THREAD

SUB(prog1)
   LCLICK(621,732)
   SETTHREAD (time2, 1) // запускаем поток time2
   WAIT(600)
   SETTHREAD (time2, 2) // останавливаем поток time2
   LCLICK(621,732)
   WAITMS(50)
END_SUB

prog1()