Обход античита KillAura Sunlight Client (exp 3.1)

  • Автор темы Автор темы Relly2
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
16 Янв 2025
Сообщения
786
Реакции
0
Выберите загрузчик игры
  1. Прочие моды
короче вот вам килка которая обходит спуки 50/50 (килка не моя сразу говорю)
наложен был прогуард с кфг от интернала:FailFish:
ss -

сама килка
Код:
Expand Collapse Copy
import com.google.common.eventbus.Subscribe;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.gui.screen.IngameMenuScreen;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.item.ArmorStandEntity;
import net.minecraft.entity.merchant.villager.VillagerEntity;
import net.minecraft.entity.monster.MonsterEntity;
import net.minecraft.entity.monster.SlimeEntity;
import net.minecraft.entity.passive.AnimalEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.UseAction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;

@ModuleInfo(
        name = "Aura",
        category = Category.Combat,
        description = "Автоматически атакует противника"
)
public class Aura extends Module {

    public ModeSetting aimMode = new ModeSetting("Тип Наведения", "Spookytime", new String[]{"Spookytime", "Spookytime Duels"});
    public NumberSetting attackRange = new NumberSetting("Дистанция атаки", 3.0F, 2.5F, 12.0F, 0.05F);
    final NumberSetting elytraRange = new NumberSetting("Дистанция на элитре", 6.0F, 0.0F, 16.0F, 0.05F);
    public BooleanSetting prediction = new BooleanSetting("Предикт", false);
    public NumberSetting predictionStrength = (new NumberSetting("Сила предикта", 0.2F, 0.1F, 0.3F, 0.05F)).setVisible(() -> prediction.get());

    final GroupSetting targetsGroup = new GroupSetting("Таргеты", new BooleanSetting[]{
            new BooleanSetting("Игроки", true),
            new BooleanSetting("Невидимки", true),
            new BooleanSetting("Голые", true),
            new BooleanSetting("Голые невидимки", true),
            new BooleanSetting("Мобы", false),
            new BooleanSetting("Животные", false)
    });
    final GroupSetting sortingGroup = new GroupSetting("Учитывать", new BooleanSetting[]{
            new BooleanSetting("Хп", true),
            new BooleanSetting("Броню", true),
            new BooleanSetting("Дистанцию", true),
            new BooleanSetting("Баффы", true)
    });
    final GroupSetting optionsGroup = new GroupSetting("Опции", new BooleanSetting[]{
            new BooleanSetting("Только криты", true),
            new BooleanSetting("Синхронизировать с TPS", false),
            new BooleanSetting("Фокусировать одну цель", true),
            new BooleanSetting("Коррекция движения", true),
            new BooleanSetting("Оптимальная дистанция атаки", false),
            new BooleanSetting("Резольвер", false)
    });
    final GroupSetting triggersGroup = new GroupSetting("Триггеры", new BooleanSetting[]{
            new BooleanSetting("Проверка луча", true),
            new BooleanSetting("Бить через стены", true),
            new BooleanSetting("Не бить если кушаешь", true),
            new BooleanSetting("Не бить если в гуи", true)
    });

    public BooleanSetting ignoreFriends = new BooleanSetting("Не бить друзей", true);
    public BooleanSetting wallBypass = (new BooleanSetting("Обход через стены", true)).setVisible(() -> triggersGroup.getValueByName("Бить через стены").get());
    public BooleanSetting smartCrits = (new BooleanSetting("Умные криты", false)).setVisible(() -> optionsGroup.getValueByName("Только криты").get());
    final ModeSetting correctionMode = (new ModeSetting("Тип коррекции", "Свободный", new String[]{"Свободный", "Сфокусированный"})).setVisible(() -> optionsGroup.getValueByName("Коррекция движения").get());

    private final TimerUtil attackTimer = new TimerUtil();
    public Vector2f rotations = new Vector2f(0.0F, 0.0F);
    private LivingEntity target;
    private Entity raytracedEntity;

    private static final float ADDITIONAL_SEARCH_RANGE = 7.0F;

    public Aura() {
        this.addSettings(aimMode, attackRange, elytraRange, targetsGroup, sortingGroup, optionsGroup, triggersGroup, ignoreFriends, wallBypass, smartCrits, correctionMode, prediction, predictionStrength);
    }

    @Override
    public void onEnable() {
        super.onEnable();
        this.reset();
        this.target = null;
    }

    @Override
    public void onDisable() {
        super.onDisable();
        if (aimMode.is("Spookytime") || aimMode.is("Spookytime Duels")) {
            if (mc.player != null) {
                mc.player.rotationYaw = this.rotations.x;
                mc.player.rotationPitch = this.rotations.y;
                mc.player.rotationYawHead = this.rotations.x;
                mc.player.renderYawOffset = this.rotations.x;
                mc.player.rotationPitchHead = this.rotations.y;
            }
        }
        this.reset();
        this.attackTimer.reset();
        this.target = null;
        mc.timer.timerSpeed = 1.0F;
    }

    @Subscribe
    public void onStrafe(StrafeEvent event) {
        if (optionsGroup.getValueByName("Коррекция движения").get() && this.correctionMode.is("Свободный") && target != null) {
            MovementUtils.fixMovement(event, this.rotations.x);
        }
    }

    @Subscribe
    public void onUpdate(UpdateEvent event) {
        if (optionsGroup.getValueByName("Фокусировать одну цель").get() && (this.target == null || !this.isValid(this.target, maxRange() + ADDITIONAL_SEARCH_RANGE)) || !optionsGroup.getValueByName("Фокусировать одну цель").get()) {
            this.updateTarget();
        }

        if (this.target != null) {
            setRotations();

            if (shouldPerformCritical() && this.attackTimer.hasTimeElapsed(500L)) {
                this.updateAttack();
            }
        } else {
            this.attackTimer.reset();
        }
    }

    @Subscribe
    private void onWalk(WalkEvent event) {
        if (this.target != null) {
            event.setYaw(this.rotations.x);
            event.setPitch(this.rotations.y);
            mc.player.rotationYawHead = this.rotations.x;
            mc.player.renderYawOffset = RotationUtils.getFixedYaw(this.rotations.x);
            mc.player.rotationPitchHead = this.rotations.y;
        }
    }

    public void setRotations() {
        if (this.aimMode.is("Spookytime")) {
            this.spookyTimeRotations();
        } else if (this.aimMode.is("Spookytime Duels")) {
            this.spookyTimeDuelsRotations();
        } else {
            this.basicRotations();
        }

        if (triggersGroup.getValueByName("Не бить если кушаешь").get() && isPlayerEating()) {
            this.rotations = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch);
        }

        if (triggersGroup.getValueByName("Не бить если в гуи").get() && isGuiOpen()) {
            this.rotations = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch);
        }
    }

    private void basicRotations() {
        Vector3d targetPos = prediction.get() ? getPredictedPosition(this.target, predictionStrength.get()) : this.target.getPositionVec();

        float[] newRots = RotationUtils.getRotations(targetPos);
        float gcd = RotationUtils.getGCDValue();

        float fixedYaw = newRots[0] - (newRots[0] - this.rotations.x) % gcd;
        float fixedPitch = newRots[1] - (newRots[1] - this.rotations.y) % gcd;

        this.rotations = new Vector2f(fixedYaw, MathHelper.clamp(fixedPitch, -90.0F, 90.0F));
    }

    private void spookyTimeRotations() {
        Vector3d targetPos = prediction.get() ? getPredictedPosition(this.target, predictionStrength.get()) : this.target.getPositionVec();

        float[] newRots = RotationUtils.getRotations(targetPos);
        float yawToTarget = newRots[0];
        float pitchToTarget = newRots[1];

        float yawDelta = MathHelper.wrapDegrees(yawToTarget - this.rotations.x);
        float pitchDelta = pitchToTarget - this.rotations.y;

        float turnSpeedYaw = Math.min(Math.max(Math.abs(yawDelta), 0.5F), 70.8F);
        float turnSpeedPitch = Math.min(Math.max(Math.abs(pitchDelta), 0.0F), 12.3F);

        float targetYaw = this.rotations.x + (yawDelta > 1.0F ? turnSpeedYaw : -turnSpeedYaw);
        float targetPitch = this.rotations.y + (pitchDelta > 0.5F ? turnSpeedPitch : -turnSpeedPitch);

        float lerpFactor = 0.687F;
        float yaw = this.rotations.x + (targetYaw - this.rotations.x) * lerpFactor;
        float pitch = this.rotations.y + (targetPitch - this.rotations.y) * lerpFactor;

        float time = (float)(System.currentTimeMillis() % 10000L) / 720.0F;
        yaw += Math.sin(time * 2.0F * Math.PI * 2.7F) * 7.8F;
        pitch += Math.sin(time * 2.0F * Math.PI * 2.9F) * 2.6F;

        pitch = MathHelper.clamp(pitch, -90.0F, 90.0F);

        float gcd = RotationUtils.getGCDValue();
        yaw -= (yaw - this.rotations.x) % gcd;
        pitch -= (pitch - this.rotations.y) % gcd;

        this.rotations = new Vector2f(yaw, pitch);
    }

    private void spookyTimeDuelsRotations() {
        Vector3d targetPos = prediction.get() ? getPredictedPosition(this.target, predictionStrength.get()) : this.target.getPositionVec();

        float[] newRots = RotationUtils.getRotations(targetPos);
        float yawToTarget = newRots[0];
        float pitchToTarget = newRots[1];

        float yawDelta = MathHelper.wrapDegrees(yawToTarget - this.rotations.x);
        float pitchDelta = pitchToTarget - this.rotations.y;

        float turnSpeedYaw = Math.min(Math.max(Math.abs(yawDelta), 1.0F), 65.4F);
        float turnSpeedPitch = Math.min(Math.max(Math.abs(pitchDelta), 1.0F), 10.2F);

        float targetYaw = this.rotations.x + (yawDelta > 0.0F ? turnSpeedYaw : -turnSpeedYaw);
        float targetPitch = this.rotations.y + (pitchDelta > 0.0F ? turnSpeedPitch : -turnSpeedPitch);

        float yaw = targetYaw;
        float pitch = targetPitch;

        float time = (float)(System.currentTimeMillis() % 10000L) / 500.0F;
        yaw += Math.sin(time * 2.0F * Math.PI * 2.8F) * 4.7F;
        pitch += Math.sin(time * 2.0F * Math.PI * 1.6F) * 3.2F;

        pitch = MathHelper.clamp(pitch, -90.0F, 90.0F);

        float gcd = RotationUtils.getGCDValue();
        yaw -= (yaw - this.rotations.x) % gcd;
        pitch -= (pitch - this.rotations.y) % gcd;

        this.rotations = new Vector2f(yaw, pitch);
    }

    private void updateTarget() {
        List<LivingEntity> potentialTargets = new ArrayList<>();
        float searchRange = maxRange() + ADDITIONAL_SEARCH_RANGE;

        for (Entity entity : mc.world.getAllEntities()) {
            if (entity instanceof LivingEntity && isValid((LivingEntity)entity, searchRange)) {
                potentialTargets.add((LivingEntity)entity);
            }
        }

        if (potentialTargets.isEmpty()) {
            this.target = null;
        } else {
            potentialTargets.sort(Comparator.comparingDouble(e ->
                    TargetSorter.getPriority(e,
                            sortingGroup.getValueByName("Хп").get(),
                            sortingGroup.getValueByName("Броню").get(),
                            sortingGroup.getValueByName("Дистанцию").get(),
                            maxRange(),
                            sortingGroup.getValueByName("Баффы").get()
                    )
            ));
            this.target = potentialTargets.get(0);
        }
    }

    private void updateAttack() {
        if (mc.player.getDistance(this.target) > getAttackDistance()) {
            return;
        }

        if (triggersGroup.getValueByName("Проверка луча").get() && !mc.player.isElytraFlying()) {
            this.raytracedEntity = RaycastUtils.getMouseOver(this.target, this.rotations.x, this.rotations.y, getAttackDistance());
            if (this.raytracedEntity == null) return;
        }

        if (!triggersGroup.getValueByName("Бить через стены").get() && !mc.player.canEntityBeSeen(this.target)) {
            return;
        }

        mc.playerController.attackEntity(mc.player, this.target);
        mc.player.swingArm(Hand.MAIN_HAND);
        attackTimer.reset();
    }

    private boolean isValid(LivingEntity entity, float range) {
        if (entity == null || entity instanceof ClientPlayerEntity || !entity.isAlive() || entity.isInvulnerable()) {
            return false;
        }
        if (entity.ticksExisted < 3 || mc.player.getDistance(entity) > range) {
            return false;
        }
        if (FriendManager.isFriend(entity.getName().getString()) && ignoreFriends.get()) {
            return false;
        }
        if (entity instanceof PlayerEntity) {
            if (!targetsGroup.getValueByName("Игроки").get()) return false;
            if (entity.isInvisible() && !targetsGroup.getValueByName("Невидимки").get()) return false;
            if (entity.getTotalArmorValue() == 0 && !targetsGroup.getValueByName("Голые").get()) return false;
            if (entity.isInvisible() && entity.getTotalArmorValue() == 0 && !targetsGroup.getValueByName("Голые невидимки").get()) return false;
            if (((PlayerEntity)entity).isCreative()) return false;
        } else if (entity instanceof MonsterEntity || entity instanceof SlimeEntity) {
            if (!targetsGroup.getValueByName("Мобы").get()) return false;
        } else if (entity instanceof AnimalEntity || entity instanceof VillagerEntity) {
            if (!targetsGroup.getValueByName("Животные").get()) return false;
        } else if (entity instanceof ArmorStandEntity) {
            return false;
        }
        return true;
    }

    private Vector3d getPredictedPosition(LivingEntity target, float strength) {
        double motionX = target.getPosX() - target.prevPosX;
        double motionZ = target.getPosZ() - target.prevPosZ;
        return new Vector3d(target.getPosX() + motionX * strength, target.getPosY(), target.getPosZ() + motionZ * strength);
    }

    public boolean shouldPerformCritical() {
        return CriticalsUtils.isPlayerFalling(
                optionsGroup.getValueByName("Только криты").get(),
                smartCrits.get(),
                optionsGroup.getValueByName("Синхронизировать с TPS").get()
        );
    }

    public float getAttackDistance() {
        if (optionsGroup.getValueByName("Оптимальная дистанция атаки").get()) {
            return mc.player.isSwimming() ? 3.0F : 3.6F;
        }
        return attackRange.get();
    }

    public float maxRange() {
        return getAttackDistance() + (mc.player.isElytraFlying() ? elytraRange.get() : 0.0F);
    }

    private boolean isPlayerEating() {
        if (!mc.player.isHandActive()) return false;
        UseAction action = mc.player.getActiveItemStack().getUseAction();
        return action == UseAction.EAT || action == UseAction.DRINK;
    }

    private boolean isGuiOpen() {
        return mc.currentScreen != null &&
                !(mc.currentScreen instanceof ClickGuiScreen) &&
                !(mc.currentScreen instanceof ChatScreen) &&
                !(mc.currentScreen instanceof IngameMenuScreen);
    }

    private void reset() {
        this.rotations = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch);
    }

    public LivingEntity getTarget() {
        return this.target;
    }
}
 
Последнее редактирование:
че за залупа
Java:
Expand Collapse Copy
   private static final float ADDITIONAL_SEARCH_RANGE = 7.0F;
Java:
Expand Collapse Copy
 private void basicRotations() {
        Vector3d targetPos = prediction.get() ? getPredictedPosition(this.target, predictionStrength.get()) : this.target.getPositionVec();

        float[] newRots = RotationUtils.getRotations(targetPos);
        float gcd = RotationUtils.getGCDValue();

        float fixedYaw = newRots[0] - (newRots[0] - this.rotations.x) % gcd;
        float fixedPitch = newRots[1] - (newRots[1] - this.rotations.y) % gcd;

        this.rotations = new Vector2f(fixedYaw, MathHelper.clamp(fixedPitch, -90.0F, 90.0F));
    }
что за чат гпт ротация
 
че за залупа
Java:
Expand Collapse Copy
   private static final float ADDITIONAL_SEARCH_RANGE = 7.0F;
Java:
Expand Collapse Copy
 private void basicRotations() {
        Vector3d targetPos = prediction.get() ? getPredictedPosition(this.target, predictionStrength.get()) : this.target.getPositionVec();

        float[] newRots = RotationUtils.getRotations(targetPos);
        float gcd = RotationUtils.getGCDValue();

        float fixedYaw = newRots[0] - (newRots[0] - this.rotations.x) % gcd;
        float fixedPitch = newRots[1] - (newRots[1] - this.rotations.y) % gcd;

        this.rotations = new Vector2f(fixedYaw, MathHelper.clamp(fixedPitch, -90.0F, 90.0F));
    }
что за чат гпт ротация
разраб софта писал на чат гпт это,фул сурсы я сливал интересно - чекни
 
шо за гптхуйня
 
короче вот вам килка которая обходит спуки 50/50 (килка не моя сразу говорю)
наложен был прогуард с кфг от интернала:FailFish:
ss -

сама килка
Код:
Expand Collapse Copy
import com.google.common.eventbus.Subscribe;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.gui.screen.IngameMenuScreen;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.item.ArmorStandEntity;
import net.minecraft.entity.merchant.villager.VillagerEntity;
import net.minecraft.entity.monster.MonsterEntity;
import net.minecraft.entity.monster.SlimeEntity;
import net.minecraft.entity.passive.AnimalEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.UseAction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;

@ModuleInfo(
        name = "Aura",
        category = Category.Combat,
        description = "Автоматически атакует противника"
)
public class Aura extends Module {

    public ModeSetting aimMode = new ModeSetting("Тип Наведения", "Spookytime", new String[]{"Spookytime", "Spookytime Duels"});
    public NumberSetting attackRange = new NumberSetting("Дистанция атаки", 3.0F, 2.5F, 12.0F, 0.05F);
    final NumberSetting elytraRange = new NumberSetting("Дистанция на элитре", 6.0F, 0.0F, 16.0F, 0.05F);
    public BooleanSetting prediction = new BooleanSetting("Предикт", false);
    public NumberSetting predictionStrength = (new NumberSetting("Сила предикта", 0.2F, 0.1F, 0.3F, 0.05F)).setVisible(() -> prediction.get());

    final GroupSetting targetsGroup = new GroupSetting("Таргеты", new BooleanSetting[]{
            new BooleanSetting("Игроки", true),
            new BooleanSetting("Невидимки", true),
            new BooleanSetting("Голые", true),
            new BooleanSetting("Голые невидимки", true),
            new BooleanSetting("Мобы", false),
            new BooleanSetting("Животные", false)
    });
    final GroupSetting sortingGroup = new GroupSetting("Учитывать", new BooleanSetting[]{
            new BooleanSetting("Хп", true),
            new BooleanSetting("Броню", true),
            new BooleanSetting("Дистанцию", true),
            new BooleanSetting("Баффы", true)
    });
    final GroupSetting optionsGroup = new GroupSetting("Опции", new BooleanSetting[]{
            new BooleanSetting("Только криты", true),
            new BooleanSetting("Синхронизировать с TPS", false),
            new BooleanSetting("Фокусировать одну цель", true),
            new BooleanSetting("Коррекция движения", true),
            new BooleanSetting("Оптимальная дистанция атаки", false),
            new BooleanSetting("Резольвер", false)
    });
    final GroupSetting triggersGroup = new GroupSetting("Триггеры", new BooleanSetting[]{
            new BooleanSetting("Проверка луча", true),
            new BooleanSetting("Бить через стены", true),
            new BooleanSetting("Не бить если кушаешь", true),
            new BooleanSetting("Не бить если в гуи", true)
    });

    public BooleanSetting ignoreFriends = new BooleanSetting("Не бить друзей", true);
    public BooleanSetting wallBypass = (new BooleanSetting("Обход через стены", true)).setVisible(() -> triggersGroup.getValueByName("Бить через стены").get());
    public BooleanSetting smartCrits = (new BooleanSetting("Умные криты", false)).setVisible(() -> optionsGroup.getValueByName("Только криты").get());
    final ModeSetting correctionMode = (new ModeSetting("Тип коррекции", "Свободный", new String[]{"Свободный", "Сфокусированный"})).setVisible(() -> optionsGroup.getValueByName("Коррекция движения").get());

    private final TimerUtil attackTimer = new TimerUtil();
    public Vector2f rotations = new Vector2f(0.0F, 0.0F);
    private LivingEntity target;
    private Entity raytracedEntity;

    private static final float ADDITIONAL_SEARCH_RANGE = 7.0F;

    public Aura() {
        this.addSettings(aimMode, attackRange, elytraRange, targetsGroup, sortingGroup, optionsGroup, triggersGroup, ignoreFriends, wallBypass, smartCrits, correctionMode, prediction, predictionStrength);
    }

    @Override
    public void onEnable() {
        super.onEnable();
        this.reset();
        this.target = null;
    }

    @Override
    public void onDisable() {
        super.onDisable();
        if (aimMode.is("Spookytime") || aimMode.is("Spookytime Duels")) {
            if (mc.player != null) {
                mc.player.rotationYaw = this.rotations.x;
                mc.player.rotationPitch = this.rotations.y;
                mc.player.rotationYawHead = this.rotations.x;
                mc.player.renderYawOffset = this.rotations.x;
                mc.player.rotationPitchHead = this.rotations.y;
            }
        }
        this.reset();
        this.attackTimer.reset();
        this.target = null;
        mc.timer.timerSpeed = 1.0F;
    }

    @Subscribe
    public void onStrafe(StrafeEvent event) {
        if (optionsGroup.getValueByName("Коррекция движения").get() && this.correctionMode.is("Свободный") && target != null) {
            MovementUtils.fixMovement(event, this.rotations.x);
        }
    }

    @Subscribe
    public void onUpdate(UpdateEvent event) {
        if (optionsGroup.getValueByName("Фокусировать одну цель").get() && (this.target == null || !this.isValid(this.target, maxRange() + ADDITIONAL_SEARCH_RANGE)) || !optionsGroup.getValueByName("Фокусировать одну цель").get()) {
            this.updateTarget();
        }

        if (this.target != null) {
            setRotations();

            if (shouldPerformCritical() && this.attackTimer.hasTimeElapsed(500L)) {
                this.updateAttack();
            }
        } else {
            this.attackTimer.reset();
        }
    }

    @Subscribe
    private void onWalk(WalkEvent event) {
        if (this.target != null) {
            event.setYaw(this.rotations.x);
            event.setPitch(this.rotations.y);
            mc.player.rotationYawHead = this.rotations.x;
            mc.player.renderYawOffset = RotationUtils.getFixedYaw(this.rotations.x);
            mc.player.rotationPitchHead = this.rotations.y;
        }
    }

    public void setRotations() {
        if (this.aimMode.is("Spookytime")) {
            this.spookyTimeRotations();
        } else if (this.aimMode.is("Spookytime Duels")) {
            this.spookyTimeDuelsRotations();
        } else {
            this.basicRotations();
        }

        if (triggersGroup.getValueByName("Не бить если кушаешь").get() && isPlayerEating()) {
            this.rotations = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch);
        }

        if (triggersGroup.getValueByName("Не бить если в гуи").get() && isGuiOpen()) {
            this.rotations = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch);
        }
    }

    private void basicRotations() {
        Vector3d targetPos = prediction.get() ? getPredictedPosition(this.target, predictionStrength.get()) : this.target.getPositionVec();

        float[] newRots = RotationUtils.getRotations(targetPos);
        float gcd = RotationUtils.getGCDValue();

        float fixedYaw = newRots[0] - (newRots[0] - this.rotations.x) % gcd;
        float fixedPitch = newRots[1] - (newRots[1] - this.rotations.y) % gcd;

        this.rotations = new Vector2f(fixedYaw, MathHelper.clamp(fixedPitch, -90.0F, 90.0F));
    }

    private void spookyTimeRotations() {
        Vector3d targetPos = prediction.get() ? getPredictedPosition(this.target, predictionStrength.get()) : this.target.getPositionVec();

        float[] newRots = RotationUtils.getRotations(targetPos);
        float yawToTarget = newRots[0];
        float pitchToTarget = newRots[1];

        float yawDelta = MathHelper.wrapDegrees(yawToTarget - this.rotations.x);
        float pitchDelta = pitchToTarget - this.rotations.y;

        float turnSpeedYaw = Math.min(Math.max(Math.abs(yawDelta), 0.5F), 70.8F);
        float turnSpeedPitch = Math.min(Math.max(Math.abs(pitchDelta), 0.0F), 12.3F);

        float targetYaw = this.rotations.x + (yawDelta > 1.0F ? turnSpeedYaw : -turnSpeedYaw);
        float targetPitch = this.rotations.y + (pitchDelta > 0.5F ? turnSpeedPitch : -turnSpeedPitch);

        float lerpFactor = 0.687F;
        float yaw = this.rotations.x + (targetYaw - this.rotations.x) * lerpFactor;
        float pitch = this.rotations.y + (targetPitch - this.rotations.y) * lerpFactor;

        float time = (float)(System.currentTimeMillis() % 10000L) / 720.0F;
        yaw += Math.sin(time * 2.0F * Math.PI * 2.7F) * 7.8F;
        pitch += Math.sin(time * 2.0F * Math.PI * 2.9F) * 2.6F;

        pitch = MathHelper.clamp(pitch, -90.0F, 90.0F);

        float gcd = RotationUtils.getGCDValue();
        yaw -= (yaw - this.rotations.x) % gcd;
        pitch -= (pitch - this.rotations.y) % gcd;

        this.rotations = new Vector2f(yaw, pitch);
    }

    private void spookyTimeDuelsRotations() {
        Vector3d targetPos = prediction.get() ? getPredictedPosition(this.target, predictionStrength.get()) : this.target.getPositionVec();

        float[] newRots = RotationUtils.getRotations(targetPos);
        float yawToTarget = newRots[0];
        float pitchToTarget = newRots[1];

        float yawDelta = MathHelper.wrapDegrees(yawToTarget - this.rotations.x);
        float pitchDelta = pitchToTarget - this.rotations.y;

        float turnSpeedYaw = Math.min(Math.max(Math.abs(yawDelta), 1.0F), 65.4F);
        float turnSpeedPitch = Math.min(Math.max(Math.abs(pitchDelta), 1.0F), 10.2F);

        float targetYaw = this.rotations.x + (yawDelta > 0.0F ? turnSpeedYaw : -turnSpeedYaw);
        float targetPitch = this.rotations.y + (pitchDelta > 0.0F ? turnSpeedPitch : -turnSpeedPitch);

        float yaw = targetYaw;
        float pitch = targetPitch;

        float time = (float)(System.currentTimeMillis() % 10000L) / 500.0F;
        yaw += Math.sin(time * 2.0F * Math.PI * 2.8F) * 4.7F;
        pitch += Math.sin(time * 2.0F * Math.PI * 1.6F) * 3.2F;

        pitch = MathHelper.clamp(pitch, -90.0F, 90.0F);

        float gcd = RotationUtils.getGCDValue();
        yaw -= (yaw - this.rotations.x) % gcd;
        pitch -= (pitch - this.rotations.y) % gcd;

        this.rotations = new Vector2f(yaw, pitch);
    }

    private void updateTarget() {
        List<LivingEntity> potentialTargets = new ArrayList<>();
        float searchRange = maxRange() + ADDITIONAL_SEARCH_RANGE;

        for (Entity entity : mc.world.getAllEntities()) {
            if (entity instanceof LivingEntity && isValid((LivingEntity)entity, searchRange)) {
                potentialTargets.add((LivingEntity)entity);
            }
        }

        if (potentialTargets.isEmpty()) {
            this.target = null;
        } else {
            potentialTargets.sort(Comparator.comparingDouble(e ->
                    TargetSorter.getPriority(e,
                            sortingGroup.getValueByName("Хп").get(),
                            sortingGroup.getValueByName("Броню").get(),
                            sortingGroup.getValueByName("Дистанцию").get(),
                            maxRange(),
                            sortingGroup.getValueByName("Баффы").get()
                    )
            ));
            this.target = potentialTargets.get(0);
        }
    }

    private void updateAttack() {
        if (mc.player.getDistance(this.target) > getAttackDistance()) {
            return;
        }

        if (triggersGroup.getValueByName("Проверка луча").get() && !mc.player.isElytraFlying()) {
            this.raytracedEntity = RaycastUtils.getMouseOver(this.target, this.rotations.x, this.rotations.y, getAttackDistance());
            if (this.raytracedEntity == null) return;
        }

        if (!triggersGroup.getValueByName("Бить через стены").get() && !mc.player.canEntityBeSeen(this.target)) {
            return;
        }

        mc.playerController.attackEntity(mc.player, this.target);
        mc.player.swingArm(Hand.MAIN_HAND);
        attackTimer.reset();
    }

    private boolean isValid(LivingEntity entity, float range) {
        if (entity == null || entity instanceof ClientPlayerEntity || !entity.isAlive() || entity.isInvulnerable()) {
            return false;
        }
        if (entity.ticksExisted < 3 || mc.player.getDistance(entity) > range) {
            return false;
        }
        if (FriendManager.isFriend(entity.getName().getString()) && ignoreFriends.get()) {
            return false;
        }
        if (entity instanceof PlayerEntity) {
            if (!targetsGroup.getValueByName("Игроки").get()) return false;
            if (entity.isInvisible() && !targetsGroup.getValueByName("Невидимки").get()) return false;
            if (entity.getTotalArmorValue() == 0 && !targetsGroup.getValueByName("Голые").get()) return false;
            if (entity.isInvisible() && entity.getTotalArmorValue() == 0 && !targetsGroup.getValueByName("Голые невидимки").get()) return false;
            if (((PlayerEntity)entity).isCreative()) return false;
        } else if (entity instanceof MonsterEntity || entity instanceof SlimeEntity) {
            if (!targetsGroup.getValueByName("Мобы").get()) return false;
        } else if (entity instanceof AnimalEntity || entity instanceof VillagerEntity) {
            if (!targetsGroup.getValueByName("Животные").get()) return false;
        } else if (entity instanceof ArmorStandEntity) {
            return false;
        }
        return true;
    }

    private Vector3d getPredictedPosition(LivingEntity target, float strength) {
        double motionX = target.getPosX() - target.prevPosX;
        double motionZ = target.getPosZ() - target.prevPosZ;
        return new Vector3d(target.getPosX() + motionX * strength, target.getPosY(), target.getPosZ() + motionZ * strength);
    }

    public boolean shouldPerformCritical() {
        return CriticalsUtils.isPlayerFalling(
                optionsGroup.getValueByName("Только криты").get(),
                smartCrits.get(),
                optionsGroup.getValueByName("Синхронизировать с TPS").get()
        );
    }

    public float getAttackDistance() {
        if (optionsGroup.getValueByName("Оптимальная дистанция атаки").get()) {
            return mc.player.isSwimming() ? 3.0F : 3.6F;
        }
        return attackRange.get();
    }

    public float maxRange() {
        return getAttackDistance() + (mc.player.isElytraFlying() ? elytraRange.get() : 0.0F);
    }

    private boolean isPlayerEating() {
        if (!mc.player.isHandActive()) return false;
        UseAction action = mc.player.getActiveItemStack().getUseAction();
        return action == UseAction.EAT || action == UseAction.DRINK;
    }

    private boolean isGuiOpen() {
        return mc.currentScreen != null &&
                !(mc.currentScreen instanceof ClickGuiScreen) &&
                !(mc.currentScreen instanceof ChatScreen) &&
                !(mc.currentScreen instanceof IngameMenuScreen);
    }

    private void reset() {
        this.rotations = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch);
    }

    public LivingEntity getTarget() {
        return this.target;
    }
}
и нахуя оно тут блять,если src слили?
/del
 
так сурс же слит, зачем оно?
 
короче вот вам килка которая обходит спуки 50/50 (килка не моя сразу говорю)
наложен был прогуард с кфг от интернала:FailFish:
ss -

сама килка
Код:
Expand Collapse Copy
import com.google.common.eventbus.Subscribe;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.gui.screen.IngameMenuScreen;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.item.ArmorStandEntity;
import net.minecraft.entity.merchant.villager.VillagerEntity;
import net.minecraft.entity.monster.MonsterEntity;
import net.minecraft.entity.monster.SlimeEntity;
import net.minecraft.entity.passive.AnimalEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.UseAction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;

@ModuleInfo(
        name = "Aura",
        category = Category.Combat,
        description = "Автоматически атакует противника"
)
public class Aura extends Module {

    public ModeSetting aimMode = new ModeSetting("Тип Наведения", "Spookytime", new String[]{"Spookytime", "Spookytime Duels"});
    public NumberSetting attackRange = new NumberSetting("Дистанция атаки", 3.0F, 2.5F, 12.0F, 0.05F);
    final NumberSetting elytraRange = new NumberSetting("Дистанция на элитре", 6.0F, 0.0F, 16.0F, 0.05F);
    public BooleanSetting prediction = new BooleanSetting("Предикт", false);
    public NumberSetting predictionStrength = (new NumberSetting("Сила предикта", 0.2F, 0.1F, 0.3F, 0.05F)).setVisible(() -> prediction.get());

    final GroupSetting targetsGroup = new GroupSetting("Таргеты", new BooleanSetting[]{
            new BooleanSetting("Игроки", true),
            new BooleanSetting("Невидимки", true),
            new BooleanSetting("Голые", true),
            new BooleanSetting("Голые невидимки", true),
            new BooleanSetting("Мобы", false),
            new BooleanSetting("Животные", false)
    });
    final GroupSetting sortingGroup = new GroupSetting("Учитывать", new BooleanSetting[]{
            new BooleanSetting("Хп", true),
            new BooleanSetting("Броню", true),
            new BooleanSetting("Дистанцию", true),
            new BooleanSetting("Баффы", true)
    });
    final GroupSetting optionsGroup = new GroupSetting("Опции", new BooleanSetting[]{
            new BooleanSetting("Только криты", true),
            new BooleanSetting("Синхронизировать с TPS", false),
            new BooleanSetting("Фокусировать одну цель", true),
            new BooleanSetting("Коррекция движения", true),
            new BooleanSetting("Оптимальная дистанция атаки", false),
            new BooleanSetting("Резольвер", false)
    });
    final GroupSetting triggersGroup = new GroupSetting("Триггеры", new BooleanSetting[]{
            new BooleanSetting("Проверка луча", true),
            new BooleanSetting("Бить через стены", true),
            new BooleanSetting("Не бить если кушаешь", true),
            new BooleanSetting("Не бить если в гуи", true)
    });

    public BooleanSetting ignoreFriends = new BooleanSetting("Не бить друзей", true);
    public BooleanSetting wallBypass = (new BooleanSetting("Обход через стены", true)).setVisible(() -> triggersGroup.getValueByName("Бить через стены").get());
    public BooleanSetting smartCrits = (new BooleanSetting("Умные криты", false)).setVisible(() -> optionsGroup.getValueByName("Только криты").get());
    final ModeSetting correctionMode = (new ModeSetting("Тип коррекции", "Свободный", new String[]{"Свободный", "Сфокусированный"})).setVisible(() -> optionsGroup.getValueByName("Коррекция движения").get());

    private final TimerUtil attackTimer = new TimerUtil();
    public Vector2f rotations = new Vector2f(0.0F, 0.0F);
    private LivingEntity target;
    private Entity raytracedEntity;

    private static final float ADDITIONAL_SEARCH_RANGE = 7.0F;

    public Aura() {
        this.addSettings(aimMode, attackRange, elytraRange, targetsGroup, sortingGroup, optionsGroup, triggersGroup, ignoreFriends, wallBypass, smartCrits, correctionMode, prediction, predictionStrength);
    }

    @Override
    public void onEnable() {
        super.onEnable();
        this.reset();
        this.target = null;
    }

    @Override
    public void onDisable() {
        super.onDisable();
        if (aimMode.is("Spookytime") || aimMode.is("Spookytime Duels")) {
            if (mc.player != null) {
                mc.player.rotationYaw = this.rotations.x;
                mc.player.rotationPitch = this.rotations.y;
                mc.player.rotationYawHead = this.rotations.x;
                mc.player.renderYawOffset = this.rotations.x;
                mc.player.rotationPitchHead = this.rotations.y;
            }
        }
        this.reset();
        this.attackTimer.reset();
        this.target = null;
        mc.timer.timerSpeed = 1.0F;
    }

    @Subscribe
    public void onStrafe(StrafeEvent event) {
        if (optionsGroup.getValueByName("Коррекция движения").get() && this.correctionMode.is("Свободный") && target != null) {
            MovementUtils.fixMovement(event, this.rotations.x);
        }
    }

    @Subscribe
    public void onUpdate(UpdateEvent event) {
        if (optionsGroup.getValueByName("Фокусировать одну цель").get() && (this.target == null || !this.isValid(this.target, maxRange() + ADDITIONAL_SEARCH_RANGE)) || !optionsGroup.getValueByName("Фокусировать одну цель").get()) {
            this.updateTarget();
        }

        if (this.target != null) {
            setRotations();

            if (shouldPerformCritical() && this.attackTimer.hasTimeElapsed(500L)) {
                this.updateAttack();
            }
        } else {
            this.attackTimer.reset();
        }
    }

    @Subscribe
    private void onWalk(WalkEvent event) {
        if (this.target != null) {
            event.setYaw(this.rotations.x);
            event.setPitch(this.rotations.y);
            mc.player.rotationYawHead = this.rotations.x;
            mc.player.renderYawOffset = RotationUtils.getFixedYaw(this.rotations.x);
            mc.player.rotationPitchHead = this.rotations.y;
        }
    }

    public void setRotations() {
        if (this.aimMode.is("Spookytime")) {
            this.spookyTimeRotations();
        } else if (this.aimMode.is("Spookytime Duels")) {
            this.spookyTimeDuelsRotations();
        } else {
            this.basicRotations();
        }

        if (triggersGroup.getValueByName("Не бить если кушаешь").get() && isPlayerEating()) {
            this.rotations = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch);
        }

        if (triggersGroup.getValueByName("Не бить если в гуи").get() && isGuiOpen()) {
            this.rotations = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch);
        }
    }

    private void basicRotations() {
        Vector3d targetPos = prediction.get() ? getPredictedPosition(this.target, predictionStrength.get()) : this.target.getPositionVec();

        float[] newRots = RotationUtils.getRotations(targetPos);
        float gcd = RotationUtils.getGCDValue();

        float fixedYaw = newRots[0] - (newRots[0] - this.rotations.x) % gcd;
        float fixedPitch = newRots[1] - (newRots[1] - this.rotations.y) % gcd;

        this.rotations = new Vector2f(fixedYaw, MathHelper.clamp(fixedPitch, -90.0F, 90.0F));
    }

    private void spookyTimeRotations() {
        Vector3d targetPos = prediction.get() ? getPredictedPosition(this.target, predictionStrength.get()) : this.target.getPositionVec();

        float[] newRots = RotationUtils.getRotations(targetPos);
        float yawToTarget = newRots[0];
        float pitchToTarget = newRots[1];

        float yawDelta = MathHelper.wrapDegrees(yawToTarget - this.rotations.x);
        float pitchDelta = pitchToTarget - this.rotations.y;

        float turnSpeedYaw = Math.min(Math.max(Math.abs(yawDelta), 0.5F), 70.8F);
        float turnSpeedPitch = Math.min(Math.max(Math.abs(pitchDelta), 0.0F), 12.3F);

        float targetYaw = this.rotations.x + (yawDelta > 1.0F ? turnSpeedYaw : -turnSpeedYaw);
        float targetPitch = this.rotations.y + (pitchDelta > 0.5F ? turnSpeedPitch : -turnSpeedPitch);

        float lerpFactor = 0.687F;
        float yaw = this.rotations.x + (targetYaw - this.rotations.x) * lerpFactor;
        float pitch = this.rotations.y + (targetPitch - this.rotations.y) * lerpFactor;

        float time = (float)(System.currentTimeMillis() % 10000L) / 720.0F;
        yaw += Math.sin(time * 2.0F * Math.PI * 2.7F) * 7.8F;
        pitch += Math.sin(time * 2.0F * Math.PI * 2.9F) * 2.6F;

        pitch = MathHelper.clamp(pitch, -90.0F, 90.0F);

        float gcd = RotationUtils.getGCDValue();
        yaw -= (yaw - this.rotations.x) % gcd;
        pitch -= (pitch - this.rotations.y) % gcd;

        this.rotations = new Vector2f(yaw, pitch);
    }

    private void spookyTimeDuelsRotations() {
        Vector3d targetPos = prediction.get() ? getPredictedPosition(this.target, predictionStrength.get()) : this.target.getPositionVec();

        float[] newRots = RotationUtils.getRotations(targetPos);
        float yawToTarget = newRots[0];
        float pitchToTarget = newRots[1];

        float yawDelta = MathHelper.wrapDegrees(yawToTarget - this.rotations.x);
        float pitchDelta = pitchToTarget - this.rotations.y;

        float turnSpeedYaw = Math.min(Math.max(Math.abs(yawDelta), 1.0F), 65.4F);
        float turnSpeedPitch = Math.min(Math.max(Math.abs(pitchDelta), 1.0F), 10.2F);

        float targetYaw = this.rotations.x + (yawDelta > 0.0F ? turnSpeedYaw : -turnSpeedYaw);
        float targetPitch = this.rotations.y + (pitchDelta > 0.0F ? turnSpeedPitch : -turnSpeedPitch);

        float yaw = targetYaw;
        float pitch = targetPitch;

        float time = (float)(System.currentTimeMillis() % 10000L) / 500.0F;
        yaw += Math.sin(time * 2.0F * Math.PI * 2.8F) * 4.7F;
        pitch += Math.sin(time * 2.0F * Math.PI * 1.6F) * 3.2F;

        pitch = MathHelper.clamp(pitch, -90.0F, 90.0F);

        float gcd = RotationUtils.getGCDValue();
        yaw -= (yaw - this.rotations.x) % gcd;
        pitch -= (pitch - this.rotations.y) % gcd;

        this.rotations = new Vector2f(yaw, pitch);
    }

    private void updateTarget() {
        List<LivingEntity> potentialTargets = new ArrayList<>();
        float searchRange = maxRange() + ADDITIONAL_SEARCH_RANGE;

        for (Entity entity : mc.world.getAllEntities()) {
            if (entity instanceof LivingEntity && isValid((LivingEntity)entity, searchRange)) {
                potentialTargets.add((LivingEntity)entity);
            }
        }

        if (potentialTargets.isEmpty()) {
            this.target = null;
        } else {
            potentialTargets.sort(Comparator.comparingDouble(e ->
                    TargetSorter.getPriority(e,
                            sortingGroup.getValueByName("Хп").get(),
                            sortingGroup.getValueByName("Броню").get(),
                            sortingGroup.getValueByName("Дистанцию").get(),
                            maxRange(),
                            sortingGroup.getValueByName("Баффы").get()
                    )
            ));
            this.target = potentialTargets.get(0);
        }
    }

    private void updateAttack() {
        if (mc.player.getDistance(this.target) > getAttackDistance()) {
            return;
        }

        if (triggersGroup.getValueByName("Проверка луча").get() && !mc.player.isElytraFlying()) {
            this.raytracedEntity = RaycastUtils.getMouseOver(this.target, this.rotations.x, this.rotations.y, getAttackDistance());
            if (this.raytracedEntity == null) return;
        }

        if (!triggersGroup.getValueByName("Бить через стены").get() && !mc.player.canEntityBeSeen(this.target)) {
            return;
        }

        mc.playerController.attackEntity(mc.player, this.target);
        mc.player.swingArm(Hand.MAIN_HAND);
        attackTimer.reset();
    }

    private boolean isValid(LivingEntity entity, float range) {
        if (entity == null || entity instanceof ClientPlayerEntity || !entity.isAlive() || entity.isInvulnerable()) {
            return false;
        }
        if (entity.ticksExisted < 3 || mc.player.getDistance(entity) > range) {
            return false;
        }
        if (FriendManager.isFriend(entity.getName().getString()) && ignoreFriends.get()) {
            return false;
        }
        if (entity instanceof PlayerEntity) {
            if (!targetsGroup.getValueByName("Игроки").get()) return false;
            if (entity.isInvisible() && !targetsGroup.getValueByName("Невидимки").get()) return false;
            if (entity.getTotalArmorValue() == 0 && !targetsGroup.getValueByName("Голые").get()) return false;
            if (entity.isInvisible() && entity.getTotalArmorValue() == 0 && !targetsGroup.getValueByName("Голые невидимки").get()) return false;
            if (((PlayerEntity)entity).isCreative()) return false;
        } else if (entity instanceof MonsterEntity || entity instanceof SlimeEntity) {
            if (!targetsGroup.getValueByName("Мобы").get()) return false;
        } else if (entity instanceof AnimalEntity || entity instanceof VillagerEntity) {
            if (!targetsGroup.getValueByName("Животные").get()) return false;
        } else if (entity instanceof ArmorStandEntity) {
            return false;
        }
        return true;
    }

    private Vector3d getPredictedPosition(LivingEntity target, float strength) {
        double motionX = target.getPosX() - target.prevPosX;
        double motionZ = target.getPosZ() - target.prevPosZ;
        return new Vector3d(target.getPosX() + motionX * strength, target.getPosY(), target.getPosZ() + motionZ * strength);
    }

    public boolean shouldPerformCritical() {
        return CriticalsUtils.isPlayerFalling(
                optionsGroup.getValueByName("Только криты").get(),
                smartCrits.get(),
                optionsGroup.getValueByName("Синхронизировать с TPS").get()
        );
    }

    public float getAttackDistance() {
        if (optionsGroup.getValueByName("Оптимальная дистанция атаки").get()) {
            return mc.player.isSwimming() ? 3.0F : 3.6F;
        }
        return attackRange.get();
    }

    public float maxRange() {
        return getAttackDistance() + (mc.player.isElytraFlying() ? elytraRange.get() : 0.0F);
    }

    private boolean isPlayerEating() {
        if (!mc.player.isHandActive()) return false;
        UseAction action = mc.player.getActiveItemStack().getUseAction();
        return action == UseAction.EAT || action == UseAction.DRINK;
    }

    private boolean isGuiOpen() {
        return mc.currentScreen != null &&
                !(mc.currentScreen instanceof ClickGuiScreen) &&
                !(mc.currentScreen instanceof ChatScreen) &&
                !(mc.currentScreen instanceof IngameMenuScreen);
    }

    private void reset() {
        this.rotations = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch);
    }

    public LivingEntity getTarget() {
        return this.target;
    }
}
1759263808212.png
ютуб выдал базу
 
рв байпасит?
 
Назад
Сверху Снизу