Вход
Приветствую Вас Гость
 

easy.dialog

Краткое описание модуля. Страница первая

Краткое описание

Термины и понятия

Тег — особая метка в тексте, отмечающая вхождение рассматриваемого текста. Теги могут быть открывающие и закрывающие, а так же одиночные. Комплекс из открывающего и закрывающего тегов может называться двойным тегом или сдвоенным тегом.

Содержимое тега — рассматриваемый текст, место вхождения которого обозначено тегами или тегом. Может использоваться понятие "значение тега". Числовое значение здесь условно обозначается [#значение], а текстовое - [$значение]. Вместо слова "значение" может употребляться "число", "текст", "шестнадцатеричное число", и другие слова и словосочетания. Если содержимое тега принимает конечное число значений, это будет показано перечислением этих значений через вертикальную черту в квадратных скобках [одно значение|второе значение|третье значение].

Команда — слово или группа слов, которые провоцируют выполнение определённых операций или действий, запуск механизмов.

Конструкция — текст, записанный по определённым правилам.

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

Герой — персонаж, которым непосредственно управляет игрок.

Актёр — персонаж, которым игрок не может управлять непосредственно.

Текст реплики — фраза героя или актёра, которая будет выведена на экран после обработки реплики. Текст реплики (иногда называется просто "фраза") - единственное содержимое реплики, которое не нужно облекать в специальные конструкции, или помещать между тегами.

Интерпретация реплики — процесс извлечения всех конструкций и текста реплики из реплики, а так же выполнение конструкций и команд, воспроизведение фразы в виде текста, выводимого на экран. За интерпретацию реплики отвечает процедура dialog.replic.int.

Пустая реплика — реплика, в которой отсутствует фраза.

Узел — реплика, в которую вложена другая реплика.

Родительская реплика — так называется узел по отношению к реплике, которая в него вложена. Реплика "F" - родительская реплика реплики "A". Ещё называется родителем. Всякий узел является родителем вложенной в него реплики.

Дочерняя реплика — так называется реплика по отношению к реплике, в которую она вложена. Реплика "A" - дочерняя реплика реплики "F". Всякая реплика, вложенная в узел, является дочерней.

Корень — текст, помещённый вне тегов реплик. Может называться также корневой репликой, нулевой репликой, начальной репликой или заголовком диалога.

Дефолтное значение — значение тега, которое было указано в заголовке диалога, либо значение по умолчанию.

Значение по умолчанию — значение, которое будет возвращено механизмом модуля easy.dialog, если не указано, или ошибочно указано другое значение. Значения по умолчанию встроены в движок.

Уровень — счёт вложений реплик, степень вложения реплики. Если реплика вложена в корень - первый уровень. Если реплика вложена в реплику, вложенную в корень, - второй уровень. И так далее. Верхним уровнем при этом считается корень.

Ответвления — одноуровненвые реплики, вложенные в один и тот же узел.

Ветка — ответвление вместе со всеми вложенными в него репликами.

Финал — реплика, в которую не вложено ни одной другой реплики. Называется так же финальной репликой, конечной репликой, или последней репликой.

Тело диалога — текст, содержащий хотя бы одну реплику помимо корня.

Теги, конструкции, команды

{:[$текст]:} — теги, между которыми записываются реплики неиграбельных персонажей (далее: актёры, неписи, NPC, персонажи). Текст реплики выводится на экран автоматически. Теги реплики актёра.

[:[$текст]:] — теги, между которыми записываются реплики персонажа, которым управляет игрок (далее - герой). Выводятся на экран в виде доступных игроку действий. При выборе действия, на экран выводится текст реплики. Теги реплики героя.

npc="[$настройки]" — конструкция, в которую помещаются настройки вывода фраз актёра.

hero="[$настройки]" — конструкция, в которую помещаются настройки форматирования и формирования фраз героя.

Настройки формирования и форматирования фраз актёров и героя:

name:[$значение]:name — двойной тег установки имени актёра или героя (в зависимости от того, в какую конструкцию помещено). Если указать пустое значение (между двоеточиями нет ничего), имя не будет выводиться. Если не указывать, будет выводиться имя, указанное в родительской реплике, либо дефолтное имя. Значением может быть любое сочетание пробельных и непробельных символов. Не рекомендуется использовать символ перевода строки.

ncolor:[$значение] — одиночный тег настройки цвета имени актёра или героя (в зависимости от того, в какую конструкцию помещено). Значением может выступать запись из шести шестнадцатеричных цифр. Формат цвета как в html: RRGGBB. Если не указывать, или оставить значение пустым, будет выводиться значение родительской реплики, или дефолтное.

fcolor:[$значение] — одиночный тег настройки цвета непосредственно фразы актёра или героя (в зависимости от того, в какую конструкцию помещено). Значением может выступать запись из шести шестнадцатеричных цифр. Формат цвета как в html: RRGGBB. Если не указывать, или оставить значение пустым, будет выводиться значение родительской реплики, или дефолтное.

nattrib:[$значение] — одиночный тег настройки стиля начертания шрифта имени актёра или героя (в зависимости от того, в какую конструкцию помещено). Значением выступают команды аттрибутов, в любом количестве. Если не указывать, или оставить значение пустым, будет выводиться значение родительской реплики, или дефолтное.

fattrib:[$значение] — одиночный тег настройки стиля начертания шрифта фразы актёра или героя (в зависимости от того, в какую конструкцию помещено. Значением выступают команды аттрибутов, в любом количестве. Если не указывать, или оставить значение пустым, будет выводиться значение родительской реплики, или дефолтное.):

-b — команда аттрибута, применяющая жирность к тексту.
-i — команда аттрибута, применяющая курсив к тексту.
-n — команда аттрибута, отменяющая жирность и курсив.

Аттрибуты считываются в обратном порядке, начиная с последнего, таким образом происходит и применение. Допустим, мы не хотим, чтобы имя героя отображалось курсивом, но продолжало отображаться жирным шрифтом. Пишем "natrib:-b-n". Сначала шрифт вернётся к нормальному виду, потом будет применена жирность. Если указать "natrib:-n-b", то сначала будет применена жирность, а потом шрифт вернётся к нормальному виду.

tire:[$значение] — одиночный тег, значение которого определяет символ, выводимый перед фразой (знак мыслеотделительный, знак перед прямой речью). Если не указано, выводится значение родительской реплики, или дефолтное. Если тег и его значение отделяются от остального текста пробелами, можно указывать только непробельные символы. Чтобы использовать пробельные символы в качестве знака перед прямой речью, следует поместить тег и его значение в круглые скобки:
(tire:[$значение])

Чтобы перед прямой речью не ставилось никаких знаков, следует использовать команду nope:
tire: nope

replics="[$настройки]" — конструкция, в которую помещаются настройки выбора, обработки и вывода реплик.

Настройки выбора, обработки и вывода реплик актёров и героя:

repeat:[one|once|cicle] — одиночный тег, значение которого определяет настройки повтора фраз актёра из ответвлений. Можно использовать три команды:

one — всё время диалога будет выводиться фраза только одного из ответвлений.
once — всякий раз будет выводиться фраза из ответвления, фраза которого ещё не выводилась. Когда такие ответвления закончатся, будет выводиться фраза ответвления, фраза из которого выводилась последний раз.
cicle — всякий раз будет выводиться фраза из следующего ответвления. Когда закончатся ответвления, фразы из которых ещё не выводились, выбор следующего ответвления пойдёт с начала.

repeat:[random|straight] — одиночный тег, значение которого определяет настройки выбора следующего ответвления для реплик актёра. Можно использовать две команды:

random — случайный выбор ответвления.
straight — выбор следующего ответвления в порядке очереди, в которой они записаны в теле диалога.

iffing:[$условия]:iffing — сдвоенный тег, значение которого используется в качестве условия вывода реплики.

act-name:[$текст]:act-name — сдвоенный тег, значение которого используется в качестве названия действия при интерпретации реплики героя.

frase-block:[$текст]:frase-block — конструкция вывода блока последовательных фраз. Между тегами размещается набор строк, каждая из которых считается отдельной фразой. При этом если в начале фразы выставлен тег <npc-name>, к ней применяются настройки фразы актёра, если же в начале фразы выставлен тег <hero-name> , к ней применяются настройки фразы героя.

dynamic-code:[$текст]:dynamic-code — между этими тегами помещается обычный код QSP, который будет выполнен во время интерпретации реплики.

levelup:[#число] — команда в виде одиночного тега, которая "возвращает" интерпретатор на несколько уровней вверх по узлам.

leveljump:[$метка] — команда в виде одиночного тега, которая отправляет интерпретатор к реплике, содержащей указанную метку. Метка указывается в значении тега.

marker:[$метка] — одиночный тег, значение которого считается меткой реплики.

closeup — команда, наличие которой в интерпретируемой реплике приведёт к закрытию диалога.

selectact.delete — команда, наличие которой в интерпретируемой реплике приведёт к удалению текущего действия из списка без обновления списка.

<!--[$комментарий]--> — открывающий и закрывающий теги комментария. В комментарии можно помещать всё, кроме фраз актёров и героя и других комментариев. Комментарии можно размещать в любом месте диалога, но не между тегами dynamic-code: :dynamic-code и iffing: :iffing. При наличии внутри комментариев описанных выше тегов и комманд, следует отделять их от тегов комментария хотя бы одним пробелом. Текст комментариев не выводится на экран.

Планируемые решения

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

bwaiting:[#миллисекунды] — настройка задержки вывода на экран фраз из блока фраз. В настоящий момент задержка существует, но не настраивается из-под диалога. Предшествует каждой отдельной фразе в т.ч. и без указания тегов <npc-name> и <hero-name> .

rwaiting:[#миллисекунды] — настройка задержки вывода на экран текста реплики.

selectreplic.delete — команда удаления реплики из диалога. Реплика удаляется из текущего диалога. Если закрыть и вновь открыть диалог, реплика вновь появится в ветке.

selectreplic.kill — команда удаления реплики из диалога. Реплика удаляется из диалога насовсем. То есть если закрыть диалог, а потом вновь открыть, реплика не появится в ветке.

act-close="[$настройки]" — конструкция, в которую помещаются настройки стандартного действия закрытия диалога. Стандартное действие - это действие, которое будет появляться в списке действий постоянно.

act-up="[$настройки]" — конструкция, в которую помещаются настройки стандартного действия, возвращающего на несколько узлов вверх. В частности такое действие должно возвращать к последнему узлу, где обновлялся список действий.

Возможно будет введена конструкция описания стандартных действий/реплик героя, которые должны повторяться на протяжении всей ветки диалога. act-standart="[$настройки]" - вместо настроек перечисляются метки стандартных реплик. Сами реплики располагаются в скрытой ветке.

Наверх