×
Меню
Индекс

Краткий курс написания диалогов для TES3:Morrowind от zOmb'a

 
взято с почившего Тиарума (линк на ВэбАрхивы)
https://web.archive.org/web/20180525083916/http://tiarum.com/wiki/Morrowind:%D0%9A%D1%80%D0%B0%D1%82%D0%BA%D0%B8%D0%B9_%D0%BA%D1%83%D1%80%D1%81_%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B4%D0%B8%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2_%D0%B4%D0%BB%D1%8F_TES3:Morrowind_%D0%BE%D1%82_zOmb
 
Первое, что надо знать о диалогах в русском Морровинде - это то, что в нем ссылки не обрабатываются.
По этому вам необходима очень маленькая и простая прога, которую можно скачать отсюда.
https://web.archive.org/web/20180525083916/http://lastdwemer.tiarum.com/Morr/less/Plugin_Utils_1C.rar
 
Если вы хотите работать с уже готовым плагином, в котором есть диалоги, то вам надо его прогнать его через fixplugin4editor.exe.
Эта программа работает только в командной строке. Для выполнения требуемой операции строка должна иметь вид «fixplugin4editor.exe начальный_файл.esp конечный_файл.esp ». После этого все ссылки, которые, в оригинале, обозначаются символами @ и # переводятся в символы { }.
Это необходимо потому, что при сохранении в русской версии редактор проглатывает символы @ и #. Но подробней об этом в соответствующем разделе.
 
Итак, приступим: Для того, чтобы открыть редактор диалогов надо щелкнуть по кнопке в виде «комиксового текстового облачка» на верхней панели.
Или открыть свойства НПС и там щелкнуть по кнопке «диалоги». В этом случае вы сразу увидите фразы, которые может сказать этот НПС.
 
Редактор
 
Вот перед вами окно редактора диалогов. В нём несколько отделений. Расскажем о них по порядку.
 
Слева вы видите список топиков - это те темы, которые отображаются в правой части окна диалога в игре и выделяются, как ссылки, в тексте.
Под ним вы видите список выбора НПС. Если там кто-то выбран, то выше будут показаны только те темы, на которые он может говорить.
Если там пусто, то будут показаны все топики, существующие в игре.
В редакторе они не упорядочены, что заметно затрудняет поиск тем, хотя они всё же лежат небольшими группами слов, начинающихся на одну букву.
Все новые или изменённые топики помечены звездочками. В CS вообще всё, что изменено, помечается звёздочками.
 
 
Сохранившись и запустив игру с этим плагином мы не увидим ссылки потому что это не морровиндская ссылка.
Перед запуском вы должны пропустить плагин через прогу fixplugin4game.exe с командной строкой « fixplugin4game.exe начальный_файл.esp конечный_файл.esp ».
После этого вы получите полноценный рабочий плагин ( конечно, если вы всё в нём доделали ;-) ).
После тестинга не надо повторять процедуру конвертирования – просто продолжайте редактировать начальный_файл.esp.
Есть другой, более правильный способ создания ссылок из слов, не являющихся названиями топиков. Но об этом ниже.
 
    Ниже идут настройки условий.
        Слева стоят настройки НПС:
        Следующие 2 строки – это ограничения плеера:
        Правая сторона
        Далее идут функции. Каждое окошко может занимать любая из нижеследующих функций
        Для журнала есть ещё некоторые особенности (только для Трибунала \ БлудМуна).
 
    Самое нижнее окно носит название results. В нём пишутся минискрипты, которые будут выполнены после произнесения фразы.
 
choice “Вариант1” 1 “Вариант2” 2
 
В результате этого, после фразы появится менюшка
 
……
Вариант1 Вариант2
 
Для обработки ответов, в соответствующих выбору фразах, надо поставить функцию choice = 1 (для ответа на первый вариант).
Стоит учитывать, что эта фраза будет произнесена, только если будет задан вопрос и если на него будет получен именно такой ответ.
У одного вопроса может быть много вариантов ответа, а в одном топике может быть много вопросов. Главное - не запутайтесь в них.
 
    Часто применяется команда дать \ забрать предмет. Она выглядит так:
 
player->additem “ID предмета” “его количество” – это для выдачи.
 
player->removeitem “IDпредмета” “его количество” – для изъятия.
 
Можно, также забрать предмет у кого-нибудь другого, у НПС, например, или из сундука. Для этого вместо player надо вписать ID пациента.
 
    Полезная штука- изменение отношения. Оно прописывается так:
 
ModDisposition “изменение”. Изменение может быть как положительным, так и отрицательным.
 
    Добавление записи в журнал.
 
journal “топик” “индекс” Можно использовать здесь почти все скриптовые команды, но это уже обучение скриптописанию, а не диалогам.
 
Есть ещё несколько важных деталей: из-за того, что в режиме выбора НПС в списке фраз присутствуют только фразы, которые может сказать ЭТОТ НПС, а в топике присутствуют и другие фразы, то при попытке вставить фразу между, как казалось, соседними фразами, фраза убегает чёрти куда после перезагрузки топика (щёлкни по другому, а потом опять по этому). Во избежание этого необходимо либо с самого начала строить расположение фраз самой первой и прибавлять сверху к ней последующую фразу, либо редактировать топик в общем режиме (не выбран НПС), когда отображаются все фразы, которые есть в топике. Это актуально, если об этом топике говорят несколько НПС разные фразы.
 
 
Создание диалога
 
Выше мы разобрали окно редактора, но как же всё-таки создать диалог? Вот инструкция для начинающих:
 
Для начала откройте редактор диалогов и выберите вашего «говоруна». Если вам нужно добавить новую реплику в стандартный топик (например, новую сплетню или высказывание о Нерварине), то найдите этот топик и добавьте фразу, щелкнув RMB и выбрав пункт new. Как уже было сказано, место вставки очень важно. Если вы хотите, чтобы NPC говорил только эту фразу, то поставьте её самой верхней и без условий (или с условие, что ё будут говорить этот/эти NPC). Ежели вам надо сделать так, что бы NPC говорил фразу в определённой ситуации, то воспользуйтесь установкой условий, описанной выше.
 
Стоит заметить, что если вы изменили какую-либо стандартную фразу, она приравнивается к новой и теряет свои ссылки. По-этому вы должны заменить её @ и # на { }.
 
Ещё одна особенность добавления фразы в старый топик – это согласование ID топиков: При загрузке плагина у вас может выскочить предупреждение типа Previous string different topic Greeting1" info 32281390961219948-"Кто здесь?". Если такое случилось, то вам надо минимально изменить (пробел поставить и убрать) топик, о котором говорится в предупреждении. Обычно он соседствует с вашим новым. Если вы хотите создать новый топик (тему для разговора) то вам следует перейти в общий режим отображения топиков, RMB->new. Вам следует создать хотя бы одну пустую фразу в вашем топике, иначе в режиме выбора вы не увидите этого топика. Далее создаёте фразы в топике. Здесь нет ограничений. Но, как говорилось выше, для того, чтобы плеер смог говорить на эту тему, он должен хоть раз увидеть ссылку на неё. Для этого используют либо скриптовую команду AddTopic “IDtopic”, либо гритинги (приветственные слова, которые находятся на одноимённой вкладке). Первый способ не слишком красив, но действенен. Он, в основном, применяется в скриптах (например, на вас напали и в диалоге появляется тема «нападение ассасинов»). Также этот способ можно использовать и в диалоге, если вы не хотите использовать гритинг. Просто пропишите в окне result эту команду. Второй способ более реалистичен – вы услышали что-то и захотели расспросить поподробнее об этом. Итак, переходим на закладку greeting . В левой части вы можете видеть несколько топиков “ greeting 0-9”. Будет произнесена первая фраза, которая будет подходить по условиям в 0-м топике. Если там не будет подходяще – будет произнесена первая подходящая из 1-го топика и т.д. В принципе, не слишком важно, где вы вставите своё приветствие, лишь бы выше 6-го топика (там начинаются стандартные обращения), до него, кажется, идут только квестовые приветствия. Итак, вставьте своё новое приветствие где-нибудь сверху. Оно обязательно должно содержать фразу с новым топиком. Учтите, что проблема с согласованием топиков может возникнуть и в этом случае. Также обрате внимание, что вы не можете ставить свой новый гритинг выше, чем фраза «ты нарушил клятву молчания» в 1-м топике и ниже, чем фраза «Вы мне всё ещё не нравитесь», в 9-м. Причину этого я не знаю, но так разрабы написали в комментарии к этим фразам ;-). Теперь пропускаем плаг через fixplugin4game.exe и тестируем. Вы ведь не забыли все ссылки выделить символами { и }? Для начала этой информации должно быть достаточно. Тонкости организации длинных топиков с кучей условий придут только с опытом. Дерзайте!
 
 
О *.top файлах.
 
Если вы используете локализованную версию игры, то, наверно, замечали файлы morrowind.top, tribunal.top и т.д. В них содержатся сопоставление ссылок топикам, которые не идентичны написанию топика. Т.е. если наш топик зовётся «опохмел», то можно сделать ссылку на этот топик словом «опохмелиться», «полечиться» или любым другим сочетанием букв. Для того, чтобы прикрепить к своему плагину такой файл, создайте простой текстовый файл с именем «название файла плагина».top. Внутри просто пишите «текст ссылки» tab «топик» Ссылка и топик обязательно должны быть разделены табулятором. На одной строчке пишется только одна пара. Если что-то непонятно, просто посмотрите на morrowind.top. Для того чтобы файл заработал, надо в корень игры, рядом с Morrowind.exe положить файл angel.ini.Это простой текстовый файл, содержащий следующий текст:
 
[General]
ProcessPriority=0
LoadTopdataForPlugins=1
LoadMarkTopicForPlugins=1
LoadCellsForPlugins=1
EnableConsole=1
EnglishInput=1
 
Но помните, что такой файл должен лежать на каждой машине, где пытаются запустить плагин с *.top файлом. Если его не будет - *.top файл будет проигнорирован. Просто добавляйте это файл в архив с плагином.