Counter-Strike 1.6
Вход
Делаем патчи сами!
Taraizer — 18 Январь, 2009 - 14:04
Делаем клиента/патчи сами
Введение.
Купить любимую игру через стим или скачать ее с помощью бесплатного заменителя стима легко и просто. Но заставить это сделать товарищей, с которыми хочется пострелять в мультиплеер - намного сложнее. Это руководство для тех, кто имеет сервер, отученный от стима и имеет желание делать клиента и патчи сам. Тогда некого будет винить в упущенных текстурах и пр.
Инструментарий.
Для работы будут необходимы следующие программы/утилиты:
1) Программа для скачивания GCF файлов со стима. Выбор на сегодняшний день широк. Если у вас нет официально купленной и постоянно обновляемой через стим игры, то можно пользоваться ppatcher, SteamDown и пр. Разъяснения, как их пользовать и где взять, есть на форумах RIN.RU.
2) Программа для распаковки GCF файлов GCFScape. Берется с официального сайта Nem's Tools. На сегодняшний день последняя версия 1.29. Сразу оговорюсь, что для работы с GCFScape необходимо установить на Win пакет Microsoft .NET Framework.
3) Программа для сравнения файлов. Я использую Total Commander 6.03.
4) Желательно иметь также установленный FAR для работы в DOS оболочке, за неимением можно пользоваться CMD через Пуск/Выполнить.
Работа с GCF файлами.
1) Запускаем стим (его заменитель) и скачиваем необходимые игры. После этого в вашей директории [STEAM PATH]/ SteamApps/ вы найдете файлы формата *.gcf. Это и есть части запакованной игры из которых и будет сделан клиент.
2) Выходим со стима (GCFScape не желает работать с включенным стим-клиентом) и запускаем GCFScape.
3) В GCFScape делаем File/Open и открываем нужный нам GCF файл. В GCFScape открывается содержание файла с корневой директорией root. Щелкаем на root правой клавишей мыши и выбираем Extract и путь куда будем извлекать содержимое. Для примера будем использовать путь C:\GCF\. После извлечения содержимого у вас появится C:\GCF\root\*.*. Переименуем теперь root в название файла *.gcf, который распаковывали. Например, распаковывали counter-strike.gcf, значит обзываем директорию C:\GCF\counter-strike. Так, поочередно, извлекаем содержимое всех нужных GCF.
Изготовление клиента.
Для рабочего клиента требуется лишь слить в кучу содержимое нужных GCF и сделать ярлык на рабочем столе. Есить свои ньюансы для модоd HL1 и HL2, поэтому рассмотрим их отдельно.
I. Клиент модов Half-Life 1.
1) Клиент Half-Life
1. Заливаем в одну директорию, например C:\HL1\ распакованные GCF из C:\GCF\:
- half-life
- half-life engine
- и содержимое platform вместе с папкой platform, т.е. должно получиться C:\HL1\ platform\ (это правило для всех модов HL1)
- если вы собираетесь делать выделенный сервер из этой сборки, то добавьте и содержимое dedicated server (для просто клиента в этом нет необходимости).
Запускаем (делаем ярлык) просто C:\HL1\hl.exe -console. При появлении в игре надписей, типа добавляем в C:\HL1\valve\autoexec.cfg параметры
ai_disable 0
ai_reloadresponsesystems
ai_norebuildgraph "1"
и играем спокойно дальше.
2) Клиент Counter-Strike.
Необходимые GCF:
- все как и в HL1, только добавляем содержимое counter-strike
Можно облегчить клиента, убрав из C:\HL1\valve\ папку /maps, да и многое другое для CS ненужно, но учитывая небольшое, по нынешним меркам, занимаемое ими место, то затраты времени на отбор нужного/ненужного из папки /valve слишком большие.
Запускаем (делаем ярлык) C:\HL1\hl.exe -game cstrike -console
3) Клиент Counter-Strike Condition Zero. Не зря в названии присутствует Counter-Strike. Condition Zero активно использует содержимое папки /cstrike, поэтому чтобы не добавлять себе лишних забот с отбором нужных моделей/звуков и пр. просто добавляем к клиенту Counter-Strike содержимое C:\GCF\condition zero.
Запускаем (делаем ярлык) C:\HL1\hl.exe -game czero -console
4) Аналогично делаем клиентов для DOD, Condition Zero Deleted Scenes и пр. Иконки для ярлыка мода игры находим в их папках. Так, иконка для Counter-Strike Condition Zero находится C:\HL1\czero\czero.ico, для Counter-Strike C:\HL1\cstrike\cstrike.ico
II.Клиент модов Half-Life 2.
1)Клиент Half-Life 2.
Заливаем в одну директорию, например C:\HL2\ следующие распакованные GCF из C:\GCF\:
- source engine
- half-life 2 content
- half-life 2_russian
- source materials
- source models
- source sounds
Берем steam.dll со SteamEmu, заливаем в C:\HL2\bin\ , в корне C:\HL2\ делаем файлик steamemu.ini с содержанием:
[HL2.EXE_HL2MP]
и запускаем (делаем ярлык) клиента C:\HL2\hl2.exe -console
Аналогично HL1 при появлении , добавляем в C:\HL2\hl2\cfg\autoexec.cfg параметры
ai_disable 0
ai_reloadresponsesystems
ai_norebuildgraph "1"
Для перевода клиента в русский режим, с помощью Пуск\Выполнить REGEDIT
Меняем параметр
HKEY_CURRENT_USER\Software\Valve\Steam\"Language" на "russian"
2)Клиент Counter-Strike: Source. Тут есть 2 способа - простой и быстрый, без головных болей, и более сложный с отбором всех необходимых моделей/звуков/материалов. Простой способ, занимающий много места, но дающий уверенность в том, что у вас всегда будут все модели/звуки/материалы. Плюс в том, что, зайдя на сервер с картой, выпущенной не стимом вы будете уверены, что у вас присутствуют все текстуры, минус - слишком много лишнего. Так, занимаемое место полных materials/models/sounds 2'488'975'360 байт, специально отобранных для карт, выпущенных стимом 407'126'016 байт. 2 Гб - немало, поэтому решать вам, какой способ вы изберете.
A)Простой способ.
Все аналогично клиенту HL2, только берем нужные распакованные GCF из C:\GCF\: в, например, C:\CSS\ и содержание steamemu.ini будет
[HL2.EXE_CSTRIKE]
Необходимые GCF:
-source engine
-counter-strike source_russian
-counter-strike source client
-source materials
-source models
-source sounds
Запускаем (делаем ярлык) клиента C:\CSS\hl2.exe -game cstrike -console. Иконку для ярлыка находим C:\CSS\cstrike\resourse\game.ico или добавляем специально для CSS иконку из platform.gcf \platform\Steam\games\Counter-Strike Source.ico.
B)Сложный способ.
- Все аналогично простому, только опускаем заливку source materials, source models, source sounds.
- Для отбора нужных моделей/звуков/материалов делаем программку, назовем ее rescopy.cmd, следующего содержания:
for /F %%i in (%1) do md "new_place%%~pi"
for /F %%i in (%1) do copy "%%~i" "new_place%%~pi\%%~ni.*"
- заливаем в одно место содержимое source materials, source models, source sounds, к примеру в C:\MMS\. Сюда же кладем наш rescopy.cmd, все файлы *.lst из C:\CSS\reslists\ (из подкаталогов тоже!), заодно и файлы *.manifest из С:\CSS\cstrike\maps\soundcache\
- Запускаем FAR (cmd) и отбираем нужные файлы по каждому реслисту и манифесту, например, rescopy.cmd cs_assault.lst. Кто может усовершенствовать rescopy.cmd, что бы она отбирала сразу по всем реслистам - удачи, в этой редакции запускать придется на каждый реслист/манифест в отдельности.
- в результате мы получим новую папку C:\MMS\new_place\. Нужные нам файлы из директории C:\MMS\new_place\MMS\ копируем в C:\CSS\hl2\. Таким образом получим в C:\CSS\hl2\ подкаталоги C:\CSS\hl2\materials\, C:\CSS\hl2\models\, C:\CSS\hl2\sounds\.
- Последний штрих - доработка упущенных в реслистах файлов. Зпускаем сделанного клиента, в консоли пишем developer 1 и создаем игру на отрабатываемой карте. Когда игра создалась, заглядываем в консоль и просматриваем ее на предмет красных строк. К примеру красная строка в консоли "materials/environment maps/d1_trainstation_05.vtf": can't be found on disk означает, что вам нужно найти в распакованной GCF source materials этот файл и положить в C:\CSS\hl2\materials\materials\environment maps\. Или же читаем надпись красным
Model models/props_buildings/watertower_001c.mdl not found!
SOLID_VPHYSICS static prop with no vphysics model! (models/props_buildings/watertower_001c.mdl)
и понимаем, что упущена модель в hl2/models/props_buildings/watertower_001c, причем модели состоят из 6 или 7 файлов и включают *.dx80.vtx, *.dx90.vtx, *.jpg, *.mdl, *.phy, *.sw.vtx, *.vvd. В общем, в этом случае, нужно брать все файлы watertower_001c из GCF source models и кидать в hl2/models/props_buildings/
- эту процедуру нужно проделать для каждой карты в отдельности. Так же, клиент работающий на режиме DirectX 9 может потребовать больше материалов/моделей, чем клиент в DirectX 8. Поэтому желательно проверить карту в обоих режимах путем измения mat_dxlevel 80 на mat_dxlevel 90 через консоль и просмотра красных строк. Не переживайте, если у вас в консоли есть красные строки, а в распакованных GCF нет этих файлов. На нет и суда нет, значит VALVe их просто не положила, не посчитав нужным или просто забыла.
3)Клиент HL2 DeathMatch.
Делаем все так же как и в CSS, сложным или простым путем. GCF Для работы:
- source engine
-half-life 2 deathmatch
-source materials
-source models
-source sounds
Содержание steamemu.ini
[HL2.EXE_HL2MP]
Изготовление патчей.
1) Вам нужно иметь распакованные GCF последней версии до обновления стима. К прмеру они у вас хранятся в C:\GCF\;
2) После обновления стима делаем все как указано в разделе <Работа с GCF файлами>, но распаковываем обновленные GCF в C:\GCF\New\. По сути обновления стима, понимаем какие GCF обновились. Так, если обновился Counter-Strike: Source, то ясно что следует распаковать и сравнить со старыми только source engine.gcf, counter-strike source_russian.gcf, counter-strike source client.gcf, counter-strike source shared.gcf, source materials.gcf, source models.gcf, source sounds.gcf, а вот half-life 2 deathmatch.gcf тут не при чем, и с ним не стоит возиться.
3) Имеем распакованные GCF старой версии в C:\GCF\ и новой в C:\GCF\New\. Теперь следует узнать что же там изменилось. Рассмотрим на примере source engine. Открываем Total Commander, на левой панели C:\GCF\source engine\, на правой C:\GCF\New\source engine\. Ищем в Total Commander функцию "Синхронизировать каталоги" (в 6.03а Инструменты/Синхронизировать каталоги). Ставим флажки на "С подкаталогами", "По содержимому", "Игнорировать дату" жмем на кнопки <Справа>, <Не равно>, <Слева> и запускам процесс <Сравнить>.
4) В итоге сравнения получаем список новых и измененных файлов. Выделяем их, с помощью правого клика вызываем менюшку и выбираем <Выделить для копирования справа налево>. Жмем <Синхронизировать> и в открывшемся окне прописываем путь для патча. К примеру, C:\GCF\Patch1506_0607\. Жмем <ОК> и имеем обновленные файлы в каталоге C:\GCF\Patch1506_0607\. Так работаем со всеми обновленными распакованными GCF.
5) После сбора всех обновленных файлов заливаем патч на своего клиента и проверяем работоспособность.
6) В случае, если с обновлением пришла новая карта и у вас клиент, собранный сложным способом то снова работаем с программкой rescopy.cmd и реслистом новой карты. Проверяем упущения VALVe в реслисте с помощью developer 1 и проверяем на mat_dxlevel 80 и mat_dxlevel 90
7) Бывает так (особенно с HL2DM, где реслисты имеют много упущений), что все файлы по реслистам отобраны, но клиент никак не хочет запускаться на новой карте, а выпадает с ошибкой. Тогда, при создании игры дождитесь нескольких делений на процессе запуска и жмите <Отменить>. В консоли в красных строках вы увидите чего ему так не хватает для запуска, что он решил выпасть на рабочий стол.
7) После того как все проверки закончены и обновленный клиент удачно прошел все испытания у вас и ваших товарищей, замените обновившиеся файлы в вашем C:\GCF\, а содержание C:\GCF\New можно убить и ждать следующего обновления стим.
Вот, в общем, и все премудрости. Сделав патчи несколько раз, вы поймете, что все, на самом деле просто и сам процесс занимает не так много времени при определенном опыте и нормальном железе машины.
- Войдите на сайт для отправки комментариев