Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Я уже упомянул в первой части данного урока о том, что файл BSV может также включать в себя дополнительную информацию и данные для добавления моделей (models), звуков (sounds), текстур (maps) и таблиц (tables).
Но здесь нужно быть осторожным: имя файла, который вы включаете в файл BSV, должно быть уникальным, иначе для уже существующих файлов в данной папке ваши данные будут помещены в их начало, что приводит к порче существующего файла (это связано с тем, что для создания файла вызывается стандартная функция открытия файла, которая естественно откроет уже существующий файл - прим. перев.).
Теперь обратим внимание на концовку файла brainy.bsv, указанную в первой части урока, пункт 9, там файл BSV заканчивался метками-заполнителями - 24 байта. Здесь мы можем записать информацию о добавлении файлов в различные папки Мафии. Давайте внимательно рассмотрим эти 24 байта:
1. 00 00 00 00 - количество моделей (*.4ds), вставленных в файл BSV для того, чтобы поместить их в папку моделей (models)
2. 00 00 00 00 - количество звуковых файлов, вставленных в файл BSV для того, чтобы поместить их в папку звуков (sounds)
3. 00 00 00 00 - количество текстур, вставленных в файл BSV для того, чтобы поместить их в папку текстур (maps)
4. 00 00 00 00 - количество файлов, вставленных в файл BSV для того, чтобы поместить их в папку таблиц (tables) (1)
5. 00 00 00 00 - количество файлов, вставленных в файл BSV для того, чтобы поместить их в папку таблиц (tables) (2)
6. 00 00 00 00 - количество файлов, вставленных в файл BSV для того, чтобы поместить их в папку миссий изменённого scene2.bin
Для каждого файла, который мы хотим включить в файл BSV, существует следующая структура данных:
- Имя файла - 20 байт
- Длина файла - 4 байта
- Данные файла
Итак, для примера, у нас есть две новые модели и одна новая текстура, тогда общая структура будет выглядеть так:
1. 02 00 00 00 - два файла модели
Имя первого файла модели - 20 байт
Длина файла - 4 байта
Содержимое файла
Имя второго файла модели - 20 байт
Длина файла - 4 байта
Содержимое файла
2. 00 00 00 00 - нет файлов для того, чтобы поместить их в папку со звуками
3. 01 00 00 00 - один файл текстуры
Имя файла текстуры - 20 байт
Длина файла - 4 байта
Содержимое файла
4. 00 00 00 00 - нет файлов для того, чтобы поместить их в папку с таблицами (1)
5. 00 00 00 00 - нет файлов для того, чтобы поместить их в папку с таблицами (2)
6. 00 00 00 00 - нет файлов для того, чтобы поместить их в папку миссий изменённого scene2.bin
Для каждого файла, модели, текстуры и т.д. существует одна и та же процедура. Покажем это на примере вставки в файл BSV два файла моделей.
Добавление новых моделей в папку моделей (models)
Возможно вы уже создали новую модель (*.4ds) и ссылаетесь на неё в scene2.bin, поэтому она должна присутствовать в папке моделей, иначе Мафия не будет работать. Итак, мы включим описание модели в файл BSV. В процессе выполнения ADDin`a модель будет извлечена из файла BSV и добавлена в папку моделей Мафии автоматически.
Что мы имеем?
Какую-нибудь шикарнейшую модель. В этом уроке я выбрал две самые простые модели,
zzwall 1.4DS и zzwall 2.4DS
Теперь обратим внимание на созданный в первой части урока файл brainy.bsv. В девятом пункте мы заканчивали файл BSV некоторыми метками-заполнителями - 24 байта.
В первых 4 байтах содержится количество моделей, которые мы хотим включить в файл BSV, в этом примере их 2 (zzwall 1.4DS и zzwall 2.4DS). Если вы не хотите вставлять модели, тогда поставьте эти 4 байта в 00 00 00 00 и начинайте с раздела добавления звуков. В данном примере у нас есть 2 модели, т.е. Эти четыре байта выглядят как
02 00 00 00
После этих байт следует описание моделей:
1. Имя файла модели - 20 байт: имя первого файла модели, zzwall 1.4DS
7A 7A 77 61 6C 6C 20 31 2E 34 44 53 20 20 20 20 20 20 20 20
2. Размер файла модели - 4 байта: размер файла zzwall 1.4DS
3c 02 00 00
3. Содержимое файла: zzwall 1.4DS
34 44 53 00 1d 00 00 00 71 4a 52 d2 c2 01 01 00 01 10 84 00 cd cc cc 3d cd cc cc 3d cd cc cc 3d 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c 40 52 53 54 52 4f 50 31 2e 42 4d 50 01 00 01 00 00 2a 00 00 4a 2d a2 40 ec 72 17 40 d0 9f a9 3e 00 00 80 3f 00 00 80 3f 00 00 80 3f 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 09 08 43 75 62 65 32 5b 38 5d 00 00 00 01 00 00 7a 45 0b 00 90 b8 80 bf 50 15 5c 3f d8 17 a5 be 10 08 0c bf e0 eb 0b 3f 58 24 0c bf 00 00 00 00 00 00 00 00 d0 4d 6f bf 98 88 fb be c0 17 a5 be 20 cf 0b bf 88 24 0c bf 68 24 0c bf 00 00 00 00 00 00 00 00 08 32 87 bf 50 15 5c 3f ee 42 15 3f 00 41 0c bf e0 eb 0b 3f 00 ec 0b 3f 00 00 00 00 00 00 00 00 c0 3f 7c bf 98 88 fb be 0a 43 15 3f b0 07 0c bf 88 24 0c bf e0 eb 0b 3f 00 00 00 00 00 00 00 00 c0 3f 7c bf 98 88 fb be 0a 43 15 3f b0 07 0c bf 88 24 0c bf e0 eb 0b 3f 00 00 00 00 00 00 00 00 d8 5c 41 3f c8 16 5c 3f 4c 44 15 3f 88 cf 0b 3f 38 25 0c 3f c0 24 0c 3f 00 00 00 00 00 00 00 00 60 83 53 3f a0 85 fb be 52 44 15 3f 48 08 0c 3f 38 eb 0b bf 20 25 0c 3f 00 00 00 00 00 00 00 00 60 83 53 3f a0 85 fb be 52 44 15 3f 48 08 0c 3f 38 eb 0b bf 20 25 0c 3f 00 00 00 00 00 00 00 00 d8 51 4e 3f c8 16 5c 3f 38 15 a5 be 28 08 0c 3f 38 25 0c 3f 18 eb 0b bf 00 00 00 00 00 00 00 00 00 76 60 3f a0 85 fb be f8 14 a5 be 28 41 0c 3f 38 eb 0b bf 58 eb 0b bf 00 00 00 00 00 00 00 00 00 76 60 3f a0 85 fb be f8 14 a5 be 28 41 0c 3f 38 eb 0b bf 58 eb 0b bf 00 00 00 00 00 00 00 00 01 0c 00 00 00 01 00 02 00 01 00 03 00 02 00 02 00 04 00 05 00 03 00 06 00 05 00 05 00 07 00 08 00 06 00 09 00 08 00 08 00 0a 00 00 00 09 00 01 00 00 00 00 00 02 00 05 00 05 00 08 00 00 00 01 00 06 00 03 00 06 00 01 00 09 00 01 00 00 00
После этого следует описание следующей модели и так далее, если вы хотите вставить более двух моделей.
1. Имя файла модели - 20 байт: имя второго файла модели, zzwall 2.4DS
7A 7A 77 61 6C 6C 20 32 2E 34 44 53 20 20 20 20 20 20 20 20
2. Размер файла модели - 4 байта: размер файла zzwall 2.4DS
3c 02 00 00
3. Содержимое файла: zzwall 2.4DS
34 44 53 00 1d 00 00 00 71 4a 52 d2 c2 01 01 00 01 10 84 00 cd cc cc 3d cd cc cc 3d cd cc cc 3d 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c 40 52 53 54 52 4f 50 31 2e 42 4d 50 01 00 01 00 00 2a 00 00 4a 2d a2 40 ec 72 17 40 d0 9f a9 3e 00 00 80 3f 00 00 80 3f 00 00 80 3f 00 00 80 3f 00 00 00 00 00 00 00 00 00 00 00 00 09 08 43 75 62 65 32 5b 38 5d 00 00 00 01 00 00 7a 45 0b 00 90 b8 80 bf 50 15 5c 3f d8 17 a5 be 10 08 0c bf e0 eb 0b 3f 58 24 0c bf 00 00 00 00 00 00 00 00 d0 4d 6f bf 98 88 fb be c0 17 a5 be 20 cf 0b bf 88 24 0c bf 68 24 0c bf 00 00 00 00 00 00 00 00 08 32 87 bf 50 15 5c 3f ee 42 15 3f 00 41 0c bf e0 eb 0b 3f 00 ec 0b 3f 00 00 00 00 00 00 00 00 c0 3f 7c bf 98 88 fb be 0a 43 15 3f b0 07 0c bf 88 24 0c bf e0 eb 0b 3f 00 00 00 00 00 00 00 00 c0 3f 7c bf 98 88 fb be 0a 43 15 3f b0 07 0c bf 88 24 0c bf e0 eb 0b 3f 00 00 00 00 00 00 00 00 d8 5c 41 3f c8 16 5c 3f 4c 44 15 3f 88 cf 0b 3f 38 25 0c 3f c0 24 0c 3f 00 00 00 00 00 00 00 00 60 83 53 3f a0 85 fb be 52 44 15 3f 48 08 0c 3f 38 eb 0b bf 20 25 0c 3f 00 00 00 00 00 00 00 00 60 83 53 3f a0 85 fb be 52 44 15 3f 48 08 0c 3f 38 eb 0b bf 20 25 0c 3f 00 00 00 00 00 00 00 00 d8 51 4e 3f c8 16 5c 3f 38 15 a5 be 28 08 0c 3f 38 25 0c 3f 18 eb 0b bf 00 00 00 00 00 00 00 00 00 76 60 3f a0 85 fb be f8 14 a5 be 28 41 0c 3f 38 eb 0b bf 58 eb 0b bf 00 00 00 00 00 00 00 00 00 76 60 3f a0 85 fb be f8 14 a5 be 28 41 0c 3f 38 eb 0b bf 58 eb 0b bf 00 00 00 00 00 00 00 00 01 0c 00 00 00 01 00 02 00 01 00 03 00 02 00 02 00 04 00 05 00 03 00 06 00 05 00 05 00 07 00 08 00 06 00 09 00 08 00 08 00 0a 00 00 00 09 00 01 00 00 00 00 00 02 00 05 00 05 00 08 00 00 00 01 00 06 00 03 00 06 00 01 00 09 00 01 00 00 00
Если у вас нет для добавления никаких новых звуков, текстур или файлов таблиц, тогда закончите файл BSV 20 байтами, установленными в 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00