Часть функционала Простенькая Aura | 1.21.4 Fabric

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
15 Июн 2025
Сообщения
203
Реакции
1
Выберите загрузчик игры
  1. Fabric

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

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

Спасибо!

простая заготовка под ауру на 1.21.4 фабрик
думаю для новичков на фабрике как раз подойдёт


паста:
Expand Collapse Copy
public class Aura extends Function {

    private final SliderSetting attackRange = new SliderSetting("Дистанция атаки", 3f, 3f, 6.5f, 0.1f);
    private final ModeSetting rotationMode = new ModeSetting("Ротация", "Snap", "Snap");
    private final ModeListSetting attack = new ModeListSetting("Атака",
            new BooleanSetting("Сброс спринта", true),
            new BooleanSetting("Только криты", true),
            new BooleanSetting("Бить через блоки", false)
    );
    
    @Getter private static LivingEntity target;
    private Vector2f headVector = new Vector2f(0f, 0f);
    private final StopWatch stopWatch = new StopWatch();
    private boolean isRotated = false;
    private boolean readyToRotate = false;
    private float ticks = 0;
    
    public Aura() {
        addSettings(attackRange, rotationMode, attack);
    }

    @Override
    public void onEnable() {
        target = null;
        if (mc.player != null)
            headVector.set(mc.player.getPitch(), mc.player.getYaw());
        stopWatch.setLastMS(0);
    }

    @Override
    public void onDisable() {
        target = null;
        if (mc.player != null)
            headVector.set(mc.player.getPitch(), mc.player.getYaw());
        stopWatch.setLastMS(0);
    }

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

        updateTarget();

        if (target == null) {
            reset();
            return;
        }

        isRotated = false;

        if (stopWatch.hasTimeElapsed()) {
            readyToRotate = true;
            ticks = 2.0f;
            stopWatch.reset();
        }

        if (rotationMode.is("Snap") && ticks > 0) {
            rotationSnap();
            ticks--;
        } else {
            reset();
        }

        updateAttack();
    }

    private void updateTarget() {
        target = mc.world.getEntitiesByClass(LivingEntity.class, mc.player.getBoundingBox().expand(attackRange.get()), e -> isValid(e))
                          .stream().min(Comparator.comparingDouble(e -> mc.player.distanceTo(e))).orElse(null);
    }

    private boolean isValid(LivingEntity e) {
        if (e == mc.player || !e.isAlive() || e.isInvulnerable() || e.age < 3) return false;
        double d = mc.player.distanceTo(e);
        if (d > attackRange.get()) return false;
        if (e instanceof PlayerEntity || e instanceof Monster || e instanceof HostileEntity) {
            if (e instanceof PlayerEntity && !attack.getByName("Бить через блоки").get() && !canSee(e)) return false;
            return true;
        }
        return false;
    }

    private boolean canSee(Entity e) {
        return mc.world.raycast(new RaycastContext(mc.player.getEyePos(), e.getEyePos(),
                RaycastContext.ShapeType.COLLIDER, RaycastContext.FluidHandling.NONE, mc.player))
            .getType() == BlockHitResult.Type.MISS;
    }

    private void rotationSnap() {
        if (target == null) return;
        isRotated = true;
        Vec3d vec = target.getEyePos().subtract(mc.player.getEyePos());
        float yaw = (float)(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90f);
        float pitch = (float)(-Math.toDegrees(Math.atan2(vec.y, Math.sqrt(vec.x * vec.x + vec.z * vec.z))));
        headVector.set(MathHelper.clamp(pitch, -89.5f, 89.5f), MathHelper.wrapDegrees(yaw));
        mc.player.setPitch(headVector.x);
        mc.player.setYaw(headVector.y);
    }

    private void updateAttack() {
        if (target == null) return;
        if (mc.player.getAttackCooldownProgress(0f) < 0.95f) return;
        double dist = mc.player.distanceTo(target);
        if (dist > attackRange.get()) return;
        if (attack.getByName("Только криты").get() && !isFalling) return;

        if (attack.getByName("Сброс спринта").get())
            mc.player.setSprinting(false);

        mc.interactionManager.attackEntity(mc.player, target);
        mc.player.swingHand(Hand.MAIN_HAND);
        stopWatch.setLastMS(500);
    }

    private boolean isFalling() {
        return mc.player.velocity.y < 0;
    }

    private void reset() {
        if (mc.player != null)
            headVector.set(mc.player.getPitch(), mc.player.getYaw());
    }
}

ss не нужен
 
ебать прикормка
 
спосибо, спастив:roflanBuldiga:
 
простая заготовка под ауру на 1.21.4 фабрик
думаю для новичков на фабрике как раз подойдёт


паста:
Expand Collapse Copy
public class Aura extends Function {

    private final SliderSetting attackRange = new SliderSetting("Дистанция атаки", 3f, 3f, 6.5f, 0.1f);
    private final ModeSetting rotationMode = new ModeSetting("Ротация", "Snap", "Snap");
    private final ModeListSetting attack = new ModeListSetting("Атака",
            new BooleanSetting("Сброс спринта", true),
            new BooleanSetting("Только криты", true),
            new BooleanSetting("Бить через блоки", false)
    );
   
    @Getter private static LivingEntity target;
    private Vector2f headVector = new Vector2f(0f, 0f);
    private final StopWatch stopWatch = new StopWatch();
    private boolean isRotated = false;
    private boolean readyToRotate = false;
    private float ticks = 0;
   
    public Aura() {
        addSettings(attackRange, rotationMode, attack);
    }

    @Override
    public void onEnable() {
        target = null;
        if (mc.player != null)
            headVector.set(mc.player.getPitch(), mc.player.getYaw());
        stopWatch.setLastMS(0);
    }

    @Override
    public void onDisable() {
        target = null;
        if (mc.player != null)
            headVector.set(mc.player.getPitch(), mc.player.getYaw());
        stopWatch.setLastMS(0);
    }

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

        updateTarget();

        if (target == null) {
            reset();
            return;
        }

        isRotated = false;

        if (stopWatch.hasTimeElapsed()) {
            readyToRotate = true;
            ticks = 2.0f;
            stopWatch.reset();
        }

        if (rotationMode.is("Snap") && ticks > 0) {
            rotationSnap();
            ticks--;
        } else {
            reset();
        }

        updateAttack();
    }

    private void updateTarget() {
        target = mc.world.getEntitiesByClass(LivingEntity.class, mc.player.getBoundingBox().expand(attackRange.get()), e -> isValid(e))
                          .stream().min(Comparator.comparingDouble(e -> mc.player.distanceTo(e))).orElse(null);
    }

    private boolean isValid(LivingEntity e) {
        if (e == mc.player || !e.isAlive() || e.isInvulnerable() || e.age < 3) return false;
        double d = mc.player.distanceTo(e);
        if (d > attackRange.get()) return false;
        if (e instanceof PlayerEntity || e instanceof Monster || e instanceof HostileEntity) {
            if (e instanceof PlayerEntity && !attack.getByName("Бить через блоки").get() && !canSee(e)) return false;
            return true;
        }
        return false;
    }

    private boolean canSee(Entity e) {
        return mc.world.raycast(new RaycastContext(mc.player.getEyePos(), e.getEyePos(),
                RaycastContext.ShapeType.COLLIDER, RaycastContext.FluidHandling.NONE, mc.player))
            .getType() == BlockHitResult.Type.MISS;
    }

    private void rotationSnap() {
        if (target == null) return;
        isRotated = true;
        Vec3d vec = target.getEyePos().subtract(mc.player.getEyePos());
        float yaw = (float)(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90f);
        float pitch = (float)(-Math.toDegrees(Math.atan2(vec.y, Math.sqrt(vec.x * vec.x + vec.z * vec.z))));
        headVector.set(MathHelper.clamp(pitch, -89.5f, 89.5f), MathHelper.wrapDegrees(yaw));
        mc.player.setPitch(headVector.x);
        mc.player.setYaw(headVector.y);
    }

    private void updateAttack() {
        if (target == null) return;
        if (mc.player.getAttackCooldownProgress(0f) < 0.95f) return;
        double dist = mc.player.distanceTo(target);
        if (dist > attackRange.get()) return;
        if (attack.getByName("Только криты").get() && !isFalling) return;

        if (attack.getByName("Сброс спринта").get())
            mc.player.setSprinting(false);

        mc.interactionManager.attackEntity(mc.player, target);
        mc.player.swingHand(Hand.MAIN_HAND);
        stopWatch.setLastMS(500);
    }

    private boolean isFalling() {
        return mc.player.velocity.y < 0;
    }

    private void reset() {
        if (mc.player != null)
            headVector.set(mc.player.getPitch(), mc.player.getYaw());
    }
}

ss не нужен
спасибо дядя мироуз, пойду спащу в аметист хотя ты там кодер
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
П р тык то
 
ебать, перенести киллауру экспениса с 1.16 на фабрик 1.21.4 с гпт кодом это сильно :roflanEbalo:
 

Похожие темы

Назад
Сверху Снизу