Author Topic: Узнать сколько осталось в задержке  (Read 3978 times)

0 Members and 1 Guest are viewing this topic.

Синичка

  • Освоившийся
  • **
  • Posts: 29
    • View Profile
Здравствуйте.
1. В коде имеем задержки от 1 часа до 12-и часов. Как узнать, сколько времени осталось при определенной задержке?

2. Как работает "TRAYSAY"? Что это такое?)

3. немного не к месту вопрос: Будет ли работать

Code: [Select]
sub(Один)
//Какие-либо действия
   sub(Два)
      //Какие-либо действия
   end_sub
//Какие-либо действия
end_sub

//вызов подпрограммы (чтобы при этом сработал и "Два", прописанный внутри "Один")
Один()

« Last Edit: August 27, 2014, 12:46:09 PM by Синичка »

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
Re: Узнать сколько осталось в задержке
« Reply #1 on: August 27, 2014, 01:03:58 PM »
по 1) поподробнее пжалста если хотите отбратный таймер до окончании задержки то через цикл
а если узнать какая рандомная задержка сработала то еще проще рандомайзер записываем в переменную и используем для включения задержки и вывода на экран

2) откуда это взяли? первый раз слышу о такой команде

3) скорее всего да только запись должна быть иначе
Объявление сабов
Code: (clickermann) [Select]
sub(Один)
     //Какие-либо действия
     Два()
end_sub
sub(Два)
      //Какие-либо действия
end_sub

Вызов
Code: (clickermann) [Select]
Один()
« Last Edit: August 27, 2014, 01:06:54 PM by aden »

Синичка

  • Освоившийся
  • **
  • Posts: 29
    • View Profile
Re: Узнать сколько осталось в задержке
« Reply #2 on: August 27, 2014, 02:20:34 PM »
1. Непонятно, как это сделать)

2. Из сообщения модератора через поиск на сайте.

3. Но тогда не сработает "Два", вы меня не поняли.

Было:
Code: [Select]
sub(Один)
//Какие-либо действия 1
   sub(Два)
      //Какие-либо действия 2
   end_sub
//Какие-либо действия 3
end_sub

//вызов подпрограммы (чтобы при этом сработал и "Два", прописанный внутри "Один")
Один()

а по вашему получается, что действий 3 не будет. И мало того, вызова подпрограммы "Два" у вас тоже нет. А я не хочу их 40-50 раз записывать вручную. так как координаты часто меняются. у меня нет желания потом по всему коду шарить и исправлять одно и то же десятки раз. А изменять придется далеко не 1 строку и даже не 10 и не 50.
« Last Edit: August 27, 2014, 02:37:34 PM by Синичка »

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
Re: Узнать сколько осталось в задержке
« Reply #3 on: August 27, 2014, 03:19:35 PM »
1) так и непонятно что конкретно вы хотите сделать опишите подробнее или приведите код

2) видать очень старая команда, скорее всего делает тоже самое что и HINTPOPUP

3) невнимательны  вы, посмотрите приведенный мной код там в строке №3 как раз вызов второго саба, а действие 3 я просто забыл дописать, должно выглядеть так
Code: (clickermann) [Select]
//Объявляем первую подпрограмму
sub(Один)
     //Какие-либо действия 1
     Два()               // Вызываем вторую подпрограмму из тела первой.
    // Какие-либо действия 3
end_sub
//Объявляем вторую подпрограмму
sub(Два)
      //Какие-либо действия 2
end_sub

Code: (clickermann) [Select]
//вызов подпрограммы (чтобы при этом сработает и "Два", потому что ее вызов прописан в теле подпрограммы "Один")
Один()

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Узнать сколько осталось в задержке
« Reply #4 on: August 27, 2014, 04:13:55 PM »
только подпрограмму 2 выше первой.


aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
Re: Узнать сколько осталось в задержке
« Reply #5 on: August 27, 2014, 05:33:47 PM »
только подпрограмму 2 выше первой.

думал  об этом но решил что и так сработает

Синичка

  • Освоившийся
  • **
  • Posts: 29
    • View Profile
Re: Узнать сколько осталось в задержке
« Reply #6 on: August 27, 2014, 08:06:30 PM »
Хорошо, если поднять подпрограмму "Два" выше, то вызов будет работать. Просто раньше мне отвечали, что подпрограмма в подпрограмме вроде не работает.
за это спасибо)

Про второе понятно - HINTPOPUP в справочнике хотя бы есть. Тоже благодарю.

1. подробнее:


Как узнать, сколько осталось времени для окончания этой задержки? 10 минут? 20 минут? Постоянно добавляю строчки с кодами и время вечно отодвигается, а ждать для проверки не всегда предоставляется возможным

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Узнать сколько осталось в задержке
« Reply #7 on: August 27, 2014, 09:56:54 PM »
если узнать сколько выскочило по rnd, так сказали уже, рнд присвоить переменной, переменную вывести в лог, её же в ваит.
Если нужно в процессе длиной задержки, разбить её в цикле на короткие с выводом остатка.


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Узнать сколько осталось в задержке
« Reply #8 on: August 27, 2014, 10:11:25 PM »
Вот написал подпрограмму отсчета. Используем её за место задержек.

Code: (clickermann) [Select]
// подпрограмму пишешь сверху скрипта
SUB(задержка, $time_wait, $message)
   $time_out = $_time_t + $time_wait
   WHILE($time_out > $_time_t)
      WAIT(1)
      $ts = $time_out-$_time_t
      $th = 0
      $tm = 0
      while($ts > 3599)
         INC($ts,-3600)
         INC($th, 1)
      end_cyc
      while($ts > 59)
         INC($ts,-60)
         INC($tm, 1)
      end_cyc
      IF(STRLEN($th)<2)
         $th = STRCONCAT ("0", $th)
      END_IF
      IF(STRLEN($tm)<2)
         $tm = STRCONCAT ("0", $tm)
      END_IF
      IF(STRLEN($ts)<2)
         $ts = STRCONCAT ("0", $ts)
      END_IF
      LOGCLEAR // очистка лога
      LOGWRITE ($message,": ", $th,":",$tm,":",$ts)
   END_CYC
END_SUB


// вызов пишем за место задержки
// Первый параметр это задержка в секундах, второй это название сообщения в логе

задержка(30,"Ждем") // задержка на 30 секунд с отсчетом в логе

задержка(RND(7250,7290),"Осталось") // задержка на 2 часа с отсчетом в логе

Синичка

  • Освоившийся
  • **
  • Posts: 29
    • View Profile
Re: Узнать сколько осталось в задержке
« Reply #9 on: August 27, 2014, 10:34:49 PM »
Вот написал подпрограмму отсчета. Используем её за место задержек.

Очень интересно, спасибо, попробую разобрать на запчасти что-то новое)
Благодарю за помощь!