Монах пишет:
А Кактус доводил уже до логического совершенства, так сказать для всех, а не для своих личных потребностей.
Ну, тут не скажу, для всех ли. Как по мне - разработка велась для прокачки собственных скиллов Кактуса и в итоге получился этакий "швейцарский нож". Функций много, но многое из них, как по мне, не особо-то и нужно реальным радминам.
Монах пишет:
"мод SACE3" принадлежит тебе.
"Мод sace3" принадлежит мне только лишь в том смысле, что я сделал сборку АЧ, пригодную для автоматической загрузки клиентом при помощи загрузчика модов (а также иногда дорабатываю ее по мелочам). Да, для этого пришлось править сам загрузчик модов, а также прикручивать к SACE модуль, позволяющий нормально играть людям без использования CD-KEY путем генерации HWID. Почему это пришлось делать? В оригинальном SACE есть ряд вещей, которые мне не нравятся от слова совсем. Можно называть это багами, можно - не очень удачным дизайном. Одна из таких вещей - это схема подтверждения наличия у клиента античита. Для того, чтобы сообщить серверу о наличии АЧ, клиент отправляет в сообщении... хеш используемого клиентом ключа. Далее сервер пробегается по списку игроков, и ищет по хешу игрока, на которого прилетело подтверждение, после чего ставит ему заветную "птицу". Можете спросить, что тут такого, с чем проблема, ведь хеши у игроков должны быть разные? Да, это так, но... только при использовании проверки ключа средствами мастер-листа. Если же мы отключаем эту проверку (либо ставим локальный сервер), то начинается веселье. На сервер становится возможно зайти как с одинаковыми ключами, так и без ключей вообще. И в обоих случаях у игроков на сервере начинают отображаться одинаковые хеши! От такого серверной части античита тупо сносит башню. Если прилетает подтверждение наличия АЧ от одного из игроков, то сервер начинает считать, что у ВСЕХ игроков с таким хешем есть АЧ! И ладно бы только это. Если на сервер зайдет игрок с устаревшей версией АЧ, это также отметится у кучи народа, и никто из "счастливчиков" с таким хешем более не сможет вступить в игру.
Это, конечно, можно было бы поправить, но ковыряться в запротекченном файле (есть у Антареса такая слабость - проходиться по всем возможным файлам VMProtect'ом) - удовольствие ниже среднего. Так что пришлось думать, как это дело хакнуть без возможности подправить код самого клиента с АЧ.
В принципе, тут некоторые могут сказать, что это вовсе никакая не проблема, так как SACE изначально рассчитан на игру с "правильными" ключами, когда ситуация с двумя одинаковыми хешами на сервере невозможна. Да, согласен, при попытке присоединиться к серверу после проверки ключа "дублирующий" игрок будет отсоединен. Но! Дьявол кроется в деталях. Проверка CD-KEY может занять некоторое время, за которое SACE может отправить на сервер хеш ключа с подтверждением наличия у игрока АЧ. И если на сервере уже будет другой игрок БЕЗ АЧ вообще, то... админ сервера имеет шанс увидеть то, чего нет. Так что, кто бы что ни говорил, подтверждение наличия по хешу - это КРАЙНЕ неудачное решение. А всего-то и надо было, что использовать для подтверждения не хеш, а ID игрока (тот самый, который отображается в sv_listplayers). Клиент свой ID знает, так что это возможно.
Монах пишет:
"SACE3 от Антареса - это вселенское зло, а вот SACE3 от Sin! - это вещь, которая спасает Сталкер!"
Не знаю, где тут добро, где зло... Если сравнить файлы то, можно увидеть, что в обоих версиях они одинаковы (за исключением модуля HWID). Хотя я все-таки рекомендую всем настраивать SACE-only сервера на автоматическое скачивание при помощи загрузчика. Почему? Все просто:
1) На сервере будет больше игроков - скачивать руками что-то народ не любит. Так что, в некотором смысле, версия АЧ в виде мода реально помогает сделать игру честнее и интереснее.
2) При разработке FZ основополагающим принципом было следование "политике чистого клиента". Суть ее заключается в том, что независимо от того, что было загружено игроку (карты, моды и т.п.), после перезапуска игры должна запускаться оригинальная, не модифицированная версия клиента. Это позволяет не бояться модифицировать любые вещи на клиенте, дает возможность иметь установленными любое количество модов и благоприятно сказывается на совместимости со всем на свете. SACE, к сожалению, этому правилу не следует. Например, АЧ устанавливает карты непосредственно в директорию "mp" в виде DB-архивов. Кроме теоретически возможных коллизий это дает также небольшой шанс "убить" клиента при установке карты. Мало ли что может пойти не так... И в папке mp может вдруг появиться битый архив, который игра при запуске будет пытаться загрузить - и валиться.
3) Работа загрузчика модов на клиентах с установленным SACE менее стабильна. Это не критично (вылетит - можно перезапуститься и попробовать еще раз), но неприятно.