Тутор написан HALDом Для этого потребуются утилиты resdecode и resconvert. Рассмотрим
добавление деталей на примере Duhen-а. Добавим капот. Допустим, что
модель капота только-что закончена и экспортирована в папку
duhen_data\meshes. При экспорте создаётся ещё один файл с расширением
tex - о нём позже. Для того, чтобы добавить деталь надо распаковать
duhen.rpk утилитой recdecode. Это удобнее делать в отдельной папке. Ещё
нам потребуюся скрипты из папки duhen_data\scripts. Если делаем капот,
то можно взять за основу скрипт hood_2.cfg. Его надо скопировать
куда-то, переиминовать в hood_3.cfg и кинуть обратно в папку со
скриптами.
Ещё не плохо-бы сразу заготовить яву. Для этого надо
найти архив с исходниками ява для машин. Вся ява кладётся в папку
duhen_data\scripts\src. Т.е. нам надо найти файл в папке с исходниками
duhen_data\scripts\src\duhen_hood_2.java и скопировать его в рабочую
папку с Духеном под именем duhen_hood_3.java. Откроем файл
duhen_hood_3.java. У него есть заголовок, который должен в ТОЧНОСТИ
соответствовать имени файла. Ещё раз повторяю: В ТОЧНОСТИ! Т.е. если у
нас есть файл DuhEn_HoOD_3.java, то заголовок дожен быть такой:
public class DuhEn_HoOD_3 extends Hood
{
public DuhEn_HoOD_3( int id )
{
Расширение java убирается вместе с точкой. Такжэ в яве можно поменять
название деталькт (поле name), престиж (brand_new_prestige_value) и цену
(value). Всё, с явой закончили.
Теперь переходим к скрипту
hood_3.cfg. Откроем его и распакованный архив duhen.rdb. В начале файла
hood_3.cfg есть такой ИД: 0x000000D9. Это индекс детали в РПК. если
сделать поиск в файле duhen.rdb по этому ИДу, то мы найдём такие строки:
Code |
typeof 8 superid 0x00000161 typeid 0x000000D9 alias hood isparentcompatible 1.00 script cars\racers\Duhen_data\scripts\Duhen_hood_2.class native part cars\racers\Duhen_data\scripts\hood_2.cfg lod_amp 3.000 |
Это кусок скрипта обьявляет деталь. Что бы добавить свою деталь, можно
просто сделать его копию, преиминовав файлы Duhen_hood_2.class и
hood_2.cfg. Ещё нужно поменять ИД с 0x000000D9 на что-нибудь другое,
например на 0x000010D9. Важно! Это ИД должен быть уникален! Т.е. если
сделать поиск от начала и до конца файла duhen.rdb по этому ИД, то он
должен встретиться только один раз в определении новой детали! Причём ИД
пишется только в последних 4х цифрах, т.е. это может быть 0x0000E13A,
но не может быть 0x0002EA12 - т.к. это будет указание на оглавление РПК,
а нам это не надо. В результате мы должны получить что-то такое:
Code |
typeof 8 superid 0x00000161 typeid 0x000010D9 alias my_new_hood isparentcompatible 1.00 script cars\racers\Duhen_data\scripts\Duhen_hood_3.class native part cars\racers\Duhen_data\scripts\hood_3.cfg lod_amp 3.000 |
alias может быть любым. На этом можно закрыть РДБ, конвертировать его в
РПК и проверить - должен появиться ещё один капот. Но он будет
выглядеть так-жэ как капот номер 2. Кста, в cfg можно в оглавлении
изменить ИД с 0x000000D9 на 0x000010D9. Он не на что не влияет, т.к.
первые строки закоментированы, но удобнее смотреть ИД в конфиге, чем
шарить по РПК.
Теперь поменяем модель. Начнём с поля ckick. Ищем его по ИДу 0x0000011A, копируем, меняем значения и получаем что-то такое:
Code |
typeof 9 superid 0x00000001 typeid 0x0000A11A alias click isparentcompatible 1.00 shape cars\racers\Duhen_data\meshes\hood_3.scx |
Не забываем поменять в конфиге ИД клика на новый! Теперь mesh, точно так-жэ.
Code |
typeof 5 superid 0x00000003 typeid 0x0000A196 alias hood_3 isparentcompatible 1.00 sourcefile cars\racers\Duhen_data\meshes\hood_3.scx |
И самое интересное - render. Сначала он выглядит так:
Code |
typeof 14 superid 0x00000005 typeid 0x00000095 alias hood isparentcompatible 1.00 mesh 0x00000096 flags 8.000 lod_amp 3.000 texture 0x00020025 texture 0x00000097 |
Мнеяем typeID и alias по своему усмотрению. alias может повторяться -
это не критично. Потом смотрим на строку mesh и вписываем в неё индекс
нашего меша. Теперь текстуры. Я говорил про файл tex. В нём обозначена
поседовательность текстур. Именно в этой последовательности должны идти
иды текстур. Текстура с ИДом 0x00020025 - это основной цвет, который
будет краситься. Она-жэ продублирована в cfg. Текстура с ИДом 0x00000000
- это отражение. После всех модификаций получаем такое:
Code |
typeof 14 superid 0x00000005 typeid 0x0000A295 alias hood_3 isparentcompatible 1.00 mesh 0x0000A196 flags 8.000 lod_amp 3.000 texture 0x00000000 texture 0x00020025 texture 0x00000097 |
Текстуры прописаны от балды! Они пишутся под конкретный меш!
Всё, РДБ можно сохранять, компилить и запускать игру. Только не забудте вписать правильные ИДы в cfg!
Источник :promods.eu