Главная » Статьи » Настройки сервера

Страшный Sv_lan - Что это такое?
Итак, хочу представить вашему вниманию (не)большую статью, про страшный страшный sv_lan который может в секунду изменить геймплей на вашем сервере, также в этой теме будет объяснено :
Quote
1) на двух пальцах что такое патчи
2) Почему может неработать админка в amxmodx
3) что такое Lan servers are restricted to local clinets (class c)

В статье много теории, но лучше её знать чтобы правильно настроить сервер

обозначения используемые в статье :
Code
стим - steam
стим.ехе - Steam.exe
цс, cs - игра Counter-strike
стимайди - steam_id
Конектиться - Подключаться к игровому серверу
Длл - dll библиотека/и


Все базовые понятия (которые желательно знать) выделенны курсивом

Страшный sv_lan
Итак, это одна единственная переменная сервера (cvar) и может принимать значения 1 или 0, может быть прописан в server.cfg (sv_lan 1/0) или указан при запуске (т.е в запускных параметрах)
значение этой переменной как не странно можно менять динамически, т.е прямо в игре

(Далее мы сначала расмотрим не взломанный сервер цс, а потом перейдем к взломанному)

Для чего это переменная? все мы знаем, что играя в counter-strike скачав его откуда ни будь с интернета, мы играем во взломанный cs (т.е non-steam). Не взломанный cs (Купленный, лицензионный) надо покупать и тогда он будет уже легальным т.е Steam cs.

Так вот, чтобы поиграть в Steam cs (если вы его уже купили), вам сначала надо запустить программу steam.exe, которая уже запустит сам цс и вы сможете играть на легальных серверах. почему без стим.ехе не сможете играть? потому что стим.ехе поддерживает связь с главными серверами стим, и когда вы подключаетесь к любому легальному серверу и посылаете ему ваш стимайди, он тоже посылает запрос к главным серверам steam с вашим стимайди, чтобы проверить купленный у вас цс или взломанный, если взломанный вам напишется "steam validation rejected" что означает "Верификация легальности вашей цс не пройдена, вы были посланы нахрен с сервера" :biggrin:

Quote
Steam.exe можно запустить в оффлайн режиме. В оффлайн режиме steam.exe, играть на легальных серверах counter-strike вы не сможете, потому что steam в оффлайн режиме не поддерживает связи с главными серверами steam (а именно на этих серверах и хранятся те аккаунты с играми которые вы купили), и вы будете считаться пиратским игроком.


Так вот, для игроков которые хотят поиграть по локалке на выделенном сервере counter-strike (дальше hlds.exe или просто hlds), предусмотренна переменная (cvar) sv_lan, если она стоит с единицей (sv_lan 1), сервер будет пускать всех на сервер, но не будет никого пускать с интернета. Если будет стоять ноль, то сервер будет пускать всех, но проверяя игроков купленный у них cs или нет (запросом к главным серверам стим), на сервер будут допущенны только игроки с купленной cs.

Дальше, в принципе немного взломав counter-strike (Который вы запускаете чтоб поиграть, он называется клиент) можно заставить его запускаться без стим.exe (А нормальный клиент требует перед своим запуском запустить стим.exe), и если вдобавок на сервере будет sv_lan 1 то такой взломанный cs (non-steam cs), сервер пропустит даже если он не купленный, а взломанный.
К сожалению hlds не пропускает на сервер игроков с интернета при sv_lan 1, а при sv_lan 0 будет проверять купленная у игроков цс или нет.

Что надо для запуска цс сервера? скачать сам сервер и запустить. Взломщики скачали цс сервер и сломали его, теперь при sv_lan 0 сервер не будет проверять купленная ли цс у игрока, а при sv_lan 1 будет пускать с интернета. Это опять же зависит от того кто ломал, есть кривые патчи где не все так гладко. Что такое патчи смотрите ниже.

В чем теперь разница для взломанного сервер будет sv_lan 1 или 0? а очень большая. Каждому игроку в системе steam, дается свой уникальный номер при регистрации в системе (стимайди - steam_id). Так вот при sv_lan 0 НЕ взломанный! сервер запрашивает информацию о игроке который хочет к нему подключиться у системы Steam, узнает steam номер (steam_id) игрока, а при sv_lan 1 выдает всем игрокам steam_id такого вида (В зависимости от того какой патч, и откуда конектится игрок)
steam_id_lan
steam_id_pending
valve_id_lan
valve_id_pending

(Поправьте если не прав)
Если сервер взломанный и sv_lan 0 то пиратским игрокам выдается steam_id как steam_666:88:666 (Ну или как взломщик сделал) но факт такой что всем взломанным игрокам выдается один стимайди.

К чему это приводит?
К тому что amxmodx проверяет админ права игроков только в случае если у них steam_id как steam_id:[Номер в системе steam]
или если steam_id стоит как
Code
steam_id_lan  
steam_id_pending  
valve_id_lan  
valve_id_pending

При sv_lan 0 взломанный сервер hlds выдает пиратским игрокам (т.е игрокам с цс но без запуска стим.ехе) выдается steam_666:88:666 или тот который поставлен взломщиком, при взломе сервера. Поэтому на некоторых патчах админка при sv_lan 0 может не выдаваться - зависит от кривизны рук взломщика делавшего патч

Что такое патчи
Когда первый раз взломали hlds, выпустили взломанную версию в интернет. Но движок игры counter-strike его разработчики постоянно дорабатывали, и каждый раз когда вы скачиваете steam сервер с интернета, вы скачиваете самую свежую версию, естественно старая взломанная версия сервера, имела те баги и недостатки - которые свежая версия уже не имеет. Поэтому взломщики скачали свежую версию сервера и снова взломали. Это уже был второй патч, потом hlds снова обновился, взломщики снова его скачали, взломали и это уже был третий патч и т.д
Впринципе это скаченный в свое время hlds, взломанный, и выложенный в интернет для общего скачивания
Патчи бывают полные (Full) и неполные, неполные патчи надо ставить друг на друга, т.к они содержат только те длл которые были затронуты обновлением. Поэтому если интернет неограниченный, качайте ТОЛЬКО Full (полные) патчи

Почему неработает админка в amxmodx при sv_lan 0?
Я не уверен на все сто, но думаю потому что на взломанных (пиратских) серверах при sv_lan 0 выдается steam_:666:88:666 или другое значение. Нестандартные значения не поддерживаются Amxmodx, думаю предполагалось что если выдается админка по ип, то стоит sv_lan 1, поэтому выдается админка по стандартным значениям.
Code
steam_id_lan  
steam_id_pending  
valve_id_lan  
valve_id_pending


По нестандартным не выдается. Если sv_lan 0 то amxmodx выдает админ права учитывая какой steam_id (Полностью незнаю алгоритма, пороюсь в сурсах если время будет и желание изучить си - AmxmodX open-source проект, т.е с открытым исходным кодом который можно просмотреть, код на сях (C язык программирования) а си пока я слабенько знаю)
Решения
Если не выдается админка при sv_lan 0, то стоит сменить патч. Ещё лучше поставить патч на два протокола.
Хотя есть вариант - добавить steam_666:88:666, в обработку админ прав в Amxmodx, путем изменения .sma исходников админских плагинов плагинов. Если вы хотите сделать так - то поиск в руки, на форуме про это уже писали

LAN server are restricted to local clients (class C)
Либо у вас/сервера слишком разнятся патчи (напр. 19 и 29 и наоборот), либо на сервере хреновый ( ) патч (недоделанный) и стоит sv_lan 1

От себя тина
Эта статья не совсем верна, но позволяет понять для чего нужен sv_lan, что такое патчи и как работает система верификации (проверки подлинности вашей cs), почему не совсем верна? потому что все эти данные я брал изучая hlds сервера, все их ошибки и разные патчи, а также врубал голову. Это мои личные убеждения (о том как все это работает) но они основанны на всем моем опыте, и на всей той литературе которую я изучал
Надеюсь я ответил на вопросы которые возникают у начинающих сборщиков серверов по поводу этого квара, т.к сам в свое время не понимал её назначение.
я могу ошибаться в моих предположениях в этой статье, объективная критика приветствуется
Извините что сильно нагроможденная статья и трудная для чтения, но к сожалению по другому писать пока не умею
Категория: Настройки сервера | Добавил: Click (01.03.2012) | Автор: Fedcomp W
Просмотров: 13432 | Рейтинг: 5.0/2
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Вверх