Решение пробемы совместимости протоколов 47 и
48 для nonsteam серверов тут Мульти Протокол
- это когда игроки могут заходить на сервер как с 47 протокола так и с
48 , так же как и со Steam и NonSteam
Вариант 1 (Древний) Примечание:
то обычный перепрошитый swds.dll. На никсах он был при помощи
cbooster'a. Но он не корректен, более уязвим и был создан как временный
эксперементальный вариант. качаем
патчик [1.8 mb] Установка: 1)Содержимое в
архиве кинуть в папку с сервером
Вариант 2 (Современный) КАЧАЕМ
DPROTO
0.3.7 ( Последний стабильный) или КАЧАЕМ DPROTO_0.4.8
(защищает от эксплойтов hlds_vcrash, hlds_fuck - тема)
Описание: 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, к примеру)
|