Страница 1 из 2

Добавлено: 18.04.2007, 14:42
Fire666
Тутор по созданию гцф файлов
Думаю, люди, которым небезинтересен процесс добавления файлов в эти архивы,
видели файл makepak.exe в папке steam/bin/.
Именно он и добавляет файлы в архив .gcf.
Мне удалось добавить файлы, что в принципе уже позволяет сделать
собственную руссификацию лицензионного хл2 из русских файлов пиратки.
Но при открытии архива в gcf scape их почему-то не видно.
Хотя вес файла и увеличился.

Как добавить файл:
1. Зайдите в папку steam/bin/ и создайте addfile.bat.
2. Создайте текстовый документ filelist.txt.
3. И наконец, нам нужен сам архив, куда будут добавлены файлы.
Так как создать методом переименования блокнота не получится,
копируем sourceinit.gcf (как самый маленький архив) и переименовываем
в my.gcf. Попробуем добавить туда vgui2.dll, так как он уже
лежит в папке steam/bin/
4. Щёлкаем правой кнопкой по addfile.bat и выбираем пункт 'изменить'.
Вводим в открывшемся блокноте строку:

makepak "C:\Program Files\Valve\Steam\SteamApps\my.gcf" filelist.txt "C:\Program Files\Valve\Steam\bin\"
pause

"makepak" - запуск проги makepak.exe
"C:\Program Files\Valve\Steam\SteamApps\my.gcf" - прямой путь до архива. Можно положить его в папку
steam/bin/ и просто написать его имя без пути. Но важно чтобы имя и путь были заключены в кавычки
если они содержат пробелы.
"filelist.txt" - список добавляемых файлов.
"C:\Program Files\Valve\Steam\bin\" - рабочая папка, где лежит makepak.exe
"pause" и пауза, чтобы окно консоли не закрылось и вы могли разглядеть результаты.

5. Теперь откройте filelist.txt. Здесь указыается список файлов для добавления.
Пишем полный путь до нужных файлов. Например,
"C:\Program Files\Valve\Steam\bin\vgui2.dll"

6. Собственно всё. Запускайте addfile.bat.
Если всё удалось, вы увидите следующее:

C:\Program Files\Valve\Steam\bin>makepak "C:\Program Files\Valve\Steam\SteamApps
\my.gcf" filelist.txt "C:\Program Files\Valve\Steam\bin\"
Added file 'C:\Program Files\Valve\Steam\bin\vgui2.dll'
makepak complete
C:\Program Files\Valve\Steam\bin>pause
Для продолжения нажмите любую клавишу . . .

Ну и ещё раз скажу что gcf scape не видит добавленные файлы.

добавлено спустя 2 минуты:

оригинал смотреть здесь
http://www.half-life.ru/forum/showthrea ... eadid=6882

Добавлено: 18.04.2007, 14:52
impulse666
хм...поймойму про makepak.exe это уже давно извесно...

Добавлено: 18.04.2007, 18:33
postal_3
да, и никаму по нормальному вроде еще не удалось ни запаковать ни изменить в гцф..:)

Добавлено: 18.04.2007, 20:35
impulse666
postal_3
Изминять вроде научились(см ГСФ патчеры)

Добавлено: 18.04.2007, 21:54
mukca
impulse666
вообщето это не изменять..
это нахождение различий двух разных файликов и деланье патча для того чтобы старый файлик изменить так чтоб он был один в один с новым :)

fire64
спасиб за инструкцию...
Ну и ещё раз скажу что gcf scape не видит добавленные файлы.
вот это и плохо...

ps а если таким образом собрать распакованый gcf файл и подсунуть стиму он его поймет/?? поправит на нормальный..

Добавлено: 18.04.2007, 23:27
Fire666
у меня вот просто возник вопрос
для чего эта прога лежит в стиме ?
и для чего она нужна ?

Добавлено: 19.04.2007, 00:11
South
сдается мне что этот makepak просто дописывает указанные файлы в конец gcf-архива и все (получается просто мусор). НЕ внутрь контейнера, а просто в конец файла. Т.к. заголовок файла не меняется, то проги открывающие этот gcf не знают о добавленных файлах, поэтому добаленные файлы и не отображаются. Работоспособность gcf-архива при этом вроде не должна нарушится. Это конечно не совсем корректное описание причины не работоспособности этого метода (там все гораздо сложнее), но смысл примерно такой

скорее всего мы его пытаемся не по назначению использовать, или что-то не так делаем

Добавлено: 19.04.2007, 00:21
impulse666
mukca
изменить слишком широкое понятие, немного некорректно, но все же неверным мой пост назввать нельзя..
fire64
Возможно при обновлении стим патчит ей ГСФ? :?
только там какие то параметры другие..

Добавлено: 19.04.2007, 10:09
mukca
impulse666
недумаю..
скорее всего для модо писателей.. чтоб они могли собрать свой gcf а не кучу файликовт распространять...
мне кажетсья сам стим какимто боков в gcf дописывает..

Добавлено: 19.04.2007, 10:16
iXsero
mukca писал(а):impulse666
недумаю..
скорее всего для модо писателей.. чтоб они могли собрать свой gcf а не кучу файликовт распространять...
мне кажетсья сам стим какимто боков в gcf дописывает..
Микса если бы Valve хотели что бы мододелы упаковывали в GCF, то они где нить написали или показали как это деляется

Добавлено: 28.10.2007, 17:32
Fire666
в принципе GCF формат довольно простой
и это означает что в принципе редактировать или создавать GCF файлы довольно таки легко
надеюсь что на нашем форуме найдется хоть один кодер который бы взялся бы за разработку GCF Editorа

для доказательства моего поста скачайте этот GCF файл
http://ifolder.ru/3905655

Добавлено: 28.10.2007, 17:47
y3k.xeon
помните прогу SteamContentServer от hCUPa (сервер и клиент для обновления гцф, http://csmania.ru/forum/viewtopic.php?p=35694#35694)

так вот ещё до креша форума я как то её был тестировал, и в общем подумал я что, если вместо гцф на сервер вкинуть просто какие нибудь любые файлы , клиентом попытаться их скачать. Не вышло: клинту (насколько я помню) надо было указывать апп_ид гцфки для обновления/скачивания. Тогда я на серваке просто создал пустой файл (вообще пустой - 0 байт), с именем от гцфки (любой) и клиентом запросил этот гцф с сервера(зная апп_ид гцфки), то же не прокатило - сервак именно как то открывал настоящий гцф (файл, который имеет структуру гцф), там чё то мутил, отправлял данные клиенту, и клиент соответсвенно принимал, и паковал их в гцф.
К чему я это написал? просто выходит что клиент умеет запаковывать данные в гцф.

кстати ещё один сервер локальных обновлений, Steam content system emulator/proof of concept - там клиентом является стим, а вот с сервером интересней, он использует не гцки а свои файлы, так вот там с эмулятором исходники идут, там есть разная ерунда, и про гцф тоже кой чё (тока язык там конечно не нашенский - Python), вот там думаю описаны эти гцф, и какие нибудь функции для гцф, вот если бы ктонибудь разобрался во всём етом

Добавлено: 28.10.2007, 17:56
Dotty
Вот-с если хексером позырить на .ncf то видно список файлов, и его можно изменить. По идее в .gcf тоже в начале должен идти какой-то заголовочный список всего содержимого, но ничего похожего там не видно, наверное зашифровано или ещё чё-нить.

З.Ы. То есть, идея - мэйкпаком добавлять файло в .гцф, а потом ужо как-нить список файлов редактировать чтоб его видел и стим, и разнообразные GCFExplorer'ы

+проблемко, он папки не добавляет, значит это всё либо в рут кидается, либо в какую-ту скрытую папочгу с мусором, что более вероятно

Добавлено: 28.10.2007, 17:59
Fire666
Dotty писал(а):Вот-с если хексером позырить на .ncf то видно список файлов, и его можно изменить. По идее в .gcf тоже в начале должен идти какой-то заголовочный список всего содержимого, но ничего похожего там не видно, наверное зашифровано или ещё чё-нить.

З.Ы. То есть, идея - мэйкпаком добавлять файло в .гцф, а потом ужо как-нить список файлов редактировать чтоб его видел и стим, и разнообразные GCFExplorer'ы
я короче только что сделал GCF файл http://ifolder.ru/3905655

Добавлено: 28.10.2007, 18:19
y3k.xeon
fire64
ну рассказывай, как :)