Пятница, 22.11.2024, 14:13Главная | Регистрация | Вход

Навигатор

Темы

Оружие [23]
Оружие Второй Мировой
Техника [6]
Военная техника времен ВОВ
Игра [6]
DoDS, все об игре: карты, настройки
Турниры [16]
Обзоры матчей российских команд на турнирах и чемпионатах
Другие [11]
Все что не очень относится к теме DoDS, но интересно :)

Поиск

Секретка

Приветствую Вас Гость!

Комментарии

[18.05.2012] [Пацан Здравый]
Материал: О конфигах и скриптах. Часть 1: азы
(есть ответ)
[28.03.2012] [pendalf]
Материал: |*CCCP*|
[15.12.2011] [Артём]
Материал: X-ray Anti-Cheat

Реклама

Список статей
Главная » Статьи » Игра

О конфигах и скриптах. Часть 1: азы
Многие слышали что с правильным "конфигом" игра начинает просто летать, и что "про" игроки играют только на своих компах, потому что там прописаны суперконфиги, и что если поставить "крутой конфиг", то даже "нубы" смогут влет выносить "папок" и так далее и тому подобное... Толпы начинающих игроков бросаются рыться в поисковиках, задавая фразы типа "конфиги для игры в dods". Знающие английский ищут "config dods", жаждущие скилла ищут "конфиги для снайпера dods", а самые продвинутые даже "dods консоль". Многие находят, некоторые даже ухитряются подлючить, но лишь единицы понимают что именно они делают. Результат как правило один - после всех поисков, выспрашиваний на форумах, возни с установкой - разочарованное "ыыы" и переустановка стима :)
Пожалуй, пришло время поговорить о конфигах и скриптах и прояснить эти вопросы. И для начала разберемся, что же это за чудодейственный конфиг и зачем же он нужен.


1. Конфиг

Начать с того, что сленговое слово "конфиг" имеет в обиходе довольно много значений, единственно правильное из которых конечно "конфигурационный файл", то есть файл, хранящий настройки игры. Как правило первое что делает человек в новой для себя игре - пытается найти все функции, разобраться с управлением и настроить его так как ему удобно. И вполне естественно, что он желал бы чтобы все настройки остались неизменными до следующей игры. При этом он совершенно не подозревает о том, что нажимая кнопку ОК и сохраняя настройки, он тем самым изменяет содержимое файла настроек "config.cfg", того самого мистического "конфига".


Окно настроек DoDS, закладка "клавиатура"

Сам файл расположен в папке игры "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. Главный вопрос тут в том, чего именно хочется добиться или даже скорее, что нужно исправить?

Этими вопросами мы и займемся в последующих статьях. Во второй части будут рассмотрены команды, помогающие при проблемах с железом.

Категория: Игра | Добавил: sok (21.04.2008) | Автор: Sok
Просмотров: 21975 | Комментарии: 7
Всего комментариев: 7
25.04.2008
1. Павел (TIREX) [Материал]
ГЫ! Заинтриговать решил? Вообщем то хорошо.
А где практическое продолжение и предложения? Или дальше за Webmoney? biggrin
Ответ: Продолжение уже в работе, ради него собственно все и затевалось, просто показалось нужным сначала основы дать.

26.04.2008
2. Pr@PoR (Pr@PoR) [Материал]
Молодцы. Толково и доходчиво. Особено порадовали скрины. А в принципе в болшенстве все таки поиски конфига, это попытки создать прирост ФПС. Но в принципе это полная иллюзия.
Хочешь много ФПС, покупай новый комп. Конфиги тут не помогут.
Ответ: TIREX: Ну, как сказать... При хорошем железе нет проблем с fps, а коль не тянет?
По себе знаю, процентов на 40-50 удавалось поднимать сей параметр. Если fps около 15-20, это лишним не покажется. Да, и такое бывает часто. :-)
Sok: Кое в чем соглашусь, иллюзия - это то, что все упирается ТОЛЬКО в fps, и когда пытаешься решить проблемы случайно найденным суперконфигом, автор которого и сам толком не знал что там как работает... но об этом - в следующей части biggrin

27.04.2008
3. ALEX [Материал]
Cтатья поверхностная на мой взгляд. Если бы речь касалась настроек доп. конфиг файла, то думаю это было бы полно, но она займет думаю не одну страницу точно.
А так было бы неплохо получить комменты ко всем переменным хотя бы в 2-3 предложения.
Ответ: Читайте внимательно - здесь только начало. Комменты ко ВСЕМ переменным думаю нужны только специалистам, основные же мы дадим...

10.01.2009
4. G!zm0 [Материал]
Понравилось вот это:
"Кстати, начальная активация консоли возможна также командой con_enable "1""
Куда ее вводить то? =)
В целом статья неплохая.
Ответ: в конфиг-файле имеется в виду, но конечно непонятно написано.

01.09.2009
5. LLo4ka [Материал]
Люди подскажите плиз скачал конфиг под снайпу а в нем выключин микрафон и не меняеться....что делать??
Ответ: не ставить то, чего не понимаешь..
скорее всего надо отредактировать следующие команды:
voice_modenable "1"
voice_enable "1"

31.01.2010
6. Джей Ви [Материал]
Конфиги - не плохая вещь!!! Прикольно!!! Я собрал тут чуть-ли не аимбот из биндов и алиасов!!! Но вот ток я не пойму - Почему античиты банят скрипт BurstFire!!! Это же не чит!!!

18.05.2012
7. Пацан Здравый [Материал]
Здравствуйте уважаемый администратор ! Вот у меня проблема, я сделал себе супер навороченный cfg, но вот незадача! Когда я вхожу в новую игру и играю с ботами - всё работает, но когда на какой нибудь сервер - блокирует что то некоторые бинды ! И некоторые скрипты не работают! Хотел бы выяснить в чём причина! Вроде в конфиге написано без ошибок всё!
Ответ: Скорее всего никакой ошибки там нет, просто администраторы серверов блокируют исполнение некоторых потенциально опасных команд или команд как правило сопровождающих сложные скрипты (например wait), пытаясь таким образом избавиться от слишком проскриптованных игроков, повышающих за счет сложных скриптов свой скилл.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Internet Map

Copyright [ironR@Ts] © 2024