Открыть главное меню

Изменения

ТОМ: язык программирования

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