Double Protocol (dproto) - плагин для Metamod'а, решающий проблему мультипротокола и эмулирующий SteamID для NoSteam-клиентов. Имеет гибкую систему настроек и богатые функциональные возможности.
Особенности: - Сервер принимает всех известных клиентов, основанных на 47 и 48 протоколе. - Настраиваемые SteamID'ы для клиентов. - Работает с последней версией HLDS. - Встроенная поддержка эмуляции на стороне сервера.
Требования: - Чистые (не патченные) файлы движка (swds.dll для Windows; engine_i686.so для Linux). - Metamod 1.19 или 1.19p32 - Любой билд сервера 48-го протокола.
- В папке addons создаем папку dproto и копируем в неё файл dproto.so или dproto.dll в зависимости от операционной системы, Linux или Windows соответственно. - Открываем addons/metamod/plugins.ini (если такого файла нет, то создаем сами) и добавляем следующую строчку:
Linux:
Code
linux addons/dproto/dproto_i386.so
Windows:
Code
win32 addons\dproto\dproto.dll
Переменные для вывода сообщения о несоответствии версии клиента:
dp_ipsessions - список активных сессий соединений и информация о них. dp_secplrlist - список активных игроков, с некоторыми логическими параметры: U = используемый слот; A = активный клиент сети; P = прошел проверку на фейкового игрока; dp_lastthreats - списки последних угроз.
Для удобства русский перевод конфига версии 0.8.72:
# # Общее правило для изменения этого файла: # НЕ ВНОСИТЕ КАКИЕ-ЛИБО ИЗМЕНЕНИЯ, ЕСЛИ ВЫ НЕ ЗНАЕТЕ, ЧТО ЭТО ЗНАЧИТ #
# LoggingMode - Режим ведения логов: # 1 = Console - Консольный # 2 = Log Files - Файловый # 3 = Both - Оба режима LoggingMode = 2
# ======================================================== # Управление AuthID'ами пользователей # ========================================================
# ClientIDs (для cid_* опций) # 1: Реальный (или сгенерированный HW) steam (STEAM_xx:xx:xx) # 2: Реальный (или сгенерированный HW) valve (VALVE_xx:xx:xx) # 3: STEAM_ сгенерированный по IP-адресу # 4: VALVE_ сгенерированный по IP-адресу # 5: Запрещен - клиент будет отключен # 6: Зарезервировано для будущего использования # 7: HLTV # 8: STEAM_ID_LAN # 9: STEAM_ID_PENDING # 10: VALVE_ID_LAN # 11: VALVE_ID_PENDING # 12: STEAM_666:88:666
# Установки AUthID для клиентов
# Для HLTV cid_HLTV = 7
# Для клиентов, которые не поддерживают уникальные идентификаторы: cid_NoSteam47 = 8 cid_NoSteam48 = 10
# Для легальных Steam-игроков: cid_Steam = 1
# Клиент успешно авторизирован, но не получает SteamID: # Замечание: На самом деле, он получил SteamID, но это бесполезно (STEAM_0:0:0 например). cid_SteamPending = 9
# Для игроков имеющих эмулятор revEmu версии 9.74 или выше: cid_RevEmu = 1
# Для игроков имеющих эмулятор SteamClient 2009 или revEmu выше версии 9.82: # default is real STEAM_xx:xx:xx [1] cid_SC2009 = 1
# Для игроков имеющих старую версию эмулятора revEmu: cid_OldRevEmu = 1
# Для игроков имеющих эмулятор hCupa's SteamEmu: cid_SteamEmu = 1
# Для игроков имеющих AVSMP (Взломанный Steam) cid_AVSMP = 1
# SteamEmuCompatMode (0 / 1) # Аналог для параметра EnforceSteamEmuCompatIDMode в eSTEAMATiON. # Влияет только на старые RevEmu и SteamEmu эмуляторы. SteamEmuCompatMode = 1
# OldEstCompatMode (0 / 1) # Включает/Выключает исправление SteamID'ов сгенерированных eST в версии 0.3.1. # Установите 1, если Вы хотите сделать SteamID'ы сгенерированные eST как в версии ниже 0.3.0. OldEstCompatMode = 0
# IPGen_Prefix1 (int) # STEAM_a:b:c # Первый префикс (a) для AuthID, сгенерированных по IP-адресу. IPGen_Prefix1 = 0
# IPGen_Prefix2 (int) # STEAM_a:b:c # Второй префикс (b) для AuthID, сгенерированных по IP-адресу. IPGen_Prefix2 = 4
# Native_Prefix1 (int) # STEAM_a:b:c # Первый префикс (a) для AuthID, сгенерированных легальной системой авторизации (Steam) Native_Prefix1 = 0;
# RevEmu_Prefix1 (int) # STEAM_a:b:c # Первый префикс (a) для AuthID, сгенерированных эмулятором Steamclient 2009 SC2009_Prefix1 = 0;
# RevEmu_Prefix1 (int) # STEAM_a:b:c # Первый префикс (a) для AuthID, сгенерированных эмулятором RevEmu RevEmu_Prefix1 = 0;
# OldRevEmu_Prefix1 (int) # STEAM_a:b:c # Первый префикс (a) для AuthID, сгенерированных старым эмулятором RevEmu OldRevEmu_Prefix1 = 0;
# SteamEmu_Prefix1 (int) # STEAM_a:b:c # Первый префикс (a) для AuthID, сгенерированных эмулятором SteamEmu SteamEmu_Prefix1 = 0;
# SteamEmu_Prefix1 (int) # STEAM_a:b:c # Первый префикс (a) для AuthID, назначенного для клиентов AVSMP (Взломанный Steam) AVSMP_Prefix1 = 0;
# Setti_Prefix1 (int) # STEAM_a:b:c # Первый префикс (a) для AuthID отображаемых в сканере серверов Setti Setti_Prefix1 = 0;
# Стоит отметить, что banid будет использовать SteamID без каких-либо приставок!
# ======================================================== # Другое # ========================================================
# DisableNativeAuth (0 / 1) # Отключение valve/steam системы авторизации. # Для серверов основанных на 47-ом протоколе: Сервер не будет соединяться с серверами авторизации. # Для всех: Сервер не сможет использовать функции авторизации. # Это исправление для запуска старых серверов, основанных на 47-ом протоколе. DisableNativeAuth = 0
# ServerInfoAnswerType (0 / 1 / 2) # Тип ответа сервера на запросы: # 0 = Новый способ (Движок Source) # 1 = Старый способ (Исправляет список избранного для клиентов 47-го протокола) # 2 = Гибридный режим - лучшее решение на данный момент, сервер видно везде. ServerInfoAnswerType = 2
# MasterClient (0 / 1) # Включает эмуляцию мастер-клиента; это помогает зарегистрировать сервер в мастер-листе. # Если у Вас ошибка "You server is out of date". # ИСПОЛЬЗУЙТЕ ЭТО ТОЛЬКО С ПАРАМЕТРОМ ЗАПУСКА -nomaster ! # Вы можете использовать параметр Master_GameVersion для установки версии игры. MasterClient = 0
# Master_GameVersion (строка) # Укажите версию игры, которую мастер-клиент будет отправлять на мастер-сервер. Master_GameVersion = 1.1.2.6/Stdio
# SubServer_Enable (0 / 1) # Включает вторичный мини-сервер, который перенаправляет клиента на основной сервер. # Используйте параметр SubServer_AnswerType для установки типа ответа на запросы информации. # Используйте параметр SubServer_MasterClient для включения мастер-клиента на вторичном сервере. # Используйте параметр SubServer_IP для установки IP адреса вторичного сервера. # Используйте параметр SubServer_Port для установки порта вторичного сервера. # Это полезная функция, если Вы хотите, чтобы все клиенты видели Ваш сервер. # Это возможно, если Вы установите различные типы ответа на запросы информации на главном и вторичном серверах. # Клиенты которые не "видят" главный сервер, будут видеть вторичный. SubServer_Enable = 0 SubServer_AnswerType = 0 SubServer_MasterClient = 0 SubServer_IP = 0.0.0.0 SubServer_Port = 28015 SubServer_RedirectCommand = connect 169.254.141.3:27015
# Game_Name (строка) # Название отображаемое у клиентов. # Если переменная Game_Name пустая, то будет использоваться стандартное название игры. Game_Name =
# HLStatsPlayerIdFix (0 / 1) # Включение/Выключение фикса отображения ID игрока в мониторинге HLStats. # Включайте это только если используете HLStats. HLStatsPlayerIdFix = 0
# ExportVersion (0 / 1) # Включение/Выключение экспортирования переменной dp_version. # 1 = Переменная dp_version будет экспортироваться в правила сервера. Это будет видно в средствах мониторинга (например в HLSW). # 0 = Переменная dp_version не будет экспортироваться в правила сервера. ExportVersion = 1
# HLTVExcept_IP (IP адрес) # HLTV с этого IP адреса сможет присоединиться к серверу, даже если значение cid_HLTV равно 5 (Запрещен) HLTVExcept_IP = 127.0.0.1
# FakePlayers_BanTime (минуты) # Dproto будет банить IP адрес, с которого подключаются фейковые игроки на время, указанное в этой переменной. # Используйте 0 для бана навсегда. # Используйте отрицательное значение для отключения бана (Фейковых игроков будет только кикать). FakePlayers_BanTime = 120