Решение пробемы совместимости протоколов 47 и 48 для nonsteam серверов тут Мульти Протокол - это когда игроки могут заходить на сервер как с 47 протокола так и с 48 , так же как и со Steam и NonSteam
Вариант 1 (Древний) Примечание: то
обычный перепрошитый swds.dll. На никсах он был при помощи cbooster'a.
Но он не корректен, более уязвим и был создан как временный
эксперементальный вариант. качаем патчик [1.8 mb] Установка: 1)Содержимое в архиве кинуть в папку с сервером
Вариант 2 (Современный) КАЧАЕМ DPROTO 0.4.8p (stable; защищает от эксплойтов hlds_vcrash, hlds_fuck, necro hack infection)] КАЧАЕМ DPROTO_0.9.87 (stable; защищает от эксплойтов hlds_vcrash, hlds_fuck, necro hack infection) Описание: Dproto
это плагин для MetaMod позволяющий пользователям заходить на сервер как
с NoSteam (47-48 протоколы), так и со Steam (48 протокол). Отметим что
Dproto это не Steam эмулятор, и если вы хотите поддержку генерации
уникальных SteamID на вашем сервере используйте специальные эмуляторы
(например revEmu). Разработчик Crock Основные возможности: - Сервер позволяет заходить со всех известных версий клиентов, базирующихся на 47 и 48 протоколах; - Настраиваемые SteamID для клиентов; - Работает с последней версией hlds;
Поддерживаются операционные системы: Win и *NIX Поддерживающиеся билды серверов в версии 0.3.7: - Linux: 2738, 4383 (24 Oct 2008), 4383 (Released at Apr 2009), 4383 (Released 19 May 2009), 4617 и новее - Windows: 4382, 4554, 4554 (19 May 2009), 4554 (15 Jun 2009) и новее Для работы Dproto нужны - чистые или пропатченные с помощью VUP библиотеки engine_. - metamod 1.19 или 1.19p32.
Инструкция по установке: 1. Перейдите к директории /addons/ и создайте новую папку с именем dproto - это директория игры; cstrike для Counter-Strike, valve для Half-Life, и т.д. 2. Скопируйте dproto.dll или dproto_i386.so to в папку /addons/dproto/ (в зависимости от вашей ОС, для Win dll, для LINUX so) 3. Перейдите к директории установленного metamod'a (это путь /addons/metamod/) и отредактируйте файл plugins.ini: добавьте следующую строку в начало файла
для windows: win32 addons\dproto\dproto.dll
для linux: linux addons\dproto\dproto_i386.so
4. Скопируйте файл dproto.cfg в корневую папку директории игры (где hlds.exe). 5. Папку src закиньте в папку cstrike
6. Запустите сервер. Используйте следующую команду для linux систем:
./hlds_run -binary ./hlds_i686
когда сервер загружен, напишите "meta list" в консоли. Если вы установили dproto правильно, то вы должны увидеть следующее:
Currently loaded plugins: description stat pend file vers src load unlod [ 1] dproto RUN - dproto_i386.so vX.X.X ini Start Never [ 2] AMX Mod X RUN - amxmodx_mm_i386. v1.8.1.3 ini Start ANY 2 plugins, 2 running Или по логингу в консоле сервера увидите следующее: 
Если у вас возникли проблемы с админкой по нику: На вашем сервере изменено значение "amx_password_field" на другое (по умолчанию - "_pw"). Эта проблема решается очень просто: 1) можно просто изменить значение параметра "UserinfoVerification" на "0" 2) изменить значение "amx_password_field" на стандартное, то есть "_pw" 3) самый лучший вариант: добавить к значениям "ValidInfoFields_Engine" своё значение "amx_password_field"Допустим в amxx.cfg: amx_password_field "mejor" dproto.cfg (оригинал):
ValidInfoFields_Engine = \name\bottomcolor\topcolor\model\cl_lc\cl_lw\cl_updaterate\cl_dlmax\rate\_pw\*hltv\password dproto.cfg (изменённый, чтоб работало):
ValidInfoFields_Engine = \name\bottomcolor\topcolor\model\cl_lc\cl_lw\cl_updaterate\cl_dlmax\rate\_pw\*hltv\password\mejor
Переведенный на РУССКИЙ для удобства файл dproto.cfg:
# ======================================================== # Настройки DPROTO # ========================================================
#Способ ведения логов: # 1 = Консоль # 2 = Лог файлы # 3 = Оба метода LoggingMode = 2
# UserinfoVerification - режим проверки информации пользователя # 1 = Проверяется на максимальный размер при подключении игрока (С этим значением используется MaxUserInfoSize) # 2 = Удаляет ненужные поля в информации (С этим значением используется ValidInfoFields) # 3 = Оба режима # Проверки необходимы чтобы избежать переполнения информации пользователя, что может привести к появлению svc_bad сообщений у игроков UserinfoVerification = 3 MaxUserInfoSize = 230 ValidInfoFields_Engine = namebottomcolortopcolormodelcl_lccl_lwcl_updateratecl_dlmaxrate_pw*hltvpassword ValidInfoFields_cstrike = _vgui_menus_cl_autowepswitch ValidInfoFields_ag = cl_autowepswitch
# ======================================================== # Управление AUTHID # ========================================================
# Список возможных ID клиентов (для cid_* настройки) # 1: Real steam (STEAM_xx:xx:xx) # 2: Real valve (VALVE_xx:xx:xx) # 3: STEAM_ by IP # 4: VALVE_ by IP # 5: Deprecated - client will be rejected # 6: reserved for future use # 7: HLTV # 8: STEAM_ID_LAN # 9: STEAM_ID_PENDING # 10: VALVE_ID_LAN # 11: VALVE_ID_PENDING # 12: STEAM_666:88:666
# Используйте следующие опции чтобы задать нужные ID из списка выше cid_HLTV = 7 cid_NoSteam47 = 8 cid_NoSteam48 = 10
# Для игроков через легальный Steam cid_Steam = 1
# Здесь задается ID для клиентов, которые вроде бы как авторизовались, но не получили Steam ID # Примечание: На самом дел он получит Steam ID, но выглядить он будет примерно так STEAM_0:0:0 cid_SteamPending = 9
# Для игроков имеющих revEmu ( >= 9.74) на клиентской стороне: cid_RevEmu = 1
# Для игроков имеющих старый revEmu на клиентской стороне: cid_OldRevEmu = 1
# Для игроков имеющих hCupa's SteamEmu на клиентской стороне: cid_SteamEmu = 1
# SteamEmuCompatMode (0 / 1) # Аналог опции в eSTEAMATiON - EnforceSteamEmuCompatIDMode # Влияет только на старые RevEmu и SteamEmu эмуляторы. SteamEmuCompatMode = 1
# OldEstCompatMode (0 / 1) # Включает/выключает исправление steamid сделанных EST в версии dproto 0.3.1. # Установите 1, если вы хотите сделать steamids генерируемые EST, как в версии < 0.3.0 OldEstCompatMode = 0
# IPGen_Prefix1 (int) # STEAM_a:b:c # ^ - этот префикс для authid, сгенерированных по IP IPGen_Prefix1 = 0
# IPGen_Prefix2 (int) # STEAM_a:b:c # ^ - этот префикс для authid, сгенерированных по IP IPGen_Prefix2 = 4
# Обратите внимание, забаненные sieam id будут без префиксов
# ======================================================== # Другие настройки # ========================================================
# DisableNativeAuth (0/1) # Отключит систему авторизации valve/steam. # Для протокола 47: сервер не будет подключаться к серверам авторизации. # Для всех: сервер не будет вызывать функции авторизации. # Это для исправления зависания при запуске старых, основанных на 47 протоколе, серверов. DisableNativeAuth = 0
# ServerInfoAnswerType (0/1) # Устанавливает тип ответов сервера на запросы # 0 = Новый стиль (Source Engine) # 1 = Старый стиль (Исправлен список избранное для п.47 клиентов) # 2 = Смешанный режим - лучшее решение для того, чтобы сервер был виден везде ServerInfoAnswerType = 2
# MasterClient (0/1) # Включает эмуляцию мастер-клиент; это помогает зарегистрировать сервер в мастер-листе. # если вы имеете "You server is old" ошибку. # ИСПОЛЬЗОВАТЬ ТОЛЬКО С ПАРАМЕТРОМ ЗАПУСКА -nomaster ! # you can use Master_GameVersion to set version of game MasterClient = 0
# Master_GameVersion (string) # Устанавливает версию игры, которую мастер-клиент будет отправлять на мастер-сервер Master_GameVersion = 1.1.2.6/Stdio
# SubServer_Enable (0/1) # Включает вторичный мини-сервер, который переадресовывает клиентов на главный сервер. # Используйте параметр SubServer_AnswerType , чтобы установить тип ответа на информационные запросы . # Используйте параметр SubServer_Port , чтобы установить вторичный порт сервера. # Используйте параметр SubServer_MasterClient , чтобы включить master-client для вторичного сервера. # Это полезная функция, если вы хотите, чтобы все клиенты видели ваш сервер. # Это возможно, если вы установите различные типы ответов на главные и вторичные серверы. # Клиенты которые не видят главный сервер будут видеть вторичный сервер. SubServer_Enable = 0 SubServer_Port = 28015 SubServer_MasterClient = 0 SubServer_AnswerType = 0 SubServer_RedirectCommand = connect 169.254.141.3:27015
# Game_Name (string) # Установите имя игры отображающееся у игроков # Если отсавить пустым будет использоваться название игры по умолчанию. Game_Name =
# Исправляет отображение ID игрока в мониторинге HLStats # Используйте только если у вас есть HLStats. HLStatsPlayerIdFix = 0
# ExportVersion (0 / 1) # Включение/Выключение экспорта версии dp_version # 1 = dp_version настройка будет экспортирована в правила сервера. Это будет отображаться в мониториге сервера (например в HLSW) # 0 = dp_version настройка не будет экспортирована в правила сервера. ExportVersion = 1
Для Linux рекомендуется запускать сервер с параметром:
" ./hlds_run -binary ./hlds_i686"
Как узнать версию протокола клиента через AMXX: Смотрите файл amxx/dp_test.sma. Это исходный код плагина, цель которого показывать номер протокола при подключении клиентов ЧАВО (Вопрос-Ответ): В: Я установил dproto, но он не работает. meta list пишет это: Цитата Currently loaded plugins: description stat pend file vers src load unlod [ 1] dproto fail load dproto_i386.so v0.3.7 ini Start Never
О: Запустите сервер с параметрами -console +log on +mp_logecho 1 и следите за консолью. Вы сможете найти причину там.
В: AmxModX админы не могут зайти, используя свой пароль. О: Смените префикс _pw на свой в файле dproto.cfg: ValidInfoFields_Engine = \name\bottomcolor\topcolor\model\cl_lc\cl_lw\cl_updaterate\cl_dlmax\rate\_pw\*hltv\password
В: Я не вижу свой сервер в списках серверов Steam! О: Смените ServerInfoAnswerType на 0 или 2 в dproto.cfg
В: Мой сервер не виден в списках серверов через CS с ~24 патчем О: Смените ServerInfoAnswerType на 1 или 2 в dproto.cfg
В: Как сделать, что бы сервер был виден и на старых патчах и в Steam? О: Смените ServerInfoAnswerType на 2 в dproto.cfg
В: Бан настоящих SteamID не работает. Пользователи с забаненным ID могут играть на сервере. О:
Ваш сервер не подключен к серверам Steam или потерял соединение. Я не
знаю универсального метода проверки соединения с Steam серверами. Если
Ваш сервер защищен VAC'ом, используйте команду stat. Если пишет
"insecure" или "insecure (secure mode enabled, disconnected from
Steam3)", значит соединение со Steam потеряно. Эта проблема не связана с
dproto, но я могу дать советы, что бы исправить данную проблему: 1. Проверьте, разрешены ли исходящие TCP соединения на порт 27030 2. Проверьте, допускаются ли исходящие UDP пакеты с локальных "2690x" портов 3.
Если Вы используете linux, Вы должны добавить параметр +ip в строку
запуска. Я, например, использую +ip 0.0.0.0 и это отлично помогает.
В: Мой сервер не отображается в мониторингах О:
Это из за ServerInfoAnswerType 2, некоторые скрипты мониторингов не
работают с ним правильно. Есть 3 способа решения проблемы: Использовать
ServerInfoAnswerType 1 или 0, либо попытаться исправить самому, либо
написать разработчикам скрипта. Я не гарантирую правильную работу
стороннего софта.
В: Я использую движок последней версии и мой сервер не виден в интернет поиске. О: Задайте этот вопрос Valve...
В: Я использую движок последней версии и мой сервер не виден в сервер-листе 'Setti' О: Здесь
В: У игроков на моем сервере одинаковые SteamID. Сервер их признает как SteamEmu (dp_SteamEmu) О:
SteamID может быть легко подделан в алгоритме авторизации SteamEmu.
Запретите такие клиенты или выставьте им ID без цифр (STEAM_ID_LAN, к
примеру)
|