FOnline
 Указатель Классы Функции Переменные Группы Страницы
Написание диалога

Лучше всего начинать создание диалога с написания непосредственно фраз в Блокноте.

В редакторе писать менее удобно, так как нельзя вставить реплику в ответ на фразу, если нет той фразы НПЦ, к которой она ведет. Приходится потом корректировать ссылки, а это почва для множества багов. Только помните, что ни там, ни там нет автосохранения, поэтому... постоянно сохраняйтесь!

Диалог составляется по следующей маске:

-Фраза НПЦ.
--Ответ 1
--Ответ 2
--Ответ ...

И так много раз.

Диалог всегда начинается со фразы НПЦ. Конечно, этой фразой может быть и "НПЦ молчит и внимательно смотрит на вас".

Когда готов текст диалога, можно начинать прогонять его через редактор. Это просто: сначала копируются все фразы НПЦ (не выходя из закладки "Диалог"), заnем на них навешиваются ответы. Если вам не нравится перемешивание фраз в диалогах, не забудьте в самом начале поставить галочку "Не перемешивать ответы", после этого только начинать добавлять диалоги. После того, как на все диалоги повешены ответы, на них можно вешать условия и результаты, прописывать преддиалоговые установки. Процесс прогонки диалога со сложной структурой через редактор может занять столько же времени, сколько заняло само написание. Хорошей комбинацией является написание диалога в вечерние-ночные часы (активно творческое мышление) и последущая прогонка через редактор в утренние (активна логика, острее внимание).

Помните, что в отличие от оригинала, реплика с активацией бартера не ведет на другую фразу НПЦ, а оставляет на этой же. Однако, на ответ с активацией бартера можно повесить активацию какой-нибудь переменной, означающей, что бартер был. Потом создать два набора ответов: до бартера и после. Это создаст впечатление перехода на другой диалог. Например:

{}{}{Чего изволите?} //Фраза НПЦ.
{}{}{Давай поторгуем.} //Показывается только до бартера.
{}{}{Ничего, мне пора сваливать.} //Показывается только до бартера.
{}{}{Покажи свое барахло еще раз.} //Показывается только после бартера.
{}{}{Это все, спасибо.} //Показывается только после бартера.
{}{}{Pundmuk good. No harm Pundmuk.} //Независимо от бартера.

Старайтесь использовать побольше "опорных пунктов" (hub) и циклов в диалогах: это диалог НПЦ, к которому ведут фразы вида "Хочу спросить кое о чем", сам диалог выглядит как "О чем вы хотите спросить" (обычно со множеством разных вариантов этой фразы через теги), снизу дан список вопросов. Замена разных 2-3 вопросов под каждой фразой НПЦ на "хочу спросить еще кое о чем" сильно снижает времезатраты при написании.

Пример громоздкого диалога:

--Эй, расскажи мне о деревне.
-В деревне у нас нелады. Бури, гром, червие.
--Расскажи мне о бурях.
--Расскажи мне о громе.
--Расскажи мне о червие!
--Ужас, ужас, ухожу.
-Бури как бури.
--Ну а громы?
--А с червием-то что?
--Ну не хочешь говорить, тогда я уйду.
-Гром как гром. Гремит.
--А бури?
--А с червием-то что?
--Ну не хочешь говорить, тогда я уйду.
-Червие точит.
--А бури что?
--А как гром? Гремит, небось?
--Ух, стратотень, ухожу.

Пример оптимизированного диалога:

-В деревне у нас нелады. Бури, гром, червие.
--Расскажи мне о бурях.
--Расскажи мне о громе.
--Расскажи мне о червие!
--Не хочу больше ничего знать, ухожу!
-Бури как бури.
--Расскажи еще о деревне.
--Ну не хочешь говорить, тогда я уйду.
-Гром как гром. Гремит.
--Расскажи еще о деревне.
--Ну не хочешь говорить, тогда я уйду.
-Червие точит.
--Расскажи еще о деревне.
--Ух, стратотень, ухожу.

В оптимизированном варианте каждый вариант "расскажи еще" отсылает на первую фразу.

Первый вариант больше похож на живой диалог, но он очень и очень трудозатратный. Второй - некий шаблон компьютерных игр, но он удобен. Выбор за вами.

Стандарты написания диалогов

Права сценариста
Сценарист вправе сам выбирать, какими переменными ему пользоваться для того, чтобы раскрыть НПЦ и Игроку было наиболее комфортно и интересно с ним разговаривать.
Сценарист вправе придумывать свои переменные для общего пользования, только обязан их описать - для чего они нужны и как их лучше использовать.

Обязательные требования к оформлению:

  1. Писать грамотно (орфография, пунктуация...).
  1. Комментарии писать в квадратных скобках с большой буквы.

Пример:

Пока. [Уходите]
[далее] не правильно, правильный вариант [Далее]
[Пффф.] не правильно, правильный вариант [Пффф]
  1. Предложения внутри [] разделяются точкой, в конце точка не ставится.
  1. Примерный перечень ответов персонажа с интелектом <4 (или делать в подобной стилистике):
    "Ууугы!" "Уго уго." "Угуук." "Моя пошел." "Гым?" "Агу-агу!" - "Пока."
    "Ооо!" "А?" "Чо?" "Ыг-ггг!" "Ага!" "Моя" - "Да."
    "Мая не хотеть" "Ниа" "Хр-рррррл!" "Ррр?" - "Нет."
    "Моя нада ба раххлооо!" "[Смотрите на прилавок и показываете пальцем] Менять!" - бартер
    Также можно применять простые слова с искажениями, на усмотрение автора.

Некоторые рекомендации

  • Не забывайте, что диалог может вестись с игроком как мужского, так и женского пола. Активно используйте тэг @sex@ .
  • При написании диалога также старайтесь внимательно отнестись к тому, как НПЦ обращается к игроку, на "ты" или на "вы". Это нужно для того, чтобы диалог выглядел целостно. Конечно, обращение можно менять, если НПЦ познакомился с игроком, или игрок стал другом НПЦ (смотрите уникальную переменную loyality), или выполнилось какое-либо другое условие.
  • Используйте комментарии в квадратных скобках после ответа игрока только если его действия после выбора этого ответа неочевидны. Пример того, что не стоит использовать: "Пока, я ухожу. [Выход из диалога]". Такая фраза отучает игрока думать, он кликает по фразам, ориентируясь только по комментариям в скобках. Пример того, что можно использовать: "Пока, я ухожу. [Приставить ствол к его животу и нажать на курок]".
  • Описывайте действия в скобках в ответах игрока как "Попытаться сделать", "Сделать" (Пример: [Попытаться стянуть у него пропуск из кармана] / [Уйти]). Не используйте в ответах фраз вида "Вы делаете..." (Реальный пример: [Вы подскакиваете к его компьютеру, скачиваете нужные данные, форматируете диск, рисуете в фотошопе новые обои, потом убегаете, похлопав его по плечу]). Подобные фразы _очень_ раздражают игрока. Особенно, если вариант ответа только один. Во-первых, возникает логичный вопрос: "Какого хрена? А если я хотел сделать по другому?", во-вторых, игрок ощущает себя не участником процесса, а просто зрителем, которому надо нажать на кнопку для продолжения кино.
  • Логично будет, если после заявок на действия их можно будет провалить. Самая распространенная ошибка: фраза [Попытаться сделать], на которую повешено условие SK_НАВЫК>xx%, но при этом отсутствует фраза [Попытаться сделать] c условием SK_НАВЫК<xx%, которая будет вести к провалу.

    ИЗБЕГАЙТЕ ЭТОГО!
    ИЗБЕГАЙТЕ ЭТОГО!
    ИЗБЕГАЙТЕ ЭТОГО!

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

FAQ по диалогописанию:

1. Какое название у прототипа денег? Весь список перерыл, ничего нет.
PID_BOTTLE_CAPS. Название такое из-за того, что разработчикам Fallout2 было лень переименовывать все проверки на деньги в скриптах из Fallout 1. Прототип настоящих бутылочных крышек так и называется: PID_REAL_BOTTLE_CAPS.
Если у вас есть трудности с нахождением названия какого-то другого прототипа, найдите его номер в маппере по картинке, а потом отыщите название в файле ItemNames.lst.

2. Как поставить проверку на пол персонажа?
Используйте проверку по ST_GENDER. 0 - мужчина, 1 - женщина. Вопреки распространенному мнению.

3. Как сделать всплывающие фразы над головой персонажа?
Просто не добавляйте вариантов ответа к реплике НПЦ. Она появится над его головой. Для "неразговорчивых" НПЦ, выдающих случайные фразы, используется просто переход на диалог №2 с преддиалоговых установок, с набором фраз через тег "@@" в диалоге.

4. Что надо писать в ответах к преддиалоговым установкам?
Ничего, они никак не отображаются в игре. Можно эти поля использовать для комментариев ("Эта ветка ведет на квест", "Ветка для персонажа, выполнившего квест", и так далее).

5. Как тестировать диалоги?
Используйте программу DialogPlayer.

6. Почему не работает редактор?????!!!!!!!!!111111111
Возможно, не установлен .NET Framework. Возможно, что-то еще. Поищите темы с troubleshooting'ом в разделе по редактору диалогов на форуме.

7. Я хочу, чтобы НПЦ атаковал игрока после того, как тот нажмет на финальную фразу. Но игрок может нажать 0, чтобы закрыть диалог, и безнаказанно убежать. Как этого избежать?
Выберите опцию "Attack" в поле "Script" в закладке добавления диалога. НПЦ будет атаковать игрока, если тот не выбрал ответа на этот диалог.

8. Надо ли писать "Вы видите..." в кратком описании?
Да.

9. Можно ли включить в FAQ еще какой-то глупый вопрос?
Присылайте - включим.