Розыгрыш Premium и Уникальной юзергруппы на форуме! Перейти

Обход античита Speed под HolyWorld(как в Zenith)

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
22 Май 2025
Сообщения
29
Реакции
0
Выберите загрузчик игры
  1. Прочие моды
Короче долго ломал голову как это сделать а потом меня заинтересовало что на HolyWorld можно толкать игроков (короче нельзя проходить сквозь них)
и вот так и сделал это чудо -

Пожалуйста, авторизуйтесь для просмотра ссылки.


сам обход -
Супер бупас:
Expand Collapse Copy
case "HolyWorld" -> {
                if (MoveUtils.isMoving()) {
                    AxisAlignedBB near = mc.player.getBoundingBox().grow(holyWorldDistance.get(), 0.15, holyWorldDistance.get());
                    int playersNearby = mc.world.getEntitiesWithinAABB(PlayerEntity.class, near,
                        entity -> entity != mc.player && entity.isAlive()).size();

                    if (playersNearby <= 0) return;

                    double boost = Math.max(0.0, holyWorldSpeed.get());
                    double[] dir = forward(boost);
                    mc.player.addVelocity(dir[0], 0.0, dir[1]);
                }
            }


а вот фулл ready тем пастерам что сидят на litka beta -


Супер ready бупас:
Expand Collapse Copy
package client.main.module.impl.movement;

import com.google.common.eventbus.Subscribe;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.item.ArmorStandEntity;
import net.minecraft.entity.item.BoatEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.EquipmentSlotType;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.Effects;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector3d;
import client.events.EventUpdate;
import client.main.Client;
import client.main.module.api.Category;
import client.main.module.api.Module;
import client.main.module.api.ModuleRegister;
import client.main.module.api.annotations.Rage;
import client.main.module.impl.combat.AttackAura;
import client.main.module.settings.impl.BooleanSetting;
import client.main.module.settings.impl.ModeSetting;
import client.main.module.settings.impl.SliderSetting;
import client.util.player.MoveUtils;
import org.shadowguard.launcher.enums.NativeInclude;

@ModuleRegister(name = "Speed", type = Category.Movement, desc = "Мчись, как гоночный болид!")
public class Speed extends Module {

    private ModeSetting mode = new ModeSetting("Обход", "Обычные", "Обычные","Элитра","Сатурн-Энтити","СпукиТайм дуэли","SpookyTime TEST","MetaHVH","HolyWorld");
    private SliderSetting speed = new SliderSetting("Скорость", 1.0f, 0.1f, 5.0f, 0.1f).setVisible(() -> mode.is("СпукиТайм дуэли") || mode.is("SpookyTime TEST"));
    private BooleanSetting vzhimatsya = new BooleanSetting("вжиматся", false).setVisible(() -> mode.is("СпукиТайм дуэли"));
    private BooleanSetting predikt = new BooleanSetting("предикт", false).setVisible(() -> mode.is("СпукиТайм дуэли") && vzhimatsya.get());
    private SliderSetting prediktDegree = new SliderSetting("Степень предикта", 0.5f, 0.0f, 1.0f, 0.1f).setVisible(() -> mode.is("СпукиТайм дуэли") && vzhimatsya.get() && predikt.get());

    private SliderSetting holyWorldSpeed = new SliderSetting("скорость", 0.01f, 0.01f, 0.10f, 0.01f).setVisible(() -> mode.is("HolyWorld"));
    private SliderSetting holyWorldDistance = new SliderSetting("Дистанция", 0.3f, 0.0f, 1.0f, 0.01f).setVisible(() -> mode.is("HolyWorld"));

    private boolean spookyTestBoosted = false;
    private boolean spookyTestWasColliding = false;
    private long lastBoostTime = 0;
    private float melonBallSpeed = 0.36f;

    @Override
    public boolean onDisable() {
        mc.timer.timerSpeed = 1;
        spookyTestBoosted = false;
        spookyTestWasColliding = false;
        lastBoostTime = 0;
        super.onDisable();
        return false;
    }

    public Speed() {
        addSettings(mode, speed, vzhimatsya, predikt, prediktDegree, holyWorldSpeed, holyWorldDistance);
    }

    @Subscribe
    public void onUpdate(EventUpdate e) {
        if (mc.player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem() == Items.ELYTRA) {
            return;
        }
        switch (mode.get()) {
            case "Элитра" -> {
                if(mc.player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem() == Items.ELYTRA) {
                    mc.gameSettings.keyBindJump.pressed = true;
                }

                if (!mc.player.isElytraFlying() && mc.player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem() == Items.ELYTRA && MoveUtils.isMoving()) {
                    mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
                    mc.player.startFallFlying();
                }

                if (mc.player.isOnGround() && mc.player.isElytraFlying()) {
                    if (mc.gameSettings.keyBindJump.isKeyDown()) {
                    } else {
                        mc.player.jump();
                        mc.player.motion.y = 0.25;
                    }
                }
            }
            case "Сатурн-Энтити" -> {
                AxisAlignedBB aabb = mc.player.getBoundingBox().grow(0.16f);
                int armorstans = mc.world.getEntitiesWithinAABB(ArmorStandEntity.class, aabb).size();
                boolean canBoost = armorstans > 1 || mc.world.getEntitiesWithinAABB(LivingEntity.class, aabb).size() > 1;
                if (canBoost && !mc.player.isOnGround()) {
                    mc.player.jumpMovementFactor = armorstans > 1 ? 1f / (float) armorstans : 0.12f;
                }
            }
            case "Обычные" -> {
                if (!mc.player.isOnGround()) {
                    MoveUtils.setSpeed(0.42);
                }
            }
            case "СпукиТайм дуэли" -> {
                if (MoveUtils.isMoving()) {
                    LivingEntity target = null;
                    AttackAura AttackAura = Client.getInstance().getModuleManager().getAura();
                    if (AttackAura != null && AttackAura.target() != null) {
                        target = AttackAura.target();
                    }

                    if (vzhimatsya.get() && target != null) {
                        Vector3d targetPos = target.getPositionVec();
                        Vector3d playerPos = mc.player.getPositionVec();
                        double distance = playerPos.distanceTo(targetPos);

                        boolean recentlyHurt = mc.player.hurtTime > 0 || mc.player.hurtResistantTime > 0;
                        double safetyFactor = recentlyHurt ? 0.3 : 1.0;

                        Vector3d finalTargetPos = targetPos;
                        if (predikt.get() && prediktDegree.get() > 0.0f) {
                            Vector3d targetVelocity = target.getMotion();
                            double predictionTime = 0.08 + (prediktDegree.get() * 0.15);
                            double targetSpeed = targetVelocity.length();

                            if (targetSpeed > 0.05) {
                                predictionTime *= (1.0 + targetSpeed * prediktDegree.get() * 0.8);
                            }

                            Vector3d predictedPos = targetPos.add(targetVelocity.scale(predictionTime));
                            double predictionBlend = prediktDegree.get() * safetyFactor;
                            finalTargetPos = predictedPos.scale(predictionBlend).add(targetPos.scale(1.0 - predictionBlend));
                        }

                        double boxSize = Math.min(0.6f, 0.4f + (distance < 2.0 ? 0.2f : 0.0f));
                        AxisAlignedBB expandedBox = mc.player.getBoundingBox().grow(boxSize);
                        int collisions = 0;
                        double maxCollisionBoost = 0.0;

                        for (Entity ent : mc.world.getEntitiesWithinAABB(Entity.class, expandedBox)) {
                            if (ent != mc.player && (ent instanceof LivingEntity || ent instanceof BoatEntity)
                                    && expandedBox.intersects(ent.getBoundingBox())) {
                                collisions++;
                                if (ent == target && distance > 0.3) {
                                    double collisionDistance = Math.max(0.3, distance);
                                    maxCollisionBoost = Math.min(0.4, 0.15 / collisionDistance);
                                }
                            }
                        }

                        Vector3d directionToTarget = finalTargetPos.subtract(playerPos);
                        double directionLength = directionToTarget.length();
                        if (directionLength > 0.001) {
                            directionToTarget = directionToTarget.normalize();

                            double baseBoost = speed.get() * 0.01;
                            double collisionMultiplier = Math.min(1.0 + collisions * 0.15, 1.5);
                            double boostStrength = baseBoost * collisionMultiplier * (1.0 + maxCollisionBoost) * safetyFactor;

                            if (predikt.get() && prediktDegree.get() > 0.0f) {
                                double predictionCorrection = prediktDegree.get() * 0.15 * safetyFactor;
                                boostStrength *= (1.0 + predictionCorrection);
                            }

                            boostStrength = Math.min(boostStrength, baseBoost * 1.8);

                            Vector3d boostDirection = directionToTarget.scale(boostStrength);
                            mc.player.addVelocity(boostDirection.x, 0.0, boostDirection.z);
                        }
                    } else {
                        int collisions = 0;
                        AxisAlignedBB expandedBox = mc.player.getBoundingBox().grow(0.5f);

                        for (Entity ent : mc.world.getEntitiesWithinAABB(Entity.class, expandedBox)) {
                            if (ent != mc.player && (ent instanceof LivingEntity || ent instanceof BoatEntity)
                                    && expandedBox.intersects(ent.getBoundingBox())) {
                                collisions++;
                            }
                        }

                        double[] motion = forward(speed.get() * 0.01 * collisions);
                        mc.player.addVelocity(motion[0], 0.0, motion[1]);
                    }
                }
            }
            case "SpookyTime TEST" -> {
                if (MoveUtils.isMoving()) {
                    AxisAlignedBB playerBox = mc.player.getBoundingBox();
                    boolean isColliding = false;

                    for (Entity ent : mc.world.getEntitiesWithinAABB(Entity.class, playerBox.grow(0.1f))) {
                        if (ent != mc.player && (ent instanceof LivingEntity || ent instanceof BoatEntity)
                                && playerBox.intersects(ent.getBoundingBox())) {
                            isColliding = true;
                            break;
                        }
                    }

                    if (isColliding && !spookyTestWasColliding) {
                        spookyTestBoosted = false;
                    }

                    if (isColliding && !spookyTestBoosted) {
                        int collisions = 0;
                        AxisAlignedBB expandedBox = mc.player.getBoundingBox().grow(0.5f);

                        for (Entity ent : mc.world.getEntitiesWithinAABB(Entity.class, expandedBox)) {
                            if (ent != mc.player && (ent instanceof LivingEntity || ent instanceof BoatEntity)
                                    && expandedBox.intersects(ent.getBoundingBox())) {
                                collisions++;
                            }
                        }

                        double[] motion = forward(speed.get() * 0.01 * collisions);
                        mc.player.addVelocity(motion[0], 0.0, motion[1]);
                        spookyTestBoosted = true;
                    }

                    if (!isColliding) {
                        spookyTestBoosted = false;
                    }

                    spookyTestWasColliding = isColliding;
                }
            }
            case "MetaHVH" -> {
                ItemStack offHandItem = mc.player.getHeldItemOffhand();
                EffectInstance speedEffect = mc.player.getActivePotionEffect(Effects.SPEED);
                EffectInstance deEffect = mc.player.getActivePotionEffect(Effects.SLOWNESS);
                String itemName = offHandItem.getDisplayName().getString();
                float appliedSpeed = 0.0f;
                if (speedEffect != null) {
                    if (speedEffect.getAmplifier() == 2) {
                        appliedSpeed = melonBallSpeed * 1.155f;
                        if (itemName.contains("Ломтик Дыни")) {
                            if (speedEffect.getAmplifier() == 2) {
                                appliedSpeed = 0.41755f;
                            } else {
                                appliedSpeed = 0.41755f * 0.52f;
                            }
                        }
                    } else if (speedEffect.getAmplifier() == 1) {
                        appliedSpeed = melonBallSpeed;
                    }
                } else {
                    appliedSpeed = melonBallSpeed * 0.68f;
                }
                if (deEffect != null) {
                    appliedSpeed *= 0.835f;
                }
                if (!mc.player.isOnGround()) {
                    appliedSpeed *= 1.435f;
                }
                MoveUtils.setSpeed(appliedSpeed);
            }
            case "HolyWorld" -> {
                if (MoveUtils.isMoving()) {
                    AxisAlignedBB near = mc.player.getBoundingBox().grow(holyWorldDistance.get(), 0.15, holyWorldDistance.get());
                    int playersNearby = mc.world.getEntitiesWithinAABB(PlayerEntity.class, near,
                        entity -> entity != mc.player && entity.isAlive()).size();
                    
                    if (playersNearby <= 0) return;

                    double boost = Math.max(0.0, holyWorldSpeed.get() * 100.0);
                    double[] dir = forward(boost);
                    mc.player.addVelocity(dir[0], 0.0, dir[1]);
                }
            }
        }
    }
    
    private boolean isColliding() {
        return mc.player.collidedHorizontally || mc.player.isInWater() || mc.player.isSneaking();
    }

    private double[] forward(final double d) {
        float f = mc.player.movementInput.moveForward;
        float f2 = mc.player.movementInput.moveStrafe;
        float f3 = mc.player.rotationYaw;
        if (f != 0.0f) {
            if (f2 > 0.0f) {
                f3 += ((f > 0.0f) ? -45 : 45);
            } else if (f2 < 0.0f) {
                f3 += ((f > 0.0f) ? 45 : -45);
            }
            f2 = 0.0f;
            if (f > 0.0f) {
                f = 1.0f;
            } else if (f < 0.0f) {
                f = -1.0f;
            }
        }
        final double d2 = Math.sin(Math.toRadians(f3 + 90.0f));
        final double d3 = Math.cos(Math.toRadians(f3 + 90.0f));
        final double d4 = f * d * d3 + f2 * d * d2;
        final double d5 = f * d * d2 - f2 * d * d3;
        return new double[]{d4, d5};
    }
}

в принципе доработать скорее всего можно но я хз как
 
Короче долго ломал голову как это сделать а потом меня заинтересовало что на HolyWorld можно толкать игроков (короче нельзя проходить сквозь них)
и вот так и сделал это чудо -

Пожалуйста, авторизуйтесь для просмотра ссылки.


сам обход -
Супер бупас:
Expand Collapse Copy
case "HolyWorld" -> {
                if (MoveUtils.isMoving()) {
                    AxisAlignedBB near = mc.player.getBoundingBox().grow(holyWorldDistance.get(), 0.15, holyWorldDistance.get());
                    int playersNearby = mc.world.getEntitiesWithinAABB(PlayerEntity.class, near,
                        entity -> entity != mc.player && entity.isAlive()).size();

                    if (playersNearby <= 0) return;

                    double boost = Math.max(0.0, holyWorldSpeed.get());
                    double[] dir = forward(boost);
                    mc.player.addVelocity(dir[0], 0.0, dir[1]);
                }
            }


а вот фулл ready тем пастерам что сидят на litka beta -


Супер ready бупас:
Expand Collapse Copy
package client.main.module.impl.movement;

import com.google.common.eventbus.Subscribe;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.item.ArmorStandEntity;
import net.minecraft.entity.item.BoatEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.EquipmentSlotType;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.Effects;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector3d;
import client.events.EventUpdate;
import client.main.Client;
import client.main.module.api.Category;
import client.main.module.api.Module;
import client.main.module.api.ModuleRegister;
import client.main.module.api.annotations.Rage;
import client.main.module.impl.combat.AttackAura;
import client.main.module.settings.impl.BooleanSetting;
import client.main.module.settings.impl.ModeSetting;
import client.main.module.settings.impl.SliderSetting;
import client.util.player.MoveUtils;
import org.shadowguard.launcher.enums.NativeInclude;

@ModuleRegister(name = "Speed", type = Category.Movement, desc = "Мчись, как гоночный болид!")
public class Speed extends Module {

    private ModeSetting mode = new ModeSetting("Обход", "Обычные", "Обычные","Элитра","Сатурн-Энтити","СпукиТайм дуэли","SpookyTime TEST","MetaHVH","HolyWorld");
    private SliderSetting speed = new SliderSetting("Скорость", 1.0f, 0.1f, 5.0f, 0.1f).setVisible(() -> mode.is("СпукиТайм дуэли") || mode.is("SpookyTime TEST"));
    private BooleanSetting vzhimatsya = new BooleanSetting("вжиматся", false).setVisible(() -> mode.is("СпукиТайм дуэли"));
    private BooleanSetting predikt = new BooleanSetting("предикт", false).setVisible(() -> mode.is("СпукиТайм дуэли") && vzhimatsya.get());
    private SliderSetting prediktDegree = new SliderSetting("Степень предикта", 0.5f, 0.0f, 1.0f, 0.1f).setVisible(() -> mode.is("СпукиТайм дуэли") && vzhimatsya.get() && predikt.get());

    private SliderSetting holyWorldSpeed = new SliderSetting("скорость", 0.01f, 0.01f, 0.10f, 0.01f).setVisible(() -> mode.is("HolyWorld"));
    private SliderSetting holyWorldDistance = new SliderSetting("Дистанция", 0.3f, 0.0f, 1.0f, 0.01f).setVisible(() -> mode.is("HolyWorld"));

    private boolean spookyTestBoosted = false;
    private boolean spookyTestWasColliding = false;
    private long lastBoostTime = 0;
    private float melonBallSpeed = 0.36f;

    @Override
    public boolean onDisable() {
        mc.timer.timerSpeed = 1;
        spookyTestBoosted = false;
        spookyTestWasColliding = false;
        lastBoostTime = 0;
        super.onDisable();
        return false;
    }

    public Speed() {
        addSettings(mode, speed, vzhimatsya, predikt, prediktDegree, holyWorldSpeed, holyWorldDistance);
    }

    @Subscribe
    public void onUpdate(EventUpdate e) {
        if (mc.player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem() == Items.ELYTRA) {
            return;
        }
        switch (mode.get()) {
            case "Элитра" -> {
                if(mc.player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem() == Items.ELYTRA) {
                    mc.gameSettings.keyBindJump.pressed = true;
                }

                if (!mc.player.isElytraFlying() && mc.player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem() == Items.ELYTRA && MoveUtils.isMoving()) {
                    mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
                    mc.player.startFallFlying();
                }

                if (mc.player.isOnGround() && mc.player.isElytraFlying()) {
                    if (mc.gameSettings.keyBindJump.isKeyDown()) {
                    } else {
                        mc.player.jump();
                        mc.player.motion.y = 0.25;
                    }
                }
            }
            case "Сатурн-Энтити" -> {
                AxisAlignedBB aabb = mc.player.getBoundingBox().grow(0.16f);
                int armorstans = mc.world.getEntitiesWithinAABB(ArmorStandEntity.class, aabb).size();
                boolean canBoost = armorstans > 1 || mc.world.getEntitiesWithinAABB(LivingEntity.class, aabb).size() > 1;
                if (canBoost && !mc.player.isOnGround()) {
                    mc.player.jumpMovementFactor = armorstans > 1 ? 1f / (float) armorstans : 0.12f;
                }
            }
            case "Обычные" -> {
                if (!mc.player.isOnGround()) {
                    MoveUtils.setSpeed(0.42);
                }
            }
            case "СпукиТайм дуэли" -> {
                if (MoveUtils.isMoving()) {
                    LivingEntity target = null;
                    AttackAura AttackAura = Client.getInstance().getModuleManager().getAura();
                    if (AttackAura != null && AttackAura.target() != null) {
                        target = AttackAura.target();
                    }

                    if (vzhimatsya.get() && target != null) {
                        Vector3d targetPos = target.getPositionVec();
                        Vector3d playerPos = mc.player.getPositionVec();
                        double distance = playerPos.distanceTo(targetPos);

                        boolean recentlyHurt = mc.player.hurtTime > 0 || mc.player.hurtResistantTime > 0;
                        double safetyFactor = recentlyHurt ? 0.3 : 1.0;

                        Vector3d finalTargetPos = targetPos;
                        if (predikt.get() && prediktDegree.get() > 0.0f) {
                            Vector3d targetVelocity = target.getMotion();
                            double predictionTime = 0.08 + (prediktDegree.get() * 0.15);
                            double targetSpeed = targetVelocity.length();

                            if (targetSpeed > 0.05) {
                                predictionTime *= (1.0 + targetSpeed * prediktDegree.get() * 0.8);
                            }

                            Vector3d predictedPos = targetPos.add(targetVelocity.scale(predictionTime));
                            double predictionBlend = prediktDegree.get() * safetyFactor;
                            finalTargetPos = predictedPos.scale(predictionBlend).add(targetPos.scale(1.0 - predictionBlend));
                        }

                        double boxSize = Math.min(0.6f, 0.4f + (distance < 2.0 ? 0.2f : 0.0f));
                        AxisAlignedBB expandedBox = mc.player.getBoundingBox().grow(boxSize);
                        int collisions = 0;
                        double maxCollisionBoost = 0.0;

                        for (Entity ent : mc.world.getEntitiesWithinAABB(Entity.class, expandedBox)) {
                            if (ent != mc.player && (ent instanceof LivingEntity || ent instanceof BoatEntity)
                                    && expandedBox.intersects(ent.getBoundingBox())) {
                                collisions++;
                                if (ent == target && distance > 0.3) {
                                    double collisionDistance = Math.max(0.3, distance);
                                    maxCollisionBoost = Math.min(0.4, 0.15 / collisionDistance);
                                }
                            }
                        }

                        Vector3d directionToTarget = finalTargetPos.subtract(playerPos);
                        double directionLength = directionToTarget.length();
                        if (directionLength > 0.001) {
                            directionToTarget = directionToTarget.normalize();

                            double baseBoost = speed.get() * 0.01;
                            double collisionMultiplier = Math.min(1.0 + collisions * 0.15, 1.5);
                            double boostStrength = baseBoost * collisionMultiplier * (1.0 + maxCollisionBoost) * safetyFactor;

                            if (predikt.get() && prediktDegree.get() > 0.0f) {
                                double predictionCorrection = prediktDegree.get() * 0.15 * safetyFactor;
                                boostStrength *= (1.0 + predictionCorrection);
                            }

                            boostStrength = Math.min(boostStrength, baseBoost * 1.8);

                            Vector3d boostDirection = directionToTarget.scale(boostStrength);
                            mc.player.addVelocity(boostDirection.x, 0.0, boostDirection.z);
                        }
                    } else {
                        int collisions = 0;
                        AxisAlignedBB expandedBox = mc.player.getBoundingBox().grow(0.5f);

                        for (Entity ent : mc.world.getEntitiesWithinAABB(Entity.class, expandedBox)) {
                            if (ent != mc.player && (ent instanceof LivingEntity || ent instanceof BoatEntity)
                                    && expandedBox.intersects(ent.getBoundingBox())) {
                                collisions++;
                            }
                        }

                        double[] motion = forward(speed.get() * 0.01 * collisions);
                        mc.player.addVelocity(motion[0], 0.0, motion[1]);
                    }
                }
            }
            case "SpookyTime TEST" -> {
                if (MoveUtils.isMoving()) {
                    AxisAlignedBB playerBox = mc.player.getBoundingBox();
                    boolean isColliding = false;

                    for (Entity ent : mc.world.getEntitiesWithinAABB(Entity.class, playerBox.grow(0.1f))) {
                        if (ent != mc.player && (ent instanceof LivingEntity || ent instanceof BoatEntity)
                                && playerBox.intersects(ent.getBoundingBox())) {
                            isColliding = true;
                            break;
                        }
                    }

                    if (isColliding && !spookyTestWasColliding) {
                        spookyTestBoosted = false;
                    }

                    if (isColliding && !spookyTestBoosted) {
                        int collisions = 0;
                        AxisAlignedBB expandedBox = mc.player.getBoundingBox().grow(0.5f);

                        for (Entity ent : mc.world.getEntitiesWithinAABB(Entity.class, expandedBox)) {
                            if (ent != mc.player && (ent instanceof LivingEntity || ent instanceof BoatEntity)
                                    && expandedBox.intersects(ent.getBoundingBox())) {
                                collisions++;
                            }
                        }

                        double[] motion = forward(speed.get() * 0.01 * collisions);
                        mc.player.addVelocity(motion[0], 0.0, motion[1]);
                        spookyTestBoosted = true;
                    }

                    if (!isColliding) {
                        spookyTestBoosted = false;
                    }

                    spookyTestWasColliding = isColliding;
                }
            }
            case "MetaHVH" -> {
                ItemStack offHandItem = mc.player.getHeldItemOffhand();
                EffectInstance speedEffect = mc.player.getActivePotionEffect(Effects.SPEED);
                EffectInstance deEffect = mc.player.getActivePotionEffect(Effects.SLOWNESS);
                String itemName = offHandItem.getDisplayName().getString();
                float appliedSpeed = 0.0f;
                if (speedEffect != null) {
                    if (speedEffect.getAmplifier() == 2) {
                        appliedSpeed = melonBallSpeed * 1.155f;
                        if (itemName.contains("Ломтик Дыни")) {
                            if (speedEffect.getAmplifier() == 2) {
                                appliedSpeed = 0.41755f;
                            } else {
                                appliedSpeed = 0.41755f * 0.52f;
                            }
                        }
                    } else if (speedEffect.getAmplifier() == 1) {
                        appliedSpeed = melonBallSpeed;
                    }
                } else {
                    appliedSpeed = melonBallSpeed * 0.68f;
                }
                if (deEffect != null) {
                    appliedSpeed *= 0.835f;
                }
                if (!mc.player.isOnGround()) {
                    appliedSpeed *= 1.435f;
                }
                MoveUtils.setSpeed(appliedSpeed);
            }
            case "HolyWorld" -> {
                if (MoveUtils.isMoving()) {
                    AxisAlignedBB near = mc.player.getBoundingBox().grow(holyWorldDistance.get(), 0.15, holyWorldDistance.get());
                    int playersNearby = mc.world.getEntitiesWithinAABB(PlayerEntity.class, near,
                        entity -> entity != mc.player && entity.isAlive()).size();
                   
                    if (playersNearby <= 0) return;

                    double boost = Math.max(0.0, holyWorldSpeed.get() * 100.0);
                    double[] dir = forward(boost);
                    mc.player.addVelocity(dir[0], 0.0, dir[1]);
                }
            }
        }
    }
   
    private boolean isColliding() {
        return mc.player.collidedHorizontally || mc.player.isInWater() || mc.player.isSneaking();
    }

    private double[] forward(final double d) {
        float f = mc.player.movementInput.moveForward;
        float f2 = mc.player.movementInput.moveStrafe;
        float f3 = mc.player.rotationYaw;
        if (f != 0.0f) {
            if (f2 > 0.0f) {
                f3 += ((f > 0.0f) ? -45 : 45);
            } else if (f2 < 0.0f) {
                f3 += ((f > 0.0f) ? 45 : -45);
            }
            f2 = 0.0f;
            if (f > 0.0f) {
                f = 1.0f;
            } else if (f < 0.0f) {
                f = -1.0f;
            }
        }
        final double d2 = Math.sin(Math.toRadians(f3 + 90.0f));
        final double d3 = Math.cos(Math.toRadians(f3 + 90.0f));
        final double d4 = f * d * d3 + f2 * d * d2;
        final double d5 = f * d * d2 - f2 * d * d3;
        return new double[]{d4, d5};
    }
}

в принципе доработать скорее всего можно но я хз как
Спастил с монотона Лев
 
Короче долго ломал голову как это сделать а потом меня заинтересовало что на HolyWorld можно толкать игроков (короче нельзя проходить сквозь них)
и вот так и сделал это чудо -

Пожалуйста, авторизуйтесь для просмотра ссылки.


сам обход -
Супер бупас:
Expand Collapse Copy
case "HolyWorld" -> {
                if (MoveUtils.isMoving()) {
                    AxisAlignedBB near = mc.player.getBoundingBox().grow(holyWorldDistance.get(), 0.15, holyWorldDistance.get());
                    int playersNearby = mc.world.getEntitiesWithinAABB(PlayerEntity.class, near,
                        entity -> entity != mc.player && entity.isAlive()).size();

                    if (playersNearby <= 0) return;

                    double boost = Math.max(0.0, holyWorldSpeed.get());
                    double[] dir = forward(boost);
                    mc.player.addVelocity(dir[0], 0.0, dir[1]);
                }
            }


а вот фулл ready тем пастерам что сидят на litka beta -


Супер ready бупас:
Expand Collapse Copy
package client.main.module.impl.movement;

import com.google.common.eventbus.Subscribe;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.item.ArmorStandEntity;
import net.minecraft.entity.item.BoatEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.EquipmentSlotType;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.Effects;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector3d;
import client.events.EventUpdate;
import client.main.Client;
import client.main.module.api.Category;
import client.main.module.api.Module;
import client.main.module.api.ModuleRegister;
import client.main.module.api.annotations.Rage;
import client.main.module.impl.combat.AttackAura;
import client.main.module.settings.impl.BooleanSetting;
import client.main.module.settings.impl.ModeSetting;
import client.main.module.settings.impl.SliderSetting;
import client.util.player.MoveUtils;
import org.shadowguard.launcher.enums.NativeInclude;

@ModuleRegister(name = "Speed", type = Category.Movement, desc = "Мчись, как гоночный болид!")
public class Speed extends Module {

    private ModeSetting mode = new ModeSetting("Обход", "Обычные", "Обычные","Элитра","Сатурн-Энтити","СпукиТайм дуэли","SpookyTime TEST","MetaHVH","HolyWorld");
    private SliderSetting speed = new SliderSetting("Скорость", 1.0f, 0.1f, 5.0f, 0.1f).setVisible(() -> mode.is("СпукиТайм дуэли") || mode.is("SpookyTime TEST"));
    private BooleanSetting vzhimatsya = new BooleanSetting("вжиматся", false).setVisible(() -> mode.is("СпукиТайм дуэли"));
    private BooleanSetting predikt = new BooleanSetting("предикт", false).setVisible(() -> mode.is("СпукиТайм дуэли") && vzhimatsya.get());
    private SliderSetting prediktDegree = new SliderSetting("Степень предикта", 0.5f, 0.0f, 1.0f, 0.1f).setVisible(() -> mode.is("СпукиТайм дуэли") && vzhimatsya.get() && predikt.get());

    private SliderSetting holyWorldSpeed = new SliderSetting("скорость", 0.01f, 0.01f, 0.10f, 0.01f).setVisible(() -> mode.is("HolyWorld"));
    private SliderSetting holyWorldDistance = new SliderSetting("Дистанция", 0.3f, 0.0f, 1.0f, 0.01f).setVisible(() -> mode.is("HolyWorld"));

    private boolean spookyTestBoosted = false;
    private boolean spookyTestWasColliding = false;
    private long lastBoostTime = 0;
    private float melonBallSpeed = 0.36f;

    @Override
    public boolean onDisable() {
        mc.timer.timerSpeed = 1;
        spookyTestBoosted = false;
        spookyTestWasColliding = false;
        lastBoostTime = 0;
        super.onDisable();
        return false;
    }

    public Speed() {
        addSettings(mode, speed, vzhimatsya, predikt, prediktDegree, holyWorldSpeed, holyWorldDistance);
    }

    @Subscribe
    public void onUpdate(EventUpdate e) {
        if (mc.player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem() == Items.ELYTRA) {
            return;
        }
        switch (mode.get()) {
            case "Элитра" -> {
                if(mc.player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem() == Items.ELYTRA) {
                    mc.gameSettings.keyBindJump.pressed = true;
                }

                if (!mc.player.isElytraFlying() && mc.player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem() == Items.ELYTRA && MoveUtils.isMoving()) {
                    mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
                    mc.player.startFallFlying();
                }

                if (mc.player.isOnGround() && mc.player.isElytraFlying()) {
                    if (mc.gameSettings.keyBindJump.isKeyDown()) {
                    } else {
                        mc.player.jump();
                        mc.player.motion.y = 0.25;
                    }
                }
            }
            case "Сатурн-Энтити" -> {
                AxisAlignedBB aabb = mc.player.getBoundingBox().grow(0.16f);
                int armorstans = mc.world.getEntitiesWithinAABB(ArmorStandEntity.class, aabb).size();
                boolean canBoost = armorstans > 1 || mc.world.getEntitiesWithinAABB(LivingEntity.class, aabb).size() > 1;
                if (canBoost && !mc.player.isOnGround()) {
                    mc.player.jumpMovementFactor = armorstans > 1 ? 1f / (float) armorstans : 0.12f;
                }
            }
            case "Обычные" -> {
                if (!mc.player.isOnGround()) {
                    MoveUtils.setSpeed(0.42);
                }
            }
            case "СпукиТайм дуэли" -> {
                if (MoveUtils.isMoving()) {
                    LivingEntity target = null;
                    AttackAura AttackAura = Client.getInstance().getModuleManager().getAura();
                    if (AttackAura != null && AttackAura.target() != null) {
                        target = AttackAura.target();
                    }

                    if (vzhimatsya.get() && target != null) {
                        Vector3d targetPos = target.getPositionVec();
                        Vector3d playerPos = mc.player.getPositionVec();
                        double distance = playerPos.distanceTo(targetPos);

                        boolean recentlyHurt = mc.player.hurtTime > 0 || mc.player.hurtResistantTime > 0;
                        double safetyFactor = recentlyHurt ? 0.3 : 1.0;

                        Vector3d finalTargetPos = targetPos;
                        if (predikt.get() && prediktDegree.get() > 0.0f) {
                            Vector3d targetVelocity = target.getMotion();
                            double predictionTime = 0.08 + (prediktDegree.get() * 0.15);
                            double targetSpeed = targetVelocity.length();

                            if (targetSpeed > 0.05) {
                                predictionTime *= (1.0 + targetSpeed * prediktDegree.get() * 0.8);
                            }

                            Vector3d predictedPos = targetPos.add(targetVelocity.scale(predictionTime));
                            double predictionBlend = prediktDegree.get() * safetyFactor;
                            finalTargetPos = predictedPos.scale(predictionBlend).add(targetPos.scale(1.0 - predictionBlend));
                        }

                        double boxSize = Math.min(0.6f, 0.4f + (distance < 2.0 ? 0.2f : 0.0f));
                        AxisAlignedBB expandedBox = mc.player.getBoundingBox().grow(boxSize);
                        int collisions = 0;
                        double maxCollisionBoost = 0.0;

                        for (Entity ent : mc.world.getEntitiesWithinAABB(Entity.class, expandedBox)) {
                            if (ent != mc.player && (ent instanceof LivingEntity || ent instanceof BoatEntity)
                                    && expandedBox.intersects(ent.getBoundingBox())) {
                                collisions++;
                                if (ent == target && distance > 0.3) {
                                    double collisionDistance = Math.max(0.3, distance);
                                    maxCollisionBoost = Math.min(0.4, 0.15 / collisionDistance);
                                }
                            }
                        }

                        Vector3d directionToTarget = finalTargetPos.subtract(playerPos);
                        double directionLength = directionToTarget.length();
                        if (directionLength > 0.001) {
                            directionToTarget = directionToTarget.normalize();

                            double baseBoost = speed.get() * 0.01;
                            double collisionMultiplier = Math.min(1.0 + collisions * 0.15, 1.5);
                            double boostStrength = baseBoost * collisionMultiplier * (1.0 + maxCollisionBoost) * safetyFactor;

                            if (predikt.get() && prediktDegree.get() > 0.0f) {
                                double predictionCorrection = prediktDegree.get() * 0.15 * safetyFactor;
                                boostStrength *= (1.0 + predictionCorrection);
                            }

                            boostStrength = Math.min(boostStrength, baseBoost * 1.8);

                            Vector3d boostDirection = directionToTarget.scale(boostStrength);
                            mc.player.addVelocity(boostDirection.x, 0.0, boostDirection.z);
                        }
                    } else {
                        int collisions = 0;
                        AxisAlignedBB expandedBox = mc.player.getBoundingBox().grow(0.5f);

                        for (Entity ent : mc.world.getEntitiesWithinAABB(Entity.class, expandedBox)) {
                            if (ent != mc.player && (ent instanceof LivingEntity || ent instanceof BoatEntity)
                                    && expandedBox.intersects(ent.getBoundingBox())) {
                                collisions++;
                            }
                        }

                        double[] motion = forward(speed.get() * 0.01 * collisions);
                        mc.player.addVelocity(motion[0], 0.0, motion[1]);
                    }
                }
            }
            case "SpookyTime TEST" -> {
                if (MoveUtils.isMoving()) {
                    AxisAlignedBB playerBox = mc.player.getBoundingBox();
                    boolean isColliding = false;

                    for (Entity ent : mc.world.getEntitiesWithinAABB(Entity.class, playerBox.grow(0.1f))) {
                        if (ent != mc.player && (ent instanceof LivingEntity || ent instanceof BoatEntity)
                                && playerBox.intersects(ent.getBoundingBox())) {
                            isColliding = true;
                            break;
                        }
                    }

                    if (isColliding && !spookyTestWasColliding) {
                        spookyTestBoosted = false;
                    }

                    if (isColliding && !spookyTestBoosted) {
                        int collisions = 0;
                        AxisAlignedBB expandedBox = mc.player.getBoundingBox().grow(0.5f);

                        for (Entity ent : mc.world.getEntitiesWithinAABB(Entity.class, expandedBox)) {
                            if (ent != mc.player && (ent instanceof LivingEntity || ent instanceof BoatEntity)
                                    && expandedBox.intersects(ent.getBoundingBox())) {
                                collisions++;
                            }
                        }

                        double[] motion = forward(speed.get() * 0.01 * collisions);
                        mc.player.addVelocity(motion[0], 0.0, motion[1]);
                        spookyTestBoosted = true;
                    }

                    if (!isColliding) {
                        spookyTestBoosted = false;
                    }

                    spookyTestWasColliding = isColliding;
                }
            }
            case "MetaHVH" -> {
                ItemStack offHandItem = mc.player.getHeldItemOffhand();
                EffectInstance speedEffect = mc.player.getActivePotionEffect(Effects.SPEED);
                EffectInstance deEffect = mc.player.getActivePotionEffect(Effects.SLOWNESS);
                String itemName = offHandItem.getDisplayName().getString();
                float appliedSpeed = 0.0f;
                if (speedEffect != null) {
                    if (speedEffect.getAmplifier() == 2) {
                        appliedSpeed = melonBallSpeed * 1.155f;
                        if (itemName.contains("Ломтик Дыни")) {
                            if (speedEffect.getAmplifier() == 2) {
                                appliedSpeed = 0.41755f;
                            } else {
                                appliedSpeed = 0.41755f * 0.52f;
                            }
                        }
                    } else if (speedEffect.getAmplifier() == 1) {
                        appliedSpeed = melonBallSpeed;
                    }
                } else {
                    appliedSpeed = melonBallSpeed * 0.68f;
                }
                if (deEffect != null) {
                    appliedSpeed *= 0.835f;
                }
                if (!mc.player.isOnGround()) {
                    appliedSpeed *= 1.435f;
                }
                MoveUtils.setSpeed(appliedSpeed);
            }
            case "HolyWorld" -> {
                if (MoveUtils.isMoving()) {
                    AxisAlignedBB near = mc.player.getBoundingBox().grow(holyWorldDistance.get(), 0.15, holyWorldDistance.get());
                    int playersNearby = mc.world.getEntitiesWithinAABB(PlayerEntity.class, near,
                        entity -> entity != mc.player && entity.isAlive()).size();
                   
                    if (playersNearby <= 0) return;

                    double boost = Math.max(0.0, holyWorldSpeed.get() * 100.0);
                    double[] dir = forward(boost);
                    mc.player.addVelocity(dir[0], 0.0, dir[1]);
                }
            }
        }
    }
   
    private boolean isColliding() {
        return mc.player.collidedHorizontally || mc.player.isInWater() || mc.player.isSneaking();
    }

    private double[] forward(final double d) {
        float f = mc.player.movementInput.moveForward;
        float f2 = mc.player.movementInput.moveStrafe;
        float f3 = mc.player.rotationYaw;
        if (f != 0.0f) {
            if (f2 > 0.0f) {
                f3 += ((f > 0.0f) ? -45 : 45);
            } else if (f2 < 0.0f) {
                f3 += ((f > 0.0f) ? 45 : -45);
            }
            f2 = 0.0f;
            if (f > 0.0f) {
                f = 1.0f;
            } else if (f < 0.0f) {
                f = -1.0f;
            }
        }
        final double d2 = Math.sin(Math.toRadians(f3 + 90.0f));
        final double d3 = Math.cos(Math.toRadians(f3 + 90.0f));
        final double d4 = f * d * d3 + f2 * d * d2;
        final double d5 = f * d * d2 - f2 * d * d3;
        return new double[]{d4, d5};
    }
}

в принципе доработать скорее всего можно но я хз как
уже бегу пастить в свой Neverlast)
 
Назад
Сверху Снизу