Как написать собственный мод, который патчит dialog.tlk?

Вы просматриваете публикацию, размещенную в разделе "Библиотека" → "Моддинг".

  • Дата размещения:
  • Дата предыдущего просмотра: 6 декабря 2016 г. 19:23
  • Количество просмотров: 3085
  • Дата последнего редактирования: 26 января 2015 г. 20:45
  • Количество правок: 1
  • Опубликовал: Aldark
Не раз сталкивался с тем, что нужно с помощью WeiDU изменить определенные строки в dialog.tlk и dialogf.tlk. Как это можно сделать? Именно патчингом игрового .tlk файла мы сегодня и займемся!

С чего начнем и чем закончим?

Для начала нужно скачать новейшую версию WeiDU отсюда: http://weidu.org/~thebigg/ . Назовем наш мод, например, tlkmod. Тогда создадим в папке с игрой (BG или любой другой основанной на Infinity Engine) следующие файлы:

1. Скопируем WeiDU.exe в папку с игрой и переименуем его в setup-tlkmod.exe
2. Создадим в папке с setup-tlkmod.exe файл setup-tlkmod.tp2 и папку tlkmod
3. В папке tlkmod cоздадим папку Languages , а в ней папку Russian , в которой создадим файл setup.tra

Минимум есть. Приступим собственно к написанию мода. Для начала откроем файл setup.tra и введем строки, которыми будем заменять строки в dialog.tlk . Например:
@1 = ~Строка патча 1~
@2 = ~Строка патча 2~
@3 = ~Строка патча 3~ ~Женская строка 3 (жен. -- помним об этой возможности в .тра файлах?)~


Теперь откроем файл setup-tlkmod.tp2 и введем следующий код:
BACKUP ~tlkmodBackup~
AUTHOR ~Имя автора, т.е. себя любимого (помним о том, что в ДОСе русская кодировка CP-866)~

ALWAYS // проверка на наличие dialogF.tlk. Если его нету, то он создается
ACTION_IF NOT FILE_EXISTS ~dialogF.tlk~ THEN
BEGIN
COPY_LARGE + ~dialog.tlk~ ~dialogF.tlk~
OUTER_SET restart_weidu = 1
AT_NOW ~echo Для игры создан файл dialogF.tlk. Вам нужно вручную перезапустить установщик, чтобы продолжить установку!~
AT_NOW ~pause~
FAIL ~~
END

ACTION_IF VARIABLE_IS_SET ~restart_weidu~ THEN
BEGIN
FAIL ~Вам нужно вручную перезапустить установщик, чтобы продолжить установку!~
END
END

LANGUAGE ~Aldark (автор русификации)~ ~Russian~ ~tlkmodlanguagesRussiansetup.tra~

BEGIN ~Mega patch for BG~ //Название компонента патча для пропатчивания

//Проверка на то, подходит ли патч для игры
REQUIRE_PREDICATE GAME_IS ~soa~ OR GAME_IS ~tob~ OR GAME_IS ~bgt~ ~Этот патч только для BG2:SoA, BG2:ToB или BGT~

STRING_SET 12 @1 //Меняем строку 12 в dialog.tlk и dialogf.tlk на строку @1 из setup.tra
STRING_SET 13 @2
STRING_SET 14 @3 //Меняем строку 14 в dialog.tlk и dialogf.tlk на строку @3 из setup.tra (при чем строки для .тлк файлов будут разными - смотри setup.tra)

Все. Наш патчер готов. Можете запустить и посмотреть на то, что получится в dialog.tlk. Если хотите опробовать его конечно. ;)

Зарегистрируйтесь, чтобы оставлять комментарии.