Время - один из важнейших параметров при создании сценариев.
Сами временные задержки для сценария не важны, а вот операционная система может
просто не успеть среагировать должным образом. Особенно это важно в играх, где
каждое действие как правило сопровождается анимацией, которая занимает некоторое
время, и если его не выждать, то следующая команда сценария придет не вовремя и
рискует не выполниться игрой. WAIT(s) Простейшая функция ожидания. В качестве
параметра принимает числовое значение секунд, которые должны пройти прежде чем
будет выполнена следующая команда сценария. WAITMS(ms) В дальнейшем была введена более точная
функция, позволяющая раздробить секунду на миллисекунды. В одной секунде как
известно тысяча миллисекунд. Поэтому чтоб организовать ожидание в полсекунды,
надо указать в кач-ве параметра значение 500. Следует помнить что эти две
функции имеют известную погрешность - 16 миллисекунд. Вызвано это исключительно
особенностями ОС Windows. Мы могли бы ликвидировать эту погрешность в ущерб
производительности, но она слишком незначительна чтоб идти на такие жертвы. IF_TIME(h,m,s) Эта условная конструкция пришла на
помощь нашему не самому удачному планировщику задач. Она анализирует машинное
время, и если оно соответствует ожидаемому, срабатывают инструкции внутри блока.
Ожидаемое время задается тремя параметрами: часы, минуты, секунды. К примеру,
этот сценарий проверяет соответствует ли время полудню, и если соответствует,
щелкает мышкой. IF_TIME(12, 00, 00)
lclick(10,20)
END_TIME Важно понимать, что проверка времени осуществляется только
когда выполняется инструкция IF_TIME. Если до этого у вас были WAIT, то далеко
не факт что вам удастся попасть точно в полдень. Но эта проблема решаема.
Параметры минут и секунд можно аннулировать IF_TIME(12, 00, #null) или
IF_TIME(12, 00, -1). При таком подходе значение секунд не
будет приниматься во внимание и событие будет срабатывать в течение всей минуты.
Это полезно когда инструкция IF_TIME вызывается не каждую секунду для проверки.
С другой стороны нужно учитывать и "лишние срабатывания" в течение минуты.
Обычно их обходят классическим приемом программирования - использованием флагов.
|