Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

load.def - файл, отвечающий за загрузку картинок к миссиям, который находится в папке TABLES директории Mafia (у меня C/Program files/Mafia/TABLES/load.def). Редактировать этот файл мы будем с



load.def - файл, отвечающий за загрузку картинок к миссиям, который находится в папке TABLES директории Mafia (у меня C/Program files/Mafia/TABLES/load.def). Редактировать этот файл мы будем с помощью могущественной и величественной программы Hex Workshop 4.1 (качаем в разделе "Программы" если нет в наличие).

 

Для начала у нас должна быть извлечена папка Tables. Это можно сделать с помощью MafiaDataXTractor (если отсутствует смотреть раздел "Программы"). Запускаем MafiaDataXTractor, выбираем Tables, затем щелкаем Extract. После завершения процедуры извлечения у нас в системной папке с Мафией появится папка Tables, в которой и будет наш load.def. Затем запускаем Hex, жмем File => Open => указываем путь к load.def (у меня C/Program files/Mafia/TABLES/load.def). У нас появится структура этого файла в шестнадцатеричном коде.

На этом же первом рисунке отмечены те обозначения окон, которые я буду использовать в дальнейшем. Структура файла достаточна проста, единственное, что надо знать новичку - это то, что в байте две циферки (или буковки), т.е. 40BK90TY89 обозначают 5 байт. В load.def перечисляются миссии, загрузочные скрины и названия миссий. Точнее структура выглядит так: название миссии - 32 байта (64 знака) - название картинки - 32 байта (64 знака) - название миссии 4 байта (8 знаков). И так поочередно прописывается каждая миссия. Все эти байты зарезервированы, поэтому если у вас название меньше, то остальные байты обнуляются. Перейдем к конкретике. В правом верхнем окне щелкнем мышкой перед любой mise, например, перед mise-03-morello: в центральном окне у нас тоже выделился байт. Теперь выделим весь кусок от mise-03-morello до следующего mise... в правом верхнем окне, а в центральном выделится такая байда: 6D69 7365 3033 2D6D 6F72 656C 6C6F 0000 0000 0000 0000 0000 0000 0000 0000 0000 4D30 332E 7467 6100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 D50F 0000. Отсчитав и разделив согласно структуре 32 байта, 32 байта, 4 байта, мы получим: 6D69 7365 3033 2D6D 6F72 656C 6C6F 0000 0000 0000 0000 0000 0000 0000 0000 0000 4D30 332E 7467 6100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 D50F 0000. Синим - названием миссии, красным - название загрузочного скрина, зеленым - текст названия миссии, появляющийся на загрузочном скрине. Теперь самое интересное: мы хотим изменить картинку, как же это сделать? Выбираем в правом верхнем окне название миссии, например, tutorial, это можно легко сделать с помощью функции Find. Жмем Edit => Find или Ctrl + F или щелкаем

на на верхней панели. У нас появится окно.

Заполняем согласно рис. 2. В Type - Text String (значит будем искать текстовую переменную), value - величина, в данном случае пишем название миссии, ставим метки, как на рис. 2. Особое внимание обратим на строку Hex: в этом окне отображается, как Hex перевел tutorial в понятный ему шестнадцатеричный код. Жмем Ок. В правом нижнем окне появятся 2 строчки, щелкнув на одну из них, выделится соответствующая величина в правом верхнем окне.



Одновременно в центральном окне выделится то, что показано на след. картинке.

Т.е. Hex нашел туториал в данном файле, в первом случае это название миссии, а во втором - часть названия картинки. Именно с названия миссии начинается блок, поэтому, если мы хотим изменить картинку, то можем либо заново найти ее Find-ом (в данном случае в value будем писать tutorial.tga), либо щелкнем в правом верхнем окне перед tutorial.tga, и у нас курсор как раз появится перед нужной нам величиной в центральном окне. Самый простой способ: после названия миссии и многочисленных нулей появятся опять знаки (в данном случае 7475 746F 7269 616C 2E74 6761) - это-то и есть название картинки. Теперь надо просто ее заменить. Для этого сначала проверяем, чтобы в папке MAPS у нас была картинка нужного размера в формате tga. Нужный размер - размер загрузочных скринов M1.tga и т.д. Если нет папки MAPS в папке с Мафией, то извлеките ее MafiaDataXTractor-ом: запускаете программу, щелкаете MAPS и жмете Extract. Теперь, когда загрузочный скрин в нужном формате лежит там, где надо, мы просто должны заменить tutorial.tga на нашзагрузочныйскрин.tga. Для этого опять вызываем меню Find (Сtrl + F, если кто забыл). Все параметры такие же, как на рисунке 2, но в Value пишем название нашего загрузочного скрина, а в окошке hex видим, как оно преобразовалось в шестнадцатеричный код.

Для примера я взял intermezzo.tga. Весь шестнадцатеричный код загрузочного скрина копируем в блокнот, окно Find закрываем отменой или, по привычке нажимая на красный крестик. Ставим курсор перед tutorial.tga и начинаем вбивать только что скопированный в Блокнот шестнадцатеричный код.

После

В правом верхнем окне вместо tutorial.tga должно отобразиться intermezzo.tga. Если название вашего скрина меньше родового Мафии, то после окончания ввода оставшиеся байты от названия родового скрина обнулите. Cохраняем, резервную копию с расширением BAK делаем по своему усмотрению. Запускаем игру, выбираем миссию, в которой мы заменили загрузочный скрин. Я заменял туториал, поэтому выбираю обучение.

 

Вот и результат нашего труда. Если хотим убрать надпись Обучение, то после tutorial.tga и нулей в центральном окне ищем первый знак, отличающийся от нуля. С него еще 4 байта - 8 знаков - ID код, т.е. код определенной текстовой строки из textdb_ru.def (для русскоязычной версии игры) или textdb_en.def (для англоязычной версии игры). В данном случае для Обучения ID равен F40F 0000. Чтобы не было никакого программного текста миссии (т.е. Обучение, Прогулка, Визит к толстосумам и все остальные названия) мы должны обнулить эти 4 байта. В принципе можно даже обнулять только 1-ый байт, и наш ID примет такой вид 000F 0000. Уже нет такого ID в файле textdb_ru.def/textdb_en.def, поэтому никакого обучения высвечиваться не будет. Все вышеперечисленные действия описывают замену загрузочных скринов, но, например у меня, в Hex-e не отображаются сделанные мной миссии, хотя они и лежат в папке MISSIONS. Поэтому надо уметь добавлять целый блок. Я не буду долго мутить, а просто удалю туториал (Обучение) и заново его вставлю, чтобы на этом примере все разъяснить. Ставим курсор в центральном окне в конец файла, жмем правую кнопку мыши и щелкаем Insert.

У нас появилось окно Insert Bytes. В Number of bytes пишем кол-во нужных нам байтов. Вспомним структуру: название миссии (32 байта) + название загрузочного скрина (32 байта) + ID названия миссии (4 байта) = 68 байт. Обязательно должна быть отмечена метка Dec, чтобы кол-во байтов нам нужно было писать в десятичной системе. (след. картинка) Щелкаем ОК.

У нас появилось внизу центрального окна 68 обнуленных байт, выделенных красном цветом. Открываем вкладку Find. Заполняем аналогично рис.2 и рис.5. В Value пишем название миссии, которую хотим добавить, в данном случае tutorial, строчку hex: 7475 746F 7269 616C копируем в текстовый файл, затем вместо названия миссии в Value пишем название загрузочного скрина, строчку hex:7475 746F 7269 616C 2E74 6761 копируем в тот же текстовый файл только так, чтоб вы сами поняли, что название миссии, а что скрина. Теперь закрываем вкладку Find. Ставим курсор в начало вставленных 68 байт (выделены красным цветом), вбиваем хексовый код названия миссии из нашего текстового файла. Считаем кол-во байт названия миссии (кол-во знаков названия делить на 2, например, 7475 746F 7269 616C - 8 байт). Кол-во обнуленных байт в названии миссии = 32 байта - кол-во байтов названия миссии. В моем случае 32-8=24 обнуленных байта. Помня, что в байте 2 знака, вбиваем или просто отсчитываем 48 нулей после кода названия миссии. Затем вбиваем название загрузочного скрина (смотрим его код в текстовом файле, куда мы копировали данную величину). Опять же кол-во обнуленных байт названия загрузочного скрина = 32 байта - кол-во байтов названия скрина. Помним, что рисунок должен иметь разрешение tga. Затем, если не хотим, чтобы не высвечивался никакой текст, обнуляем последние 4 байта. В конечном итоге код должен выглядеть так, как на рисунке 11, наш блок начинается с величины, отмеченной желтым цветом.

Если вы хотите добавить свое собственное название миссии, то его проще нарисовать на загрузочном скрине. Сохраняем, резервную копию делаем по собственному усмотрению, запускаем Мафию и любуемся. Если же вы хотите, чтобы название отображалось программно, т.е. из textdb_ru/..._en, то копайтесь на здоровье в этих файлах - флаг вам в руки. Вот результат работы с моим модом: (след. картинка)

 

Еще очень важная поправка. Конечно, с копированием в блокнот сложных кодов я немного перемудрил: извиняюсь, можно сразу в правом верхнем окне текстом писать. Например, вставили 68 байт, в центральном ставим курсор в начало этого блока, а в правом верхнем сразу же курсор появляется под определенной точкой. Теперь в правом верхнем окне щелкаем на этом выделенным курсором участке, а дальше текстом вбиваем название миссии. Затем переключаемся опять в центральное окно, отсчитываем нужное количество нулей, ставим курсор перед названием картинки. Щелкаем в верхнем правом окне под курсором и вбиваем название картинки. Таким нехитрым способом творим в load.def все, что нам вздумается.

Автор: Don Carleone (Александр Коняшин)


Дата добавления: 2015-10-21; просмотров: 36 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
Биметаллический секционный радиатор HotStar Биметаллические радиаторы HotStar способны работать при высоком давлении в системе, вплоть до 60 атм. Наиболее часто их используют в жилых | Стальные панельные радиаторы Rozma предназначаются для обогрева сооружений, зданий, строений небольшой площади. Идеальны панельные отопительные приборы для установки в частных домах или малоэтажных

mybiblioteka.su - 2015-2024 год. (0.008 сек.)