Сам файл
расположен в папке игры "Day of Defeat Source" и является в
действительности обычным тектовым файлом, который можно редактировать
например во встроенном текстовом редакторе Windows - WordPad (NotePad -
блокнот - для этого не годится, он не поддерживает расширенную
кодировку).
Как правило его можно найти по следующему пути:
<Диск>:\Program
Files\Steam\steamapps\<Имя>\day of defeat
source\dod\cfg\config.cfgПричем вместо
"<Диск>" нужно подставить имя системного логического
диска (как правило "C"), а вместо "<Имя>" - ник при
регистрации в стиме (например "VasjaOfDeath"). Можно для уверенности
проделать следующую операцию: в настройках игры поменять например
значение клавиши "Использовать предмет" на клавишу ввода ("Enter"),
затем выйти из игры, найти предполагаемый конфиг и открыть его с
помощью WordPad. Среди прочего в списке обнаружится строка
bind "ENTER" "+use"
В данном
случае bind - это консольная команда, привязывающая к клавише "Enter"
игровую команду "+use".
Как правило все конфигурационные файлы
состоят из таких вот наборов команд, исполняемых каждый раз при старте
игры. Все команды построены по примерно одинаковому
принципу:
команда параметр1 параметр2 ..
параметрN
В нашем примере у команды два параметра,
но их может быть и больше и меньше (а может и вообще не быть).
Параметры разделены пробелом и как правило заключены в кавычки (этого
зачастую можно и не делать, но для надежности кавычки лучше ставить
всегда).
2. Консоль
Теперь
поговорим об оболочке, в которой исполняются команды. Обычно вся работа
движка Source скрыта от пользователей, как и в любой системе, но для
продвинутых есть возможность прямого доступа к системе выполнения
команд, а именно - командная консоль. По сути это просто дополнительное
окно, в котором как в чате есть строка редактора и история сообщений (в
данном случае
системных). По умолчанию консоль не активирована, поэтому для начала
нужно в настройках клавиатуры вызвать панель "Дополнительно" и
поставить галочку напротив "Включить консоль
разработки".
Активация консоли в настройках
клавиатуры
После этого
обычно c нажатием тильды (клавиша "~" или попросту "ё" ) открывается
командная консоль. На некоторых клавиатурах с нестандартной раскладкой
может потребоваться вмешательство в конфиг. На немецкой клавиатуре,
например, тильда находится совсем в другом месте и вызывается сложной
комбинацией клавиш. В этом случае необходимо прописать в конфиг
команду
bind "\" "toggleconsole"В
сложных случаях можно все равно заставить консоль открыться вместе со
стартом игры, дописав в ярлык DoDS к строке с путем к файлу "Steam.exe"
параметр "-console". Выглядеть это будет примерно
так:
<Диск>:\Program
Files\Steam\Steam.exe -applaunch 300
-console
Кстати, начальная активация консоли
возможна также командой
con_enable "1"Добившись открытия
консоли, попробуйте для
начала ввести в командную строку уже известную команду bind - с
нажатием первых же клавиш появляется меню подсказки (очень удобно если
не помнишь в точности правильное написание).
Внешний вид командной консоли в
DoDS
Введите до конца команду (вернем
клавише ее исконное значение)
bind "e"
"+use"После выхода из игры,
эта запись добавится в файл "config.cfg", но.. о, ужас!
bind
"ENTER" "+use" тоже все еще там! То есть теперь у нас есть
две клавиши, ответственных за использование предметов. Конечно, никакой
особой проблемы в этом нет и клавишу ввода можно легко "перебиндить" на
что-либо другое, удалить из конфига или "разбиндить" в
консоли:
unbind "ENTER"И нет
проблем. Пример этот здесь был нужен только как предупреждение: движок
игры пытается "запомнить" все, что так или иначе попадает в командную
строку (другое дело, что не все он может запомнить, но об этом позже),
поэтому перед началом серьезных экспериментов с конфигурационными
файлами и консолью, стоит скопировать свой рабочий конфиг в отдельную
папку, либо в ту же папку "cfg", но с другим именем, например
"config.cfg.old". Конечно, достаточно удалить "кривой" файл и система
создаст при старте новый, с настройками по умолчанию, но тогда придется
заново возиться с выбором всех настроек. А так - переписал файл из
старого и продолжай
эксперименты.
3. Команды и
переменные
Команда bind конечно чудо как хороша, но толку от
нее для улучшения игровых параметров конечно - маловато будет, скажет
нетерпеливый игрок. До поры до времени это конечно так, но ведь мы еще
не добрались до скриптов... Хотя один полезный игровой аспект все же
придумать можно:
bind "ENTER" "say sorry, i'm noob in
this game!"Очень полезно, особенно после того как
завалишь одной гранатой двух-трех игроков своей команды :) ("say"
выводит все послестоящее в общий чат игры, можно заменить на
"say_team", чтобы написать в чат своей команды).
Но
все же займемся более насущным, а именно: какие же команды заставляют
игру "летать"? К ним относятся особый род команд, изменяющих содержимое
системных переменных. Системные или по-другому, консольные переменные
хранят глобальные настройки игры. Они всегда содержат только один
параметр и этот параметр и становится значением переменной.
Переменные
различают по специфическим приставкам, называемым префиксами,
определяющими область применения команд. Наиболее распространенные
системные переменные начинаются следующими
префиксами:
cl_ - client -
многопользовательский клиент
mat_ -
material - материальная подсистема
net_ -
networking - подключение к сети
phys_ -
physics - физика
r_ - renderer -
прорисовка видеоизображения
sv_ - server -
настройки
сервера
Хорошим примером использования консольных
переменных может служить например очень полезная команда
"cl_downloadfilter".
Если вы часто скитаетесь по малознакомым
серверам, то наверняка сталкивались с проблемой закачки ненужных
файлов, начиная с безобидных (то есть маловесящих) звуковых эффектов и
заканчивая полновесными мегабайтными саундтреками. Втречаются
сумасшедшие админы, пытающиеся подчас запихнуть на сервер целый
хит-парад. И хуже всего то, что подключаясь на такие сервера ради
любимой карты со стандартными настройками, приходится весь этот хлам
качать, так что подключившись, поиграть уже и не успеваешь. Для борьбы
с такого рода "спамом" можно прописать в конфиг следующую
строку:
cl_downloadfilter
"nosounds"Эта команда блокирует закачку всех
дополнительных звуков, что позволяет сэкономить кучу
времени (к сожалению эта команда срабатывает не для всех серверов - люди, настраивающие сервера, знают о командах и переменных как правило намного больше чем пользователи).
Кроме того существует еще одна более радикальная
версия:
cl_downloadfilter "none"В
этом случае не будут подгружаться вообще никакие файлы, в том числе
правда и новые карты.
Чтобы вернуться к стандартному значению
(разрешать загрузку файлов с сервера), пишем
следующее:
cl_downloadfilter
"all"
Однако тут же возникает вопрос: как
сделать чтобы когда нужно ставился фильтр звуков, или даже полностью
запрет на закачку, а когда не нужно чтобы можно было возвращаться к
стандартным настройкам? Неужели каждый раз лазить в конфиг и при этом
мучительно вспоминать как же там правильно пишется название
параметра?
Можно конечно записать все три параметра в конфиг и
деактивировать два из них, поставив перед каждой строкой символы
комментария "//". Выглядеть это будет примерно
так:
cl_downloadfilter
"nosounds"
//cl_downloadfilter
"none"
//cl_downloadfilter
"all"Этот вариант хорош только удобством редактирования, но игру нужно каждый раз запускатъ заново. Как динамическую альтернативу, при частой смене настроек, можно предложить использование консольной команды "exec". С ее помощью можно подгружать собственные конфигурационные файлы пользователя. Тогда в файле config.cfg остаются только закоментированные значения (чтобы не забыть), а действующие настройки выносятся в отдельные файлы.
Для блокирования загрузки звуков создадим к примеру текстовый файл "nosounds.txt", и пропишем в него уже знакомое:
cl_downloadfilter "nosounds"После сохранения файла в извесную уже нам папку cfg (где лежит и конфиг), необходимо поменять его расширение, так чтобы он назывался "nosounds.cfg". Пользовательский миниконфиг готов. Аналогично создаем файл "sounds.cfg", в который заносим команду со значением по умолчанию "all". Теперь во время игры вызываем консоль и пишем:
exec nosoundsВсе - фильтр включен. Чтобы снова разрешить загрузку выполняем
exec soundsКонечно, создавать отдельные файлы для одной-единственной команды - это перебор, быстрее и проще выполнить ее напрямую из консоли, но на этом примере мы видим, что конфигов может быть и не один и что при необходимости настройки можно изменять прямо во время игры, одной командой.
Подведем итог. Итак, мы
получили представление о том что такое конфиг, зачем нужна консоль и
как задавать команды и переменные. Кстати говоря, полный список команд можно всегда
найти на
сайте
сообщества разработчиков Valve. Справочник этот, правда, на английском
и к
большинству команд (а их там тысячи) даже и описания никакого нет, но
великая правда состоит в том, что для эффективного вмешательства в
настройки игры достаточно использовать не более 50 из них, а знать для
повседневного использования нужно и того меньше - штук 10. Главный
вопрос тут в том, чего
именно хочется добиться или даже скорее, что нужно
исправить?
Этими вопросами мы и займемся в
последующих статьях. Во
второй части будут рассмотрены команды, помогающие при проблемах с
железом.