Отлично :Yahoo!: :Bravo: ! Если ты готов всецело и полностью принять на себя обязанность по восстановлению, то я...эх что же мне взамен-то сделать? написать про тебя в About'e? Наверное, это максимум чем я тебя реально смогу отблагодарить
...ну, и просто благодарности от других пользователей MzL :D . В общем, если никто больше не согласится, то вся надежда только на тебя
.
Перво-наперво нужен ftp. Не важно где он будет и какого уровня домен - важно, что он будет работать и желательно без оплаты.
Второе нужно создать кучку архивов 7z (именно 7z !) с именами GCF (в нижнем регистре !), которые пользователь выбрал для закачки (например base source engine 2.7z).
Я использовал диски HL2EP1, SiN Episodes: Emergence и Orange Box. Также я хотел бы, добавить возможность создания The Ship из SID (но, думаю, обновления будут слишком много весить для скачивания по dial-up...впрочем, ладно). Архивы должны быть размером до 100 Мб, если будут больше, то скажешь мне какие именно и я буду думать как это обойти на клиентской стороне.
В корне архива должна лежать мини-GCF (base source engine 2.gcf - без всяких "mini"), а в одноименной папке (опять же "base source engine 2") должны лежать обновленые файлы с момента выпуска диска файлы. Вычислить их можно так:
- Распаковать куда-нибудь содержимое GCF с диска (sid-файла)
- Распаковать содержимое GCF (можно и не новую, для меня было главным сделать возможным создание GCF, а обновлением пусть занимается CFToolbox) ещё-куда-нибудь.
- Самое важное: сравнение файлов в папках. Его можно выполнить с помощью SPK4, в функции "Авто-создание патчей" (я делал на SPK4 v3.1): сразу же на первой вкладке выбираешь папку со старыми файлами (из SID) и с новыми (из GCF). Ну и "Создать патч" - после завершения в папке с файлами из GCF останутся те, что нужно поместить в "архив\<название GCF>" (base source engine 2.7z\base source engine 2).
- Ну и, наконец, архивация и заливка на сервер, с чем у меня и проблема... :( .
Прикреплю один из архивов для примера - мало ли что бывает
.
И ещё: чтобы была возможность создавать одни и те же GCF со всех возможных дисков, для сравнения файлов лучше сначала
брать те, что постарее, например, есть одинаковые GCF и на диске HL2EP1 и на Orange Box: так, на диске с OB обновлённых файлов будет больше, нежели на EP1, поэтому если делать сравнение с OB, то размер архива будет меньше, но он не позволит создать GCF с EP1, т.к. на диске с EP1 некоторые файлы будут старее и процесс просто провалится с ошибкой несовпадения размера файлов или контрольных сумм.