Modding:Mod Text Merger

Материал из Tiarum
Перейти к: навигация, поиск

Утилита Mod Text Merger




Назначение

Данная утилита предназначена для замены текста в некоторых типах рекордов в плагинах Morrowind.
В основном применяется для импортирования перевода обратно в плагин.


Modtextmergerag7.jpg

Принцип работы

Загружается плагин и текстовый файл подстановок. Сканируются все записи плагина, определяется их ID, затем этот ID ищется в файле подстановок и, если найден, то указанная для подстановки строка замещает в этом рекорде одно из текстовых полей (зависит от типа рекорда).

Результат записывается в файл _out.es? в том же каталоге, где лежит исходный плагин.

Формат файла подстановок

Это текстовый файл, одна строка - одна запись. Запись имеет вид:

INFO:1234567890=bla bla bla

Здесь до знака равно указан префикс "INFO:" и ID записи, нуждающейся в замене, непосредственно после знака "=" и до конца строки следует текст, который будет записан в плагин.

Такие строки может генерировать другая программа автора - Mod Info:

  • Загрузите в нее плагин и проведите поиск в мастер файлах.
  • Затем дайте команду Menu -> Export -> Export For Translate.
  • Результат будет выведен в текстовый файл.

Команда Menu -> Info -> Check Info Hyperlink также генерирует такие строки, но в отношении только измененных INFO-записей, в которых пропали гиперссылки (к тому же текст уже берется из мастер файла, а не из плагина, т.к. считается, что в плагине текст испорчен).

Что еще?...

  • Запись в файле подстановок обязательно должна быть в одну строку.
  • Если в тексте присутствуют символы перевода строки, то замените их на символ с кодом 0x7f.

Список обрабатываемых рекордов и полей в них:

  • ACTI FNAM
  • ALCH FNAM
  • APPA FNAM
  • ARMO FNAM
  • BOOK FNAM
  • BSGN FNAM
  • CLAS FNAM
  • CLOT FNAM
  • CONT FNAM
  • CREA FNAM
  • DIAL NAME
  • DOOR FNAM
  • FACT FNAM
  • GMST STRV
  • INFO NAME
  • INGR FNAM
  • LIGH FNAM
  • LOCK FNAM
  • MGEF DESC
  • MISC FNAM
  • NPC_ FNAM
  • PROB FNAM
  • RACE FNAM
  • REGN FNAM
  • REPA FNAM
  • SPEL FNAM
  • WEAP FNAM

Описание алгоритма работы

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

Строка подстановки разбивается на 3 части:

  • Тип рекорда (например WEAP).
  • ID рекорда - строка после ':' и до первого символа "=".
  • Текст подстановки - сразу после первого символа "=" и до конца строки.

Если тип и ID совпадают, то производится замена текста в субрекорде, зависящем от типа рекорда.

Например, для WEAP будет меняться поле FNAM. Если тип или ID не найдены, то рекорд просто записывается в выходной файл без изменений.

Отсюда вытекают две возможные проблемы:

  1. Если сам ИД содержит символы '=', то возможно некорректное определение рекорда. Просто удаляйте такие строки из файла подстановок при редактировании (и редактируйте их вручную впоследствии)
  2. При наличии дублирующих ID (в рекордах INFO это бывает), в файле подстановок будет найдена только первая строка. И все дублирующие рекорды получат одинаковое изменение. Такие ситуации также желательно избегать удалением строк в файле подстановок. Узнать, какие ID дублируются, можно с помощью Mod Info.


Примечания:

  • Для утилиты несущественно, является ли обрабатываемый файл плагином или мастер файлом...
  • Для ускорения работы утилиты удаляйте из файла подстановки все ненужные записи.


Vasiliy: Автор, как обычно, не несет ответственность за порчу любых данных или оборудования на вашем компьютере.


Ваши предложения и замечания присылайте автору на эту почту.