фан-сайт игры Mafia: the City of Lost Heaven
   radio             


Оглавление

Новости
Немного истории
Секреты и приколы
Видеогалерея
Моддинг Мафии
Расширенная версия Mafia
Пишем скрипты для Mafia
Как делать ADDin`ы
Доступ к DTA файлам
Чемпионат по игре
The Alive mod v.16
Пришелец-алхимик
Телохранители
Пушка броневика
Продавцы машин
Грязные гонки
Голем (памятник)
Супер-телохранители
Миссия в порту
Террорист-смертник
Ресторан Сальери
Сельская местность
Alive Mod Evolution 18.0
Секреты Аливе мода
Скачать Alive mod
Юморная страничка
Наш музей Мафии
Альфонсо Капоне
Бонни и Клайд
Джон Диллинджер
Машины той эпохи
Оружие той эпохи
Музыка из Мафии
Если хотите помочь
Благодарности
Кладовочка



Как делать ADDin`ы (BSV-файлы).
Уроки для профессионалов.



Часть вторая



Во второй части мы будем иметь дело с изменением информации существующих файлов. Данный урок не научит вас, как искать нужную вам информацию и как вам изменять её под свои нужды, а только научит воспроизводить свои изменения.

Что нам потребуется?
- Вы должны знать, что и где изменять, например, в файле tree.klz.

Дополняем файл BSV
Вы можете добавить в файл BSV свои изменения файлов tree.klz, scene.4ds, cache.bin и scene2.bin (возможно, вы захотите удалить какие-нибудь из уже существующих скриптов для того, чтобы ваши скрипты работали правильно). В первой части данного урока я упомянул, что там должны быть метки-заполнители - 234 байта - сразу после определения папки миссии. Теперь мы познакомимся немного ближе с этими заполнителями.

В общих чертах файл BSV начинается как-то так:
1. Имя ADDin`а - 20 байт:
Brainy Test
2. Папка миссии - 20 байт:
freeridenoc
После этого следует такая структура:
OptTREE (Byte) флаг 00 или 01, tree.klz
TreePosNb (Byte) количество позиций для изменений в tree.klz
OptCACHE (Byte) флаг 00 или 01, cache.bin
CachePosNb (Byte) количество позиций для изменений в cache.bin
OptSCENE4DS (Byte) флаг 00 или 01, scene.4ds
Scene4dsPosNb (Byte) количество позиций для изменений в scene.4ds
Scene2Bin (Byte) флаг 00 или 01, scene2.bin
Scene2BinNb (Byte) количество позиций для изменений в scene2.bin
Информация как строка (String) * 226 байт (всегда "00")

Как вы можете видеть, для каждого файла есть флаг, определяющий, нужно ли изменять соответствующий файл или нет. То есть если нам не надо вносить никаких изменений, к примеру, в tree.klz, ставим 00 и идём дальше.

Следующий пример покажет вам, как вставить ваши изменения в файл BSV.

Мы хотим изменить информацию в tree.klz. Там будет только одна позиция для изменения, также мы хотим внести изменения в scene.4ds в двух местах. Для этого начнём наш файл BSV так:
1. Имя ADDin`a - 20 байт:
Brainy Test
2. Mission folder - 20 байт:
freeridenoc
01 01 -> tree.klz изменяем по одной позиции
00 00 -> cache.bin не меняем вообще
01 02 -> scene.4ds хотим изменить в двух местах
00 00 -> scene2.bin менять не будем ни по одной позиции
Информация * 226 байт (до этого момента должна быть "00")
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

После этого следует общая структура, которая повторяется n-раз:
SearchStringLength (Byte)
NbBytesToPut (Byte)
searchstr(16) Как строка (String) * 16 байт
PutStr(256) Как строка (String) * 256 байт

Итак, в нашем примере байты для изменения tree.klz должны быть следующими:
SearchStringLength: 08
NbBytesToPut: 44
Searchstr: b1 00 8f 41 81 00 00 21 00 00 00 00 00 00 00 00
Searchstr - наша строка для поиска правильной позиции в tree.klz для того, чтобы добавить туда новые байты. В нашем примере нам нужно только 8 байт, остальные мы ставим в 00, и они больше не используются.
PutStr:
b1 00 8f 41 81 00 00 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 81 00 00 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Эти байты вставляются в tree.klz на позиции поиска. В нашем примере нам нужно только 68 байт, остальные мы ставим в 00, и они не используются.

Далее, у нас нет байт для изменения cache.bin, следовательно мы это игнорируем. Но нам ещё доступны два изменения в scene.4ds.
Теперь следует такая же структура данных и для scene.4ds, но два раза, так как нам нужно менять две позиции.
Первое изменение:
SearchStringLength (Byte)
NbBytesToPut (Byte)
searchstr(16) Как строка (String) * 16 байт - первая строка для поиска в scene.4ds
PutStr(256) Как строка (String) * 256 байт - строка для вставки по найденной позиции в scene.4ds
Второе изменение:
SearchStringLength (Byte)
NbBytesToPut (Byte)
searchstr(16) Как строка (String) * 16 байт - вторая строка для поиска в scene.4ds
PutStr(256) Как строка (String) * 256 байт - строка для вставки по второй найденной позиции в scene.4ds

Далее, у нас нет байт для изменения оригинального файла scene2.bin, следовательно мы можем это проигнорировать.

С этого момента начинается информация, данная в первой части этого урока, начиная с пункта номер 4, то есть TestSceneMod и далее.




Последние новости

2.05.2017
50 оттенков Alive Bars Mod
29.04.2017
Gangsters Mod
12.09.2015
Functional Black Metal
8.04.2015
О форсированных машинах
1.04.2015
История одного сицилийца
11.02.2015
Мод для изучения ПДД на улицах Лост Хэвэна
10.02.2015
Alive Continuing Mod - новый мод из семейства Alive



Это интересно

HotLog

Все права защищены © www.webgamer.hhos.ru 2003- © MikeMouse 2003- ©

Mail.Ru