Вход

Просмотр полной версии : Переключение между версиями игры



Maximus_G
03.01.2005, 17:42
Недавно на форуме было предложено элегантное решение для переключения между версиями игры, где не нужно хранить несколько ее копий, а собственно переключение осуществляется не копированием файлов, а их переименованием. Соответственно, экономится место на жестком диске, а изменяемые в версиях файлы не фрагментируются копированием туда-сюда.

Я немного поработал над этим алгоритмом, для переключения во всех версиях от 2.04 до 3.03, и включив в копирование все файлы, которые изменились в патчах/аддонах, + те файлы что потенциально могут измениться в будущих патчах и оказать влияние на игру.

Итак,
от версии 2.04 нужны файлы/папки:
------------------------------------
bin
ForceFeedback
GSData
i18n
lib
dx8Wrap.dll
files.SFS
il2_core.dll
il2_usgp.dll
il2_usgs2.dll
il2_usgs.dll
il2fb.exe
il2setup.exe
il2setup.ini
jgl.dll
key
mg_snd.dll
rcu
rts.dll
------------------------------------
переименовываем их по шаблону "новое_имя = 204.старое_имя". Таким образом files.SFS превращается в 204.files.SFS, и так далее.

От версии 3.01:
------------------------------------
files.SFS
il2_core.dll
il2_coreP4.dll
JET RT
il2fb_new.exe
------------------------------------
переименовываем в "301.*".

От версии 3.02:
------------------------------------
files.SFS
il2_core.dll
mg_snd.dll
il2_coreP4.dll
mg_snd_sse.dll
il2fb_new.exe
fb_3do10p.SFS
fb_maps09p.SFS
------------------------------------
переименовываем в "302.*".

От версии 3.03:
------------------------------------
files.SFS
il2_core.dll
mg_snd.dll
il2_coreP4.dll
mg_snd_sse.dll
fb_3do10p.SFS
fb_maps09p.SFS
------------------------------------
переименовываем в "303.*".


Во избежание путаницы, которая может возникнуть при первоначальном переименовании и размещении нужных файлов, предлагаю поступить следующим образом.
1. Любым старым способом переводим игру в версию 3.0.
2. Создаем в директории игры файл "!300".
3. Перемещаем в директорию игры все файлы "204.*", "301.*", "302.*", "303.*".
В директории игры НЕ должно быть файлов типа "300.*".
4. Копируем в директорию игры файлы из аттача.
5. Дефрагментируем диск :)
6. Для переключения между версиями игры запускаем файлы "!toXXX.cmd". Для удобства пользования можно сделать к ним ярлыки в удобном для нас месте.
7. Проверка корректности работы скриптов: Запускаем их, пробегаем по открывшемуся окошку с командами, проверяем что ни на одну из выполненных команд нет ответа системы в духе "файл не найден", или каких-нибудь других ошибок.

Хинт. Файлы "!toXXX.cmd" созданы лишь для того, чтобы окошко с выполняемыми операциями не закрывалось. Если хотим, чтобы окошко закрывалось после всех операций - запускаем не эти файлы, а "XXX.cmd".

И разумеется, все файлы из патчей, что не вошли в списки файлов типа ХХХ.*, устанавливаются в директорию игры в хронологическом порядке патчей.


------------------------------

Файлы обновлены до версии 3.04.
Для установки патча необходимо извлечь его содержимое во временную папку, переместить в папку игры все файлы и папки кроме files.sfs, il2_core.dll, il2_coreP4.dll. А эти файлы перед перемещением в папку игры переименовать по шаблону 304.*.

Новые cmd-файлы естественно будут работать и в старых версиях игры, без нового патча.

Maximus_G
10.06.2005, 15:06
Новые файлы для работы с патчем 400m.

Для работы переключалки необходимо:

1. Разархивировать содержимое патча 400 в отдельную, изолированную директорию.

2. Следующие файлы из содержимого патча нужно переименовать по одному шаблону имя -> 400.имя:

fb_3do11.SFS -> 400.fb_3do11.SFS
fb_3do11p.SFS -> 400.fb_3do11p.SFS
fb_maps10.SFS -> 400.fb_maps10.SFS
fb_maps10p.SFS -> 400.fb_maps10p.SFS
files.SFS -> 400.files.SFS
il2_core.dll -> 400.il2_core.dll
il2_coreP4.dll -> 400.il2_coreP4.dll

3. Переместить ВСЁ содержимое патча 400 в директорию игры.

4. В директории игры создать файл-индикатор текущей рабочей версии - под названием "!304" (переход к версии 400 выполняем строго с версии 304).

---

Переключалка будет работать и в том случае, если это первая ее установка (разумеется, тогда переключение будет возможно только между версиями 304 и 400).

---

В случае, если игра уже пропатчена пользователем до версии 4.00, но у него есть желание иметь возможность откатить версию игры обратно на 304, необходимо сделать следующее (по аналогии с предыдущим алгоритмом):

5. Разархивировать содержимое патча 304 в отдельную, изолированную директорию.

6. Следующие файлы из содержимого патча необходимо переименовать:

files.SFS -> 304.files.SFS
il2_core.dll -> 304.il2_core.dll
il2_coreP4.dll -> 304.il2_coreP4.dll

7. Переместить только эти три файла в директорию игры.

8. В директории игры создать файл-индикатор текущей рабочей версии - под названием "!400".

---

Далее переключения между версиями выполняются запуском файлов типа "!to304.cmd".

Можно сразу прыгнуть, например, от версии 400 к 204, запуском соответствующего файла.

Если вы не создавали возможность переключения на какие-то версии игры (например, используете переключалку только для версий 304 и 400), тогда стоит удалить соответствующие *.cmd-файлы, во избежание случайностей.

Крайне не рекомендую запускать несколько cmd-файлов одновременно (сам случайно сделал это, пользуясь глючной мышью :) ).

Перед добавлением и заменой файлов в процессе настройки переключалки, неплохо сделать резервную копию директории игры. После завершения процесса, стоит попереключаться туда-сюда, проверить игру на работоспособность, и тогда уж избавляться от резервной копии.

Если есть вопросы - задавайте.

Maximus_G
19.06.2005, 08:10
Поскольку версия 401 отличается от версии 400 только файлом files.SFS, и поскольку 400 неофициальная, в переключалке я просто заменил 400 на 401.
Алгоритм:
1. Откатиться на любую версию меньше 400 (например, 304).
2. Переименовать ВСЕ файлы "400.*" в "401.*".
3. Заменить файл "401.files.SFS" новым, из патча 401.
4. Во избежание случайностей, удалить файлы "!to400.cmd" и "400.cmd".
5. Обновить файлы-переключалки.
6. Go Go Go!