Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Флагает при ударе Spookytime

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
26 Июн 2025
Сообщения
91
Реакции
1
Всем привет я делаю чит под спукитайм на базе Evaware но есть проблема
меня почему-то при ударах начинает флагать а потом спустя время банит
И я не могу понять эта сброс спринта виноват или же ротация или корреция движения не обходит пж помогите
SpookyTime Rotation:
Expand Collapse Copy
package niva.free.modules.impl.combat.Rotation;

import niva.free.utils.math.SensUtility;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.LivingEntity;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;

public class onSpookytimeV2Rotation {

    private Minecraft mc = Minecraft.getInstance();
    private Vector2f rotate = new Vector2f(0, 0);
    private LivingEntity selected;
    private float lastYaw = 0;
    private float lastPitch = 0;

    private float currentMultiPointY = 0.5f;
    private long lastPointSwitchTime = 0;
    private float targetMultiPointY = 0.8f;

    private long lastShakeUpdate = 0;
    private float currentShakeYaw = 0;
    private float currentShakePitch = 0;

    public void onSpookyV2Rotation(LivingEntity target, boolean attack, LivingEntity selectedEntity) {
        if (target == null || mc.player == null) return;

        this.selected = selectedEntity;

        long currentTime = System.currentTimeMillis();
        if (currentTime - lastPointSwitchTime > 400 + (int)(Math.random() * 400)) {
            targetMultiPointY = 0.2f + (float)(Math.random() * 0.6f);
            lastPointSwitchTime = currentTime;
        }
        currentMultiPointY = currentMultiPointY + (targetMultiPointY - currentMultiPointY) * 0.08f;

        AxisAlignedBB aabb = target.getBoundingBox();
        Vector3d eyePos = mc.player.getEyePosition(mc.getRenderPartialTicks());

        double aimX = MathHelper.clamp(eyePos.x, aabb.minX, aabb.maxX);
        double aimY = MathHelper.clamp(eyePos.y,
                aabb.minY + target.getHeight() * (currentMultiPointY - 0.1f),
                aabb.minY + target.getHeight() * (currentMultiPointY + 0.1f));
        double aimZ = MathHelper.clamp(eyePos.z, aabb.minZ, aabb.maxZ);

        Vector3d vec = new Vector3d(aimX - eyePos.x, aimY - eyePos.y, aimZ - eyePos.z).normalize();

        float targetYaw = (float) MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90.0);
        float targetPitch = (float) MathHelper.clamp(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))), -90.0F, 90.0F);

        float yawDelta = MathHelper.wrapDegrees(targetYaw - this.rotate.x);
        float pitchDelta = MathHelper.wrapDegrees(targetPitch - this.rotate.y);

        float distance = (float) mc.player.getDistance(target);
        float absYawDelta = Math.abs(yawDelta);
        float absPitchDelta = Math.abs(pitchDelta);

        float distanceFactor;
        if (distance < 0.3f) {
            distanceFactor = 0.3f;
        } else if (distance < 1.2f) {
            distanceFactor = 0.7f;
        } else if (distance < 2.2f) {
            distanceFactor = 1.0f;
        } else if (distance < 4.0f) {
            distanceFactor = 1.3f;
        } else {
            distanceFactor = 1.6f;
        }

        float randomSpeedYaw = 0.85f + (float)(Math.random() * 0.3f);
        float randomSpeedPitch = 0.85f + (float)(Math.random() * 0.3f);

        float yawDeltaFactor = MathHelper.clamp(absYawDelta / 30.0f, 0.4f, 1.2f);
        float pitchDeltaFactor = MathHelper.clamp(absPitchDelta / 15.0f, 0.4f, 1.2f);

        float maxYawTurn = 22.0f * distanceFactor * yawDeltaFactor * randomSpeedYaw;
        float maxPitchTurn = 9.0f * distanceFactor * pitchDeltaFactor * randomSpeedPitch;

        float clampedYaw = MathHelper.clamp(absYawDelta, 0.8f, maxYawTurn);
        float clampedPitch = MathHelper.clamp(absPitchDelta, 0.5f, maxPitchTurn);

        if (currentTime - lastShakeUpdate > 10 + (int)(Math.random() * 20)) {

            currentShakeYaw = (float)((Math.random() - 0.5) * 1.4);
            currentShakePitch = (float)((Math.random() - 0.5) * 0.8);
            lastShakeUpdate = currentTime;
        }

        float shakeYaw = currentShakeYaw;
        float shakePitch = currentShakePitch;

        if (attack) {
            shakeYaw *= 1.3f;
            shakePitch *= 1.3f;
        }

        float lerpFactor = 0.9f + (float)(Math.random() * 0.1f);
       
        float stepYaw = (yawDelta > 0.0F ? clampedYaw : -clampedYaw) * lerpFactor;
        float stepPitch = (pitchDelta > 0.0F ? clampedPitch : -clampedPitch) * lerpFactor;

        float newYaw = this.rotate.x + stepYaw + shakeYaw;
        float newPitch = MathHelper.clamp(this.rotate.y + stepPitch + shakePitch, -80.0F, 70.0F);

        float gcd = SensUtility.getGCDValue();
        newYaw -= (newYaw - this.rotate.x) % gcd;
        newPitch -= (newPitch - this.rotate.y) % gcd;

        this.rotate = new Vector2f(newYaw, newPitch);
        this.lastYaw = clampedYaw;
        this.lastPitch = clampedPitch;
    }

    public void setSelected(LivingEntity selected) {
        this.selected = selected;
    }

    public Vector2f getRotation() {
        return this.rotate;
    }

    public void reset() {
        if (mc.player != null) {
            this.rotate = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch);
            this.lastYaw = 0;
            this.lastPitch = 0;
            this.currentMultiPointY = 0.5f;
            this.targetMultiPointY = 0.8f;
            this.currentShakeYaw = 0;
            this.currentShakePitch = 0;
        }
    }
}
Attack:
Expand Collapse Copy
    private void attack() {
        int minCPSValue = ((Float)this.minCPS.getValue()).intValue();
        int maxCPSValue = ((Float)this.maxCPS.getValue()).intValue();
        if (minCPSValue > maxCPSValue) {
            maxCPSValue = minCPSValue;
        }

        int minMS = 1000 / maxCPSValue;
        int maxMS = 1000 / minCPSValue;
        Random random = new Random();
        int randomMS = random.nextInt(maxMS - minMS + 1) + minMS;
        this.timerUtility.setLastMS(this.clickType.is("1.9") ? 500L : (long)randomMS);
        Criticals.cancelCrit = true;

        boolean wasSprinting = Minecraft.player.isSprinting();

        if (this.sprintMode.is("Grim Old")) {
            Minecraft.player.connection.sendPacket(new CEntityActionPacket(Minecraft.player, CEntityActionPacket.Action.STOP_SPRINTING));
        }

        if (this.sprintMode.is("Grim New") && wasSprinting) {
            mc.playerController.attackEntity(Minecraft.player, this.target);
            Minecraft.player.swingArm(Hand.MAIN_HAND);
            Minecraft.player.setSprinting(false);
            new Thread(() -> {
                try {
                    Thread.sleep(50L);
                } catch (InterruptedException ignored) {
                }
                mc.execute(() -> {
                    if (Minecraft.player != null) {
                        Minecraft.player.setSprinting(true);
                    }
                });
            }).start();
            return;
        }

        if (this.sprintMode.is("Legit")) {
            if (wasSprinting && !Minecraft.player.isOnGround() && !Minecraft.player.areEyesInFluid(net.minecraft.tags.FluidTags.WATER) && Minecraft.player.getMotion().y <= 0.0030162615090425808) {
                this.sprintResetTicks = 1;
                Minecraft.player.setSprinting(false);

                mc.playerController.attackEntity(Minecraft.player, this.target);
                Minecraft.player.swingArm(Hand.MAIN_HAND);

                Minecraft.player.setSprinting(true);
                return;
            }
        }

        if ((Boolean)this.alicebypass.getValue()) {
            if (wasSprinting) {
                this.isResettingSprint = true;
                Minecraft.player.setSprinting(false);
            }

            if (Niva.getInst().getModuleManager().getCriticals().isEnabled() && Criticals.canUseCriticals()) {
                Niva.getInst().getModuleManager().getCriticals().sendCrit();
            }

            mc.playerController.attackEntity(Minecraft.player, this.target);
            Minecraft.player.swingArm(Hand.MAIN_HAND);

            if (this.sprintMode.is("Grim Old")) {
                Minecraft.player.connection.sendPacket(new CEntityActionPacket(Minecraft.player, CEntityActionPacket.Action.START_SPRINTING));
            }

            if (wasSprinting) {
                (new Thread(() -> {
                    try {
                        Thread.sleep(50L);
                        this.isResettingSprint = false;
                        Minecraft.player.setSprinting(true);
                    } catch (InterruptedException var2) {
                    }

                })).start();
            }
        } else {
            if (Niva.getInst().getModuleManager().getCriticals().isEnabled() && Criticals.canUseCriticals()) {
                Niva.getInst().getModuleManager().getCriticals().sendCrit();
            }

            mc.playerController.attackEntity(Minecraft.player, this.target);
            Minecraft.player.swingArm(Hand.MAIN_HAND);

            if (this.sprintMode.is("Grim Old")) {
                Minecraft.player.connection.sendPacket(new CEntityActionPacket(Minecraft.player, CEntityActionPacket.Action.START_SPRINTING));
            }
        }

        Criticals.cancelCrit = false;
    }
PlayerController:
Expand Collapse Copy
    public void attackEntity(PlayerEntity playerIn, Entity targetEntity) {
        event.entity = targetEntity;
        Niva.getInst().getEventBus().post(event);

        this.syncCurrentPlayItem();

        AttackAura AttackAura = Niva.getInst().getModuleManager().getAttackAura();
        String sprintMode = AttackAura != null && AttackAura.isEnabled() ? AttackAura.sprintMode.getValue() : "Vanilla";

        boolean wasSprinting = mc.player.isSprinting();
        boolean needRestoreSprint = false;

        if (sprintMode.equals("Grim Old") && wasSprinting) {
            mc.player.setSprinting(false);
            mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.STOP_SPRINTING));
            needRestoreSprint = true;
        }

        if (sprintMode.equals("Grim New") && wasSprinting) {
            mc.player.setSprinting(false);
        }

        if (sprintMode.equals("Legit") && wasSprinting) {
            mc.player.setSprinting(false);
            needRestoreSprint = true;
        }

        this.connection.sendPacket(new CUseEntityPacket(targetEntity, playerIn.isSneaking()));

        if (this.currentGameType != GameType.SPECTATOR) {
            playerIn.attackTargetEntityWithCurrentItem(targetEntity);
            playerIn.resetCooldown();
        }

        if (sprintMode.equals("Grim Old") && needRestoreSprint) {
            mc.player.setSprinting(true);
            mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_SPRINTING));
        }

        if (sprintMode.equals("Legit") && needRestoreSprint) {
            mc.player.setSprinting(true);
        }

        if (sprintMode.equals("Grim New") && wasSprinting) {
            new Thread(() -> {
                try {
                    Thread.sleep(50);
                } catch (InterruptedException ignored) {
                }

                mc.execute(() -> {
                    if (mc.player != null) {
                        mc.player.setSprinting(true);
                    }
                });
            }).start();
        }
    }
 
Всем привет я делаю чит под спукитайм на базе Evaware но есть проблема
меня почему-то при ударах начинает флагать а потом спустя время банит
И я не могу понять эта сброс спринта виноват или же ротация или корреция движения не обходит пж помогите
SpookyTime Rotation:
Expand Collapse Copy
package niva.free.modules.impl.combat.Rotation;

import niva.free.utils.math.SensUtility;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.LivingEntity;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;

public class onSpookytimeV2Rotation {

    private Minecraft mc = Minecraft.getInstance();
    private Vector2f rotate = new Vector2f(0, 0);
    private LivingEntity selected;
    private float lastYaw = 0;
    private float lastPitch = 0;

    private float currentMultiPointY = 0.5f;
    private long lastPointSwitchTime = 0;
    private float targetMultiPointY = 0.8f;

    private long lastShakeUpdate = 0;
    private float currentShakeYaw = 0;
    private float currentShakePitch = 0;

    public void onSpookyV2Rotation(LivingEntity target, boolean attack, LivingEntity selectedEntity) {
        if (target == null || mc.player == null) return;

        this.selected = selectedEntity;

        long currentTime = System.currentTimeMillis();
        if (currentTime - lastPointSwitchTime > 400 + (int)(Math.random() * 400)) {
            targetMultiPointY = 0.2f + (float)(Math.random() * 0.6f);
            lastPointSwitchTime = currentTime;
        }
        currentMultiPointY = currentMultiPointY + (targetMultiPointY - currentMultiPointY) * 0.08f;

        AxisAlignedBB aabb = target.getBoundingBox();
        Vector3d eyePos = mc.player.getEyePosition(mc.getRenderPartialTicks());

        double aimX = MathHelper.clamp(eyePos.x, aabb.minX, aabb.maxX);
        double aimY = MathHelper.clamp(eyePos.y,
                aabb.minY + target.getHeight() * (currentMultiPointY - 0.1f),
                aabb.minY + target.getHeight() * (currentMultiPointY + 0.1f));
        double aimZ = MathHelper.clamp(eyePos.z, aabb.minZ, aabb.maxZ);

        Vector3d vec = new Vector3d(aimX - eyePos.x, aimY - eyePos.y, aimZ - eyePos.z).normalize();

        float targetYaw = (float) MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90.0);
        float targetPitch = (float) MathHelper.clamp(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))), -90.0F, 90.0F);

        float yawDelta = MathHelper.wrapDegrees(targetYaw - this.rotate.x);
        float pitchDelta = MathHelper.wrapDegrees(targetPitch - this.rotate.y);

        float distance = (float) mc.player.getDistance(target);
        float absYawDelta = Math.abs(yawDelta);
        float absPitchDelta = Math.abs(pitchDelta);

        float distanceFactor;
        if (distance < 0.3f) {
            distanceFactor = 0.3f;
        } else if (distance < 1.2f) {
            distanceFactor = 0.7f;
        } else if (distance < 2.2f) {
            distanceFactor = 1.0f;
        } else if (distance < 4.0f) {
            distanceFactor = 1.3f;
        } else {
            distanceFactor = 1.6f;
        }

        float randomSpeedYaw = 0.85f + (float)(Math.random() * 0.3f);
        float randomSpeedPitch = 0.85f + (float)(Math.random() * 0.3f);

        float yawDeltaFactor = MathHelper.clamp(absYawDelta / 30.0f, 0.4f, 1.2f);
        float pitchDeltaFactor = MathHelper.clamp(absPitchDelta / 15.0f, 0.4f, 1.2f);

        float maxYawTurn = 22.0f * distanceFactor * yawDeltaFactor * randomSpeedYaw;
        float maxPitchTurn = 9.0f * distanceFactor * pitchDeltaFactor * randomSpeedPitch;

        float clampedYaw = MathHelper.clamp(absYawDelta, 0.8f, maxYawTurn);
        float clampedPitch = MathHelper.clamp(absPitchDelta, 0.5f, maxPitchTurn);

        if (currentTime - lastShakeUpdate > 10 + (int)(Math.random() * 20)) {

            currentShakeYaw = (float)((Math.random() - 0.5) * 1.4);
            currentShakePitch = (float)((Math.random() - 0.5) * 0.8);
            lastShakeUpdate = currentTime;
        }

        float shakeYaw = currentShakeYaw;
        float shakePitch = currentShakePitch;

        if (attack) {
            shakeYaw *= 1.3f;
            shakePitch *= 1.3f;
        }

        float lerpFactor = 0.9f + (float)(Math.random() * 0.1f);
      
        float stepYaw = (yawDelta > 0.0F ? clampedYaw : -clampedYaw) * lerpFactor;
        float stepPitch = (pitchDelta > 0.0F ? clampedPitch : -clampedPitch) * lerpFactor;

        float newYaw = this.rotate.x + stepYaw + shakeYaw;
        float newPitch = MathHelper.clamp(this.rotate.y + stepPitch + shakePitch, -80.0F, 70.0F);

        float gcd = SensUtility.getGCDValue();
        newYaw -= (newYaw - this.rotate.x) % gcd;
        newPitch -= (newPitch - this.rotate.y) % gcd;

        this.rotate = new Vector2f(newYaw, newPitch);
        this.lastYaw = clampedYaw;
        this.lastPitch = clampedPitch;
    }

    public void setSelected(LivingEntity selected) {
        this.selected = selected;
    }

    public Vector2f getRotation() {
        return this.rotate;
    }

    public void reset() {
        if (mc.player != null) {
            this.rotate = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch);
            this.lastYaw = 0;
            this.lastPitch = 0;
            this.currentMultiPointY = 0.5f;
            this.targetMultiPointY = 0.8f;
            this.currentShakeYaw = 0;
            this.currentShakePitch = 0;
        }
    }
}
Attack:
Expand Collapse Copy
    private void attack() {
        int minCPSValue = ((Float)this.minCPS.getValue()).intValue();
        int maxCPSValue = ((Float)this.maxCPS.getValue()).intValue();
        if (minCPSValue > maxCPSValue) {
            maxCPSValue = minCPSValue;
        }

        int minMS = 1000 / maxCPSValue;
        int maxMS = 1000 / minCPSValue;
        Random random = new Random();
        int randomMS = random.nextInt(maxMS - minMS + 1) + minMS;
        this.timerUtility.setLastMS(this.clickType.is("1.9") ? 500L : (long)randomMS);
        Criticals.cancelCrit = true;

        boolean wasSprinting = Minecraft.player.isSprinting();

        if (this.sprintMode.is("Grim Old")) {
            Minecraft.player.connection.sendPacket(new CEntityActionPacket(Minecraft.player, CEntityActionPacket.Action.STOP_SPRINTING));
        }

        if (this.sprintMode.is("Grim New") && wasSprinting) {
            mc.playerController.attackEntity(Minecraft.player, this.target);
            Minecraft.player.swingArm(Hand.MAIN_HAND);
            Minecraft.player.setSprinting(false);
            new Thread(() -> {
                try {
                    Thread.sleep(50L);
                } catch (InterruptedException ignored) {
                }
                mc.execute(() -> {
                    if (Minecraft.player != null) {
                        Minecraft.player.setSprinting(true);
                    }
                });
            }).start();
            return;
        }

        if (this.sprintMode.is("Legit")) {
            if (wasSprinting && !Minecraft.player.isOnGround() && !Minecraft.player.areEyesInFluid(net.minecraft.tags.FluidTags.WATER) && Minecraft.player.getMotion().y <= 0.0030162615090425808) {
                this.sprintResetTicks = 1;
                Minecraft.player.setSprinting(false);

                mc.playerController.attackEntity(Minecraft.player, this.target);
                Minecraft.player.swingArm(Hand.MAIN_HAND);

                Minecraft.player.setSprinting(true);
                return;
            }
        }

        if ((Boolean)this.alicebypass.getValue()) {
            if (wasSprinting) {
                this.isResettingSprint = true;
                Minecraft.player.setSprinting(false);
            }

            if (Niva.getInst().getModuleManager().getCriticals().isEnabled() && Criticals.canUseCriticals()) {
                Niva.getInst().getModuleManager().getCriticals().sendCrit();
            }

            mc.playerController.attackEntity(Minecraft.player, this.target);
            Minecraft.player.swingArm(Hand.MAIN_HAND);

            if (this.sprintMode.is("Grim Old")) {
                Minecraft.player.connection.sendPacket(new CEntityActionPacket(Minecraft.player, CEntityActionPacket.Action.START_SPRINTING));
            }

            if (wasSprinting) {
                (new Thread(() -> {
                    try {
                        Thread.sleep(50L);
                        this.isResettingSprint = false;
                        Minecraft.player.setSprinting(true);
                    } catch (InterruptedException var2) {
                    }

                })).start();
            }
        } else {
            if (Niva.getInst().getModuleManager().getCriticals().isEnabled() && Criticals.canUseCriticals()) {
                Niva.getInst().getModuleManager().getCriticals().sendCrit();
            }

            mc.playerController.attackEntity(Minecraft.player, this.target);
            Minecraft.player.swingArm(Hand.MAIN_HAND);

            if (this.sprintMode.is("Grim Old")) {
                Minecraft.player.connection.sendPacket(new CEntityActionPacket(Minecraft.player, CEntityActionPacket.Action.START_SPRINTING));
            }
        }

        Criticals.cancelCrit = false;
    }
PlayerController:
Expand Collapse Copy
    public void attackEntity(PlayerEntity playerIn, Entity targetEntity) {
        event.entity = targetEntity;
        Niva.getInst().getEventBus().post(event);

        this.syncCurrentPlayItem();

        AttackAura AttackAura = Niva.getInst().getModuleManager().getAttackAura();
        String sprintMode = AttackAura != null && AttackAura.isEnabled() ? AttackAura.sprintMode.getValue() : "Vanilla";

        boolean wasSprinting = mc.player.isSprinting();
        boolean needRestoreSprint = false;

        if (sprintMode.equals("Grim Old") && wasSprinting) {
            mc.player.setSprinting(false);
            mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.STOP_SPRINTING));
            needRestoreSprint = true;
        }

        if (sprintMode.equals("Grim New") && wasSprinting) {
            mc.player.setSprinting(false);
        }

        if (sprintMode.equals("Legit") && wasSprinting) {
            mc.player.setSprinting(false);
            needRestoreSprint = true;
        }

        this.connection.sendPacket(new CUseEntityPacket(targetEntity, playerIn.isSneaking()));

        if (this.currentGameType != GameType.SPECTATOR) {
            playerIn.attackTargetEntityWithCurrentItem(targetEntity);
            playerIn.resetCooldown();
        }

        if (sprintMode.equals("Grim Old") && needRestoreSprint) {
            mc.player.setSprinting(true);
            mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_SPRINTING));
        }

        if (sprintMode.equals("Legit") && needRestoreSprint) {
            mc.player.setSprinting(true);
        }

        if (sprintMode.equals("Grim New") && wasSprinting) {
            new Thread(() -> {
                try {
                    Thread.sleep(50);
                } catch (InterruptedException ignored) {
                }

                mc.execute(() -> {
                    if (mc.player != null) {
                        mc.player.setSprinting(true);
                    }
                });
            }).start();
        }
    }
сс не робит
 
И ещё если выключить спринт также флагает и банит

Да
тогда я хз, за спуки не шарю, но значит в ротации дело. Вроде как на спуки там античиты GrimAC и MX (ML) AntiCheat
 
private void updateSpookyTime(LivingEntity target) {
if (target == null) return;
boolean elytraDuel = mc.player.isGliding();
if (!elytraDuel && System.currentTimeMillis() - lastPhysicalMoveTime > 100) {
return;
} else if (System.currentTimeMillis() - lastPhysicalMoveTime < 100) {
this.lastYaw = mc.player.getYaw();
this.lastPitch = mc.player.getPitch();
}

Vec3d point = resolveMultipoint(target, BestPoint.getPoint(target), 6);
if (elytraDuel && target.isGliding()) {
point = PredictUtils.predict(target, 3f);
}

Vec3d eyePos = mc.player.getEyePos();
double deltaX = point.x - eyePos.x;
double deltaY = point.y - eyePos.y;
double deltaZ = point.z - eyePos.z;
double distance = Math.sqrt(deltaX * deltaX + deltaZ * deltaZ);
float targetYaw = (float) (Math.toDegrees(Math.atan2(deltaZ, deltaX)) - 90.0);
float targetPitch = (float) (-Math.toDegrees(Math.atan2(deltaY, distance)));
float radius = (float) assistRadius.getValue();
var box = target.getBoundingBox();
boolean isAimed = RaytraceUtil.rayTrace(mc.player.getRotationVector(), 6, box.expand(radius, radius, radius));
float speed;
if (isAimed) {
speed = (float) assistSpeedAimed.getValue()* 0.25f;
} else if (mc.player.isGliding()) {
speed = 8f;
} else if (mc.player.isOnGround()) {
speed = (float) assistSpeedGround.getValue() * 0.25f;
} else {
speed = (float) assistSpeedAir.getValue() * 0.25f;
}

float cooldownMultiplier = (mc.player.getAttackCooldownProgress(0.5f) > 0.85f) ? 1.2f : 0.4f;
speed *= cooldownMultiplier;
if (!RaytraceUtil.rayTrace(mc.player.getRotationVector(), 6, box.expand(radius + 0.1f, radius + 0.1f, radius + 0.1f))) {
speedAcceleration += 0.0005f * cooldownMultiplier;
} else if (speedAcceleration >= -0.01f) {
speedAcceleration -= 0.0004f;
}

float smooth = Math.max(speedAcceleration, 0);
speed += smooth + (float) ((Math.random() - 0.5) * 0.02);
float yawDelta = MathHelper.wrapDegrees(targetYaw - lastYaw);
float pitchDelta = targetPitch - lastPitch;
float clampedYawDelta = MathHelper.clamp(yawDelta, -speed, speed);
float clampedPitchDelta = MathHelper.clamp(pitchDelta, -speed, speed);
float newYaw = lastYaw + clampedYawDelta;
float newPitch = MathHelper.clamp(lastPitch + clampedPitchDelta, -89.9F, 89.9F);
float gcd = GCDFixer.getGCDValue();
if (gcd > 0.0F) {
newYaw = lastYaw + (float) Math.round((newYaw - lastYaw) / gcd) * gcd;
newPitch = lastPitch + (float) Math.round((newPitch - lastPitch) / gcd) * gcd;
}

var smoothRot = new Rotation(newYaw, newPitch);
RotationComponent.update(smoothRot, 360, 360, 360, 360, 0, 1, clientLook.getValue());
this.lastYaw = smoothRot.getYaw();
this.lastPitch = smoothRot.getPitch();
}
спуки ротация у мя просто 1.21 если у тебя 1.16 Бери
 
Назад
Сверху Снизу