Надоело мне ждать, когда nfsu360 доделает VltEd для прострита, поэтому решил сделать свой редактор. Разработку начал ещё в ноябре, но в декабре как-то забросил проект, хотя уже был рабочий прототип. Несколько дней назад решил таки доделать программу.
Итак, что программа умеет сейчас:
-Открывать базу данных NFS Carbon и ProStreet (в файле GlobalMemoryFile.bin)
-Сохранять внесённые изменения
-Считать хэши прямо в программе
-Генерировать “патчи” для установщика
В настоящий момент поддерживаются следующие типы данных: Float, UInt64, UInt32, UInt16, UInt8, Int64, Int32, Int16, Int8, Bool, Vector2, Vector3, Vector4, RefSpec, AxlePair, CarBodyMotion. В дальнейшем будут внедряться и остальные типы.
В планах также поддержка других игр: Undercover и World (зачем - я не знаю, правда), а также редактирования базы фронтенда.
Кроме того, в разработке универсальный установщик модов, который будет уметь копировать нужные файлы, патчить GlobalMemoryFile и восстанавливать исходные данные (в т.ч. в глобале).
Такие дела В ближайшее время постараюсь допилить программу до релизного состояния и выложить в общий доступ.
это здорово что физику можно редактировать!!но для прострита так же и нету нормального тулза)), и то что на днях показал горе поляк360 не будет готово еще года два , но работа твоя стоящая хотя бы для карбона или в ковре поправить физику с управлением), ждем финального релиза))
RENESiS, насчет установщика модов: у меня есть два проекта установщиков, для NFS Most Wanted и NFS ProStreet. Вот информация по ним, и собственно проекты:
[details=NFS MW Mod Installer]Последняя версия: 2.3.0.0
Возможности программы:
Автоматическая установка любой модификации для игры
Автоматическое определение папки с установленной игрой
Возможность разбить модификацию на несколько архивов
Возможность использовать архивы разных форматов
Автоматический откат произведенных изменений при ошибке или при нажатии кнопки “Отмена”.
Возможность деинсталлировать любую модификацию из “Панели управления” (“Установка/удаление программ”) из меню “Пуск” (папка “MW Mods”) или из папки с игрой (папка “Uninstall”).
Возможность собрать установщик только на английском, только на русском или на обеих языках сразу.
Встроенный в установщик файл Readme (описание модификации), избавляет от одного или более различных файлов Readme.txt. А формат RTF дает возможность красиво и оригинально оформить файл описания в Microsoft Word или другой программе, поддерживающей работу с данным форматом.
Возможность поменять стиль интерфейса на один из нескольких доступных, либо создать свой собственный.
Индивидуальная настройка деинсталлятора для каждой модификации. То есть для каждой конкретной модификации вручную прописываются файлы, которые будут удалены при деинсталляции модификации.
[details=NFS ProStreet Mod Installer]NFS:PS Mod Installer - установщик модификаций для игры Need for Speed ProStreet.
Основан на коде NFS:MW Mod Installer и доработан специально для корректной установки модификаций для NFS ProStreet.
Возможности программы на данный момент:
Автоматическое создание резервной копии заменяемых файлов перед установкой и восстановление оригинальных файлов из резервной копии после удаления модификации
Установка нескольких вариантов одной модификации
Английский или Русский язык установщика (как самой программы так и Readme-файлов)
Установка нескольких модификаций одновременно
Автоматическое определение папки с установленной игрой (при условии наличия определенного ключа реестра)
Корректная деинсталляция модификации
Возможность создать установщик со стандартным или измененным интерфейсом
Что планируется добавить:
[] Автоматическое изменение положения колес в игре для конкретного автомобиля
[] Возможность использовать различные архивные форматы для data*.bin файлов
[] Автоматическое добавление разделов и ключей реестра для игры
[] Возможность выбрать разные варианты в двух и более модификациях
Большинство возможностей программы можно включать или отключать, тем самым подгоняя установщик под конкретную модификацию.
Проект: yadi.sk/d/mnArRT5ff678w[/details]
Дополнительные файлы для этих проектов (программы и т.д.) доступны тут:
Мм мм… Редактор физики Картона? Вот это ньюс! Скоро закончу разбивать на части модель Escort Cosworth RS. Наверно законверчу в картон. Бусидёры будут катать на моей тачке.
А что с ним не так, кроме того, что зачем-то лоды автоматом линкуются на LOD_A? Люди вроде конвертят, всё работает, включая покраску и винилы. Не было только инструмента для редактирования позиций колёс и остального, теперь будет.
Inno setup - штука хорошая, но в этом случае мне не хочется её использовать: например, чтобы патчить файлы придётся делать отдельный экзешник, который будет запускаться в инно после копирования файлов. Тем более, мой установщик уже наполовину готов. Но спасибо за предложение!
Если кто-то скинет GlobalMemoryFile.bin, attributes.bin, fe_attrib.bin и gameplay.bin от ковра, буду очень благодарен, а то игры нет, а качать не хочется)
RENESiS, вот необходимые файлы. От версий 1.0.1.17 и 1.0.1.18. NFSUC_VLT_1.0.1.17.7z (1,6 Мб) NFSUC_VLT_1.0.1.18.7z (1,7 Мб)
[hr]
Насчет установщика: почему именно Inno Setup - потому как такой установщик можно сделать модульным, подстраивая его под конкретную модификацию.
К тому же, вы говорите:
Можно и так, а можно сделать DLL, которая будет подключаться в скрипте и далее просто вызываться функция, например Patch.
[details=кое что интересное]
function Patch (FileName: AnsiString; ScriptName: AnsiString) external 'Patch@files:libpatch.dll stdcall delayload';
где FileName - имя файла, который надо пропатчить, а ScriptName - имя файла, содержащего данные для патча. Можно сделать не имя файла, а сами данные в шестнадцатеричном виде (но тогда надо использовать вроде бы не AnsiString, а PAnsiChar).
И вызов в нужном месте:
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
Patch(ExpandConstant('GlobalMemoryFile.bin'), ExpandConstant('patch.dat');
end;
end;
Вроде не совсем правильно написал, но примерно так.[/details]
Пока ничего особо не изменилось со времени первого поста. Ну, доделал инсталлер и генерацию патчей (первый мод с новым установщиком). В целом дело идёт к релизу, но сейчас не хватает времени (пару дней назад госы сдал, теперь надо диплом доделывать окончательно)
Добавил таки поддержку World. Игра изменения воспринимает нормально, даже в онлайне. Удалось активировать нитробуст у 240zg (сразу скажу, что нитробуст возможно поставить не на все авто, по крайней мере на данном этапе исследования)
Немного новостей.
В данный момент полностью переписывается алгоритм чтения файлов. В итоге будет поддержка GlobalMemoryFile.bin, attributes.bin, FE_ATTRIB.bin, gameplay.bin/gameplay.lzc и вероятно commerce.bin
Кроме того, готовится новая фича - возможность подключиться к процессу игры и редактировать влт-базу в памяти процесса не закрывая игру. Может быть удобно для редактирования позиций колёс/чего-то ещё без необходимости перезапускать игру для проверки