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

Вопрос Помогите пж AimAssist-AimBot

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
18 Окт 2025
Сообщения
28
Реакции
0
Короче писал авто наводку на 1.21 наводила только ротацию попросил ии она сделала прицел вроде все норм было вчера сегодня захожу опять работает токо ротация просил ии код вроде тот а не работает короче вот

Java:
Expand Collapse Copy
package tech.javelin.client.modules.impl.combat;

import com.darkmagician6.eventapi.EventTarget;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.gl.ShaderProgramKeys;
import net.minecraft.client.render.*;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.decoration.ArmorStandEntity;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import org.joml.Matrix4f;
import org.joml.Vector4d;
import tech.javelin.base.events.impl.player.EventUpdate;
import tech.javelin.base.events.impl.render.EventRender2D;
import tech.javelin.client.modules.api.Category;
import tech.javelin.client.modules.api.Module;
import tech.javelin.client.modules.api.ModuleAnnotation;
import tech.javelin.client.modules.api.setting.impl.BooleanSetting;
import tech.javelin.client.modules.api.setting.impl.ColorSetting;
import tech.javelin.client.modules.api.setting.impl.NumberSetting;
import tech.javelin.utility.math.ProjectionUtil;
import tech.javelin.utility.render.display.base.color.ColorRGBA;

@ModuleAnnotation(
        name = "AimAssist",
        category = Category.COMBAT,
        description = "Аим срабатывает при касании кругом хитбокса"
)
public class AimAssist extends Module {
    public static final AimAssist INSTANCE = new AimAssist();

    public final BooleanSetting player = new BooleanSetting("Игроки", true);
    public final BooleanSetting onlyAttack = new BooleanSetting("Только при атаке", true);
    public final NumberSetting speed = new NumberSetting("Скорость", 0.4f, 0.02f, 2.0f, 0.02f);
    public final NumberSetting range = new NumberSetting("Дальность", 4.5f, 2.0f, 8.0f, 0.1f);

    public final NumberSetting fov = new NumberSetting("FOV", 100.0f, 10.0f, 500.0f, 5.0f);
    public final BooleanSetting drawFov = new BooleanSetting("Рисовать FOV", true);
    public final NumberSetting points = new NumberSetting("Точек круга", 30.0f, 3.0f, 100.0f, 1.0f);
    public final NumberSetting thickness = new NumberSetting("Толщина", 2.0f, 1.0f, 10.0f, 0.5f);
    public final ColorSetting fovColor = new ColorSetting("Цвет FOV", new ColorRGBA(255, 255, 255, 255));

    public LivingEntity target;

    public AimAssist() {
        getSettings().add(player);
        getSettings().add(onlyAttack);
        getSettings().add(speed);
        getSettings().add(range);
        getSettings().add(fov);
        getSettings().add(drawFov);
        getSettings().add(points);
        getSettings().add(thickness);
        getSettings().add(fovColor);
    }

    @EventTarget
    public void onUpdate(EventUpdate eventUpdate) {
        if (mc.player == null) return;
        updateTarget();

        boolean isAttacking = !onlyAttack.isEnabled() || mc.options.attackKey.isPressed();

        if (isAttacking && target != null && isValidTarget(target)) {
            Vec3d targetPos = target.getPos().add(0, MathHelper.clamp(mc.player.getEyePos().y - target.getY(), 0.5, target.getHeight() * 0.8), 0);
            Vec3d vec = targetPos.subtract(mc.player.getEyePos()).normalize();
            float targetYaw = (float) Math.toDegrees(Math.atan2(-vec.x, vec.z));
            float currentYaw = mc.player.getYaw();
            mc.player.setYaw(applyGCD(currentYaw + MathHelper.wrapDegrees(targetYaw - currentYaw) * (speed.getCurrent() * 0.5f), currentYaw));
        }
    }

    @EventTarget
    public void onRender2D(EventRender2D e) {
        if (mc.player == null || !drawFov.isEnabled()) return;

        MatrixStack ms = e.getContext().getMatrices();
        float cx = (float) mc.getWindow().getScaledWidth() / 2f;
        float cy = (float) mc.getWindow().getScaledHeight() / 2f;
        float baseRadius = fov.getCurrent();
        float thick = thickness.getCurrent();

        ColorRGBA color = fovColor.getColor();
        int segments = (int) points.getCurrent();

        // Настройка рендера для максимальной яркости
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();
        RenderSystem.setShader(ShaderProgramKeys.POSITION_COLOR);
        RenderSystem.disableDepthTest();

        Tessellator tess = Tessellator.getInstance();
        Matrix4f mat = ms.peek().getPositionMatrix();

        // Рисуем круг. Для жирности используем очень плотный шаг смещения
        for (float j = 0; j < thick; j += 0.2f) {
            float r = baseRadius + (j - thick / 2f);
            BufferBuilder buffer = tess.begin(VertexFormat.DrawMode.DEBUG_LINE_STRIP, VertexFormats.POSITION_COLOR);

            for (int i = 0; i <= segments; i++) {
                double angle = i * (Math.PI * 2) / segments;
                // vertex(mat, x, y, z)
                buffer.vertex(mat, cx + (float)(Math.cos(angle) * r), cy + (float)(Math.sin(angle) * r), 0)
                        .color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha());
            }
            BufferRenderer.drawWithGlobalProgram(buffer.end());
        }

        RenderSystem.enableDepthTest();
        RenderSystem.disableBlend();
    }

    private void updateTarget() {
        LivingEntity bestTarget = null;
        double minDistanceToCircle = Double.MAX_VALUE;

        float cx = (float) mc.getWindow().getScaledWidth() / 2f;
        float cy = (float) mc.getWindow().getScaledHeight() / 2f;
        float fovRadius = fov.getCurrent();

        for (Entity entity : mc.world.getEntities()) {
            if (!(entity instanceof LivingEntity living) || !isValidTarget(living)) continue;

            // Используем твой утилитный класс ProjectionUtil для получения 2D координат
            Vector4d rect = ProjectionUtil.getVector4D(living);
            if (rect == null) continue;

            // Логика "касания" кругом хитбокса
            double closestX = MathHelper.clamp(cx, rect.x, rect.z);
            double closestY = MathHelper.clamp(cy, rect.y, rect.w);

            double diffX = cx - closestX;
            double diffY = cy - closestY;
            double dist = Math.sqrt(diffX * diffX + diffY * diffY);

            if (dist <= fovRadius) {
                if (dist < minDistanceToCircle) {
                    minDistanceToCircle = dist;
                    bestTarget = living;
                }
            }
        }
        target = bestTarget;
    }

    private boolean isValidTarget(LivingEntity entity) {
        if (entity == null || entity == mc.player || !entity.isAlive() || entity instanceof ArmorStandEntity) return false;
        return mc.player.distanceTo(entity) <= range.getCurrent() && mc.player.canSee(entity);
    }

    private float applyGCD(float targetYaw, float currentYaw) {
        float f = mc.options.getMouseSensitivity().getValue().floatValue() * 0.6F + 0.2F;
        float gcd = f * f * f * 8.0F * 0.15F;
        return currentYaw + Math.round((targetYaw - currentYaw) / gcd) * gcd;
    }

    @Override
    public void onEnable() { target = null; super.onEnable(); }
}
 
Последнее редактирование:
Короче писал авто наводку на 1.21 наводила только ротацию попросил ии она сделала прицел вроде все норм было вчера сегодня захожу опять работает токо ротация просил ии код вроде тот а не работает короче вот

Java:
Expand Collapse Copy
package tech.javelin.client.modules.impl.combat;

import com.darkmagician6.eventapi.EventTarget;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.gl.ShaderProgramKeys;
import net.minecraft.client.render.*;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.decoration.ArmorStandEntity;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import org.joml.Matrix4f;
import org.joml.Vector4d;
import tech.javelin.base.events.impl.player.EventUpdate;
import tech.javelin.base.events.impl.render.EventRender2D;
import tech.javelin.client.modules.api.Category;
import tech.javelin.client.modules.api.Module;
import tech.javelin.client.modules.api.ModuleAnnotation;
import tech.javelin.client.modules.api.setting.impl.BooleanSetting;
import tech.javelin.client.modules.api.setting.impl.ColorSetting;
import tech.javelin.client.modules.api.setting.impl.NumberSetting;
import tech.javelin.utility.math.ProjectionUtil;
import tech.javelin.utility.render.display.base.color.ColorRGBA;

@ModuleAnnotation(
        name = "AimAssist",
        category = Category.COMBAT,
        description = "Аим срабатывает при касании кругом хитбокса"
)
public class AimAssist extends Module {
    public static final AimAssist INSTANCE = new AimAssist();

    public final BooleanSetting player = new BooleanSetting("Игроки", true);
    public final BooleanSetting onlyAttack = new BooleanSetting("Только при атаке", true);
    public final NumberSetting speed = new NumberSetting("Скорость", 0.4f, 0.02f, 2.0f, 0.02f);
    public final NumberSetting range = new NumberSetting("Дальность", 4.5f, 2.0f, 8.0f, 0.1f);

    public final NumberSetting fov = new NumberSetting("FOV", 100.0f, 10.0f, 500.0f, 5.0f);
    public final BooleanSetting drawFov = new BooleanSetting("Рисовать FOV", true);
    public final NumberSetting points = new NumberSetting("Точек круга", 30.0f, 3.0f, 100.0f, 1.0f);
    public final NumberSetting thickness = new NumberSetting("Толщина", 2.0f, 1.0f, 10.0f, 0.5f);
    public final ColorSetting fovColor = new ColorSetting("Цвет FOV", new ColorRGBA(255, 255, 255, 255));

    public LivingEntity target;

    public AimAssist() {
        getSettings().add(player);
        getSettings().add(onlyAttack);
        getSettings().add(speed);
        getSettings().add(range);
        getSettings().add(fov);
        getSettings().add(drawFov);
        getSettings().add(points);
        getSettings().add(thickness);
        getSettings().add(fovColor);
    }

    @EventTarget
    public void onUpdate(EventUpdate eventUpdate) {
        if (mc.player == null) return;
        updateTarget();

        boolean isAttacking = !onlyAttack.isEnabled() || mc.options.attackKey.isPressed();

        if (isAttacking && target != null && isValidTarget(target)) {
            Vec3d targetPos = target.getPos().add(0, MathHelper.clamp(mc.player.getEyePos().y - target.getY(), 0.5, target.getHeight() * 0.8), 0);
            Vec3d vec = targetPos.subtract(mc.player.getEyePos()).normalize();
            float targetYaw = (float) Math.toDegrees(Math.atan2(-vec.x, vec.z));
            float currentYaw = mc.player.getYaw();
            mc.player.setYaw(applyGCD(currentYaw + MathHelper.wrapDegrees(targetYaw - currentYaw) * (speed.getCurrent() * 0.5f), currentYaw));
        }
    }

    @EventTarget
    public void onRender2D(EventRender2D e) {
        if (mc.player == null || !drawFov.isEnabled()) return;

        MatrixStack ms = e.getContext().getMatrices();
        float cx = (float) mc.getWindow().getScaledWidth() / 2f;
        float cy = (float) mc.getWindow().getScaledHeight() / 2f;
        float baseRadius = fov.getCurrent();
        float thick = thickness.getCurrent();

        ColorRGBA color = fovColor.getColor();
        int segments = (int) points.getCurrent();

        // Настройка рендера для максимальной яркости
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();
        RenderSystem.setShader(ShaderProgramKeys.POSITION_COLOR);
        RenderSystem.disableDepthTest();

        Tessellator tess = Tessellator.getInstance();
        Matrix4f mat = ms.peek().getPositionMatrix();

        // Рисуем круг. Для жирности используем очень плотный шаг смещения
        for (float j = 0; j < thick; j += 0.2f) {
            float r = baseRadius + (j - thick / 2f);
            BufferBuilder buffer = tess.begin(VertexFormat.DrawMode.DEBUG_LINE_STRIP, VertexFormats.POSITION_COLOR);

            for (int i = 0; i <= segments; i++) {
                double angle = i * (Math.PI * 2) / segments;
                // vertex(mat, x, y, z)
                buffer.vertex(mat, cx + (float)(Math.cos(angle) * r), cy + (float)(Math.sin(angle) * r), 0)
                        .color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha());
            }
            BufferRenderer.drawWithGlobalProgram(buffer.end());
        }

        RenderSystem.enableDepthTest();
        RenderSystem.disableBlend();
    }

    private void updateTarget() {
        LivingEntity bestTarget = null;
        double minDistanceToCircle = Double.MAX_VALUE;

        float cx = (float) mc.getWindow().getScaledWidth() / 2f;
        float cy = (float) mc.getWindow().getScaledHeight() / 2f;
        float fovRadius = fov.getCurrent();

        for (Entity entity : mc.world.getEntities()) {
            if (!(entity instanceof LivingEntity living) || !isValidTarget(living)) continue;

            // Используем твой утилитный класс ProjectionUtil для получения 2D координат
            Vector4d rect = ProjectionUtil.getVector4D(living);
            if (rect == null) continue;

            // Логика "касания" кругом хитбокса
            double closestX = MathHelper.clamp(cx, rect.x, rect.z);
            double closestY = MathHelper.clamp(cy, rect.y, rect.w);

            double diffX = cx - closestX;
            double diffY = cy - closestY;
            double dist = Math.sqrt(diffX * diffX + diffY * diffY);

            if (dist <= fovRadius) {
                if (dist < minDistanceToCircle) {
                    minDistanceToCircle = dist;
                    bestTarget = living;
                }
            }
        }
        target = bestTarget;
    }

    private boolean isValidTarget(LivingEntity entity) {
        if (entity == null || entity == mc.player || !entity.isAlive() || entity instanceof ArmorStandEntity) return false;
        return mc.player.distanceTo(entity) <= range.getCurrent() && mc.player.canSee(entity);
    }

    private float applyGCD(float targetYaw, float currentYaw) {
        float f = mc.options.getMouseSensitivity().getValue().floatValue() * 0.6F + 0.2F;
        float gcd = f * f * f * 8.0F * 0.15F;
        return currentYaw + Math.round((targetYaw - currentYaw) / gcd) * gcd;
    }

    @Override
    public void onEnable() { target = null; super.onEnable(); }
}
понятно почему ии не понимает что делать, ты нормально проблему описать не можешь
 
можешь подробно обьяснить что ты хочешь?
Сайлент аим
понятно почему ии не понимает что делать, ты нормально проблему описать не
ну фов косается хитбокса игрока и аим наводится
 
Назад
Сверху Снизу