1379
правок
Изменения
м
страничка в разработке.Страничка заморожена.Все особенности ТОМа, не описанные ниже, являются недокументированными.
==== - описание события====Оператор "-" позволяет описать событие, которое может спровоцировать реакцию персонажей находящихся в локации.Событие может быть введено только программно.
====global.token[]====
При разборе команды парсер помещает в эту переменную отдельные слова, которые могут быть использованы для более точного анализа и выполнения команды.
Как пример, следующий код последовательно выводит на экран все слова введенной команды:
for(var i=1; token[i]; i=i+1)
{
%{token[i]}
}
====global.keyword[]====
====global.description====
====.keyword / .ключ====
===event / событие===event - специальная категория, предназначенная для описания произошедших событий, распознаваемых парсером.
===this / это===Во время выполнения методаЕсли смена персонажа приводит к изменению текущей локации, this указывает на объект, которому принадлежит выполняемый метод. ===actor / актер===actor указывает на объект, от имени которого выполняется действие. actor не изменяется при вызове методов других объектов.По умолчанию значения всех относительных свойств возвращаются относительно объекта actor. ===act / акт===act указывает на объект категории action и соответствует действию, выполняемому в данный момент.act имеет смысл в методах, вызываемых парсером и после парсера. Во всех остальных случаях значение act равно nullдля новой локации вызывается обработчик события OnEnter().
====typ / тип====
====str / строка====
====num / число====
====obj / объект====
====key / ключ====
====pos / поз====
====loc / лок====
====cls / класс====
====ctg / категория====
====lex / лексема====
====pat / шаблон====
====item / элемент====
====title / наименование====
====menu_name / заголовок_меню====
====Сообщения парсера====
=====is_not_recognized=====
=====number_is_expected=====
=====unknown_word=====
=====incorrect_form=====
=====object_not_found=====
=====unusable_object=====
=====too_difficult_statement=====
=====object_select=====
=====сan_not_execute=====
=====no_reply=====
Нет описания правки
Справочник по языку программирования платформы [[ТОМ]].
{{Содержание справа}}
По умолчанию, если Obj не управляется игроком, сообщения парсера на экран не выводятся.
==Конструкции языка==
В отличии от локальных переменных, глобальные переменные могут иметь относительные значения также как свойства объектов.
====global.secret====
Это единственная переменная, которая сохраняет свое значение при рестарте, при загрузке новой игры или при загрузке модуля игры.
==Константы==
===frontend===
*Константа используется в выражениях. Возвращает строку с именем используемого интерфейса (исполняемого файла). Например "constom.exe" или "Milena.exe".
==Специальные контекстные значения==
===this===
''(только для чтения)''
Во время выполнения метода this указывает на объект, которому принадлежит выполняемый метод.
===act===
===actor===
===talker===
===addressee===
===told===
===addressed===
==Объекты==
===phrase / фраза===
phrase - специальная категория, предназначенная для описания диалоговых фраз, распознаваемых парсером.
==Предопределенные объекты==
Персонажем может быть только уникальный объект.
При старте системы значением переменной pers == является объект global Управление персонажем:.
====Смена персонажа====
unique главный_герой //создаем уникальный объект
{
//... описание главного героя
}
pers = главный_герой //передаем управление на новый объект
==Предопределенные свойства==
[[Изображение:TOM_prop.gif]]
===Поля Специальные поля значений===
Для любого [[TOM: язык программирования#Типы данных|типа данных]] возможен доступ к дополнительным полям.
(Но не для всех типов данных эти поля имеют смысл).
''(только для чтения)''
Работает для всех типов данных.
''(только для чтения)''
''(только для чтения)''
''(только для чтения)''
Возвращает "чистый" объект без примеси количества и положения.
''(только для чтения)''
''(только для чтения)''
Для прочих значений .pos возвращает null.
===Свойства Специальные свойства объектов=======name / имя====
Возвращает программное имя объекта.
''(только для чтения)''
Возвращает локацию, в которой находится объект.
Синтаксис: O.cls
Где: C - объект категории class.
Синтаксис: O.ctg
''(только для чтения)''
''(только для чтения)''
Cвойство используется для установки [[TOM: язык программирования#Шаблоны|парсерных шаблонов]] для объектов категорий action, phrase и event.
Количество шаблонов для одного объекта не ограничено.
}
Свойство item предоставляет доступ к [[TOM: язык программирования#Элементы объекта|вложенным объектам]].
Сообщения парсера хранятся в предопределенных глобальных переменных.
ТОМ инициализирует их при старте, затем они могут быть переопределены в любое время. Более того, свойства с этими же именами могут быть прописаны для актера, для действия или фразы, а также для объекта.
Для парсерных сообщений зарезервированы следующие имена:
*Это сообщение парсер выводит когда введенную команду не удалось сопоставить ни с одним шаблоном действий или фраз.
> подумай о сыре
Это предложение непонятно!
*Это сообщение выводится когда в шаблоне команды указана числовая переменная, а игрок ввел слово. Например, ''первый'' вместо 1, или ''пара'' вместо 2.
> возьми несколько горошин
Необходимо указать число.
*Это сообщение выводится когда в команде использовано слово, не соответствующие ни одному объекту в игре, или написанное с ошибками.
> возьми горохи из мешка
Слово <горохи> мне неизвестно.
*Это сообщение выводится когда слово в команде стоит в форме, не соответствующей форме, заданной в шаблоне команды.
> возьми горохом из мешка
"горохом" - слово в неверной форме.
*Это сообщение выводится когда найденный парсером объект находится вне текущей локации, при том что в шаблоне команды указано его обязательное присутствие.
> осмотри филина
Филин отсутствует.
* Это сообщение выводится когда найденный парсером объект не обладает свойством, указанном в шаблоне, или не принадлежит к классу, указанному в шаблоне.
> брось крота
Дядюшка-крот не годится для этого действия.
*Это сообщение выводится в случае, если парсинг команды требует перебора вариантов, количество которых превышает разумные пределы.
*Это сообщение выводится при устранении неопределенности перед списком неоднозначно распознанных объектов:
> взять еду
сушеные горошины в траве или малина на кустах;
*Это сообщение выводится когда введенная команда распознана, но для актера не задан метод для ее выполнения.
> Крот, осмотри мешок
Побойтесь бога! Крот слеп от рождения!
*Это сообщение выводится когда введенная строка распознана как фраза, но никто из присутствующих в локации на неё не ответил.
> расскажите мне про лес!
==Функции==
===Преобразование типов======Работа со строками======Прочие функции=======rnd() / шанс()====
Синтаксис: rnd( )
* Функция возвращает логическое значение ''да'' или ''нет'' с вероятностью 50/50.
* Функция возвращает случайное число в диапазоне от 1 до X включительно.
====set() / сет()========input() / ввод()========media() / медиа()====
==Теги==