• Версия для печати

На форуме вы можете обсуждать различные темы выкладывать свои работы. Главное что от вас требуется это Уникальное и красивое оформление темы. Если На форуме нет подходящего раздела для вашей темы свяжитесь с администратором он создаст вам его.Так же если у вас есть какие-либо пожелания оставляем Комментарии ТУТ

Dproto 0.9.548

Различные модификации для сервера плагины Metamod, Dproto и всё что с ними связано
Аватара
Автор темы
vse.vozmozhno
Сообщения: 2
Зарегистрирован: 09.09.2016
Репутация: 0
С нами: 1 год 10 месяцев

Dproto 0.9.548

Сообщение #1 vse.vozmozhno » 09.09.2016, 16:50

Double Protocol (dproto) - плагин для Metamod'а, решающий проблему мультипротокола и эмулирующий SteamID для NoSteam-клиентов. Имеет гибкую систему настроек и богатые функциональные возможности.

Особенности:
- Сервер принимает всех известных клиентов, основанных на 47 и 48 протоколе.
- Настраиваемые SteamID'ы для клиентов.
- Работает с последней версией HLDS.
- Встроенная поддержка эмуляции на стороне сервера.

Требования:
- Чистые (не патченные) файлы движка (swds.dll для Windows; engine_i686.so для Linux).
- Metamod 1.19-1.20, 1.21p37 или 1.21.1-am
- Любой билд сервера 48-го протокола.

Установка
В папке addons создаем папку dproto и копируем в неё файл dproto.so или dproto.dll в зависимости от операционной системы, Linux или Windows соответственно.
- Открываем addons/metamod/plugins.ini (если такого файла нет, то создаем сами) и добавляем следующую строчку:

Linux:

Код: Выделить всё

linux addons/dproto/dproto_i386.so



Windows:

Код: Выделить всё

win32 addons\dproto\dproto.dll


- Файл dproto.cfg кидаем в корень сервера или в папку cstrike. Корректируем конфиг, устанавливая необходимые Вам параметры (настройки по умолчанию достаточны для работы модуля).


Переменные для вывода сообщения запрещенным клиентам:
dp_rejmsg_steam
dp_rejmsg_nosteam47
dp_rejmsg_nosteam48
dp_rejmsg_hltv
dp_rejmsg_pending
dp_rejmsg_revemu
dp_rejmsg_steamemu
dp_rejmsg_oldrevemu
dp_rejmsg_avsmp
dp_rejmsg_revemu_sc2009


Полезные команды/квары:
dp_ipsessions <число выводимых сессий> - список активных сессий, соединений и информация о них.
dp_secplrlist - список активных игроков, с некоторыми логическими параметры: U = используемый слот; A = активный клиент сети; P = прошел проверку на фейкового игрока;
dp_lastthreats - списки последних угроз.
dp_heapinfo - запись используемой внутренней памяти в <gamedir>/mem.txt.
dp_log_msgoverflows (квар) - вкл/выкл (1/0) дампинг содержимого сообщений при переполнении.


Конфигурационный файл Dproto версии 0.9.548(только для ознакомления)
# ========================================================
# DPROTO CONFIGURATION
# ========================================================

#
# Главное правило при изменении этого файла:
# НЕ ВНОСИТЕ КАКИЕ-ЛИБО ИЗМЕНЕНИЯ, ЕСЛИ ВЫ НЕ ЗНАЕТЕ, ЧТО ОЗНАЧАЕТ ТОТ ИЛИ ИНОЙ ПАРАМЕТР!
#


# ========================================================
# УПРАВЛЕНИЕ AUTHID КЛИЕНТОВ
# ========================================================

# Тип ClientID (для cid_* параметров)
# 1: Реальный (или сгенерированный HW) steam (STEAM_xx:xx:xx)
# 2: Реальный (или сгенерированный HW) valve (VALVE_xx:xx:xx)
# 3: STEAM_ генерированный по IP
# 4: VALVE_ генерированный по IP
# 5: Запрещенный - клиент не будет допущен до сервера с выводом dp_rejmsg_*, если таковой имеется
# 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's для клиентов

# Для HLTV (по умолчанию HLTV [7])
cid_HLTV = 7

# Для p.47 клиентов, которые не поддерживают генерацию уникальных ID (по умолчанию VALVE_ сгенерированный по IP [4])
cid_NoSteam47 = 4

# Для p.48 клиентов, которые не поддерживают генерацию уникальных ID (по умолчанию VALVE_ сгенерированный по IP [4])
cid_NoSteam48 = 4

# Для реальных Steam клиентов (по умолчанию реальный STEAM_xx:xx:xx [1])
cid_Steam = 1

# Клиент успешно прошел авторизацию, но не получил steam ID
# ЗАМЕТКА: На самом деле он получил steam id, но абсолютно бесполезный (например STEAM_0:0:0)
# по умолчанию STEAM_ID_PENDING [9]
cid_SteamPending = 9

# Для игроков имеющих revEmu (версии 9.74 и выше) на стороне клиента:
# по умолчанию реальный STEAM_xx:xx:xx [1]
cid_RevEmu = 1

# Для игроков имеющих RevEmu 2013 на стороне клиента:
# по умолчанию реальный STEAM_xx:xx:xx [1]
cid_RevEmu2013 = 1

# Для игроков имеющих SteamClient 2009 / revEmu выше версии 9.82 на стороне клиента:
# по умолчанию реальный STEAM_xx:xx:xx [1]
cid_SC2009 = 1

# Для игроков имеющих старый revEmu на стороне клиента:
# по умолчанию реальный STEAM_xx:xx:xx [1]
cid_OldRevEmu = 1

# Для игроков имеющих hCupa's SteamEmu на стороне клиента:
# по умолчанию реальный STEAM_xx:xx:xx [1]
cid_SteamEmu = 1

# Для игроков имеющих AVSMP (Cracked Steam) на стороне клиента:
# по умолчанию реальный STEAM_xx:xx:xx [1]
cid_AVSMP = 1

# Для игроков имеющих SmartSteamEmu > 1.2.4 на стороне клиента:
# по умолчанию реальный STEAM_xx:xx:xx [1]
cid_SSE3 = 1

# Для бота SETTI (ServerScanner):
# по умолчанию STEAM_xx:xx:xx сгенерированный по IP [3]
cid_Setti = 3

# Для SXEI клиентов:
# по умолчанию реальный STEAM_xx:xx:xx [1]
cid_SXEI = 1

# EnableSXEIdGeneration (0 / 1)
# Включает генерацию SteamID на основе присланной информации клиентом sXeI.
# Включайте только если у вас установлена серверная часть sXeI!
EnableSXEIdGeneration = 0

# SC2009_RevCompatMode (0 / 1)
# Включает исправление SteamID сгенерированных эмулятором SteamClient 2009 для совместимости с revEmu.
SC2009_RevCompatMode = 1

# SteamEmuCompatMode (0 / 1)
# Это аналог настроек eSTEAMATiON's EnforceSteamEmuCompatIDMode.
# Влияет только на Old RevEmu и SteamEmu эмуляторы.
SteamEmuCompatMode = 1

# OldEstCompatMode (0 / 1)
# Вкл/Выкл исправления SteamID сгенерированных eST версии 0.3.1.
# Установите 1 если вы хотите что бы для eST генерировались SteamID как в версиях до 0.3.0.
OldEstCompatMode = 0

# SteamIdHashSalt (строка)
# Строка соли для хеширования SteamID. Необратимо меняет SteamID. Применяется только к SteamID сгенерированных эмуляторами.
# Строка должна быть заполненна более чем 16 символами. Если строка остается пустой, хеширование не применяется.
SteamIdHashSalt =

# 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;

# RevEmu2013_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, сгенерированных эмулятором RevEmu2013
RevEmu2013_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 (Cracked steam)
AVSMP_Prefix1 = 0;

# SSE3_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, назначенного для клиентов SSE3
SSE3_Prefix1 = 0;

# Setti_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, назначенного боту Setti (server scanner)
Setti_Prefix1 = 0;

# SXEI_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, назначенного клиенту sXeI
SXEI_Prefix1 = 0;


# Обратите внимание что banid (стандартный бан HLDS) будет использовать SteamID БЕЗ каких либо префиксов!


# ========================================================
# ПОДАВЛЕНИЕ АТАК
# ========================================================

# FakePlayers_AntiReconnect (0/1)
# Включает обнаружен поддельных игроков которые быстро переподключаются (каждые 10 секунд и меньше)
# до завершения всех проверок на поддельных игроков.
# По умолчанию 1 (Вкл).
FakePlayers_AntiReconnect = 1

# FakePlayers_BanTime (минуты)
# Dproto забанит IP с которого подключаются поддельные игроки на время (в минутах) указанное в этом параметре.
# По умолчанию 120 минут.
# Используйте 0 для бана навсегда.
# Используйте отрицательное значение для отключения бана (поддельные игроки будут только кикнуты).
FakePlayers_BanTime = 120

# Exploits_CheckDownloads (0/1)
# Включить проверку запроса загрузки файлов подлежаших прекешу.
# По умолчанию 1 (Вкл).
Exploits_CheckDownloads = 1

# Exploits_DisableUploads (0/1)
# Отключить загрузку файлов (не кастомизаций) на сервер.
# По умолчанию 1 (Вкл).
Exploits_DisableUploads = 1


# ========================================================
# ДРУГИЕ НАСТРОЙКИ
# ========================================================

# Тип логирования:
# 0 = Отключено
# 1 = Консоль
# 2 = Лог файлы (HLDS)
# 3 = Оба варианта
LoggingMode = 2

# ThreatsLoggingMode (0/1)
# Включить логирование деталей обнаруженных угроз.
# По умолчанию 0 (Выкл).
ThreatsLoggingMode = 0

# DisableNativeAuth (0/1)
# Отключить систему авторизации valve/steam.
# Для p.47 Based: Сервер не будет подключаться к серверам авторизации.
# Для всех: Сервер не будет вызывать функции авторизации.
# Это исправление остановки загрузки старых серверов (p.47).
# По умолчанию 0 (Выкл).
DisableNativeAuth = 0

# ServerInfoAnswerType (0/1/2)
# Устанавливает тип ответа для query запросов
# 0 = Новый стиль (Source Engine)
# 1 = Старый стиль (Исправление списка избранногодля клиентов p.47)
# 2 = Гибридный режим (Старый стиль отправляется первым)
# По умолчанию 0 (Source Engine).
ServerInfoAnswerType = 0

# Game_Name (string)
# Устанавливает имя игры отображаемое у клиентов
# Если Game_Name останется пустой, будет использовано настоящее имя игры.
Game_Name =

# Включает исправление для правильного отображения ID игрока в мониторинге HLStats
# Включайте только если у вас есть HLStats
HLStatsPlayerIdFix = 0

# Включает рассылку пользовательских настроек setinfo topcolor и bottomcolor.
# Отключите если ваш мод не поддерживает цветные модели игроков.
SpreadUserInfoColors = 1

# ExportVersion (0/1)
# Вкл/Выкл экспорта квара dp_version.
# 1 = dp_version квар будет экспортирован в правила сервера. Его будет видно в разных средствах мониторинга (например HLSW или gametracker.com).
# 0 = dp_version квар не будет экспортирован в правила сервера.
ExportVersion = 1

# HLTVExcept_IP (ввести ip)
# HLTV с этого IP смогут подключится к серверу если cid_HLTV установлено 5 (отклонить)
HLTVExcept_IP = 127.0.0.1


FAQ
Q: Дайте ссылку на официальный сайт dproto.
A: Существует официальный топик dproto http://cs.rin.ru/forum/viewtopic.php?f=29&t=55986

Q: У вас версия намного старше, чем в первом посте официального топика на cs.rin.ru - 0.9.391. Кто его обновляет?
A: Разработку dproto Crock передал пользователю Lev (Flasher на cs.rin.ru). В этом можно убедиться прочитав первый пост официального топика. Так как Lev не может редактировать первый пост, то новые версии следует искать где-то на последних страницах того же топика.

Q: Я помню, что был топик на aghl.ru, но не могу его найти.
A: Топик (http://aghl.ru/forum/viewtopic.php?f=10&t=1389) стёрли. Остался только на cs.rin.ru.

Q: Я установил dproto, но он не работает. Команда «meta list» показывает следующее:

Currently loaded plugins:
1. description stat pend file vers src load unlod
2. [ 1] dproto fail load dproto_i386.so v0.3.4 ini Start Never

A: К строке запуска сервера добавьте параметры «-console +log on +mp_logecho 1». Ищите причину в выводе консоли сервера. Пример ошибки:

[DPROTO]: Config line parsing failed: invalid parameter 'FakePlayers_ConnectInitiationCheck'
[DPROTO]: Failed to load config: parsing error on line 175
[DPROTO]: Cant load config - detaching...

Q: Мой сервер не видят игроки с клиентом v24/p.47!
Q: После обновления на dproto XХХ при подключении к серверу игрок получает ошибку «you version does not match the server».
A: Установите переменную ServerInfoAnswerType конфига dproto.cfg в 1 или 2.

Q: Как сделать мой сервер видимым для клиентов с 47 протоколом и со стимом?
A: Установите переменную ServerInfoAnswerType конфига dproto.cfg в 2.

Q: В логах вижу ошибку "Error verifying STEAM UserID Ticket (server was unable to contact the authentication server)" когда играю со стима.
Q: Баны для стим игроков не работают. Игроки с банами по steamid продолжают играть на сервере.

A: Ваш сервер не может подключиться/потерял подключение к серверам стимa. Я не знаю универсального метода проверки подключения к стим серверам. Если у вас включен VAC, используйте команду stat. Если в строке version вы видите «insecure» или «insecure (secure mode enabled, disconnected from Steam3)» это означает, что подключение к стим серверам потеряно. Эта проблема не имеет отношения к dproto, но я могу дать несколько советов как это исправить:
1. Проверьте разрешены ли исходящие TCP соединения на порт назначения 27030.
2. Проверьте разрешено ли отправлять UDP датаграммы с портов 2690x.
3. Если вы используете linux, вам стоит добавить «+ip <server ip>» к параметрам запуска сервера. Например, вариант «+ip 0.0.0.0» вполне работоспособен.

Q: Мой сервер иногда падает после X дней работы...
A: Спросите о причине у Valve.

Q: Подскажите, что за .sma файлы в архиве? Обязательно ли их устанавливать и для чего они нужны?
А: dp_test.sma это пример использования функций dproto для получения информации о протоколе и SteamID клиента. updatehint.sma это плагин для информирования игроков об использовании устаревшего клиента. Оба плагина не обязательно устанавливать.

Q: Обновил dproto до версии 0.9.509. При подключении через поиск или избранное клиент зависает, но через консоль нормально подключается.
A: Баг клиента. В этой сборке на 48 протоколе по какой-то причине используется сервербраузер от 47 протокола. Для решения проблемы необходимо заменить у игроков библиотеку сервербраузера на эту http://cs.rin.ru/forum/viewtopic.php?p=1002174#p1002174 или использовать dproto версии 0.9.545 и старше.

Q: В dproto 0.9.388 появился параметр SteamIdHashSalt. Зачем он нужен?

A: Этот параметр позволяет защитить ваших игроков от угона SteamID при помощи SteamID changer, CT-Shield и т. п. Реализуется защита необратимым преобразованием SteamID, передаваемого клиентом (генерируемого dproto у клиентов без эмулятора), на основе некоего алгоритма хеширования. Для усложнения поиска алгоритма в процессе участвуют случайные данные – строка SteamIdHashSalt. Изменение даже одного символа в этой строке исказит SteamID до неузнаваемости. Таким образом угнать чужой SteamID становится возможным только заманив игрока на свой сервер. Значение SteamIdHashSalt нужно держать в секрете.

Q: Какие символы можно использовать в строке SteamIdHashSalt ?
A: Строка должна состоять не менее, чем из 16 латинских символов a-z и цифр 0-9.
A: В строке можно указать любые символы, минимум - 16, максимум - не ограничен, но будут использованы только первые 255.

Q: То есть, если сейчас я поставлю dproto 0.9.390, то у всех моих игроков изменится SteamID?
A: Только у игроков с эмулятором.

Q: А можно ли как-нибудь отключить данную функцию?
A: Оставить значение SteamIdHashSalt пустым.

Q: Зачем нужен параметр SpreadUserInfoColors?
А: Этот параметр касается только Half-Life. На серверах Counter-Strike его желательно установить в 0.

Q: Dproto банит игроков с причиной «Fake players spamming or protocol violations». Как изменить наказание на кик?
А: Установите отрицательное значение параметра FakePlayers_BanTime. Например, -1.

Q: После установки нового dproto игроки начали жаловаться кики/баны с причиной «Fake players spamming or protocol violations». Как это исправить?
A: Чувствительность обнаружения fake players настроить нельзя. Flasher’у для улучшения алгоритма обнаружения fake players не хватает информации. Жалобы вроде «У меня много игроков кикает/банит с причиной fake players… Но я не хочу/не могу предоставить дополнительную информацию» не помогут ни вам, ни нам. Более подробно о том, как собрать необходимую отладочную информацию можно прочитать здесь http://aghl.ru/forum/viewtopic.php?f=10&t=1741#p20200. Далее необходимо написать пост с получившимися отчетами в официальном топике dproto.

Q: Можно ли отключить проверки (добавить в белый список) определенных IP/SteamID?
А: Нет.

Q: А можно вообще отключить функцию обнаружения fake players?
А: Нет.

Q: В какой из последних версий dproto нет функции обнаружения fake players и не зависает клиент с кривым сервербраузером?
А: В dproto 0.9.497.

Q: В dproto 0.9.519 добавили поддержку ников в UTF-8 (русских ников) для старых билдов сервера (< 6xxx). Нужно ли отключать upatch?
А: Для поддержки русского чата upatch нужно оставить. При этом в конфиге upatch.cfg необходимо установить значение переменной PatchUnicodePlayerName в 0.

Q: Русские ники работают только на стиме?
А: Везде, где есть поддержка UTF-8. Например, в клиенте последних билдов или в клиенте с upatch.

Q: Если кто-нибудь на сервере меняет ник на русский, то сервер падает.
Q: Когда я пытаюсь выполнить в чате команду /ххх и на сервере присутствует игрок с русским ником, то сервер падает.
A: Проблема в ваших плагинах. Какой-то из них не поддерживает ники в UTF-8.

Q: Можно запретить игрокам использовать русские ники, но при этом остаться на новой версии dproto?
A: Нет.

Q: Почему мой сервер не отображается в мониторингах?
A: Потому что у вас включен гибридный режим ответа (hybrid answer type), некоторые скрипты мониторинга не могут его корректно обработать. Есть 4 пути решения проблемы:
1. Использовать стандартные типы ответа (ServerInfoAnswerType = 1 или 0).
2. Попробовать самостоятельно решить проблему (исправить скрипт).
3. Написать разработчикам скрипта.
4. Попробовать установить последнюю версию dproto 0.9.548.
Я не гарантирую корректную работу софта от сторонних разработчиков.


СКАЧАТЬ:
dproto_0_9_548.zip
(321.74 КБ) 23 скачивания
dproto_0_9_548.zip
(321.74 КБ) 23 скачивания



Официальный топик Dproto, всегда последняя версия

Вернуться в «Различные Моды и Дополнения»