Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

за расположенных там лайтмэпов прим

Работа добавлена на сайт samzan.net: 2015-07-10

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 19.5.2024

Функция ADDin была встроена в BScriptView для автоматической вставки объектов и скриптов в существующие файлы scene2.bin. В этом случае можно пересылать не весь scene2.bin целиком (который иногда может быть очень большим (из-за расположенных там лайтмэпов - прим. перев.), а файл BSV, который вставляет только изменения, проделанные вами над оригинальным scene2.bin. BSV также может включать в себя дополнительную информацию и данные для изменения существующих файлов и добавления моделей (models), текстур (maps) и таблиц (tables) в специально отведённые для этого папки.

Первая часть этого урока посвящена тому, как внести изменения файла scene2.bin в файл BSV.

Часть первая

Что нам потребуется?

- Вы должны иметь при себе BScriptView и знать то, что в нём есть функция ADDin (кнопочка такая в меню  - прим. перев.);

- Уметь работать с шестнадцатеричным редактором и разбираться

в шестнадцатеричной (далее - hex) системе счисления.

Что мы имеем?

У нас есть изменённый scene2.bin и мы хотим вставить свои изменения в оригинальный scene2.bin. Для того, чтобы дать вам точное понимание того, как работает файл BSV, мы пока не будем использовать уже созданный scene2.bin, а создадим новый с использованием BScriptView.

Запустите BScriptView, выберите миссию, например "freeridenoc" и откройте scene2.bin. Для примера мы хотим вставить в миссию нового человека с именем "brainy" и бочку "brainybarrel". Выберите пункт меню "Вставить"->"Человек" ("Insert"->"Human"), наберите имя brainy и нажмите "Вставить" ("Insert"). Выберите пункт меню "Вставить"->"Вещь" ("Insert"->"Thing"), наберите имя brainybarrel и нажмите "Вставить" ("Insert"). Этими нехитрыми манипуляциями мы вставили в scene2.bin человека и бочку. Данный, уже изменённый, файл нам понадобится позже.

Создание файла BSV.

Теперь мы создадим файл BSV, который будет автоматически добавлять человека и бочку из BSV в оригинальный scene2.bin. Файл назовём "brainy.BSV".

Создадим в hex-редакторе новый чистый файл и добавим туда следующее:

1. Название ADDin`a - 20 байт, например Brainy Test (оставшиеся незаполненные символы забиваются пробелами - прим. перев):

42 72 61 69 6e 79 20 54 65 73 74 20 20 20 20 20 20 20 20 20

2. Название папки с миссией - 20 байт, в нашем примере это freeridenoc (правило с пробелами сохраняется - прим. перев.):

66 72 65 65 72 69 64 65 6e 6f 63 20 20 20 20 20 20 20 20 20

3. Метки-заполнители - 234 байта, все 234 байта - нули:

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

4. Тест на изменения scene2.bin - 20 байт - это тестовая строка для проверки, изменён ли уже scene2.bin файлом BSV. Строка должна быть уникальной. Будем использовать brainy, так как этого нет в исходном scene2.bin, но будет в изменённом:

62 72 61 69 6e 79 20 20 20 20 20 20 20 20 20 20 20 20 20 20

5. Теперь мы возьмём данные из изменённого scene2.bin, который мы создали в разделе "Что мы имеем?". Запустите hex-редактор, откройте в нём этот файл и найдите в файле brainy. Вы найдёте две секции. Первая секция описывает модель, вторая (в конце файла) - скрипт. Итак, начнём с первой секции:

Первая секция всегда начинается с 10 40, далее следуют 4 байта 97 00 00 00 (тип long или dword - прим перев.), описывающих количество байт в секции - это необходимо для описания модели. За секцией brainy вы найдёте секцию brainybarrel, начинающуюся также с 10 40, однако имеющую длину 9d 00 00 00.

Позже обе секции будут скопированы в файл BSV, но сначала мы должны добавить в файл BSV общую длину. Мы должны посчитать общую длину из секций brainy и brainybarrel, для этого мы суммируем две длины:

97 00 00 00 + 9d 00 00 00 = 34 01 00 00

Более лёгким путём (кому как  - прим. перев.) вычисления общей длины будет являться копирование этих двух секторов в новый чистый файл и выяснения его длины в байтах.

Теперь положим в наш файл brainy.BSV вычисленное нами количество байт:

NbSCBin1 (так мы просто обозначаем эту вставку - прим. перев.) (тип long) (количество всех байт в секции номер один)

34 01 00 00

6. Задайте поиск по brainy снова и вы найдёте вторую секцию.

Вторая секция всегда начинается с 21 AE, далее - длина (также 4 байта) 86 00 00 00. Сразу после этой секцией вы найдёте секцию brainybarrel, также начинающуюся с 21 AE и имеющую длину 48 00 00 00. Снова сложим эти длины:

86 00 00 00 + 48 00 00 00 = CE 00 00 00

или создадим с помощью hex-редактора новый файл, скопируем туда эти две секции и выясним общее количество байт этого файла.

Также вставим высчитанное количество байт в файл brainy.BSV:

NbSCBin2 (тип long) (количество всех байт в секции номер два)

CE 00 00 00

7. Теперь скопируем первые секции данных brainy и brainybarrel в файл brainy.BSV, помните, что первая секция всегда начинается с 10 40. Найдём brainy. Перед секцией brainy вы найдёте секцию brainybarrel, начинающуюся также с 10 40. Выберите обе секции и скопируйте их в наш файл brainy.BSV после NbSCBin2. Это должно выглядеть примерно так:

10 40 97 00 00 00 11 40 0a 00 00 00 09 00 00 00 10 00 0d 00 00 00 62 72 61 69 6e 79 00 20 00 12 00 00 00 21 98 dd c4 00 00 a0 c0 00 00 f0 41 22 00 16 00 00 00 fd 2f 0d 25 00 00 00 00 00 00 80 3f 00 30 8d 24 2d 00 12 00 00 00 00 00 80 3f 00 00 80 3f 00 00 80 3f 2c 00 12 00 00 00 82 ca dd c4 5b 3f b3 c0 bd 59 8a 40 20 40 1b 00 00 00 10 00 15 00 00 00 50 72 69 6d 61 72 79 20 73 65 63 74 6f 72 00 12 20 13 00 00 00 45 6e 65 6d 79 31 32 4b 2e 69 33 64 00

10 40 9d 00 00 00 11 40 0a 00 00 00 09 00 00 00 10 00 13 00 00 00 62 72 61 69 6e 79 62 61 72 72 65 6c 00 20 00 12 00 00 00 2c 5a 8c 42 ea 95 e9 40 44 49 e6 42 22 00 16 00 00 00 22 d5 31 3f 00 00 00 00 a7 26 38 3f 00 30 8d 24 2d 00 12 00 00 00 c8 3b 6c 3e c8 3b 6c 3e c8 3b 6c 3e 2c 00 12 00 00 00 82 ca dd c4 5b 3f b3 c0 bd 59 8a 40 20 40 1b 00 00 00 10 00 15 00 00 00 50 72 69 6d 61 72 79 20 73 65 63 74 6f 72 00 12 20 13 00 00 00 78 62 61 72 65 6c 20 32 2e 69 33 64 00

8. Вставим данные вторых секций в файл brainy.BSV, помните, что вторая секция всегда начинается с 21 AE. Найдём brainy снова. Перед секцией brainy вы найдёте секцию brainybarrel. Выберите обе секции и скопируйте их в brainy.BSV. Это должно выглядеть примерно так:

21 ae 86 00 00 00 23 ae 0d 00 00 00 62 72 61 69 6e 79 00 22 ae 0a 00 00 00 1b 00 00 00 24 ae 69 00 00 00 06 10 00 00 00 11 00 00 00 33 33 33 3f 00 00 c8 42 00 00 a0 41 00 00 a0 41 00 00 a0 41 00 00 a0 41 33 33 33 3f 00 00 80 3f 00 00 00 3f cc cc 4c 3f 00 00 80 3f 00 00 80 3f 00 00 80 3f cb cc 4c 3f 00 00 a0 42 00 00 00 3f 01 01 00 00 00 00 10 00 00 00 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f

21 ae 48 00 00 00 23 ae 13 00 00 00 62 72 61 69 6e 79 62 61 72 72 65 6c 00 22 ae 0a 00 00 00 23 00 00 00 24 ae 25 00 00 00 02 01 00 00 80 3f 00 00 80 3f 00 00 a0 42 00 00 00 3f 0a d7 23 3c 03 00 00 00 01 ff ff ff ff

9. Файл BSV заканчивается метками-заполнителями - 24 байта - эти байты понадобятся нам в третьей части данного урока, в первой части они должны быть 00:

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Вот вы и создали свой первый ADDin-файл. Можете испробовать его на оригинальном scene2.bin, используя BScriptView.

Весь файл brainy.BSV должен выглядеть примерно так:

42 72 61 69 6e 79 20 54 65 73 74 20 20 20 20 20 20 20 20 20

66 72 65 65 72 69 64 65 6e 6f 63 20 20 20 20 20 20 20 20 20

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

62 72 61 69 6e 79 20 20 20 20 20 20 20 20 20 20 20 20 20 20

34 01 00 00

ce 00 00 00

10 40 97 00 00 00 11 40 0a 00 00 00 09 00 00 00 10 00 0d 00 00 00 62 72 61 69 6e 79 00 20 00 12 00 00 00 21 98 dd c4 00 00 a0 c0 00 00 f0 41 22 00 16 00 00 00 fd 2f 0d 25 00 00 00 00 00 00 80 3f 00 30 8d 24 2d 00 12 00 00 00 00 00 80 3f 00 00 80 3f 00 00 80 3f 2c 00 12 00 00 00 82 ca dd c4 5b 3f b3 c0 bd 59 8a 40 20 40 1b 00 00 00 10 00 15 00 00 00 50 72 69 6d 61 72 79 20 73 65 63 74 6f 72 00 12 20 13 00 00 00 45 6e 65 6d 79 31 32 4b 2e 69 33 64 00

10 40 9d 00 00 00 11 40 0a 00 00 00 09 00 00 00 10 00 13 00 00 00 62 72 61 69 6e 79 62 61 72 72 65 6c 00 20 00 12 00 00 00 2c 5a 8c 42 ea 95 e9 40 44 49 e6 42 22 00 16 00 00 00 22 d5 31 3f 00 00 00 00 a7 26 38 3f 00 30 8d 24 2d 00 12 00 00 00 c8 3b 6c 3e c8 3b 6c 3e c8 3b 6c 3e 2c 00 12 00 00 00 82 ca dd c4 5b 3f b3 c0 bd 59 8a 40 20 40 1b 00 00 00 10 00 15 00 00 00 50 72 69 6d 61 72 79 20 73 65 63 74 6f 72 00 12 20 13 00 00 00 78 62 61 72 65 6c 20 32 2e 69 33 64 00

21 ae 86 00 00 00 23 ae 0d 00 00 00 62 72 61 69 6e 79 00 22 ae 0a 00 00 00 1b 00 00 00 24 ae 69 00 00 00 06 10 00 00 00 11 00 00 00 33 33 33 3f 00 00 c8 42 00 00 a0 41 00 00 a0 41 00 00 a0 41 00 00 a0 41 33 33 33 3f 00 00 80 3f 00 00 00 3f cc cc 4c 3f 00 00 80 3f 00 00 80 3f 00 00 80 3f cb cc 4c 3f 00 00 a0 42 00 00 00 3f 01 01 00 00 00 00 10 00 00 00 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f

21 ae 48 00 00 00 23 ae 13 00 00 00 62 72 61 69 6e 79 62 61 72 72 65 6c 00 22 ae 0a 00 00 00 23 00 00 00 24 ae 25 00 00 00 02 01 00 00 80 3f 00 00 80 3f 00 00 a0 42 00 00 00 3f 0a d7 23 3c 03 00 00 00 01 ff ff ff ff

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00




1. 30 рр альбуцид или тетрациклин
2. тема права. Возникновение и развитие международного права связано с возникновением государства
3. Ф
4. мм от кожного края пупочного кольца Отсечь пупочный остаток ножницами по краю зажима
5. Анализ и диагностика финансового состояния предприятия
6. Размещение спортзала желательно на первом этаже в отдельном блоке с наличием отдельного выхода на открыту
7. Химия, тесты
8. Фармакопея ~ б~л келесі стандарттарды~ жина~ы- а та~ам ~німдеріні~ б д~рілік заттарды~ в медиц
9. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ по выполнению контрольных и курсовых работ для слушателей 4 курса юридическо
10. Лекция 13 Криминологическая характеристика организованной преступности План лекции 1
11. на тему- Управление организационными конфликтами на примере ООО
12. Тема- Приборные методы диагностирования систем газоснабжения
13. Руководство организацией
14. справочный аппарат оглавление предисловие указатели и т
15. с русскими субтитрами- Dr Tullio Simoncini ссылка Видео на английском и итальянском языках- Dr Tullio Simoncini prt 1 of 3 ссы.html
16. МОЛОДЫЕ ИНТЕЛЛЕКТУАЛЫ РОССИИ Москва 107113 ул
17. 16 Экономика предприятия
18. Понятие и роль конкуренции в коммерческом (торговом) обороте
19. 6ФД Бобовые все горошек фасоль чечевица соя арахис бобы вика маис чина
20. ПОСОБИЕ ПО ИЗУЧЕНИЮ КУРСА СОЦИОЛОГИИ ХАРЬКОВ 2010