Итак, прежде всего, нужно определиться, что мы будем заменять. Для туториала мой выбор пал на автомобиль Shelby GT500 "Eleanor".
Что нам потребуется для добавления авто:
1) Программа OpenIV. Вы спросите: а почему не SparkIV? Вся проблема в возможностях. OpenIV позволяет создавать .img архивы, а также предоставляет все функции для работы с архивами, такие как удаление, добавление (не замена). А SparkIV в свою очередь, просто позволяет заменять файлы.
2) Немного терпения и осторожности при работе с файлами игры. Торопиться никуда не стоит, сделав процедуру добавления транспорта один раз, на следующий вы уже в 2 раза быстрее и увереннее повторите эту, на первый взгляд, сложную процедуру.
Итак, начнем.
Для начала, подготовим файлы нашего добавляемого авто (см. выше) извлечем sabregt.wft и sabregt.wtd файлы из архива и переименуем их в название будущего авто, в нашем случае я использовал название "Eleanor". После переименования получаем 2 файла: eleanor.wft и eleanor.wtd, отложим их в удобное место, для этого создайте папку на рабочем столе с названием "Eleanor".
Теперь сделаем back-up'ы редактируемых файлов (все они находятся в: [путь_к_игре]\common\data\) . А это:
carcols.dat
cargrp.dat
default.dat
gta.dat
images.txt
Сделали back-up'ы, теперь, наберитесь осторожности и внимательности. При помощи программы Блокнот или любого другого текстового редактора откроем файл default.dat. Мы видим перед собой следующее:
Code
#
# Object types
#
IDE common:/data/default.ide
IDE common:/data/vehicles.ide
IDE common:/data/peds.ide
ANIMGRP common:/data/animgrp.dat
HANDLING common:/data/handling.dat
VEHICLEEXTRAS common:/data/VehicleExtras.dat
PLAYER platform:/models/cdimages/playerped.rpf
PEDGRP common:/data/pedgrp.dat
CARGRP common:/data/cargrp.dat
RADIO common:/data/radiohud.dat
RADIOLOGOS independent:/textures/radio_hud.itd
WEAPONINFO common:/data/weaponinfo.xml
THROWNWEAPONINFO common:/data/thrownweaponinfo.xml
PEDPERSONALITY common:/data/pedpersonality.dat
MELEEANIMS common:/data/meleeanims.dat
ACTIONTABLE common:/data/action_table.csv
EXPLOSIONFX common:/data/effects/explosionFx.dat
VEHOFF common:/data/vehOff.csv
FMENUFILE common:/data/frontend_menus.xml
LBDATAFILE common:/data/leaderboards_data.xml
LBICONSFILE independent:/textures/Leaderboards.itd
HTML http:
Здесь содержатся используемые игрой ресурсы. Основываясь на этом, мы заставим игру подключать к игре дополнительный ресурс с нашим авто. Для этого после строчки LBICONSFILE independent:/textures/Leaderboards.itd добавьте: HANDLING common:/data/newhandling.dat Это будет наш новый Handling с параметрами авто. Внимание! между добавленной строчкой HANDLING common:/data/newhandling.dat и строчкой HTML http: должен быть один пробел!.
Теперь открываем файл gta.dat и в самом конце файла, после строки IPL platform:/DATA/MAPS/GENERIC/lodcull_e.IPL добавим: IDE common:/data/newveh.ide Примечание: если вы планируете добавлять в игру несколько авто, то копируем эту строку, и через один пробел у newveh.ide дописываем 1 и так далее...
Выглядеть это будет так:
Code
.... ближе концу текста....
#
# Lod Cullers
#
IPL platform:/DATA/MAPS/GENERIC/lodcull_j.IPL
IPL platform:/DATA/MAPS/GENERIC/lodcull_m.IPL
IPL platform:/DATA/MAPS/GENERIC/lodcull_e.IPL
IDE common:/data/newveh.ide
IDE common:/data/newveh1.ide
Теперь откроем файл images.txt и в конце текста после строки platformimg:/data/maps/east/bronx_w2 0 добавим platformimg:/models/cdimages/newveh 1 Примечание: Цифру 1 ставим обязательно, при добавлении еще одной единицы транспорта копируем строку и вместо 1 ставим 2 и так далее...
Выглядеть это будет так:
Code
.... Ближе к концу текста....
platformimg:/data/maps/east/bronx_w2 0
platformimg:/models/cdimages/newveh 1
#map xref
#map instance
Примечание: Пробелы необходимо сохранять. После добавляемой строчки должен присутствовать один пробел. Фразы, перед которыми стоит знак # - это либо комментарии, либо пояснения к параметрам от разработчиков.
Теперь мы создадим наш новый архив с файлами авто.
Откройте программу OpenIV в меню программы выберите пункт Файл, нажмите Создать Присвойте архиву имя newveh.img Далее открываем созданный нами архив опять же через программу OpenIV и добавляем в него наши заранее приготовленные файлы из папки "Eleanor" eleanor.wftи eleanor.wtd Сохраняем архив в папке "Eleanor". Примечание: Чтобы создать архив через OpenIV у вас должна стоять Windows 7 или Windows Vista, если у вас XP, то создать архив у вас не получится. На этот случай я приготовил пустой .img файл. Скачать архив с пустым файлом, а также с файлами нашего добавляемого авто для изучения вы можете в конце туториала по ссылке.
Приступим непосредственно к характеристикам авто. Открываем стандартный файл GTA 4 carcols.dat.
Теперь в разделе car3 или car4 нужно дописать параметры. Я выбрал раздел car3 после строки yankee, 15,112,1, 26,78,1 добавим наше авто. Скопируем его из ReadMe файла, который был в архиве с автомобилем. Внимание: Копируйте только цифровые значения, название авто не нужно копировать. Вписываем необходимое. На нашем примере это выглядит так:
Code
.... Другие параметры....
yankee, 15,112,1, 26,78,1,
eleanor, 21,21,12, 23,0,0, 27,0,0, 171,0,0, 85,0,0, 173,0,0, 255,0,0, 34,0,0, 37,0,0, 49,0,0, 89,0,0, 132,0,0, 2,0,0, 3,0,0, 4,0,0, 12,0,0,
Теперь создадим текстовый файл и переименуем его в newhandling.dat Примечание: У вас в системе должно быть включено отображение расширений файлов. Откроем созданный файл при помощи Блокнота и скопируем в него нужные значения из ReadMe, который находится в архиве с автомобилем.
Выглядеть это будет так:
Code
ELEANOR 1700.0 6.0 85 0.0 0.0 -0.60 0.0 5 0.20 1.0 160.0 0.20 0.65 0.5 35.0 1.20 0.85 17.0 0.15 0.47 1.4 0.8 0.8 0.15 -0.18 0.0 0.5 1.0 1.0 0.8 1.5 0.0 18000 440000 0 0 0
Теперь самый ответственный момент. Создаем файл newveh.ide. Открываем его, далее отступаем один пробел от начала и пишем следующее:
Code
cars
eleanor, eleanor, car, ELEANOR, SABREGT, VEH@LOW, NULL, 1, 999, 0.2621, 0.2621, 0, 5, 1.0, 0, noboot+sports
end
txdp
vehshare_truck, vehshare
end
А теперь все внимание сюда. Этот файл играет ключевую роль в появление авто в игре и то, как игра его воспримет. Разберемся в параметрах этого файла:
eleanor, - имя модели в игровых файлах и архивах
eleanor, - имя архива текстур машины в архиве
car - тип автомобиля
ELEANOR - идентификатор в файле handling.dat
SABREGT - изменив этот параметр на другой, например FUTO, в игре у автомобиля eleanor изменится имя, звук двигателя на имя, звук двигателя futo
VEH@STD - анимация автомобиля
VEH@STD_LO4_LO4 – анимация Нико в автомобиле, влияет на то, как он держит руль, сидит и т.д
100 - частота появления машины в игре
999 - максимальный номер
0.2229 - диаметр передних дисков
0.2229 - диаметр задних дисков
0 -
2 -
1.0 -
0 - степень загрязненности при появлении
"-" - флаги
Теперь внимательно, чтобы у авто появился звук двигателя, имя, нужно задать второму параметру с названием SABREGT необходимое имя стандартного авто из GTA IV. Подходящий звук на замену авто находится у SabreGT. К сожалению, мы не можем сделать нашему авто отображение имени, собственный звук и т.п. Причина кроется в том, что звуки, конкретный файл из внутреннего архива с транспортом игры просто отсутствует. Возможное решение этой проблемы есть, но для этого потребуется долго менять значения в звуковых файлах и т.п. Таким образом, меняя название параметра "SABREGT", мы присваиваем ему все от автомобиля SabreGT. Мы можем изменить звук авто и его название, подставив например вместо "SABREGT" значение "INFERNUS". При создании модели авто, автор сам подбирает более подходящее авто по параметрам. Так что помните, когда вы копируете строку из ReadMe, и вы хотите добавить или заменить авто, вам нужно изменять только первые 3 названия, это: eleanor, eleanor, - ELEANOR, Изменять параметр car нужно только в случае, если транспорт иного типа, например это вертолет или мотоцикл.
Сейчас один из интересных параметров, который нужно настраивать со вкусом. Это файл cargrp.dat В нем будет информация о том, в каком районе Либерти-Сити будет обитать наше авто. Мое предпочтение пало на русский район на первом острове. Итак, открываем файл, мы видим кучу строк с названиями авто, и в конце после названий авто стоит строка с наименованием района, для русского района она выглядит так: # POPCYCLE_GROUP_RUSSIAN Теперь нужно заселить наше авто в один из районов. Как я и говорил, я выбрал русский район. Для этого в строке предназначенной для русского района, перед minivan, я дописал eleanor, Примечание: после названия нашего авто и стоящим после него, должен быть 1 пробел.
На этом мы закончили все махинации с файлами. Сохраняем все. Затем все наши созданные файлы, а это:
newhandling.dat , newveh.ide Помещаем в следующее место: [путь_к_игре]\common\data\
Файл с нашим авто newveh.img Помещаем в [путь_к_игре]\pc\models\cdimages\
Вот и все! Мы закончили! Теперь смело запускаем игру.
Ну вот, теперь проверим наше авто... но.. его нужно найти! Да, мы можем отправиться в заданный нами район Либерти в файле cargrp.dat и своровать его у ни в чем не виновного PED'а, но можно сделать проще - соспавнить наше авто. Но вот незадача, в Simple Native Trainer нашего с вами авто нет, т.к. мы добавили его в игру, а не заменили. Но выход из ситуации у нас под носом - Script Hook, а точнее его консоль. Чтобы открыть консоль жмем на клавиатуре клавишу ~ (тильда), в открывшейся консоли пишем незамысловатую команду спавна: spawn eleanor, где на месте "eleanor" может стоять название любого авто из игры, мы пишем с вами "eleanor" потому, что мы задали это имя при работе с файлами игры. Поздравляю! Авто соспавнено! Прыгаем в него и едем крушить Либерти-Сити, ну, или чем вы там занимаетесь.
Теперь немного об особенностях. Количество добавляемых в игру авто ограничено! Из имеющейся информации это 28 дополнительных авто (проверялось на патче 1.0.4.0). Или 23 (версия патча неизвестна). При превышении этого значения игра просто не будет запускаться. Вероятнее всего, это связано с движком GTA 4.
Скачать архив с образцом работы, для детального изучения, а также просто, чтобы еще раз пересмотреть все, вы можете здесь.