Author Topic: Условие по времени  (Read 2929 times)

0 Members and 1 Guest are viewing this topic.

Shevrole

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Условие по времени
« on: August 11, 2016, 05:50:13 PM »
День добрый
Проблема в следующем
Еще как говориться вчера у меня запускался скрипт по условию
IF(($_time_m = 03)&($_time_s = 50))
скрипт
END_IF
Одномоментно это условие перестало работать и сейчас запускается только в виде
IF($_time_m = 03))
скрипт
END_IF
не хочется лепить лишних костылей в виде задержек и тд
в чем может быть проблема?
и еще будет ли работать условие типа
IF(($_time_m = 0)&($_time_s = 0))
скрипт
END_IF
« Last Edit: August 11, 2016, 06:06:51 PM by Shevrole »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Условие по времени
« Reply #1 on: August 12, 2016, 07:48:09 AM »
Не нужно писать лишних скобок и нулей
Code: (clickermann) [Select]
IF(($_time_m = 3)&($_time_s = 50))
// скрипт
END_IF
Code: (clickermann) [Select]
IF($_time_m = 3)
строка с условием должна выполниться в течении 50й секунды. Может там есть задержки и выполнение не попадает в это время.

Code: (clickermann) [Select]
IF(($_time_m = 0)&($_time_s = 0)) // условие будет срабатывать в 0 минут и 0 секунд каждого часа
//скрипт
END_IF





Shevrole

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Условие по времени
« Reply #2 on: August 12, 2016, 02:48:42 PM »
Спасиб за примеры
Проблему решил
поставил где нужно HALT (точнее убрал)

Собственно другой вопрос
цикл должен срабатывать каждый час в 00 минут 00 секунд
т.е. скрипт будет гоняться целый час, не сильно ли это "вредно"
есть ли смысл в такой конструкции
    IF(($_time_m = 0)&($_time_s = 0)) // условие будет срабатывать в 0 минут и 0 секунд каждого часа
    //скрипт
wait(3590)   
END_IF

Работает ли условие
    IF(($_time_m = *1))
//скрипт
    END_IF
где * любой символ т.е. каждые 10 мин на 11-й, 21-й и т.д. минуте

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Условие по времени
« Reply #3 on: August 12, 2016, 03:19:41 PM »
если это весь скрипт то правильно так
Code: (clickermann) [Select]
IF($_time_m = 0) // условие будет срабатывать в 0 минут каждого часа
   //скрипт
   wait(3590)
END_IF
WAITMS(100) // задержка для разгрузки процессора

Работает ли условие
    IF(($_time_m = *1))
//скрипт
    END_IF
где * любой символ т.е. каждые 10 мин на 11-й, 21-й и т.д. минуте

Ну естественно нет. Опять у тебя лишние скобки, различай комбинированные и одиночные условия.
Вот рабочий вариант.
Code: (clickermann) [Select]
$m = $_time_m
IF(STRLEN($m) > 1) // если чисел 2а
   IF(STRCUT($m,2,1) = 1) // вырезаем второе число и сравниваем его с 1
      //скрипт
      WAIT(500)
   END_IF
END_IF
WAITMS(100) // задержка для разгрузки процессора

Shevrole

  • Зашел в гости
  • *
  • Posts: 3
    • View Profile
Re: Условие по времени
« Reply #4 on: August 12, 2016, 04:00:12 PM »
если это весь скрипт то правильно так


    IF($_time_m = 0) // условие будет срабатывать в 0 минут каждого часа
       //скрипт
       wait(3590)
    END_IF
    WAITMS(100) // задержка для разгрузки процессора

если условие не выполняется (скрипт запустили в 01 мин или в 32 мин ) то скрипт уходит в бесконечный цикл до выполнения заданного условия.
как можно обыграть эту ситуацию, чтобы не грузить процессор

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Условие по времени
« Reply #5 on: August 12, 2016, 05:10:32 PM »
Я для кого это написал?
Code: (clickermann) [Select]
WAITMS(100) // задержка для разгрузки процессора
Открой диспетчер задач, запусти скрипт и посмотри на сколько кликер грузит процессор.
У меня показывает нагрузку 0%, но можно выставить и больше, например 500 мс