Как собрать standalone версию игры

Half-Life 2 собрала более 35 наград в номинации 'Игра года' и разошлась тиражом более 4 млн экземпляров.
Ответить
Сообщение
Автор
Аватара пользователя
MrLOLs
Нович0к
Нович0к
Сообщения: 12
Зарегистрирован: 02.08.2010
Откуда: Кривой Рог

#1 Сообщение 23.07.2011, 21:45

Собственно сабж, как собрать standalone версию игры из .gcf на движке Source Engine, например Half-Life 2.
Я объединил все .lst файлы в один, из папки reslists. И посредством батника скопировал все файлы указанные в объединённом .lst в отдельную папку. Но все равно много необходимых файлов не хватает, особенно materials.

Может кто знает, как узнать все необходимые файлы, которые нужны для полноценной сборки.

M1ke
Модератор
Модератор
Сообщения: 1464
Зарегистрирован: 17.06.2007
Откуда: 54
Благодарил (а): 2 раза
Поблагодарили: 90 раз
Контактная информация:

#2 Сообщение 24.07.2011, 11:14

да сколько ж можно%)Собери нормальную GCF-пиратку и не мучайся.Ты получишь выигрыш в занимаемом месте (т.к. разные игры используют одинаковые gcf) и возможность обновлять её.Для автоматизации используй CFPT или Phoenix.
Изображение
Изображение
Изображение

Аватара пользователя
wowks
Майор
Майор
Сообщения: 525
Зарегистрирован: 09.12.2008
Благодарил (а): 67 раз
Поблагодарили: 37 раз

#3 Сообщение 24.07.2011, 15:17

MrLOLs
уже сравнительно долгое время все 3 халфы и портал портировали на один и тот же движок в связи с портированием стима на макинтош
собрав gcf пиратку ты с лёгкостью сможешь упокавать всё в оди инсталятор инно сетап размером 7 гигов и присвоить кэшу свойства всех четырёх компонентов
при желании ты также можешь выделить для каждой игры свою озвучку.
вот тебе кусок моего скрипла
почитай секцию файлов, компонентов и типов установки и всё поймёшь
;
; IS GameScript Generator by South


[ISFormDesigner]
............

[Setup]
SourceDir=.
OutputDir=I:\final
AppName=source engine 15
AppVerName=source engine 15
AppVersion=source engine 15
DefaultDirName={pf}\source engine 15
DefaultGroupName=source engine 15
AllowNoIcons=true
OutputBaseFilename=setup
WizardImageFile=slidehow\welcome page\sleep.bmp
WizardSmallImageFile=final.bmp
SetupIconFile=O:\hl2\проект1.ico
WindowVisible=false
WindowShowCaption=false
WindowResizable=false
Compression=none
DiskSpanning=true
DiskSliceSize=960495616
SlicesPerDisk=1
InternalCompressLevel=Ultra
UninstallFilesDir={app}\uninstall
UninstallDisplayIcon=O:\hl2\uninstall icon.ico

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl



[Types]
Name: full; Description: полная установка
Name: custom; Description: выборочная установка; Flags: iscustom
Name: russian; Description: всё с русской озвучкой; Languages:
Name: english; Description: всё с английской озвучкой; Languages:
Name: russian+english; Description: всё с русской озвучкой и английским интерфейсом
Name: half_lifes_; Description: только игры серии Half-Life 2
Name: portal; Description: только Portal

[Components]

Name: g0; Description: source engine 15; Types: full custom; Flags: disablenouninstallwarning checkablealone fixed
Name: g0\c1; Description: Half-Life 2; Types: full half_lifes_; Flags: dontinheritcheck
Name: g0\c1\c2; Description: английская озвучка + русский интерфейс; Types: full russian+english; Flags: exclusive
Name: g0\c1\c3; Description: английская озвучка; Types: full english; Flags: exclusive
Name: g0\c1\c4; Description: русская озвучка; Types: full russian; Flags: exclusive
Name: g0\c1\c4\c5; Description:дополнительная озвучка от Буки (опционально); Types: full russian; Flags: dontinheritcheck
Name: g0\c1\c6; Description: северное сияние на подходе к проспекту Новы (опционально); Types: full; Flags: dontinheritcheck
Name: g0\c7; Description: Half-Life 2 Episode One; Types: full half_lifes_; Flags: dontinheritcheck
Name: g0\c7\c8; Description: английская озвучка + русский интерфейс; Types: full russian+english; Flags: exclusive
Name: g0\c7\c9; Description: английская озвучка; Types: full english; Flags: exclusive
Name: g0\c7\c10; Description: русская озвучка; Types: full russian; Flags: exclusive
Name: g0\c11; Description: Half-Life 2 Episode Two; Types: full half_lifes_; Flags: dontinheritcheck
Name: g0\c11\c12; Description: английская озвучка + русский интерфейс; Types: full russian+english; Flags: exclusive
Name: g0\c11\c13; Description: английская озвучка; Types: full english; Flags: exclusive
Name: g0\c11\c14; Description: русская озвучка; Types: full russian; Flags: exclusive
Name: g0\c15; Description: Portal; Types: full portal; Flags: dontinheritcheck
Name: g0\c15\c16; Description: английская озвучка + русский интерфейс; Types: full russian+english; Flags: exclusive
Name: g0\c15\c17; Description: английская озвучка; Types: full english; Flags: exclusive
Name: g0\c15\c18; Description: русская озвучка; Types: full russian; Flags: exclusive

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}

[Files]
;{ ISFormDesignerFilesBegin } //Не удалять эту строчку!
;// Не изменять эту секцию. Она создана автоматически.
DestName: "WizardForm.WizardBitmapImage2.bmp"; Source: "slidehow\Recon_Synth.bmp"; Flags: dontcopy solidbreak
DestName: "WizardForm.BitmapImage1.bmp"; Source: "slidehow\Ñíèìîê2.bmp"; Flags: dontcopy solidbreak
DestName: "WizardForm.BitmapImage5.bmp"; Source: "slideshow 2\Gunship_con2.bmp"; Flags: dontcopy solidbreak
DestName: "WizardForm.BitmapImage6.bmp"; Source: "slideshow 2\Ñíèìîê.bmp"; Flags: dontcopy solidbreak
DestName: "WizardForm.BitmapImage3.bmp"; Source: "slidehow\last page\3.bmp"; Flags: dontcopy solidbreak
DestName: "WizardForm.BitmapImage4.bmp"; Source: "slidehow\îïèñàíèÿ\Ñíèìîê2232.bmp"; Flags: dontcopy solidbreak
DestName: "WizardForm.BitmapImage7.bmp"; Source: "slideshow 2\Cremator_poster.bmp"; Flags: dontcopy solidbreak
;// Не изменять эту секцию. Она создана автоматически.
;{ ISFormDesignerFilesEnd } // Не удалять эту строчку!

Source: ISSkin.dll; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: steam.cjstyles; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: O:\hl2\фоновый рисунок.jpg; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: O:\hl2\Combine_logo.png; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: isgsg.dll; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression

Source: O:\hl2\steamapps\common half-life 2\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension onlyifdoesntexist; Components: g0\c1
Source: O:\hl2\steamapps\common half-life 2 english + russian menu\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c1\c2
Source: O:\hl2\steamapps\common half-life 2 english\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c1\c3
Source: O:\hl2\steamapps\common half-life 2 russian\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c1\c4
Source: O:\hl2\steamapps\steamapps russian (hl2_buka)(optional)\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension onlyifdoesntexist; Components: g0\c1\c4\c5
Source: O:\hl2\steamapps\steamapps russian (hl2_buka)(optional)_REV-INI\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c1\c4\c5
Source: O:\hl2\steamapps\common half-life 2 aurora borealis particle effects(optional) - original\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c1
Source: O:\hl2\steamapps\common half-life 2 episode one\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension onlyifdoesntexist; Components: g0\c7
Source: O:\hl2\steamapps\common half-life 2 episode one english + russian menu\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c7\c8
Source: O:\hl2\steamapps\common half-life 2 episode one english\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c7\c9
Source: O:\hl2\steamapps\common half-life 2 episode one russian\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c7\c10
Source: O:\hl2\steamapps\common half-life 2 episode two\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension onlyifdoesntexist; Components: g0\c11
Source: O:\hl2\steamapps\common half-life 2 episode two english + russian menu\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c11\c12
Source: O:\hl2\steamapps\common half-life 2 episode two english\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c11\c13
Source: O:\hl2\steamapps\common half-life 2 episode two russian\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c11\c14
Source: O:\hl2\steamapps\common portal\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension onlyifdoesntexist; Components: g0\c15
Source: O:\hl2\steamapps\common portal english + russian menu\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c15\c16
Source: O:\hl2\steamapps\common portal english\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c15\c17
Source: O:\hl2\steamapps\common portal russian\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c15\c18
Source: O:\hl2\steamapps\half-life 2_russian.gcf; DestDir: {app}; Components: g0\c1\c4 g0\c11\c14 g0\c7\c10; Flags: onlyifdoesntexist
Source: O:\hl2\steamapps\portal content.gcf; DestDir: {app}; Components: g0\c15; Flags: onlyifdoesntexist
Source: O:\hl2\steamapps\portal english.gcf; DestDir: {app}; Components: g0\c15\c17 g0\c15\c16; Flags: onlyifdoesntexist
Source: O:\hl2\steamapps\portal russian.gcf; DestDir: {app}; Components: g0\c15\c18; Flags: onlyifdoesntexist
Source: O:\hl2\steamapps\source 2007 binaries 2.gcf; DestDir: {app}; Components: g0\c1 g0\c15 g0\c11 g0\c7; Flags: onlyifdoesntexist
Source: O:\hl2\steamapps\source 2007 shared materials.gcf; DestDir: {app}; Components: g0\c1 g0\c15 g0\c11 g0\c7; Flags: onlyifdoesntexist
Source: O:\hl2\steamapps\source 2007 shared models.gcf; DestDir: {app}; Components: g0\c1 g0\c15 g0\c11 g0\c7; Flags: onlyifdoesntexist
Source: O:\hl2\steamapps\source 2007 shared sounds.gcf; DestDir: {app}; Components: g0\c1 g0\c15 g0\c11 g0\c7; Flags: onlyifdoesntexist
Source: O:\hl2\steamapps\source materials.gcf; DestDir: {app}; Components: g0\c1 g0\c15 g0\c11 g0\c7; Flags: onlyifdoesntexist
Source: O:\hl2\steamapps\source models.gcf; DestDir: {app}; Components: g0\c1 g0\c15 g0\c11 g0\c7; Flags: onlyifdoesntexist
Source: O:\hl2\steamapps\source sounds.gcf; DestDir: {app}; Components: g0\c1 g0\c15 g0\c11 g0\c7; Flags: onlyifdoesntexist
Source: O:\hl2\steamapps\episode 1 shared.gcf; DestDir: {app}; Components: g0\c7 g0\c11; Flags: onlyifdoesntexist
Source: O:\hl2\steamapps\episodic 2007 shared.gcf; DestDir: {app}; Components: g0\c11 g0\c7; Flags: onlyifdoesntexist
Source: O:\hl2\steamapps\half-life 2 episode one russian.gcf; DestDir: {app}; Components: g0\c7\c10 g0\c11\c14; Flags: onlyifdoesntexist
Source: O:\hl2\steamapps\half-life 2 episode two english.gcf; DestDir: {app}; Components: g0\c11\c13 g0\c11\c12; Flags: onlyifdoesntexist
Source: O:\hl2\steamapps\half-life 2 episode two russian.gcf; DestDir: {app}; Components: g0\c11\c14; Flags: onlyifdoesntexist
Source: O:\hl2\steamapps\common half-life 2 aurora borealis particle effects(optional)\common half-life 2 aurora borealis particle effects(optional).exe; DestDir: {tmp}; Components: g0\c1\c6; Flags: deleteafterinstall

[Icons]
Name: {group}\Half-Life 2; Filename: {app}\common\half-life 2\hl2.exe; WorkingDir: {app}\common\half-life 2; Parameters: -steam -game hl2 -appid 220; Components: g0\c1; IconFilename: {app}\common\half-life 2\hl2.ico
Name: {userdesktop}\Half-Life 2; Filename: {app}\common\half-life 2\hl2.exe; WorkingDir: {app}\common\half-life 2; Tasks: desktopicon; Parameters: -steam -game hl2 -appid 220; Components: g0\c1; IconFilename: {app}\common\half-life 2\hl2.ico
Name: {group}\Half-Life 2 Episode One; Filename: {app}\common\half-life 2 episode one\hl2.exe; WorkingDir: {app}\common\half-life 2 episode one; Parameters: -steam -game episodic -appid 380; Components: g0\c7; IconFilename: {app}\common\half-life 2 episode one\hl2.ico
Name: {userdesktop}\Half-Life 2 Episode One; Filename: {app}\common\half-life 2 episode one\hl2.exe; WorkingDir: {app}\common\half-life 2 episode one; Tasks: desktopicon; Parameters: -steam -game episodic -appid 380; Components: g0\c7; IconFilename: {app}\common\half-life 2 episode one\hl2.ico
Name: {group}\Half-Life 2 Episode Two; Filename: {app}\common\half-life 2 episode two\hl2.exe; WorkingDir: {app}\common\half-life 2 episode two; Parameters: -steam -game ep2 -appid 420; Components: g0\c11; IconFilename: {app}\common\half-life 2 episode two\hl2.ico
Name: {userdesktop}\Half-Life 2 Episode Two; Filename: {app}\common\half-life 2 episode two\hl2.exe; WorkingDir: {app}\common\half-life 2 episode two; Tasks: desktopicon; Parameters: -steam -game ep2 -appid 420; Components: g0\c11; IconFilename: {app}\common\half-life 2 episode two\hl2.ico
Name: {group}\Portal; Filename: {app}\common\portal\hl2.exe; WorkingDir: {app}\common\portal; Parameters: -steam -game portal -appid 400; Components: g0\c15; IconFilename: {app}\common\portal\portal.ico
Name: {userdesktop}\Portal; Filename: {app}\common\portal\hl2.exe; WorkingDir: {app}\common\portal; Tasks: desktopicon; Parameters: -steam -game portal -appid 400; Components: g0\c15; IconFilename: {app}\common\portal\portal.ico
Name: {group}\{cm:UninstallProgram,source engine 15}; Filename: {uninstallexe}

[Run]
Description: {cm:LaunchProgram, Half-Life 2}; Filename: {app}\common\half-life 2\hl2.exe; WorkingDir: {app}\common\half-life 2; Parameters: -steam -game hl2 -appid 220; Flags: nowait postinstall skipifsilent unchecked; Components: g0\c1
Description: {cm:LaunchProgram, Half-Life 2 Episode One}; Filename: {app}\common\half-life 2 episode one\hl2.exe; WorkingDir: {app}\common\half-life 2 episode one; Parameters: -steam -game episodic -appid 380; Flags: nowait postinstall skipifsilent unchecked; Components: g0\c7
Description: {cm:LaunchProgram, Half-Life 2 Episode Two}; Filename: {app}\common\half-life 2 episode two\hl2.exe; WorkingDir: {app}\common\half-life 2 episode two; Parameters: -steam -game ep2 -appid 420; Flags: nowait postinstall skipifsilent unchecked; Components: g0\c11
Description: {cm:LaunchProgram, Portal}; Filename: {app}\common\portal\hl2.exe; WorkingDir: {app}\common\portal; Parameters: -steam -game portal -appid 400; Flags: nowait postinstall skipifsilent unchecked; Components: g0\c15
Filename: {src}\half-life 2 update.exe; WorkingDir: {app}; Parameters: -x -y -s2 -d.; StatusMsg: Èäåò îáíîâëåíèå Half-Life 2...; Flags: runasoriginaluser skipifdoesntexist runhidden; Components: g0\c1
Filename: {src}\half-life 2 episode one update.exe; WorkingDir: {app}; Parameters: -x -y -s2 -d.; StatusMsg: Èäåò îáíîâëåíèå Half-Life 2 Episode One...; Flags: runasoriginaluser skipifdoesntexist runhidden; Components: g0\c7
Filename: {src}\half-life 2 episode two update.exe; WorkingDir: {app}; Parameters: -x -y -s2 -d.; StatusMsg: Èäåò îáíîâëåíèå Half-Life 2 Episode Two...; Flags: runasoriginaluser skipifdoesntexist runhidden; Components: g0\c11
Filename: {src}\portal update.exe; WorkingDir: {app}; Parameters: -x -y -s2 -d.; StatusMsg: Èäåò îáíîâëåíèå Portal...; Flags: runasoriginaluser skipifdoesntexist runhidden; Components: g0\c15
Filename: {tmp}\common half-life 2 aurora borealis particle effects(optional).exe; WorkingDir: {app}; Parameters: -x -y -s2 -d.; StatusMsg: ñåâåðíîå ñèÿíèå; Flags: runasoriginaluser skipifdoesntexist runhidden; Components: g0\c1\c6


[UninstallDelete]
Type: files; Name: {app}

[Messages]
WizardSelectDir=
SelectDirDesc=
WizardReady=
ReadyLabel1=
InstallingLabel=
WizardInstalling=
FinishedHeadingLabel=
SelectComponentsDesc=
WizardSelectComponents=
WizardSelectProgramGroup=
SelectStartMenuFolderDesc=
WizardReady=
WizardInstalling=
InstallingLabel=
WizardSelectTasks=
SelectTasksDesc=
WelcomeLabel2=
MrLOLs писал(а): Может кто знает, как узнать все необходимые файлы, которые нужны для полноценной сборки.
а необходимые файлы ты можешь посмотреть в CF Toolbox
пример
Изображение
в настройках галку на Install поставь
Последний раз редактировалось wowks 24.07.2011, 20:09, всего редактировалось 1 раз.

Аватара пользователя
MrLOLs
Нович0к
Нович0к
Сообщения: 12
Зарегистрирован: 02.08.2010
Откуда: Кривой Рог

#4 Сообщение 24.07.2011, 19:43

Вай, у меня во вкладке Install пусто и в строке Account тоже.
Мб нужно зайти под своим аккаунтом, а не с фейкового.

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#5 Сообщение 25.07.2011, 00:46

Не смотри ты на эти lst, распаковывай все gcf полностью

SAS123
Лейтенант
Лейтенант
Сообщения: 143
Зарегистрирован: 02.01.2006
Благодарил (а): 3 раза
Поблагодарили: 4 раза
Контактная информация:

#6 Сообщение 25.07.2011, 02:13

MrLOLs писал(а):..Может кто знает, как узнать все необходимые файлы, которые нужны для полноценной сборки.
Качаете ClientRegistry Toolkit, из папки клиента стим копируем файл ClientRegistry.blob, открываете его в ClientRegistry Toolkit, удаляете все кроме:
/TopKey/ContentDescriptionRecord
кликаете два раза на ContentDescriptionRecord и выбираете Application, крутим ползунок до Filesystem и смотрим какой кеш использует данная игра/инструмент.
В третьем сообщении этой темы описано как сделать пиратку с минимальным размером, только это вряд ли кому то нужно, после того как valve сама убрала лишние с gcf-кеша, если эти файлы не используются, пример тот же css: source materials.gcf скачивается только до 24%, если раньше gcf-пиратка css весили больше 2,2 ГБ, то сейчас 1,8 ГБ, при одинаковом методе сжатия.

Ответить