Critical Hit Sprint Reset

Crit_Sprint_Reset Бой (Combat) HIGH +9 очков

🎮 Влияние на механику Minecraft

В ванильной боевке Minecraft критический удар наносит +50% базового урона, но требует, чтобы игрок находился в падении и строго НЕ бежал на спринте. Этот чит сбрасывает флаг спринта (setSprinting(false)) ровно на тик перед отправкой пакета атаки, обеспечивая 100% гарантированные криты на полной скорости бега без замедления.

🔍 Анализируемые функции и API

ClientPlayerInteractionManager.attackEntity

Метод атаки сущности (method_2918), отправляющий серверу PlayerInteractEntityC2SPacket.

Entity.setSprinting

Управляет состоянием спринта (method_5728) и отправляет пакет остановки бега.

ClientPlayerEntity.swingHand

Анимация взмаха руки (method_6104) с отправкой HandSwingC2SPacket.

💻 Реализация в моде (Исходный код)

// Developer Source (Fabric / Yarn mappings)
public class AutoCrit {
    public static void performCriticalHit(MinecraftClient client, Entity target) {
        if (client.player == null || target == null) return;
        boolean wasSprinting = client.player.isSprinting();
        if (wasSprinting) {
            client.player.setSprinting(false);
        }
        client.interactionManager.attackEntity(client.player, target);
        client.player.swingHand(Hand.MAIN_HAND);
        if (wasSprinting) {
            client.player.setSprinting(true);
        }
    }
}

⚙️ Декомпилированный вид (Vineflower)

// Decompiled with Vineflower 1.12 (Intermediary mappings)
public class AutoCrit {
    public static void performCriticalHit(class_310 client, class_1297 target) {
        if (client.field_1724 != null && target != null) {
            boolean wasSprinting = client.field_1724.method_5624();
            if (wasSprinting) {
                client.field_1724.method_5728(false);
            }
            client.field_1761.method_2918(client.field_1724, target);
            client.field_1724.method_6104(class_1268.field_5808);
            if (wasSprinting) {
                client.field_1724.method_5728(true);
            }
        }
    }
}

🛡️ Сигнатура байткода и статический детект

Совпадение обращений к ClientPlayerInteractionManager.attackEntity (method_2918), Entity.setSprinting (method_5728) и ClientPlayerEntity.swingHand (method_6104) в одном классе.