Вступление.
Сегодня решил написать подробную статью об установке и настройке слушающего сервера игры Team Fortress 2. Итак, чем же отличается слушающий сервер игры от выделенного (Team Fortress 2 Dedicated Server):
- Слушающий сервер не требует особой настройки и установки модификаций.
- Слушающий сервер позволяет одновременно хостить личный сервер и играть в игру. Выделенный сервер не позволяет играть на этом же компьютере (если всё-таки запустить игру и подключиться к такому серверу, у всех появятся серьёзные лаги, т.к. создаётся дисбаланс между сервером и клиентов при обращении к CPU (процессору)).
- Слушающий сервер — это практически тот же Dedicated Server, но имеющий следующие недостатки (хотя достоинств больше):
- Администратором является только тот, кто создал сервер. Управление осуществляется через консоль управления сервером (консоль игры, вызывается клавишей «тильда»; нужно включить консоль управления в настройках клавиатуры игры).
- Если администратор (создатель) отключится от сервера, то все клиенты, подключившиеся к нему, будут кикнуты автоматически. Сервер будет остановлен.
- Включена принудительная проверка учётных записей Steam, т.е. с пираток на такой сервер зайти не удастся.
- На слушающий сервер нельзя установить SourceMod и другие админ-плагины.
- Слушающий сервер запускается прямо из главного меню игры (там же указывается максимальное число игроков).
- Все настройки такого сервера хранятся в файле listenserver.cfg.
Техническая часть.
- Чтобы к Вам могли подключаться клиенты, Вы должны иметь «белый» IP-адрес, т.е. видимый из Интернета. Создание сервера с «серым» IP, либо с жёстким NAT’ом провайдера не имеет смысла, т.к. подключиться к такому серверу никто не сможет.
- Сервер запускается на порту 27015, поэтому если у Вас ADSL, вы должны пробросить этот порт по протоколу UDP в настройках своего роутера (модема).
- На сервере главное — скорость отдачи от Вас клиентам, а также мощность процессора Вашего компьютера. На ADSL максимальная отдача может составлять около 780 Кбит/с — 1 МБит/с (на ADSL с модуляцией AnnexM (такая разновидность встречается крайне редко) — 3 Мбит/с). Если у Вас тариф на 256 КБит/с, то к Вам могут подключиться 6 клиентов. Если 512 — 10-12 клиентов, если 1 Мбит и более (ADSL) — 18 клиентов, кабель без NAT — 23 клиента (максимум для слушающего сервера). В соотвествие с этими параметрами Вы должны настроить значение переменной «Максимальное число игроков» во время создания сервера. Если Ваш канал или процессор не будут выдерживать такое количество подключившихся игроков, у всех появятся лаги.
Настройка и подготовка к запуску.
- Устанавливаем Steam и игру Team Fortress 2 (если они ещё не установлены).
- Запускаем игру, ждём полной загрузки и выходим из неё (это нужно только если выполнялся шаг 1 для создания файлов базовой конфигурации).
- Открываем «Мой компьютер» и переходим в папку «C:\Program Files\Steam\SteamApps\common\team fortress 2\tf\cfg«, где C:\Program Files\Steam\ — путь куда установлен Steam. Если Steam установлен в другую папку или диск, то его нужно откорректировать. В этой папке лежат файлы настроек игры TF2, в том числе и слушающего сервера.
- Качаем и распаковываем архив с файлами конфигурации в эту папку с заменой существующих файлов. Архив обновляется после выхода серьёзных изменений в игре.
- Открываем распакованный файл listenserver.cfg в любом текстовом редакторе (например, в Блокноте Windows) и делаем нужные настройки (меняем имя сервера, настройки и т.п.). В файле я всё подробно описал какая переменная чем управляет, что включает/выключает, поэтому на этом я останавливаться не буду здесь. Внимание! Первым делом задайте пароли вместо !!PASSWORD1!! и !!PASSWORD2!!, иначе Ваш сервер могут взломать.
- Открываем файл config_arena.cfg в том же текстовом редакторе и меняем имя сервера для режима Арена, а также максимальное число пользователей режима Арена.
- Запускаем игру Team Fortress 2, выбираем в главном меню пункт «Создать сервер«. В окрывшемся окне выбираем любую установленную карту, а затем переходим на страницу «Игра» и устанавливаем «Максимальное число игроков» (должно быть целым числом от 2 до 24). Остальные параметры не будут играть никакого значения, т.к. игнорируются файлом конфигурации. Внимание! Не устанавливайте тут пароль, иначе к Вам никто не сможет подключиться. Пароль можно установить уже после запуска игры и подключения первых игроков командой в консоли sv_password «your_pass», где вместо your_pass должна идти комбинация латинских букв и цифр. Этот пароль будет запрашиваться у всех, кто захочет подключиться к серверу.
- После успешного запуска сервера и Вашего подключения к нему, открываем консоль разработки (вызывается клавишей «тильда») и сразу меняем карту на любую из установленных (лучше на текущую, т.к. это ускорит перезагрузку сервера) командой changelevel имя_карты (например, changelevel cp_dustbowl). Это действие применит настройки файла listenserver.cfg. Без этого шага к Вам никто не сможет подключиться (на клиентах будет выдаваться сообщение LAN servers are restricted to local clients). Этот шаг нужно повторять всегда после запуска слушающего сервера!
- Даём свой внешний IP-адрес всем, кто должен к Вам подключиться и они смогут это сделать, набрав у себя в консоли TF2 команду connect IP_вашего_сервера:27015 (например, connect 126.65.110.99:27015). Свой внешний адрес можно узнать тут: http://www.2ip.ru (он определится в строке «Ваш IP-адрес«).
- Если к Вашему серверу кто-нибудь подключился, значит он успешно установлен и настроен. Чтобы отключить сервер, достаточно войти в меню игры TF2 и выбрать пункт «Отключиться«. После этого сервер кикнет всех, кто на нём играл и закончит свою работу.
Переменные, которые можно задавать прямо во время игры.
- sv_alltalk 1 — включение (1) или отключение (0) общего голосового чата.
- tf_weapon_criticals 1 — включение (1) или отключение (0) критов.
- mp_allowspectators 1 — включение (1) или выключение (0) зрителей.
- sv_password «your_pass» — задание пароля, где вместо your_pass должен идти пароль. Кавычки обязательны. Пароль будет запрошен у всех, кто захочет подключиться к Вашему серверу.
- sv_password «» — убирает пароль с сервера. К серверу может подключиться любой желающий.
- mp_friendlyfire 1 — включает (1) или отключает (0) огонь по своим.
- sv_gravity 800 — управляет гравитацией на сервере (800 — стандартное значение), может быть числом от 0 до 10000. Чем меньше значение, тем меньше гравитация.
Внимание! При смене карты все переменные, заданные во время игры, будут автоматически заменены значениями из файла конфигурации сервера!
Итак, Ваш сервер установлен и правильно настроен. Если у Вас возникнут вопросы по статье, то оставляйте комментарии к этому сообщению. Я отвечу на все вопросы. Для того, чтобы оставить свой комментарий, регистрация не требуется.
У всех друзей пишет сервер не отвечает. Стоял и касперский с антихакером и Firewall. Везде добавлял порт 27015 UDP в доверенные зоны. Пробовал вообще все отключать. Все равно не отвечает.
@FORTEx
Нужен белый IP-адрес. Убедитесь, что у Вас белый IP. Как я уже писал в статье, с серым IP сервер работать не будет!
Если у Вас ADSL, то нужно пробросить порт 27015 в настройках модема (роутера) по протоколу UDP.
Также друзья должны подключаться к Вам не через список Друзей Steam, а через консольную команду connect ВАШ_ВНЕШНИЙ_IP. Внешний IP можно узнать на http://www.2ip.ru.
Привет! Парни, есть вопросы по UDP.
@Steelzork
В настройках роутера нужно пробросить порт по UDP. Обычно проброс находится в NAT — Virtual Servers или NAT — Port Forward веб-интерфейса модема. Там нужно создать новое правило: порт 27015, IP — компьютера внутри ЛВС и протокол — UDP. Существует замечательный сайт на эту тему: http://portforward.com/ (только на английском языке) — там нужно выбрать модель модема (роутера), указать порт и получить подробную инструкцию по пробросу.
P.S. В роутерах (модемах) ZyXEL потребуется ещё открыть этот порт во встроенном Firewall, либо отключить Firewall вообще.
У меня игра на changelevel вылетает. Что делать?
@Egornn
К сожалению, в одном из сентябрьских обновлений Valve что-то сломали в движке игры и она стала вылетать при использовании команды changelevel у большинства игроков. Попробуйте команду changelevel2 имя_карты.
У меня вопрос: как на простом dedicated сервере управлять ботами? через server.cfg их можно только создать, но в игре tf_bot_*** не работает. Как то надо разрешить вводить эти команды серверу через клиент (я хоть и админ, но тоже клиент 🙁 )
Как это сделать?
@Dushess
Установите на сервер Metamod: Source + SourceMod, выдайте себе права администратора, затем управляйте любыми переменными добавляя к ним sm_rcon, например, sm_rcon tf_bot_add.
А если у меня не белый IP ,то я смогу создать? Или можно только с белым IP?
@artem
Создать-то можно, но никто не подключится, т.к. для входа клиентов из внешки необходим белый внешний IP-адрес.
Как сделать другого пользователя администратором? Или это не возможно?
@artem
На слушающем сервере, который запускается из клиента, невозможно.
Спасибо!
Привет. У тебя есть статьи о том, как сделать выделенный сервер ТФ2?