Prodvigat server
6 мин чтения 58 просмотров Markdown Source Rendered Raw

Как пустить игроков из браузера на ваш сервер CS 1.6 (ReAuthCheck, ReUnion, HLDS)

Участники counter-strike-boost.com могут заходить на серверы CS 1.6 прямо из браузера: они нажимают значок Play рядом с сервером в нашем списке серверов, и игра открывается во вкладке браузера. Для вашего сервера это обычные non-Steam игроки: протокол 48 с тикетом RevEmu 2013. Они подключаются к вашему серверу через один из наших ретрансляторов, поэтому сервер видит адрес ретранслятора, а не игрока.

Большинство серверов, которые принимают non-Steam игроков, пускают их без каких-либо изменений. Если сервер их кикает, в нашем списке серверов на его значке Play появляется предупреждение, а на странице вашего сервера написано почему. В этом руководстве разобран каждый случай. Каждое решение ниже проверено на реальном сервере с нашим браузерным клиентом.

Какое сообщение получают игроки из браузера?

  • Error! Is Not Valid Auth (9). сразу после загрузки карты: ReAuthCheck, метод обнаружения 9. Смотрите раздел 1.
  • Error! Is Not Valid Auth с другим числом: другой метод ReAuthCheck. Смотрите раздел 1, шаги те же.
  • Игроков из браузера кикают или блокируют, как только их на сервере становится несколько: лимит ReAuthCheck на один адрес. Смотрите раздел 2.
  • STEAM validation rejected: сервер принимает только Steam-игроков. Смотрите раздел 4.

1. ReAuthCheck: "Error! Is Not Valid Auth (9)."

ReAuthCheck является плагином Metamod для ReHLDS, который проверяет подключение каждого игрока десятью методами обнаружения. Метод 9 помечает наш браузерный клиент и кикает его через одну-две секунды после загрузки карты. В собственном логе ReAuthCheck (cstrike/addons/reauthcheck/logs/) это выглядит так:

[Detect #9] -> Name [[CSB] Player] | Proto [48] | Auth [RevEmu2013] | ... | Build [10211]

Откройте cstrike/addons/reauthcheck/reauthcheck.cfg и отключите метод 9:

CheckMethod9 = 0

Остальные методы оставьте как есть и перезапустите сервер, чтобы плагин заново прочитал файл. На нашем тестовом сервере (ReHLDS, ReUnion и ReAuthCheck 0.1.6 с настройками по умолчанию) больше ничего менять не пришлось: игроки из браузера зашли и остались в игре.

Число в сообщении означает метод обнаружения. Если ваши игроки видят другое число, например Is Not Valid Auth (3), выставьте в 0 именно этот метод: CheckMethod3 = 0.

2. ReAuthCheck: пропустите наши ретрансляторы через лимит на один адрес

Все игроки из браузера, которые идут через один ретранслятор, приходят на ваш сервер с адреса этого ретранслятора. По умолчанию ReAuthCheck пускает только 3 игроков с одного адреса (MaxIpNum = 3), а затем банит адрес на несколько минут (PunishStringMaxIP = addip 180.0 [ip]), и все игроки из браузера на этом ретрансляторе остаются за дверью. Добавьте наши ретрансляторы в белый список в конце reauthcheck.cfg:

[List White IP]
87.106.40.132
85.215.53.64

Белый список действует на лимит на один адрес (CheckMaxIp) и на лимит переподключений (CheckMaxDrop). Если хотите, CheckMaxIp = 0 отключает лимит на один адрес для всех, что заодно помогает игрокам с общим интернет-подключением (интернет-кафе, NAT, VPN).

Команды бана при обнаружении (PunishStringXFake и остальные) тоже банят по [ip]. С отключённым методом 9 они больше не ловят игроков из браузера, но если адрес ретранслятора всё же попал в бан, очистите эти строки: при пустом значении кик остаётся, а бана больше нет.

3. ReHLDS с ReUnion

Именно ReUnion пускает non-Steam игроков. Игроки из браузера используют тикет RevEmu 2013, поэтому проверьте эту строку в reunion.cfg:

cid_RevEmu2013 = 1

1 стоит по умолчанию и даёт каждому игроку из браузера собственный SteamID. 5 их отклоняет. Также убедитесь, что SteamIdHashSalt задан как случайная строка из 16 или более символов: при AuthVersion 3 или выше ReUnion без него не запускается, и тогда на сервер не может зайти ни один non-Steam игрок.

Не меняйте AuthVersion на сервере, где уже есть игроки. Этот параметр не определяет, кто может зайти, а его изменение даёт каждому non-Steam игроку новый SteamID, и админки, баны и статистика, привязанные к SteamID, перестают совпадать. Новый сервер может использовать значение, которое рекомендует его версия ReUnion (3 в ReUnion 0.2.0.25, 4 в самых новых сборках).

Впервые работаете с ReUnion? Смотрите Как установить Reunion.

4. Обычный HLDS: "STEAM validation rejected"

Стандартный сервер HLDS принимает только игроков со Steam-версией игры, поэтому отклоняет всех non-Steam игроков, включая игроков из браузера, с сообщением STEAM validation rejected. Никакая настройка в server.cfg этого не меняет. Нужен плагин, который принимает non-Steam игроков:

  • ReHLDS с ReUnion (рекомендуется). ReHLDS заменяет файлы движка HLDS и до сих пор поддерживается. Установите его, затем ReUnion, как описано в Как установить Reunion, и проверьте раздел 3.
  • dproto (только для старых сборок HLDS). dproto 0.9.582 не работает на текущем HLDS (build 8684): он останавливается при запуске с сообщением Sorry, this version of engine is not supported. Он поможет только на сервере, который намеренно работает на старой сборке HLDS. Там cid_RevEmu2013 = 1 в dproto.cfg (значение по умолчанию) пускает игроков из браузера, а 5 их отклоняет.

5. Проверьте, что всё работает

  1. Перезапустите сервер после правки файлов.
  2. Войдите в аккаунт на counter-strike-boost.com, найдите свой сервер в списке серверов и нажмите значок Play рядом с его IP или попросите об этом кого-нибудь из участников. Игра должна загрузить карту и не вылетать с сервера.
  3. Как только игрок из браузера проведёт на вашем сервере две минуты, предупреждение на его значке Play и на его странице исчезнет само.

Игрокам: если сервер кикает вас с одним из этих сообщений, со своей стороны вы ничего исправить не можете. Выберите другой сервер со значком Play или отправьте эту страницу владельцу сервера. Если игра вообще не может подключиться, смотрите Решение: игра в браузере не подключается.

Поделиться: