Создание китов для Baldur's Gate 2

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

  • Дата размещения:
  • Дата предыдущего просмотра: 9 декабря 2016 г. 2:58
  • Количество просмотров: 4991
  • Дата последнего редактирования: 26 января 2015 г. 21:52
  • Количество правок: 2
  • Опубликовал: Aldark
Лирическое вступление

Кое-что в данной статье взято со статьи CamDawg с gibberlings3.net .

Первым делом, перед началом работы нам понадобятся два "инструмента":
1. Свежая версия WeiDU: http://www.weidu.org/~thebigg/
2. Возможно, Near Infinity для вытаскивания файлов из игры, если у вас нету их отдельно.
3. BG2 KitCreator: http://www.baldursgatemods.com/forums/index.php?action=downloads;sa=view;down=91 (необязательно)

Сам процесс обучения созданию китов разобьем на теорию и небольшую практику. Почему практика такая короткая? Если вы разберетесь полностью с теор. курсом, то вам уже не нужно будет ничего - сами сможете сделать какой угодно кит. В дальнейшем раздел теории будет периодически пополняться, но добавки будут идти в конце статьи. Итак, заварив чашечку кофе или чая, начнем...

Краткий теор. курс

Я не буду останавливаться на том, что такое WeiDU и как пользоваться интерфейсом программы BG2 KitCreator - я предполагаю, что читатель вполне адекватно разбирается в таких вопросах, потому перейду сразу к делу, а именно теор. базе по китам.

Что такое кит? Собственно, это улучшенный вариант базового класса, имеющий свои недостатки и преимущества в сравнении с базовым классом. Например, Друид может быть как просто Друидом (базовый класс), так и Мстителем, Оборотнем и Тотемным друидом. Три последних названия - стандартные киты друида в БГ2.

Файлы которые отвечают за киты в игре следующие:

KITLIST.2da - основной файл китов. Здесь находиться список всех китов. Столбцы обозначают следующее:

ROWNAME Внутреннее имя кита. Заданное здесь имя должно использоваться во всех остальных файлов, касающихся данного кита! (только латиница!)

LOWER Имя кита маленькими буквами (точнее номер строки - ссылка на dialog.tlk)

MIXED Имя кита с заглавной буквы (ссылка)

HELP Описание кита (ссылка)

ABILITIES Имя файла со списком способностей класса. Должно иметь вид CLAB****.

PROFICIENCY Неизвестное поле. Однако, известно, что значение здесь должно быть уникальным для каждого кита.

UNUSABLE Определяет, какие вещи запрещать использовать персонажу. По факту - битовая маска, однако должен быть выставлен в 1 лишь один бит. Записано в 16-ричной системе. (список того, какой кит обозначает какой бит здесь )

CLASS Определяет базовый класс для данного кита. Возможные варианты: 1 (Маг), 2 (Боец), 3 (Священник), 4 (Вор), 5 (Бард), 6 (Паладин), 11 (Друид), и 12 (Следопыт).

ABCLASRQ.2da - тут записываются минимальные требования к характеристикам класса. Все очевидно, по этому останавливаться не буду.

ABCLSMOD.2da - тут записываются ухудшения/улучшения характеристик при генерации персонажа в зависимости от китов. По умолчанию, что-то изменяется только для Хозяина Зверей (кит класса Следопыт).

ABDCDSRQ.2da - по логике, тут должны содержаться минимальные требования к характеристикам, для того, чтобы появилась возможность "продуалиться" в кит персонажем-человеком. По сути, файл бесполезен, поскольку в игре дуалиться в киты нельзя, однако дополнять этот файл все-же придется.

ABDCSCRQ.2da - тут находятся минимальные требования к характеристикам, чтобы "продуалиться" из кита в другой класс. По правилам D&D, чтобы дуалиться в другие классы, основная характеристика текущего класса/кита должна иметь значение 15 и выше, но никто не запрещает поиздеваться над правилами.

ALIGNMNT.2da - тут содержатся ограничения по мировоззрению персонажа. L_G, L_N, L_E, N_G, N_N , N_E, C_G, C_N, C_E собственно обозначают мировоззрения. Если в ячейке стоит 1, то персонаж с данным мировоззрением может взять кит, если 0 - нет.

CLAB****.2da - тут содержатся бонусы и заклинания, которые получает кит при повышении уровня. Каждый кит в оригинальной игре имеет свой CLAB**** файл. Столбцы обозначают уровень персонажа, колонок может быть сколько угодно. Возможные значения ячеек:
1. **** - пустое поле для данного уровня
2. AP_******** - применяемое к персонажу заклинание при повышении им уровня. Например, повышение величины сопротивления магии Убийцы Волшебников при повышении уровня реализовано именно так.
3. GA_******** - получаем для использование заклинание при повышении уровня. Например, ярость варвара или каи кенсая.

В общем, CLAB файлы - это будет именно то, с чем вы будете работать большую часть времени.

CLASWEAP.2da - тут содержатся ограничения на использование видов оружия. 1 - персонаж может использовать данный тип оружия, 0 - не может. Столбцы очевидны (типы оружия).

DUALCLAS.2da - тут содержится в виде колонок список классов, в какие можно задуалиться, если у нас выбран такой-то кит. 1 обозначает, что можем задуалиться, а 0 - не можем. Из-за внедренного в ехе говно кода, если написать китам барда или паладина в .2da возможность дуалиться в другие классы и попытаться задуалиться, то случиться вылет в окошки с радостным сообщением об ошибке.

K_*_*.2da - файлы такого вида контролируют, какие киты доступны игроку при создании персонажа. Третья и пятая буквы имени указывают на то, какая раса и класс рассматриваются, например в файле K_C_H рассматриваются киты священника (C - cleric) человека (H - human). В файле KITTABLE.2da содержится полная таблица всех K_*_*.2da с подсказками о расе и классе. Собственно числа в колонке KIT в этих файлах - индексы китов из файла KITLIST.2da, доступных для данной расы и класса. Правда, стоит учесть, что иногда случается так, что даже если вы напишите в некотором файле все правильно, то в игре может и не появиться кита для игрока, к примеру, если в файл K_D_E.2da добавить кит друида, то ничего не произойдет, поскольку ограничение на киты друида для эльфов за говно кодировано внутри ехе.

LUABBR.2da - тут содержатся ассоциации китов с таблицами высокоуровневых способностей (HLA таблицы). Имя таблицы, с которой ассоциирован кит должно состоять из 3 букв и эта таблица должна содержаться в файле LUXXX.2da, где XXX - те самые наши 3 буквы.

LU***.2da - тут описываются высокоуровневые способности для китов. Способности описываются в столбце ABILITIES с теми же самыми префиксами GA_ и AP_ как в CLAB файлах. Столбцы ICON и STRREF не используются, MIN_LEV - первый уровень, с которого доступна данная плюшка (правда помните, что пока игрок не наберет 3 миллиона очков опыта, то HLA все равно не будут доступны), MAX_LEVEL - похоже, что уровень на котором способность становиться более недоступной, NUM_ALLOWED - количество раз, сколько игрок может выбрать данную способность перед тем, как она станет недоступной, в поле PREREQUISITE заносится название способности, которую нужно приобрести перед тем, как появиться возможность выбрать данный HLA, (например, улучшенная атака вихрем после атаки вихрем), EXCLUDED_BY определяет способность, которую не сможем взять при выборе текущей (вспомним-ка про Дэва/Падшего Дэва). Наконец, столбец ALIGNMENT_RESTRICT определяет, персонажи каких мировоззрений могут взять способность.

WEAPPROF.2da - в этом файле по вертикали расположены идентификаторы оружейных специализаций, в столбцах:
ID - идентификатор оружия
NAME_REF - название типа оружия (ссылка)
DESC_REF - описание типа оружия (ссылка)
а далее, каждый столбец - идентификатор класса. На пересечении идентификатора класса и типа оружия пишется сколько звезд персонаж может набрать в данном типе оружия (от 0 до 5). Правда, иногда это не спасает. Пример: даже если вы бросите священнику возможность набрать 5 звезд в копьях, то толку будет 0 - он просто не может использовать копья. Никак.

А зачем это нужно? Для разнообразия. Ведь правда, гораздо веселее, когда ваш воин может махать мечом налево и направо гораздо сильнее обычного, но в тоже время это компенсируется невозможностью использования метательного оружия... или мечта читера: персонаж некоторого кита может получить 18 во всех 6 характеристиках по умолчанию.

А теперь за работу

Запускаем BG2 Kit Creator. Выбираем/вводим нужные параметры и сохраняем результат в некую папочку, например mykit, в папке с БГ2. В этой папке появиться куча файлов. Среди нужных нам по сути только CLAB****.2da, все остальные файлы можно использовать для того, чтобы сверить с результатом, который сгенерирует WeiDU. Собственно, для добавления кита в игру, используем следующий код в Setup-mykit.tp2 (должен находиться в папке с игрой):
BACKUP ~mykit/backup~ //Папка для бэкапов. Нужно если хотите иметь возможность удалять мод
AUTHOR ~myemail@mydomain.com~

BEGIN ~Tutorial Kit~ //Название компонента (отображается в консоли)

// Теперь собственно код: в кавычках внутреннее имя кита
ADD_KIT ~C!Selune~

 // Строка добавляемая в CLASWEAP.2da
 ~C!Selune                0           0           1           1           0           1           0           0~

 // Столбец добавляемый в WEAPPROF.2da
 ~C!Selune 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0~
   
 // Строка добавляемая в ABCLASRQ.2da
 ~C!Selune                0       0       0       0       9       0~

 // Строка добавляемая в ABCLSMOD.2da
 ~C!Selune                0       0       0       0       0       0~

 // Строка добавляемая в ABDCDSRQ.2da
 ~C!Selune                0       0       0       0       17      0~

 // Строка добавляемая в ABDCSCRQ.2da
 ~C!Selune                0       0       0       0       15      0~

 // Строка добавляемая в ALIGNMNT.2da
 ~C!Selune                0       0       0       1       0       0       1       1       0~

 // Строка добавляемая в DUALCLAS.2da
 ~C!Selune                1       0       1       1       0       1~

 // Путь к вашему CLAB****.2da
 ~mykit/CLABXXXX.2da~

 // Список рас и классов PC, которым разрешено использовать кит. Можно перечислить имена файлов данного вида, которые были сгенерированы BG2 KitCreator.
 ~K_C_D K_C_E K_C_G K_C_H K_C_HE K_C_HL K_C_HO~

 // Тут определяем какие вещи может использовать кит и базовый класс для кита. Это собственно столбцы UNUSABLE и CLASS из KITLIST.2da
 ~0x00004000     3~

 // Три буквы, определяющие какую HLA таблицу использовать
 ~Th0~

 // Список стартовых вещей для персонажа - столбец, для подробностей смотри  25STWEAP.2da
 ~CHAN09 * HELM07 BAG20 RING06 RING31 * BOOT01 AMUL19 BRAC16 BELT06 AROW11,40 BULL03,40 BOLT06,40 POTN52,5 POTN4,2 POTN14,5 HAM07 SW1H27 STAF08~

 // Название кита строчными буквами, с большой и описание, которые будут использоваться для кита
 SAY ~берсеркер~
 SAY ~Берсеркер~
 SAY ~БЕРСЕРКЕР: Мой кит. Мое описание.~

Запускаем Setup-mykit.exe (меняем имя WeiDU.exe на такое, этот файл должен находиться в папке с игрой) и устанавливаем наш мод - в списке китов должен появиться наш кит. Все, минимальный каркас есть.

Что дальше?

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

С вопросами просьба обращаться на форум в раздел моддинга!

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