"QSP: Таймер" - модуль работы с таймером

Версия: 1.0


Автор: Olegus t.Gl.
e-mail: olegus.tgl@gmail.com
jabber: olegus@jabber.ru
icq: 145540276

Тема на форуме iFiction.Ru: ссылка
Актуальная документация к последней версии: ссылка

О модуле

Платформа QSP позволяет с заданной периодичностью вызывать определённую локацию, что позволяет запускать некоторые события в реальном времени. Имя локации хранится в системной переменной $COUNTER, интервал вызова в миллисекундах — в переменной SETTIMER. Но работать со всем этим хозяйством не очень удобно: событий может быть несколько, возникать они могут в разные моменты игры, работать с их кодом в одной локации не очень-то удобно, плюс событие может быть как периодическим, так и разовым… и так далее.

Данный модуль берёт на себя все рутинные операции, предоставляя автору возможность в произвольных местах игры запускать и останавливать отдельные как разовые, так и периодические события.

Входящие в пакет файлы

otg_lib_timer.qspСам модуль.
example_timer.qspПример работы с модулем.
otg_lib_timer_help.htmlДокументация по работе с модулем (вы как раз её читаете)

Подключение модуля

Первым делом необходимо подключить к своему проекту сам модуль. Для этого файл модуля нужно скопировать в тот же каталог, в котором находится основной проект, после чего в начало кода проекта добавить команду "ADDQST" (для QSP версии 5.7.0):

Подключение модуля:

ADDQST 'otg_lib_timer.qsp'

Все локации модуля начинаются с префикса "Таймер.", а переменные — с префикса "otg_", поэтому пересечения с данными основного проекта быть не должно.

Перечень команд

Таймер.СобытиеДобавляет или обновляет событие по таймеру.
Таймер.ИнтервалИзменяет интервал вызова события по таймеру.
Таймер.АктивироватьВключает или выключает выполнение указанного события.
Таймер.УдалитьУдаляет указанное событие.
Таймер.ЗапуститьЗапускает обработку событий по таймеру.
Таймер.ОстановитьПриостанавливает обработку событий по таймеру.

Описание команд


Таймер.Событие

Добавляет или обновляет событие по таймеру.

Синтаксис:

GS 'Таймер.Событие', <Имя события>, <Код/Имя локации>, <Интервал>, <Тип>, <Отложить запуск>)

Параметры:

Имя событияОбязательный параметр. Имя события, которое потом можно использовать для остановки, запуска, или удаления события.
Код/Имя локацииОбязательный параметр. В данном параметре можно передать либо исполняемый код события, либо имя локации, которая будет запускаться при вызове события. Чтобы вызывать именно определённую локацию, нужно перед её именем поставить символ "#" или "@".
ИнтервалОбязательный параметр. Интервал в миллисекундах вызова события. Для разового события — это просто время до запуска.
ТипНеобязательный параметр. Данный параметр указывает периодическое ли это событие (0) или разовое (1). По умолчанию событие считается периодическим.
Отложить запускНеобязательный параметр. По умолчанию событие считается активным и для него сразу идёт отсчёт по таймеру, но если этот параметр установить в 1, то отсчёт времени для события можно будет запустить вручную командой Таймер.Активировать.

Пример вывода на экран слова "Привет" каждые три секунды:

GS 'Таймер.Событие', 'СобытиеНа3секунды', {*NL 'Привет'}, 3000

Пример вызова определённой локации каждые 5 секунд:

GS 'Таймер.Событие', 'ВызовЛокацииНа5Секунд', '@ИмяЛокации', 5000

Пример разового вывода на экран фразы "Одного раза достаточно." через 10 секунд:

GS 'Таймер.Событие', 'РазовоеСобытие', {*NL 'Одного раза достаточно.'}, 10000, 1

Таймер.Интервал

Изменяет интервал вызова существующего события по таймеру. Отсчёт таймера при этом начинается заново.

Синтаксис:

GS 'Таймер.Интервал', <Имя события>, <Интервал>

Параметры:

Имя событияОбязательный параметр. Имя события, интервал вызова которого нужно изменить.
ИнтервалОбязательный параметр. Значение интервала.

Пример изменения интервала события "РазовоеСобытие" на 7 секунд:

GS 'Таймер.Интервал', 'РазовоеСобытие', 7000

Таймер.Активировать

Включает или выключает выполнение указанного события. При включении таймер для данного события начинает отсчёт заново.

Синтаксис:

GS 'Таймер.Активировать', <Имя события>, <Активация>

Параметры:

Имя событияОбязательный параметр. Имя события, таймер для которого нужно остановить или запустить.
АктивацияНеобязательный параметр. Если не указан, то событие будет активировано. Если в параметре передать 0, то таймер для события будет остановлен, если 1 — запущен заново.

Пример:

GS 'Таймер.Активировать', 'РазовоеСобытие'

Таймер.Удалить

Удаляет указанное событие и все его параметры.

Синтаксис:

GS 'Таймер.Удалить', <Имя события>

Параметры:

Имя событияОбязательный параметр. Имя удаляемого события.

Пример:

GS 'Таймер.Удалить', 'СобытиеНа3секунды'

Таймер.Запустить

Запускает обработку событий по таймеру. Отсчёт таймера для всех ранее созданных событий начинается именно с этой команды. Для событий созданных после запуска таймера отсчёт начинается тотчас же. Если до этого таймер был остановлен командой Таймер.Остановить, то отсчёт продолжится, как будто остановки не было (если только принудительно не сбросить время для событий).

Синтаксис:

GS 'Таймер.Запустить', <Сбросить время>

Параметры:

Сбросить времяНеобязательный параметр. Если в параметре передать 1, то для всех событий отсчёт таймера начнётся заново.

Пример:

GS 'Таймер.Запустить'

Таймер.Остановить

Приостанавливает обработку всех событий по таймеру.

Синтаксис:

GS 'Таймер.Остановить'




Copyright © 2013 iFiction.Ru / Olegus t.Gl. · Пользуйтесь с умом и по закону. Гарантии не прилагаются.