Что нового

Sleep на рандомный промежуток времени

Lexx98

Продвинутый
Сообщения
272
Репутация
73
Итак, вот вам моя простенькая функция для рандомизации пауз между кликами и т.п.

Код:
Func _CS($Time1, $Time2, $showt=0)
Local $sec
$Randc=Random($Time1, $Time2)
if $showt==1 then
 $sec=Round($Randc/1000)
 Timer(0, $sec, "Paused for ")
else
 Sleep($Randc) ;Команда Sleep, останавливающая выполнение скрипта на заданное время
endif
EndFunc ;==>CS


Ух ты... Оказывается если послать третий параметр 1, оно ещё и с таймером будет. Правда не помню, проверял ли я это достаточно долго. Ибо сделать - сделал, а не пользуюсь.
Если таймер не нужен (а нафига он при паузе до секунды? включать только на сроки в несколько сек, а можно и вообще не включать), вызывать надо просто без третьего параметра.

Пример вызова для рандомной паузы на интервал от 400 до 600 милисек:
Код:
_CS(400, 600)


Если у кого-то нет ещё функции Timer и на форуме найти её проблема, привожу и её:
Код:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;
;; Timer v0.1 Таймер.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;
;; Применение:
;; Само тело функции разместить в любой удобной части скрипта.
;; Использовать ссылку на функцию из любой части скрипта, чтобы инициировать отсчет заданного времени с заданным коментарием в ТулТипе.
;; Зависимость: ЕСТЬ
;; Описание:
;; Данный модуль зависит от CS и TT модулей. Для его использования необходимо включить эти модули в тело скрипта.
;; Timer(4, 60, "Ща что-то будет") - Ссылка на функцию приостанавливающая и ведущая обратный отсчет в течении 4-х минут 60 секунд, фактически 5 минут но модуль
;; работает таким образом что он отсчитывает до нуля ровно столько секунд сколько вы укажите, тоесть если вы укажите 60 секунд, то до того как значение минут будет
;; уменьшаться на 1 будет проходить ровно 60 секунд, укажите 30 секунд, значение минут будет падать на 1 каждые 30 секун, укажите 70, будет падать на 1 каждые 70 секунд и тд.
;; Точные названия необходимых модулей: CS($Time); TT($Text).
;; Принцип работы:
;; Инициализация обратного отсчета заданного времени с заданным коментарием и вывод этой информации в ТулТип.
;; Скрипт приостанавливает свое выполнение пока отсчет не закончится
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;
Func Timer($TTMinutes, $TTSeconds, $Action)
For $Minutes = $TTMinutes to 0 Step -1
For $Seconds = $TTSeconds to 0 Step -1
CS(1000)
TT($Action & $Minutes & ":" & $Seconds &" секунд.")
Next
Next
EndFunc ;==>Timer
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
А чем просто random(400,600,1) не подходит? :blink:

Код:
$timer=TimerInit()
Sleep(Random(400,600,1))
msgbox(0,"timer",TimerDiff($timer))
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,602
Репутация
941
Ну, тут таймер есть например :smile:
Точнее ссылка на него :smile:
 
Автор
L

Lexx98

Продвинутый
Сообщения
272
Репутация
73
zlo-kazan [?]
А чем просто random(400,600,1) не подходит?

Ну например тем, что во множестве мест я пишу всего-лишь
Код:
_CS(400, 600)

а не
Код:
sleep(Random(400,600))

Экономия, понимаешь, символов... :smile:

А ещё, бот не должен задалбывать мсжбоксами, в которых ещё надо кнопку Ок нажимать :smile:
 
Верх