Author Topic: время  (Read 9028 times)

0 Members and 2 Guests are viewing this topic.

kirill

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
время
« on: November 10, 2012, 12:45:04 PM »
как сделать чтобы кликер начинал сценарий в 12.10 и в 16.10 по времени на компьютере

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: время
« Reply #1 on: November 10, 2012, 01:55:10 PM »
Даже для 4.7 версии все еще работает IF_TIME("*:*:*"). Звездочка означает любой час, любую минуту и секунду.
IF_TIME в справке не описана

Code: [Select]
IF_TIME("12:10:*") // Включаем в 12.10
$t1 = 1
END_IF

IF_TIME("16:10:*") // Отключаем в 16.10
$t1 = 0
END_IF


IF_TIME("16:10:*") // Включаем в 16.10
$t2 = 1
END_IF

IF_TIME("12:10:*") // Отключаем в 12.10
$t2 = 0
END_IF


IF($t1 = 1) // 12.10
// здесь твой скрипт 
// Будет выполняться с 12.10 по 16.10
LOGWRITE("Задание в 12.10")
END_IF

IF($t2 = 1) // 16.10
// здесь твой скрипт
// Будет выполняться с 16.10 по 12.10
LOGWRITE("Задание в 16.10")
END_IF

WAITMS (500)
« Last Edit: November 10, 2012, 02:06:37 PM by Oraven »

kirill

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: время
« Reply #2 on: November 10, 2012, 02:24:48 PM »
не работает кликер сразу начинает выполнять макрос

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: время
« Reply #3 on: November 10, 2012, 02:26:08 PM »
Если не затруднит, перенесите  ваш скрипт в шапку стандартных примеров, чтобы не рыскать новичкам  по всему форуму в поисках нужного прототипа скрипта.
Бабочки полёт будит тихую поляну в солнечном свету...

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: время
« Reply #4 on: November 10, 2012, 03:20:14 PM »
не работает кликер сразу начинает выполнять макрос

У меня 4.7 версия и все работает!

Сергей

  • Активный участник
  • ***
  • Posts: 159
    • View Profile
Re: время
« Reply #5 on: November 11, 2012, 08:16:32 AM »
не работает кликер сразу начинает выполнять макрос
Если тебе нужно чтобы он выполнял программу только в 12:10 и 16:10, а не с 12:10 до 16:10, то попробуй так:
Code: (clickermann) [Select]
$break = 0
while($break = 0)
   IF_TIME("12:10:*")
      GOSUB(my_program_1)//Подпрограмма, которая будет вызвана в 12:10
      $break = 1
   end_if
   waitms(5000)
end_cyc

$break = 0
while($break = 0)
   IF_TIME("16:10:*")
      GOSUB(my_program_2)//Подпрограмма, которая будет вызвана в 16:10
      $break = 1
   end_if
   waitms(5000)
end_cyc
Отсутствую.

kirill

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: время
« Reply #6 on: November 13, 2012, 03:19:34 PM »
не работает кликер сразу начинает выполнять макрос
Если тебе нужно чтобы он выполнял программу только в 12:10 и 16:10, а не с 12:10 до 16:10, то попробуй так:
Code: (clickermann) [Select]
$break = 0
while($break = 0)
   IF_TIME("12:10:*")
      GOSUB(my_program_1)//Подпрограмма, которая будет вызвана в 12:10
      $break = 1
   end_if
   waitms(5000)
end_cyc

$break = 0
while($break = 0)
   IF_TIME("16:10:*")
      GOSUB(my_program_2)//Подпрограмма, которая будет вызвана в 16:10
      $break = 1
   end_if
   waitms(5000)
end_cyc
спасибо, так работает, только не пойму для чего эта функция  GOSUB, что за подпрограмма? откуда она вызывается?(из какой папки) и что это такое my_program_2 имя скрипта? или ещё что то

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: время
« Reply #7 on: November 13, 2012, 03:44:30 PM »
спасибо, так работает, только не пойму для чего эта функция  GOSUB, что за подпрограмма? откуда она вызывается?(из какой папки) и что это такое my_program_2 имя скрипта? или ещё что то

SUB - это изолированный кусок кода, он находится в том же скрипте и вызывается по GOSUB. При этом происходит переход в вызываемый SUB, выполнение всего того что там написано и возвращение на следующую строку после GOSUB

Code: (clickermann) [Select]
$break = 0
while($break = 0)
   IF_TIME("12:10:*")
      GOSUB(my_program_1)//Подпрограмма, которая будет вызвана в 12:10
      $break = 1
   end_if
   waitms(5000)
end_cyc

$break = 0
while($break = 0)
   IF_TIME("16:10:*")
      GOSUB(my_program_2)//Подпрограмма, которая будет вызвана в 16:10
      $break = 1
   end_if
   waitms(5000)
end_cyc

SUB(my_program_1)
LOGWRITE("Программа 1")
// Здесь Программа 1
END_SUB

SUB(my_program_2)
LOGWRITE("Программа 2")
// Здесь Программа 2
END_SUB

Вот написал вариант с системными переменными, кажется по проще будет...

// $my_program_1 - переменная выполняет роль выключателя, чтобы условие сработало только 1 раз

Code: (clickermann) [Select]
IF(($_time_h = 12) & ($_time_m = 10) & ($my_program_1 = 0))
$my_program_1 = 1
// Здесь Программа 1
END_IF

IF(($_time_h = 16) & ($_time_m = 10) & ($my_program_2 = 0))
$my_program_2 = 1
// Здесь Программа 2
END_IF

WAITMS (100)
« Last Edit: November 13, 2012, 03:46:06 PM by Oraven »

Сергей

  • Активный участник
  • ***
  • Posts: 159
    • View Profile
Re: время
« Reply #8 on: November 13, 2012, 05:46:21 PM »
В твоем варианте my_program будет выполняться, пока не кончится минута, а не единожды.
Ну и переменные-флаги надо потом не забыть обнулить.
Отсутствую.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: время
« Reply #9 on: November 13, 2012, 06:44:38 PM »
В твоем варианте my_program будет выполняться, пока не кончится минута, а не единожды.
Ну и переменные-флаги надо потом не забыть обнулить.

А для чего тогда я сделал переменную $my_program_1 = 1??? Когда этой переменной присваивается значение 1, то условие перестает срабатывать.

Сергей

  • Активный участник
  • ***
  • Posts: 159
    • View Profile
Re: время
« Reply #10 on: November 13, 2012, 07:44:57 PM »
Ах, да, точно. Название переменной ввело меня в заблуждение.
Отсутствую.