Это перевод статьи с NexusMods, описывающей нативную систему контроля версий в Construction Set. С её помощью можно автоматически делать резервные копии своих плагинов, обьединять плагины воедино и отслеживать изменения. Частично она устарела после появления xEdit, Wrye Bash и MO2, но мне она кажется любопытной сама по себе. Тем более, о ней действительно мало кто слышал в наших пенатах.
Construction Set имеет встроенную и функционирующую систему контроля версий. При этом большинство даже не знает ни о том, что она есть, ни о том, что это такое и как работает. Чем больше людей создает моды, тем более полезным будет это знание. Есть статья на CS Wiki, уже малость подустаревшая, но в ней мало ссылок и она косноязычна. Так что изложим основы. Я сконцентрируюсь на том, чтобы сделать локальный репозиторий, а не на том, чтобы подключить наш контроллер версий к сети.
Подготавливаем ConstructionSet.ini
Начнем с того, что откроем ConstructionSet.ini по адресу C:\Documents and Settings\<username>\My Documents\My Games\Oblivion.
Найдем файл и откроем его. Всё зависит от названия вашего компьютера в сети и пути установки игры. Просто не копируйте все отсюда буквально. Допустим, мой ПК зовется PathFinder, а Обливион установлен по адресу C:\Games\ElderScrolls\Oblivion. Знак доллара ($) следует прописать в пути.
bUseVersionControl=1
SNetwork Path=\\PathFinder\C$\Games\ElderScrolls\Oblivion
SNetworkMasterPath=\\PathFinder\C$\Games\ElderScrolls\Oblivion\Data\
SNewVersionBackupPath=\\PathFinder\C$\Games\ElderScrolls\Oblivion\VersionBackup\
SLocalBackupPath=Data\CheckInBackup
Далее, добавьте это к концу файла. Это нужно для открытия некоторых функций. Замените названием логина вашего ПК плашку <username>.
[WhoCanMerge]
<username>=1
Теперь создадим две папки. Следуя тому, что мы прописали выше, они должны быть на диске С:
\Games\ElderScrolls\Oblivion\VersionBackup и C:\Games\ElderScrolls\Oblivion\Data\CheckInBackup
И прежде, чем двигатсья дальше, сделайте бекап Oblivion.esm. На всякий случай.
Подготавливаем CS
Теперь откроем CS и выберем Oblivion.esm. Увидим следующее:
Warning
---------------------------
TESBitArrayFile::OpenAndMapBitArrayFile could not find file 'Oblivion.fud'.
Continue Running Executable?
"Yes to all" will disable all Warnings this session.
---------------------------
Yes No Cancel
---------------------------
Если вылезет нечто другое, то у вас нет активного подключения к сети. Надо это исправить. Диал-апа вполне хватит. НЕ спрашиваете почему, просто примите как факт. Предположу, что вы получили правильный результат, нажму ДА и мы двинемся дальше. Как только всё загрузилось, вы увидите кнопку вверху слева на панели инструментов.
Откройте Data Files. Oblivion.esm будет подсвечен. Нажмите на кнопку Details. Вылезут две плашки с подтвреждением. В обоих ставим ДА.
Затем CS будет парсит мастер файл и после снова откроется окно Data Files. Введите комбинацию клавиш CTRL+SHIFT+B. И увидите следующее:
---------------------------
Confirm Bit Array File Update.
---------------------------
You have chosen to create/update the bit array files for the current file.
This operation cannot be undone and may take a long time to complete.
Do you wish to continue?
---------------------------
Yes No
---------------------------
Нам это нужно, поэтому выбираем ДА, чтобы их создать. Закройте окно File Detail и выбирайте ОК в окне Date Files для перезагрузки мастер-файла.
Использование
Вот теперь всё готово. Все функции доступны и могут быть найдены в окне Контроля Версий, доступ к которому мы получаем по кнопке вверху слева на панеил инструментов или в окне File Details, где мы создали файлы Oblivion.fid и Oblivion.fud. Окно Контроля Версий через кнопку на панели инструментов наиболее полезно. Функции в окне File Details могут быть опасны (и занимать уйму времени).
Что наиболее полезно, так это слитие с мастер-файлом (merging to a master). Если создать плагины, работающие с Oblivion.esm, эта функция не имеет смысла. А вот если вы создаете свой собственный мастер-файл, то эта функция бесценна. Так что давайте потестим её на Oblivion.esm.
Сперва сохраните плагин. Всегда сохраняйтесь. Теперь найдите персонажа игрока в списке НПС и удалите все из его инвентаря. Вы же начинаете игру с определенным сетом вещей. Добавьте что-угодно и удалите что было, а затем сохранитесь. Я добавил мифриловые вещи. Смысл в том, чтобы сразу заметить изменения в игре.
Если посмотреть на строку персонажа в окне обьектов, вы увидите, что она стала зеленой, то есть вы её поменяли. Нажмите кнопку Контроля Врсий и получите ту же запись об изменениях. Нажмите на неё и кликните Check In.
Как только это сделано, закрываем окно Контроля Версий, открываем окно Data Files и перезагружаем мастер-файл. Теперь начинаем новую игру с включенным Oblivion.esm (ну и Дрожащими Островами, если они есть) и смотрим на одежду игрока. Весомо, да?
В папке VersionBackup созданной нами ранее вы найдете копию до-слитой (merged) версии мастер-файла и плагина. В папке CheckInBackup тоже созданной нами вы найдете вторую копию плагина до слития воедино. Ваш плагин существует в папке Data и все еще может быть загружен в CS, но теперь он пуст.
Так что можно использовать систему Контроля Версий еще и для создания независимых мастер-файлов с нуля.
Доступные Функции
Функции из секции Подробности Файла (File Details window) таковы. Некоторые могут отключать (render your master file un-usable) ваш мастер файл. Некоторые потребуют выбора конкретных форм или групп в окне File Details. Я подозреваю, что часть функций осталась со времен, когда сама концепция мастер-файла только-только была реализована, а игровой мир находился в активной стадии разработки.
Ctrl+Shift+T
Новая форма в виде строки (string)
Ctrl+Shift+U
---------------------------
Подтверждение Обновления Размера (Size Update).
---------------------------
Вы выбрали обновить размеры выбранной группы.
Эта операция не может быть отменена.
Продолжить?
---------------------------
Yes No
---------------------------
Ctrl+Shift+I
---------------------------
Подтверждение Обновления ID (ID Update).
---------------------------
Вы решили обновить ID форм для одной или более форм в данном файле. Операция не может быть отменена. Вдобавок это не удалит любые связи с ними других форм. Могут быть ошибки при загрузке.
Продолжить?
---------------------------
Yes No
---------------------------
Ctrl+Shift+O (letter O)
---------------------------
Подтверждение Конверсии ESM (ESM Conversion).
---------------------------
Вы решили создать версию данного ESM файла, оптимизировав его под Xbox.
Операция не может быть отменена.
Продолжить?
---------------------------
Yes No
---------------------------
Ctrl+Shift+P
---------------------------
Подтверждение Сортировки Дочерних Элементом (Child Sort).
---------------------------
Вы выбрали сортировку дочерних под-групп в файле.
Операция не может быть отменена.
Продолжить?
---------------------------
Yes No
---------------------------
Ctrl+Shift+A
---------------------------
Подтверждение Валидации Побитовых Массивов Файла (Bit Array File Validation).
---------------------------
Вы решили валидировать побитовые массивы в данном файле.
Эта операция может занять много времени.
Продолжить?
---------------------------
Yes No
---------------------------
Ctrl+Shift+S
---------------------------
Подтверждение Сортировки Форм (Form Sort).
---------------------------
Вы вырали отсортировать формы в данном файле.
Операция не может быть отменена и может занять много времени.
Продолжить?
---------------------------
Yes No
---------------------------
Ctrl+Shift+F
---------------------------
Подтверждение Обновления Размеров Форм (FORM Size Update).
---------------------------
Вы выбрали обновление размеров выбранных форм.
Операция не может быть отменена.
Продолжить?
---------------------------
Yes No
---------------------------
Ctrl+Shift+G (Не делайте этого. Вы сильно пожалеете.)
---------------------------
Подтверждение Обновления Групп (Group Update).
---------------------------
Вы выбрали обновить формы групп в данном файле.
Операция не может быть отменена и может занять много времени.
Продолжить?
---------------------------
Yes No
---------------------------
Ctrl+Shift+L
---------------------------
Подтверждение Конвертации ESM (ESM Conversion).
---------------------------
Вы выбрали создать версию нынешнего файла ESM, содержащий только территорию земных масс Тамриэля.
Операция не может быть отменена.
Продолжить?
---------------------------
Yes No
---------------------------
Ctrl+Shift+Z
---------------------------
Подтверждение Обновления Версии (Version Update).
---------------------------
Вы выбрали обновить версию файла у мастер-файла.
Операция не может быть отменена.
Продолжить?
---------------------------
Yes No
---------------------------
Ctrl+Shift+C
---------------------------
Подтверждение Обновления Группы (Group Update).
---------------------------
Вы выбрали обновить дочерние группы выбранных форм.
Операция не может быть отменена.
Продолжить?
---------------------------
Yes No
---------------------------
Ctrl+Shift+V
---------------------------
Подтверждение Валидацию Файлов (File Validation).
---------------------------
Вы выбрали валидировать загруженные формы против данного файла.
Эта операция может занять много времени.
Продолжить?
---------------------------
Yes No
---------------------------
Ctrl+Shift+B
---------------------------
Подтверждение Обновления Побитового Массива Файла (Bit Array File Update).
---------------------------
Вы выбрали создать\обновить побитовый массив файлов в данном файле.
Операция не может быть отменена и может занять много времени.
Продолжить?
---------------------------
Yes No
---------------------------
Ctrl+Shift+0 (number 0)
---------------------------
Подтверждение Group Removal.
---------------------------
Вы выбрали удалить любые пустые группы в данном файле.
Операция может занять много времени.
Продолжить?
---------------------------
Yes No
---------------------------
Ctrl+Shift+Delete
---------------------------
Подтверждение Удаления (Delete).
---------------------------
Вы решили удалить одну или более форм из данного файла. Несмотря на статус игнорирования, операцию нельзя будет отменить. Вдобавок, связи с другими формами не будут удалены. Возможны ошибки при загрузке.
Продолжить?
---------------------------
Yes No
---------------------------
Комментарии