Вопрос Как сделать интерполяцию в AimAssist?

  • Автор темы Автор темы ez2ex
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
19 Дек 2023
Сообщения
85
Реакции
1

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

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

Спасибо!

Код:
Expand Collapse Copy
package omg.sticky.module.impl;

import com.google.common.collect.Lists;
import com.google.common.eventbus.Subscribe;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec2f;
import omg.sticky.event.impl.EventUpdate;
import omg.sticky.module.api.Module;
import omg.sticky.module.api.ModuleInfo;

import java.util.Comparator;
import java.util.List;

@ModuleInfo(name = "Aim Assist", desc = "Наводится на игроков")
public class AimBot extends Module {

    private PlayerEntity target;
    private Vec2f targetRotation = new Vec2f(0, 0);
    private Vec2f currentRotation = new Vec2f(0, 0);
    private final float rotationSpeed = 5.0f;

    @Subscribe
    public void onUpdate(EventUpdate e) {
        updateTarget();

        if (target != null) {
            updateRotation();

            float smoothYaw = smoothRotation(currentRotation.x, targetRotation.x, rotationSpeed);
            float smoothPitch = smoothRotation(currentRotation.y, targetRotation.y, rotationSpeed);

            currentRotation = new Vec2f(smoothYaw, smoothPitch);

            mc.player.yaw = currentRotation.x;
            mc.player.pitch = currentRotation.y;
        }
    }

    private void updateTarget() {
        List<PlayerEntity> players = Lists.newArrayList();

        for (PlayerEntity player : mc.world.getPlayers()) {
            if (canBeHit(player))
                players.add(player);
        }

        if (players.isEmpty()) {
            target = null;
            return;
        }
        if (players.size() == 1) {
            target = players.get(0);
            return;
        }
        players.sort(Comparator.comparingDouble(player -> mc.player.distanceTo(player)));
        target = players.get(0);
    }

    private void updateRotation() {
        double deltaX = target.getX() - mc.player.getX();
        double deltaY = target.getEyeY() - mc.player.getEyeY();
        double deltaZ = target.getZ() - mc.player.getZ();

        double distance = MathHelper.sqrt(deltaX * deltaX + deltaZ * deltaZ);
        float yaw = (float) (MathHelper.atan2(deltaZ, deltaX) * (180 / Math.PI) - 90);
        float pitch = (float) -(MathHelper.atan2(deltaY, distance) * (180 / Math.PI));

        targetRotation = new Vec2f(yaw, pitch);
    }

    private float smoothRotation(float current, float target, float speed) {
        float delta = MathHelper.wrapDegrees(target - current);
        return current + MathHelper.clamp(delta, -speed, speed);
    }

    private boolean canBeHit(PlayerEntity player) {
        if (player == mc.player) return false;

        if (player.getHealth() == 0 || !player.isAlive())
            return false;

        if (mc.player.distanceTo(player) > 3) return false;

        return true;
    }
}
 
какую нахуй интерпретацию, ты знаешь че эт ваще?
 
Код:
Expand Collapse Copy
package omg.sticky.module.impl;

import com.google.common.collect.Lists;
import com.google.common.eventbus.Subscribe;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec2f;
import omg.sticky.event.impl.EventUpdate;
import omg.sticky.module.api.Module;
import omg.sticky.module.api.ModuleInfo;

import java.util.Comparator;
import java.util.List;

@ModuleInfo(name = "Aim Assist", desc = "Наводится на игроков")
public class AimBot extends Module {

    private PlayerEntity target;
    private Vec2f targetRotation = new Vec2f(0, 0);
    private Vec2f currentRotation = new Vec2f(0, 0);
    private final float rotationSpeed = 5.0f;

    @Subscribe
    public void onUpdate(EventUpdate e) {
        updateTarget();

        if (target != null) {
            updateRotation();

            float smoothYaw = smoothRotation(currentRotation.x, targetRotation.x, rotationSpeed);
            float smoothPitch = smoothRotation(currentRotation.y, targetRotation.y, rotationSpeed);

            currentRotation = new Vec2f(smoothYaw, smoothPitch);

            mc.player.yaw = currentRotation.x;
            mc.player.pitch = currentRotation.y;
        }
    }

    private void updateTarget() {
        List<PlayerEntity> players = Lists.newArrayList();

        for (PlayerEntity player : mc.world.getPlayers()) {
            if (canBeHit(player))
                players.add(player);
        }

        if (players.isEmpty()) {
            target = null;
            return;
        }
        if (players.size() == 1) {
            target = players.get(0);
            return;
        }
        players.sort(Comparator.comparingDouble(player -> mc.player.distanceTo(player)));
        target = players.get(0);
    }

    private void updateRotation() {
        double deltaX = target.getX() - mc.player.getX();
        double deltaY = target.getEyeY() - mc.player.getEyeY();
        double deltaZ = target.getZ() - mc.player.getZ();

        double distance = MathHelper.sqrt(deltaX * deltaX + deltaZ * deltaZ);
        float yaw = (float) (MathHelper.atan2(deltaZ, deltaX) * (180 / Math.PI) - 90);
        float pitch = (float) -(MathHelper.atan2(deltaY, distance) * (180 / Math.PI));

        targetRotation = new Vec2f(yaw, pitch);
    }

    private float smoothRotation(float current, float target, float speed) {
        float delta = MathHelper.wrapDegrees(target - current);
        return current + MathHelper.clamp(delta, -speed, speed);
    }

    private boolean canBeHit(PlayerEntity player) {
        if (player == mc.player) return false;

        if (player.getHealth() == 0 || !player.isAlive())
            return false;

        if (mc.player.distanceTo(player) > 3) return false;

        return true;
    }
}
Ты хотя бы гиперболу выучи, прежде чем к такому идти :bayan: :roflanBuldiga: :stupid:
 
интерполяция это если что не Java, это в общем математика, у тебя по ней, как я вижу, двойка
 
интерполяция это если что не Java, это в общем математика, у тебя по ней, как я вижу, двойка
зачем сразу нагонять? я тип ваще в душе не ебу, но тебе ли знать что у меня по математике двойка?
 
Назад
Сверху Снизу