Learn · modules
Что такое "No Fall" в Minecraft? Объяснение модуля
No Fall не позволяет серверу регистрировать урон от падения для вашего персонажа. Вот как на самом деле работают отмена пакетов, подмена земли и обнаружение.
Что такое No Fall?
No Fall — это модуль для Minecraft, который предотвращает регистрацию урона от падения на вашего персонажа сервером. Вместо того, чтобы позволить стандартным расчетам урона в игре идти своим чередом, он вмешивается в серверную проверку, которая в противном случае решила бы, что вы только что потеряли двенадцать сердечек, упав с обрыва. Прыгните с башни, выпрыгните из боя в воздухе, упадите прямо в шахту: ничто из этого не стоит вам здоровья. Это небольшой фрагмент кода, выполняющий большую работу, и также один из наиболее легко обнаруживаемых приемов в наборе инструментов утилитарного клиента, о чем стоит знать, прежде чем вы начнете на него полагаться.
Как это работает
Сервер постоянно отслеживает вашу вертикальную позицию. Когда он обнаруживает приземление после падения с определенного расстояния, он применяет урон, масштабируемый в зависимости от того, насколько далеко вы упали. Задача No Fall — вмешаться в этот процесс до того, как урон будет нанесен.
Существует три распространенных способа реализации этого:
Отмена пакетов. Клиент просто удерживает пакет движения, который сервер использовал бы для расчета падения, поэтому сервер никогда не получает данные, необходимые для начисления вам урона.
Подделка земли. Клиент сообщает серверу, что вы стоите на твердой земле, когда это не так. Если нет приземления, то нет и падения, которое нужно зарегистрировать.
Манипулирование предсказанным состоянием. Клиент незаметно корректирует данные о своей позиции, чтобы трекер дистанции падения на сервере никогда не накапливал достаточно значений, чтобы превысить порог урона.
Одинаковая цель, три разных лжи, которые клиент сообщает серверу. Какой из них использует клиент, определяет, насколько это очевидно.
Безопасно ли это использовать?
Нет, ни в каком абсолютном смысле. No Fall — это обходной путь на стороне клиента для проверки на стороне сервера, и это несоответствие — именно то, что предназначено выявлять античит. Сервер ожидает, что урон от падения будет следствием отслеживаемого вами движения. Когда сообщаемая вами позиция или состояние перестают соответствовать урону, который должен был произойти, этот разрыв является вероятным сигналом обнаружения, и разумный античит его отметит.
Будет ли это обнаружено, зависит от сервера и метода. Отмена пакетов и подделка земли оставляют более очевидные следы в журналах движения, чем более тонкие подходы, основанные на манипулировании предсказанным состоянием, но ни один из трех не является невидимым по умолчанию. Относитесь к No Fall как к использованию на свой страх и риск и ожидайте, что строгий античит обнаружит его чаще, чем снисходительный.
Компромисс
Преимущество очевидно: вы выживаете при падениях, которые должны вас убить. Недостаток столь же очевиден: вы создаете обнаруживаемый разрыв между тем, что вы сообщаете, и тем, что должно было произойти. Античиты просматривают журналы движения в поисках именно такого рода расхождений.
На серверах со слабыми проверками No Fall может и не быть обнаружен. На серверах с активным мониторингом это одно из первых вещей, которые отмечают. Безопаснее всего предположить, что любой сервер, который стоит того, чтобы о нем заботиться, проверяется на его наличие.
Часто задаваемые вопросы
Оно предотвращает регистрацию урона от падения для вашего персонажа, поэтому падение, которое обычно наносит урон или убивает вас, не имеет последствий.
Три задокументированных подхода: отмена пакета перемещения, подделка наземного состояния, или манипулирование данными прогнозируемого положения, чтобы трекер падения никогда не накапливал достаточно для применения урона.
Да. Сервер ожидает, что урон от падения будет зависеть от отслеживаемого вертикального перемещения, и несоответствие между вашим сообщаемым состоянием и ожидаемым уроном — это сигнал, который могут проверять античиты.
Нет. Это общая концепция модульного подхода, которая встречается у разных клиентов, но конкретный метод варьируется в зависимости от реализации.