Flags: различия между версиями
Fireton (обсуждение | вклад) (Новая: Автор: Жучков Антон == Общая информация == Часто бывает необходимым выдать некий текст...) |
Nikita (обсуждение | вклад) м (Nikita переименовал страницу Модуль для удобной работы с флагами (RTADS) в Flags) |
||
(не показаны 4 промежуточные версии 3 участников) | |||
Строка 1: | Строка 1: | ||
− | + | {{product info | |
+ | |название = | ||
+ | |тип = Библиотеки TADS | ||
+ | |разработчик = [[Разработчик::Жучков, Антон|Антон Жучков]] | ||
+ | |язык = | ||
+ | |система = [[TADS|TADS 2]] | ||
+ | |онлайн = | ||
+ | |написано на = [[TADS|TADS 2]] | ||
+ | |язык разработки = | ||
+ | |читаемый формат = | ||
+ | |создаваемый формат = | ||
+ | |первый выпуск = | ||
+ | |последняя версия = | ||
+ | |дата последней версии = 12.08.2008 | ||
+ | |состояние = | ||
+ | |лицензия = [[Freeware]] | ||
+ | |сайт = | ||
+ | }} | ||
+ | |||
+ | Модуль для удобной работы с флагами [[TADS]]. | ||
== Общая информация == | == Общая информация == | ||
Строка 21: | Строка 40: | ||
Формат: <tt>isFlag(flag)</tt> | Формат: <tt>isFlag(flag)</tt> | ||
− | Возвращает значение флага <tt>flag</tt>. | + | Возвращает значение флага <tt>flag</tt>. <tt>flag</tt> - строковое значение (в одинарных кавычках). |
== setFlag == | == setFlag == | ||
Строка 51: | Строка 70: | ||
sayOnce(_FL, 'Глядя на все это, ты чувствуешь себя как-то неуютно...'); | sayOnce(_FL, 'Глядя на все это, ты чувствуешь себя как-то неуютно...'); | ||
В этом случае, флагом будет служить название файла исходника и номер строки, из которой производился вызов <tt>sayOnce</tt>. Как видно, символ <tt>_FL</tt> очень удобен для таких "одноразовых" флагов. | В этом случае, флагом будет служить название файла исходника и номер строки, из которой производился вызов <tt>sayOnce</tt>. Как видно, символ <tt>_FL</tt> очень удобен для таких "одноразовых" флагов. | ||
− | |||
− |
Текущая версия на 14:58, 3 марта 2019
Flags | |
Тип | Библиотеки TADS |
---|---|
Разработчик(и) | Антон Жучков |
Операционные системы | TADS 2 |
Написано на | TADS 2 |
Дата последней версии | 12 августа 2008 |
Лицензия | Freeware |
Модуль для удобной работы с флагами TADS.
Общая информация
Часто бывает необходимым выдать некий текст в зависимости от состояния игры (флага). Иногда удобно сосредоточить все флаги в одном месте. Чаще всего, это делается на объекте global.
Я написал несколько удобных для меня функций, которыми можно легко управлять флагами, выводить текст и начислять очки в зависимости от значения того или иного флага. Конечно, есть и другие способы "помечать" состояния игры, но мне показалось, что эти функции могут быть полезны.
Итак, в первую очередь необходимо скачать сам модуль и вставить его в код игры директивой #include.
Флаги будут храниться в объекте global в виде списка строк flags. Если перед началом игры требуется, чтобы какие-то флаги были установлены по умолчанию, то в описание объекта global нужно вставить их определение:
global: object ... flags = ['isDrunk' 'isHeadache'] ;
Далее, приведу описание функций модуля.
isFlag
Формат: isFlag(flag)
Возвращает значение флага flag. flag - строковое значение (в одинарных кавычках).
setFlag
Формат: setFlag(flag)
Устанавливает флаг flag.
unsetFlag
Формат: unsetFlag(flag)
Сбрасывает флаг flag.
ifFlagSay
Формат: ifFlagSay(flag, message [doUnset, score])
Выводит сообщение message, если флаг flag установлен. При этом, если doUnset = true (по умолчанию nil), то сбрасывает флаг flag. Если параметр score определен, то начисляет количество очков, равное его значению.
ifNotFlagSay
Формат: ifNotFlagSay(flag, message [doSet, score])
Выводит сообщение message, если флаг flag НЕ установлен. При этом, если doSet = true (по умолчанию nil), то устанавливает флаг flag. Если параметр score определен, то начисляет количество очков, равное его значению.
sayOnce
Формат: sayOnce(flag, message [, score])
Полностью аналогична функции ifNotFlagSay с параметром doSet = true. Определена для удобства "единичного" вывода текста. Для той же цели определен символ:
#define _FL __FILE__+cvtstr(__LINE__)
Т.е., если требуется вывести текст один раз за всю игру, то достаточно написать:
sayOnce(_FL, 'Глядя на все это, ты чувствуешь себя как-то неуютно...');
В этом случае, флагом будет служить название файла исходника и номер строки, из которой производился вызов sayOnce. Как видно, символ _FL очень удобен для таких "одноразовых" флагов.