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

easy.dialog

Подробное руководство по использованию модуля, с примерами. Страница вторая

Настройки диалога

Форматирование реплик

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

Настройки можно вынести за реплики, тогда эти настройки будут считаться настройками по умолчанию. Например:


 npc="name:Бабуся:name"
hero="name:Солдат Котёнкин:name"

{:Добрый вечер, милок.
   [:
      Здравствуйте, бабуся!
   :]
   [:
      Девушка, мы разве знакомы?
   :]
:}

Настройки доступны самые разнообразные.

npc=" " - настройки отображения фраз неписи в окне основного описания.

hero=" " - настройки отображения фраз героя в окне основного описания.

Настройки, вкладываемые в npc=" " и hero=" ":

name: :name - имя. Если между двоеточиями нет символов, не отображается.

ncolor: - цвет выводимого имени в шестнадцатеричном формате. Если не указан, или указан ошибочно, выводится чёрным (для неписей) или серым (для героя).

nattrib: - аттрибуты выводимого имени, указываются подряд без пробелов:

-b - жирный

-i - курсив

-n - нормальный. Сбрасывает значение прочих атрибутов.

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

fcolor: - цвет выводимой фразы в шестнадцатеричном формате. Если не указан, или указан ошибочно, выводится чёрным (для неписей) или серым (для героя).

fattrib: - аттрибуты выводимой фразы (см. список выше). Если не указаны, для фраз героя применяется курсив.

tire: - вид тире. Можно указать любые непробельные символы, и они будут выводиться перед каждой фразой героя или неписи. Чтобы ничего не выводилось, указывается слово "nope". Чтобы выводились символы пробела, используйте   или поместите тег в круглые скобки "(tire: )".

replics=" " - настройки порядка вывода реплик:

repeat: - количество повторов вывода реплик неписи:

one - выводится одна реплика. Например, выбранная случайно.

once - реплики неписи, кроме одиночных, выводятся единожды. Если реплики исчерпаны, выводится последняя.

cicle - реплики выводятся по кругу, т.е. имеют свойство повторяться. по умолчанию.

shuffle: - порядок вывода реплик.

random - случайный порядок

straight - прямой порядок т.е. от первой к последней. по умолчанию.

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

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


 npc="
   name:Бабуся:name
   ncolor:ff8800
   fcolor:886600
   fattrib:-i
   tire:nope
"
hero="name:Солдат Котёнкин:name ncolor:000000 fcolor:880088 nattrib:-b-n"
replics="repeat:one
shuffle:random"

Непосредственно в тексте реплик можно использовать любые html-теги, поддерживаемые плеером, и таким образом дополнительно форматировать текст. Например, вы можете выделить одно слово в реплике другим цветом:


 {:Добрый вечер, милок.
   [:
      Здравствуйте, бабуся!
   :]
   [:
      Девушка, мы разве <font color=#008800>знакомы</font>?
   :]
:}

Перед выводом на экран любая реплика облекается в точно такие же html-теги в соответствии с настройками. Например, Вы настроили цвет для фразы:


 npc="
   name:Бабуся:name
   fcolor:886600
"
{:Добрый вечер, милок.
   [:
      Здравствуйте, бабуся!
   :]
   [:
      Девушка, мы разве <font color=#008800>знакомы</font>?
   :]
:}

Перед выводом на экран, будет сформирована строка:

 <font color=#000000><b>Бабуся:</b></font><font color=#886600> — Добрый вечер, милок.</font>
 

На экране это будет выглядеть так:

Бабуся: — Добрый вечер, милок.

Модуль автоматически включает распознавание html-тегов в плеере, при обращении к локации "dialog.int".

Когда игрок выберет действие "Девушка, мы разве знакомы?", перед выводом на экран будет сформирована надпись:

 <font color=#888888><i> — Девушка, мы разве <font color=#008800>знакомы</font>?</i></font>
 

На экране это будет выглядеть так:

— Девушка, мы разве знакомы?

То есть будет сохранено автоматическое форматирование и форматирование, которое вы пропишете прямо внутри фразы. Это очень удобно, если нужно форматировать только одну реплику, предложение в реплике, или слово. Html-теги можно использовать и при указании имени, тогда имя будет отличаться от основного цвета.

Наследование настроек

Указывать настройки можно не только для всего диалога вцелом, но и для отдельных реплик и даже для целых веток. Возьмём наш старый пример и немного его модифицируем:


 npc="
name:Ведущий:name
ncolor:008888
fcolor:008888
"
hero="
name:Вася Пупкин:name
"

{:
   Как вас зовут?
   [:

   hero="ncolor:008800"
      Меня зовут Вася.
      {:Вас зовут Вася?
         [:
         npc="fcolor:880000"
         Да, меня зовут Вася.
            {:да ну нафиг:}
            [:
            нет. чистая правда
            :]
         :]
         [:Нет, никто меня так не зовёт:]
      :}
      {:
         Это правда, что вас зовут Васей?
         [:Правда
         :]
         [:Неправда:]
      :}
   :]
   [:
   hero="ncolor:ff0000"
      Меня зовут Петя.
      {:
         Вас зовут Петя?
         [:Да{:Как это удобно!:}:]
         [:
            Нет
            {:Вас зовут не Петя? Как неудобно!:}
         :]
      :}
      {:
         Это правда, что вас зовут Петей?
         [:Правда:]
         [:Неправда:]
      :}
      {:Неужели в самом деле Петей Вас зовут?
         [:В самом деле:]
         [:Нет, не в самом:]
      :}
   :]
:}

До начала диалога мы прописали настройки, которые будут считаться настройками по умолчанию. Первым делом на экран будет выведена фраза "Как вас зовут?" с настройками для npc, которые указаны для всего диалога. Для всего диалога указано так же и имя героя, но не указан ни цвет, ни аттрибуты жирности/наклона, поэтому будут применяться настройки по умолчанию. То есть цвет имени героя будет серым. Однако, как только игрок выберет одно из выпавших действий:

Меня зовут Вася

или

Меня зовут Петя

будут применены настройки, вложенные в это действие. Эти настройки подменят собой настройки, указанные для всего диалога, но лишь те из них, которые указаны явно. Так, если игрок выберет действие "Меня зовут Вася", имя героя для текущей и всех вложенных реплик будет зелёным. Все остальные настройки останутся прежними. Смотрим дальше. После выбора действия "Меня зовут Вася", актёр "переспросит": "Вас зовут Вася?", фраза эта появится на экране всё с теми же общими настройками для всего диалога. Однако вслед за ней на экране появятся два действия:

Да, меня зовут Вася.

и

Нет, никто меня так не зовёт

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

Сброс настроек

Для сброса настроек в значение, предопределённое для всего диалога (значения по умолчанию), используется ключевое слово default.

  • npc="default"   - сбрасывает все настройки реплик неписи в значения по умолчанию (дефолтные значения),
  • hero="default"   - сбрасывает все настройки реплик героя в дефолтные значения,
  • replics="default" - сбрасывает все настройки порядка вывода реплик в дефолтные значения.

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

fcolor:default

Порядок вывода реплик

Выше уже были обозначены основные настройки порядка вывода реплик. Рассмотрим подробнее их поведение на примере последнего диалога, а точнее вот этой его части:


 [:
    hero="ncolor:ff0000"
    Меня зовут Петя.
    {:
       Вас зовут Петя?
       [:Да{:Как это удобно!:}:]
       [:
          Нет
          {:Вас зовут не Петя? Как неудобно!:}
       :]
    :}

    {:
       Это правда, что вас зовут Петей?
       [:Правда:]
       [:Неправда:]
    :}

    {:Неужели в самом деле Петей Вас зовут?
       [:В самом деле:]
       [:Нет, не в самом:]
    :}

:]

Для наглядности разные реплики выделены разными цветами.

Предположим игрок выбрал действие "Меня зовут Петя". Какая из трёх реплик неписи должна быть выведена? Вот за это и отвечают настройки порядка вывода реплик.

  • shuffle: — настройка, определяющая выбор следующей реплики. Можно указать один из вариантов:

    • random   - реплика неписи будет выбрана случайным образом.
    • straight   - будет выбрана следующая реплика в порядке очереди. Т.е. если это первый выбор действия "Меня зовут Петя", будет выведена первая реплика (отмечена красным цветом), если игрок второй раз нажмёт на действие, будет выведена вторая реплика (отмечена фиолетовым цветом), и т.д.
  • repeat:   - настройка, определяющая режим повтора реплик. Можно указать один из вариантов:

    • one   - всякий раз при выборе этого действия будет выводиться одна и та же реплика. Например, была выставлена настройка shuffle:random. Когда игрок выберет действие "Меня зовут Петя", случайным образом будет выбрана одна из реплик, и показана на экране. В следующий раз, когда игрок вновь выберет это же действие, вновь на экран будет выведена та же самая реплика.

    • once   - реплики будут выводиться не повторяясь по одному разу. После вывода последней реплики всё время будет выводиться только она. Например, была выставлена настройка shuffle:straight. Когда игрок выберет действие "Меня зовут Петя" первый раз, на экран будет выведена первая реплика (выделена красным цветом. Во второй раз появится вторая реплика (выделена фиолетовым), в третий раз - третья (синяя. Последняя реплика). В четвёртый, пятый и далее будет выводиться третья реплика.

    • cicle   - реплики будут выводиться непрерывно по кругу. Если выставлена настройка shuffle:straight, первый раз выведется первая реплика, второй раз - вторая, третий - третья, на четвёртый раз - вновь первая, потом снова: вторая, третья, первая, вторая... и т.д. Для настройки shuffle:random выбор реплики несколько сложнее. Первый раз, когда игрок выберет действия, реплика определится случайным образом из трёх. На второй раз случайным образом выбирается одна из двух оставшихся реплик. Потом последняя оставшаяся. В четвёртый раз вновь происходит выбор случайным образом из трёх реплик, и т.д.
Наверх