Вопрос Как сделать плавный AimAssist

Начинающий
Статус
Оффлайн
Регистрация
19 Дек 2023
Сообщения
13
Реакции[?]
0
Поинты[?]
0

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

дело в том что он дерганный, а мне надо чтобы он плавным был, но в то же время успевать за игроком, вот код:

Код:
package net.group.shadowcore.module.impl;

import com.google.common.eventbus.Subscribe;
import net.group.shadowcore.event.impl.EventUpdate;
import net.group.shadowcore.module.api.ModuleInfo;
import net.group.shadowcore.module.api.Module;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.client.MinecraftClient;
import net.minecraft.util.math.MathHelper;
import org.lwjgl.glfw.GLFW;

@ModuleInfo(name = "AimAssist", desc = "Наводится на врага в радиусе 3-х блоков")
public class AimAssist extends Module {

    private final MinecraftClient mc = MinecraftClient.getInstance();

    // Параметры скорости и плавности
    private static final float SMOOTHNESS = 0.1f;
    private static final float MAX_ROTATION_SPEED = 360.0f;
    private static final double MAX_DISTANCE = 3.0;

    public AimAssist() {
        setKey(GLFW.GLFW_KEY_V);
    }

    @Override
    public void onEnable() {
        super.onEnable();
    }

    @Override
    public void onDisable() {
        super.onDisable();
    }

    @Override
    public void onTick() {

    }

    @Override
    public void onRender2D(MatrixStack matrices) {

    }

    @Subscribe
    public void onUpdate(EventUpdate e) {
        if (mc.player == null || mc.world == null) return;

        PlayerEntity target = getTarget();
        if (target != null) {
            double deltaX = target.getX() - mc.player.getX();
            double deltaY = (target.getY() + target.getHeight() / 2.0) - (mc.player.getY() + mc.player.getEyeHeight(mc.player.getPose()));
            double deltaZ = target.getZ() - mc.player.getZ();

            // Вычисляем углы для поворота
            float targetYaw = (float) MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(deltaZ, deltaX)) - 90.0f);
            float targetPitch = (float) -Math.toDegrees(Math.atan2(deltaY, Math.sqrt(deltaX * deltaX + deltaZ * deltaZ)));

            mc.player.yaw = smoothTurn(mc.player.yaw, targetYaw, SMOOTHNESS, MAX_ROTATION_SPEED);
            mc.player.pitch = smoothTurn(mc.player.pitch, targetPitch, SMOOTHNESS, MAX_ROTATION_SPEED);
        }
    }

    private float smoothTurn(float current, float target, float smoothness, float maxSpeed) {
        float delta = MathHelper.wrapDegrees(target - current);

        float speed = Math.min(Math.abs(delta) / smoothness, maxSpeed);

        if (delta > 4000) {
            return current + Math.min(delta, speed);
        } else {
            return current + Math.max(delta, -speed);
        }
    }

    private PlayerEntity getTarget() {
        PlayerEntity closestTarget = null;
        double closestDistance = Double.MAX_VALUE;
        double lowestHealth = Double.MAX_VALUE;

        for (PlayerEntity entity : mc.world.getPlayers()) {
            if (entity != mc.player && !entity.isDead() && mc.player.canSee(entity)) {
                double distance = mc.player.squaredDistanceTo(entity);
                if (distance <= MAX_DISTANCE * MAX_DISTANCE) {
                    if (entity.getHealth() < lowestHealth) {
                        closestTarget = entity;
                        lowestHealth = entity.getHealth();
                        closestDistance = distance;
                    }
                }
            }
        }

        return closestTarget;
    }
}
 
PoC Life
Пользователь
Статус
Оффлайн
Регистрация
22 Авг 2022
Сообщения
342
Реакции[?]
48
Поинты[?]
38K
дело в том что он дерганный, а мне надо чтобы он плавным был
мусор ответ, при смутнесе у него меняется скорость
Math.abs(delta) / smoothness
ну можно на * поменять, а так по его коду ответ правильный
 
Начинающий
Статус
Оффлайн
Регистрация
8 Авг 2024
Сообщения
243
Реакции[?]
0
Поинты[?]
0
если увеличить плавность, то скорость станет намного меньше, может быть это можно исправить в рендерах всяких, потому что я эту ауру делал месяц и так и не получилось
 
Сверху Снизу