Последний Адмирал
|
Окей, раз уж такой вопрос возник...
Инструменты для моддинга SWBF
1) HEX editor
Большинство народа использует ultraedit32
и hexworkshop
Я лично использую 010 Editor.
Все программы - trial-версии. Ссылки на крэки не публикую по понятным причинам
2) Patch Maker: большинство файлов в SWBF слишком большие, чтобы просто распространять полностью изменённые файлы в качестве модов. Поэтому нужен патч мейкер. Тут уже каждый сам найдёт, что кому надо.
Основы HEX modding'а
Правила:
1. Прежде, чем лезть в какой-либо файл, сделайте БЭК-АП.
А ещё лучше (обладатели пиратских no-CD версий) сделайте просто копию оригинального SWBF-каталога со всеми файлами (например, SWBF_retail). Потом, если вдруг сильно напортачили или надо начать всё заново - копируете оттуда оригинальные версии файлов.
2. HEX - не для ленивых. Желательно хоть какое-нибудь знание программирования, прежде чем лезть в код. Кроме того, желательно знать, что именно в этом коде надо делать (просто так шариться по файлам можно очень долго и безрезультатно).
Почитайте FAQ по моддингу с сайта http://www.gametoast.com, которые находятся на их форуме. Очень полезно. Также загляните на SWBF editing. Почитайте, подумайте.
Файлы: (перевод указаний от kingguru)
C:\Program Files\LucasArts\Star Wars Battlefront\GameData\Data\_LVL_PC
содержит файл "mission.lvl"
Размер этого файла (если Вы, конечно, не ас в обращении с chunk size info) менять НЕЛЬЗЯ!
Файл содержит информацию о том, какие команды (factions), юниты (unitclass), техника (vehicles) и звуки (soundstream) будут загружаться на каждый уровень.
С помощью hex modding'а можно поменять юнитов команды (играть за кого угодно - джав, вуки, тускенов), собствено команды (столкнуть Республику с Республикой, клонов с империей и так далее), а также менять саунтреки для данной карты.
C:\Program Files\LucasArts\Star Wars Battlefront\GameData\Data\_LVL_PC\[имяпланеты]\[имякарты]
То есть, например _LVL_PC\BES\BES1.lvl
Размер файла менять можно. Содержит информацию о том, какие юниты, техника, здания, спаун-пойнты будут загружаться на карту, а также некоторую информацию об их внешнем виде.
Также в нём хранятся текстуры карты (вскоре выйдет программа Bviewer для их извлечения), помимо этого там хранится информация о границах и ограничениях файла (flycaps) за которые игрок не должен выходить.
И, наконец, в этом файле содержится информация об hotspots и hint nodes - это указания для ботов, куда им нужно бежать и что делать (прятаться, стрелять, снайперить
_LVL_PC/SIDE/[имяфайла].lvl
Например, SIDE/rep.lvl
Размер файла НЕЛЬЗЯ менять.
Файл содержит информацию о соответствующей фракции (imp - империя, rep - республика, и так далее).
Там находятся все текстуры и 3D модели юнитов и техники, а также информация о том, какое оружие использует конкретный юнит данной фракции, информация о силе, здоровье, количестве патронов, энергии щитов и джетпаков, о том, сколько жизней прибавляют recharge, о BASE модели любого объекта (от юнита до снаряда).
КАК моддить файлы, размер которых не может быть изменён:
текстовые значения переменных "string" могут быть заменены ТОЛЬКО меньшими по размеру текстовыми значениями. Пример:
all_weap_inf_rifle нельзя заменить на all_weap_inf_lightsaber.
Однако обратное вполне возможно.
Оставшиеся после замены длинного слова на короткое символы необходимо в HEX (!!! не в ASCII) заменить на нули (0). В ASCII это точка, но если вы будете ставить точки через ASCII, то в HEX появятся значения 2E 2E, что нам совсем не надо.
Как легко убрать юниты/технику из миссии?
Просто изменить её имя на несуществующее. Например, я не хочу, чтобы Вейдер загружался на Хот. Я нахожу строку Hot1 в файле mission.lvl. Иду вниз и вижу imp_inf_darthvader. Меняю на wmp_inf_darthvader - и всё, Вейдер больше не загружается. Меняю imp_inf_darktrooper на wmp_inf_darktrooper - и дарктрупер не загружается.
Как поменять юнит?
Если, например, в миссию Hot1 подгружается файлы Imp.lvl и all.lvl, можно дать повстанцам darktrooper. Как? Найти в файле mission.lvl строку hot1. Внизу будет строка AddUnitClass, за которой пойдут all_inf_marksmansnow и т.д до all_inf_smugglersnow. Замените (вручную) all_inf_smugglersnow на imp_inf_darktrooper, оставшиеся буквы заполните 0 в HEX. Если Вы всё сделали правильно, у ребелов на Хоте будет дарктрупер.
Что может моддинг?
На данный момент - менять местоположение всех объектов на карте, в том числе менять уровень воды, менять спецэффекты (снег на дождь), менять текстуры объектов, менять оружие у некоторых (!!!) классов юнитов, менять BASE (осторожно!!! только у некоторых классов объектов!!!), менять здоровье, энергию джетпаков и щитов, скорость перезарядки джетпаков и щитов, конечность/бесконечность патронов к оружию, команды на уровне, юниты, за которые можно играть, иконки команд, классы игроков, управлять камерой (приближение-удаление).
P.S. Отвечаю для всех конкретно, КАК поменять оружие у дарктрупера.
0) Сделайте бэкап файла /SIDE/imp.lvl
1) Откройте hex эдитором файл SIDE/imp.lvl
2) Найдите строку imp_inf_dark_trooper (или imp_inf_dark_troopersnow, если вам нужен вариант дарктрупера на Хоте)
3) После этой строки смотрите внизу. Промотав кучу параметров, вы должны найти строку imp_weap_inf_shotgun и чуть ниже imp_weap_inf_pistol
4) Замените imp_weap_inf_pistol на imp_weap_inf_rifle (не забудьте стереть оставшуюся букву "L" нулями в HEX)
5) Сохраните файл.
Теперь у Дарктрупера есть E-11 как вторичное оружие с бесконечными припасами! Поздравляю!
Можно попытаться поменять его первичное оружие (imp_weap_inf_shotgun), но не всегда это приводит к положительными результатам.
Have fun!!
__________________
Ветер, что качает вереск
Изменено: гросс-адмирал Траун, 22-10-2004 в 07:35
|