Обход античита KillAura Syntax Client

  • Автор темы Автор темы Relly2
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
16 Янв 2025
Сообщения
786
Реакции
0
Выберите загрузчик игры
  1. Прочие моды
ss -
Код:
Expand Collapse Copy
package combat;

import com.google.common.eventbus.Subscribe;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadLocalRandom;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.player.ClientPlayerEntity;
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.inventory.container.ClickType;
import net.minecraft.inventory.container.Slot;
import net.minecraft.item.AxeItem;
import net.minecraft.item.Items;
import net.minecraft.item.SwordItem;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.client.CAnimateHandPacket;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.potion.Effects;
import net.minecraft.tags.FluidTags;
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 = "AttackAura", type = ModuleType.Combat)
public class KillAura extends Module {
    private final EnumSetting attackMode = new EnumSetting("Режим", "СпукиТайм", new String[]{"СпукиТайм", "ФанТайм", "Матикс", "Плавный", "Резкий", "Быстрый"});
    private final FloatSetting attackRange = new FloatSetting("Дальность атаки", 3.0F, 3.0F, 6.0F, 0.1F);
    private final FloatSetting rotationRange = new FloatSetting("Дальность поворота", 1.0F, 0.0F, 4.0F, 0.1F);
    private final MultiBooleanSetting targetSettings = new MultiBooleanSetting("Цели", new BooleanOption[]{
            new BooleanOption("Игроки", true),
            new BooleanOption("Без брони", true),
            new BooleanOption("Мобы", false),
            new BooleanOption("Животные", false),
            new BooleanOption("Невидимые без брони", true),
            new BooleanOption("Невидимые", true),
            new BooleanOption("Друзья", false)
    });
    private final EnumSetting targetEsp = new EnumSetting("Отображение цели", "1", new String[]{"1", "2", "3", "4", "5", "Нет"});
    private final EnumSetting critMode = new EnumSetting("Режим критического удара", "Только критические", new String[]{"Только критические", "Умные критические"});
    private final EnumSetting attackStyle = new EnumSetting("Стиль атаки", "1.9", new String[]{"1.9", "1.8"});
    private final MultiBooleanSetting considerFactors = new MultiBooleanSetting("Учитывать", new BooleanOption[]{
            new BooleanOption("Здоровье", true),
            new BooleanOption("Броня", true),
            new BooleanOption("Дальность", true),
            new BooleanOption("Зелья", true)
    });
    private final MultiBooleanSetting checks = new MultiBooleanSetting("Проверки", new BooleanOption[]{
            new BooleanOption("Не атаковать во время еды", true),
            new BooleanOption("Только меч", false),
            new BooleanOption("Атаковать через стены", false),
            new BooleanOption("Отключить при смерти", true)
    });
    public static final BooleanOption freeSprint = new BooleanOption("Свободный спринт", true);

    private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
    private final Timer perfectDelay = new Timer();
    private final Timer stopWatch = new Timer();
    private final Script script = new Script();
    private LivingEntity target;
    private boolean canCrit;
    private int sprintStopTicks;
    private int rotationTicks;
    private Timer yawUpdate = new Timer();
    private Vector2f lerpRotation = Vector2f.ZERO;
    private Vector2f legacyRotation = Vector2f.ZERO;
    private int rotationCount;
    private long lastTickTime = -1L;
    private long lastTickTime2 = -1L;

    public KillAura() {
        addSettings(new Setting[]{attackMode, attackRange, rotationRange, targetSettings, considerFactors, targetEsp, critMode, attackStyle, checks, freeSprint});
    }

    @Override
    public void toggle() {
        super.toggle();
        reset();
    }

    @Subscribe
    public void onPacket(PacketEvent event) {
        IPacket<?> packet = event.getPacket();
        if (packet instanceof CHeldItemChangePacket) {
            perfectDelay.reset(550L);
        } else if (packet instanceof CAnimateHandPacket) {
            perfectDelay.reset(450L);
        }
    }

    @Subscribe
    public void onInput(InputEvent event) {
        if (sprintStopTicks > 0) {
            event.setForward(0.0F);
            sprintStopTicks--;
        }
    }

    @Subscribe
    public void onPlayerDeath(PlayerDeathEvent event) {
        reset();
    }

    @Subscribe
    public void onWorldUnload(WorldUnloadEvent event) {
        reset();
    }

    @Subscribe
    public void onMotion(MotionEvent event) {
        if (target != null && Minecraft.getInstance().player != null && Minecraft.getInstance().world != null) {
            boolean fallCheck = Minecraft.getInstance().player.nextFallDistance != 0.0F;
            canCrit = !event.isToGround() && event.getFrom().y > event.getTo().y && fallCheck;
        } else {
            canCrit = false;
        }
    }

    @Subscribe
    public void onTick(TickEvent event) {
        script.update();
        if (checks.getValueByName("Отключить при смерти").get() && !Minecraft.getInstance().player.isAlive()) {
            toggle();
            return;
        }

        if (target == null || !isValid(target)) {
            updateTarget();
        }

        if (target != null && Minecraft.getInstance().player != null && Minecraft.getInstance().world != null) {
            if (!checkReturn() && !shieldBreaker()) {
                updateAttack();
            }
        } else {
            reset();
        }
    }

    @Subscribe
    public void onRender(RenderEvent event) {
        if (shouldAttack()) {
            rotationTicks = 2;
        }

        if (target != null && Minecraft.getInstance().player != null && Minecraft.getInstance().world != null) {
            if (checkReturn()) {
                return;
            }

            if (!attackMode.is("Резкий") && !attackMode.is("Резкий-Fov")) {
                updateRotation();
            } else if (rotationTicks > 0) {
                updateRotation();
                rotationTicks--;
            }
        } else {
            reset();
        }
    }

    private void updateRotation() {
        float randomYawOffset = 0.0F;
        float randomPitchOffset = 0.0F;
        Vector3d targetPos = target.getPositionVec().add(0.0, MathHelper.clamp(Minecraft.getInstance().player.getEyePosition(Minecraft.getInstance().getRenderPartialTicks()).y - target.getPosY(), 0.0, 1.0), 0.0);
        Vector3d vec = targetPos.subtract(Minecraft.getInstance().player.getEyePosition(Minecraft.getInstance().getRenderPartialTicks())).normalize();

        if (attackMode.is("Матикс")) {
            randomYawOffset = ThreadLocalRandom.current().nextFloat(-1.2222222F, 1.2222222F);
            randomPitchOffset = ThreadLocalRandom.current().nextFloat(-1.2222222F, 1.2222222F);
        } else if (attackMode.is("Плавный")) {
            randomYawOffset = ThreadLocalRandom.current().nextFloat(-1.0F, 1.0F);
        }

        float rawYaw = (float) Math.toDegrees(Math.atan2(-vec.x, vec.z)) + randomYawOffset;
        float rawPitch = (float) MathHelper.clamp(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))), -90.0F, 90.0F) + randomPitchOffset;
        float speed = new SecureRandom().nextBoolean() ? randomLerp(0.1F, 0.3F) : randomLerp(0.3F, 0.5F);
        legacyRotation = new Vector2f(wrapLerp(speed, MathHelper.wrapDegrees(legacyRotation.x), MathHelper.wrapDegrees(rawYaw)),
                wrapLerp(speed / 2.0F, legacyRotation.y, MathHelper.clamp(rawPitch, -90.0F, 90.0F)));

        float yaw = Minecraft.getInstance().player.rotationYaw + (float) Math.ceil(MathHelper.wrapDegrees(legacyRotation.x) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationYaw));
        float pitch = Minecraft.getInstance().player.rotationPitch + (float) Math.ceil(MathHelper.wrapDegrees(legacyRotation.y) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationPitch));
        Rotation rotation = new Rotation(yaw, pitch);

        if (attackMode.is("Матрица")) {
            RotationUtils.update(rotation, 90.0F, 90.0F, 25.0F, 25.0F, 0, 1, false);
        } else if (attackMode.is("Плавный")) {
            RotationUtils.update(rotation, randomLerp(6.0F, 17.0F), randomLerp(1.0F, 3.0F), randomLerp(20.0F, 30.0F), randomLerp(20.0F, 30.0F), 0, 1, false);
        } else if (attackMode.is("СпукиТайм")) {
            long tickTime = System.currentTimeMillis() / 100L;
            if (lastTickTime2 != tickTime) {
                lastTickTime2 = tickTime;
                float yawOffset = (float) Math.ceil((1.0F - cooldownFromLastSwing()) * randomLerp(15.0F, 25.0F) * (rotationCount == 0 ? 1 : -1));
                float pitchOffset = (float) Math.ceil((1.0F - cooldownFromLastSwing()) * randomLerp(5.0F, 7.0F) * (rotationCount == 0 ? 1 : -1));
                boolean tooFast = cooldownFromLastSwing() > 0.5F;
                lerpRotation = new Vector2f(wrapLerp(speed, MathHelper.wrapDegrees(lerpRotation.x), MathHelper.wrapDegrees(rawYaw + yawOffset)),
                        wrapLerp(speed / 2.0F, lerpRotation.y, MathHelper.clamp(rawPitch + pitchOffset, -90.0F, 90.0F)));
                yaw = Minecraft.getInstance().player.rotationYaw + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.x) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationYaw));
                pitch = Minecraft.getInstance().player.rotationPitch + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.y) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationPitch));
                Rotation rotationFT = new Rotation(yaw, pitch);
                RotationUtils.update(rotationFT, !tooFast && !rayTrace() ? 8.0F : 7.0F, 11.0F, 2.0F, 2.0F, 0, 5, false);
            } else {
                float yawOffset = (float) Math.ceil((1.0F - cooldownFromLastSwing()) * randomLerp(15.0F, 25.0F) * (rotationCount == 0 ? 1 : -1));
                float pitchOffset = (float) Math.ceil((1.0F - cooldownFromLastSwing()) * randomLerp(5.0F, 7.0F) * (rotationCount == 0 ? 1 : -1));
                boolean tooFast = cooldownFromLastSwing() > 0.5F;
                lerpRotation = new Vector2f(wrapLerp(speed, MathHelper.wrapDegrees(lerpRotation.x), MathHelper.wrapDegrees(rawYaw + yawOffset)),
                        wrapLerp(speed / 2.0F, lerpRotation.y, MathHelper.clamp(rawPitch + pitchOffset, -90.0F, 90.0F)));
                yaw = Minecraft.getInstance().player.rotationYaw + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.x) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationYaw));
                pitch = Minecraft.getInstance().player.rotationPitch + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.y) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationPitch));
                Rotation rotationFT = new Rotation(yaw, pitch);
                RotationUtils.update(rotationFT, !tooFast && !rayTrace() ? 3.0F : new SecureRandom().nextFloat(), 7.0F, 2.0F, 2.0F, 0, 5, false);
            }
        } else if (attackMode.is("ФанТайм")) {
            float cos = (float) Math.cos(System.currentTimeMillis() / 100.0F);
            float sin = (float) Math.sin(System.currentTimeMillis() / 100.0F);
            float yawOffset = (float) Math.ceil(randomLerp(6.0F, 12.0F) * cos + (1.0F - cooldownFromLastSwing()) * randomLerp(60.0F, 90.0F) * (rotationCount == 0 ? 1 : -1));
            float pitchOffset = (float) Math.ceil(randomLerp(6.0F, 12.0F) * sin + (1.0F - cooldownFromLastSwing()) * randomLerp(15.0F, 45.0F) * (rotationCount == 0 ? 1 : -1));
            boolean tooFast = cooldownFromLastSwing() > 0.5F;
            lerpRotation = new Vector2f(wrapLerp(speed, MathHelper.wrapDegrees(lerpRotation.x), MathHelper.wrapDegrees(rawYaw + yawOffset)),
                    wrapLerp(speed / 2.0F, lerpRotation.y, MathHelper.clamp(rawPitch + pitchOffset, -90.0F, 90.0F)));
            yaw = Minecraft.getInstance().player.rotationYaw + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.x) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationYaw));
            pitch = Minecraft.getInstance().player.rotationPitch + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.y) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationPitch));
            Rotation rotationFT = new Rotation(yaw, pitch);
            RotationUtils.update(rotationFT, !tooFast && !rayTrace() ? 3.0F : new SecureRandom().nextFloat(), 10.0F, 3.0F, 3.0F, 1, 5, false);
        } else if (attackMode.is("Быстрый")) {
            RotationUtils.update(rotation, 360.0F, 360.0F, 0, 1);
        }
    }

    public float cooldownFromLastSwing() {
        return MathHelper.clamp((float) Minecraft.getInstance().player.getTicksSinceLastSwing() / randomLerp(8.0F, 12.0F), 0.0F, 1.0F);
    }

    public float wrapLerp(float step, float input, float target) {
        return input + step * MathHelper.wrapDegrees(target - input);
    }

    public float randomLerp(float min, float max) {
        return MathUtils.lerp(max, min, new SecureRandom().nextFloat());
    }

    private void updateAttack() {
        if (shouldAttack() && rayTrace() && EntityUtils.getStrictDistance(target) < attackRange.get()) {
            boolean isInLiquid = Minecraft.getInstance().player.isActualySwimming() ||
                    Minecraft.getInstance().player.isSwimming() ||
                    Minecraft.getInstance().player.areEyesInFluid(FluidTags.WATER) ||
                    Minecraft.getInstance().player.areEyesInFluid(FluidTags.LAVA);
            boolean sprinting = Minecraft.getInstance().player.isSprinting();

            if (!isInLiquid && sprinting) {
                sprintStopTicks = 1;
                if (Minecraft.getInstance().player.serverSprintState) {
                    return;
                }
            }

            if (attackStyle.is("1.8")) {
                stopWatch.setLastMS((long) (30.0F + Math.random() * 20.0F));
            }

            if (attackMode.is("Резкий")) {
                long time = System.currentTimeMillis();
                float shakeX = (float) (Math.sin(time / 50.0F) * 10.0F + Math.sin(time / 80.0F) * 5.0F);
                float shakeY = (float) (Math.cos(time / 60.0F) * 8.0F + Math.cos(time / 90.0F) * 4.0F) * 0.8F;
                float smoothFactor = 1.0F;
                float smoothX = 0.0F;
                float smoothY = 0.0F;
                smoothX += (shakeX - smoothX) * smoothFactor;
                smoothY += (shakeY - smoothY) * smoothFactor;
                Vector2f targetRot = RotationUtils.calculate(target);
                int returnSpeed = ThreadLocalRandom.current().nextInt(38, 44);
                RotationUtils.update(new Rotation(targetRot.x + smoothX, targetRot.y + smoothY), 180.0F, returnSpeed, 0, 5);
            }

            attackEntity(target);
            rotationCount = (rotationCount + 1) % 2;
            canCrit = false;
            stopWatch.reset();
        }
    }

    private boolean shieldBreaker() {
        Slot axeSlot = InventoryUtils.getAxeSlot();
        if (target.getActiveItemStack().getItem() == Items.SHIELD && axeSlot != null && rayTrace()) {
            InventoryUtils.clickSlot(axeSlot, Minecraft.getInstance().player.inventory.currentItem, ClickType.SWAP, true);
            attackEntity(target);
            InventoryUtils.clickSlot(axeSlot, Minecraft.getInstance().player.inventory.currentItem, ClickType.SWAP, true);
            return true;
        }
        return false;
    }

    private boolean checkReturn() {
        if (Minecraft.getInstance().player.isHandActive() && checks.getValueByName("Не атаковать во время еды").get()) {
            return true;
        }
        if (!(Minecraft.getInstance().player.getHeldItemMainhand().getItem() instanceof AxeItem) &&
                !(Minecraft.getInstance().player.getHeldItemMainhand().getItem() instanceof SwordItem) &&
                checks.getValueByName("Только меч").get()) {
            return true;
        }
        return false;
    }

    private void attackEntity(Entity entity) {
        Minecraft.getInstance().playerController.attackEntity(Minecraft.getInstance().player, entity);
        Minecraft.getInstance().player.swingArm(Hand.MAIN_HAND);
    }

    private void updateTarget() {
        List<LivingEntity> targets = new ArrayList<>();
        for (Entity entity : Minecraft.getInstance().world.getAllEntities()) {
            if (entity instanceof LivingEntity living && isValid(living)) {
                targets.add(living);
            }
        }

        if (targets.isEmpty()) {
            target = null;
        } else if (targets.size() == 1) {
            target = targets.get(0);
        } else {
            targets.sort(Comparator.comparingDouble(entity -> EntityUtils.entityScore(entity,
                    considerFactors.getValueByName("Здоровье").get(),
                    considerFactors.getValueByName("Броня").get(),
                    considerFactors.getValueByName("Дальность").get(),
                    attackRange.get() + rotationRange.get(),
                    considerFactors.getValueByName("Зелья").get()));
            target = targets.get(0);
        }
    }

    private boolean isValid(LivingEntity entity) {
        if (entity instanceof ClientPlayerEntity || entity.ticksExisted < 3) {
            return false;
        }
        if (Minecraft.getInstance().player.getDistanceEyePos(entity) > (attackRange.get() + rotationRange.get())) {
            return false;
        }
        if (!checks.getValueByName("Атаковать через стены").get() && !Minecraft.getInstance().player.canEntityBeSeen(entity)) {
            return false;
        }

        AntiBot antiBot = ModuleManager.getInstance().getAntiBot();
        if (entity == ModuleManager.getInstance().getFreeCam().fakePlayer) {
            return false;
        }

        if (entity instanceof PlayerEntity player) {
            if (AntiBot.isBot(player) && antiBot.isEnabled()) {
                return false;
            }
            if (!targetSettings.getValueByName("Друзья").get() && FriendManager.isFriend(player.getName().getString())) {
                return false;
            }
            if (player.getName().getString().equalsIgnoreCase(Minecraft.getInstance().player.getName().getString())) {
                return false;
            }
            if (!targetSettings.getValueByName("Игроки").get()) {
                return false;
            }
            if (player.getTotalArmorValue() == 0 && !targetSettings.getValueByName("Без брони").get()) {
                return false;
            }
            if (player.isInvisible() && player.getTotalArmorValue() == 0 && !targetSettings.getValueByName("Невидимые без брони").get()) {
                return false;
            }
            if (player.isInvisible() && !targetSettings.getValueByName("Невидимые").get()) {
                return false;
            }
            if (player.isCreative()) {
                return false;
            }
        } else if ((entity instanceof MonsterEntity || entity instanceof SlimeEntity || entity instanceof VillagerEntity) && !targetSettings.getValueByName("Мобы").get()) {
            return false;
        } else if (entity instanceof AnimalEntity && !targetSettings.getValueByName("Животные").get()) {
            return false;
        }

        return !entity.isInvulnerable() && entity.isAlive() && !(entity instanceof ArmorStandEntity);
    }

    private boolean shouldAttack() {
        if (!perfectDelay.cooldownComplete() || !cooldownComplete()) {
            return false;
        }

        boolean isBlockAboveHead = BlockUtils.isBlockAboveHead();
        boolean isInLiquid = Minecraft.getInstance().player.isActualySwimming() ||
                Minecraft.getInstance().player.isSwimming() ||
                Minecraft.getInstance().player.areEyesInFluid(FluidTags.WATER) ||
                Minecraft.getInstance().player.areEyesInFluid(FluidTags.LAVA);

        if (isInLiquid) {
            return true;
        }

        boolean canDefaultCrit = Minecraft.getInstance().player.fallDistance > 0.0F && canCrit && isBlockAboveHead;
        boolean canSmartCrit = isBlockAboveHead && !Minecraft.getInstance().player.movementInput.jump &&
                !canCrit && Minecraft.getInstance().player.isOnGround() && Minecraft.getInstance().player.collidedVertically;

        if (critMode.is("Только критические")) {
            return shouldCritical() && canDefaultCrit;
        } else if (critMode.is("Умные критические")) {
            return canSmartCrit || canDefaultCrit;
        }
        return true;
    }

    private boolean shouldCritical() {
        boolean isDeBuffed = Minecraft.getInstance().player.isPotionActive(Effects.LEVITATION) ||
                Minecraft.getInstance().player.isPotionActive(Effects.BLINDNESS) ||
                Minecraft.getInstance().player.isPotionActive(Effects.SLOW_FALLING);
        boolean isInLiquid = Minecraft.getInstance().player.isActualySwimming() ||
                Minecraft.getInstance().player.isSwimming() ||
                Minecraft.getInstance().player.areEyesInFluid(FluidTags.WATER) ||
                Minecraft.getInstance().player.areEyesInFluid(FluidTags.LAVA);
        boolean isFlying = Minecraft.getInstance().player.abilities.isFlying ||
                Minecraft.getInstance().player.isElytraFlying();
        boolean isClimbing = Minecraft.getInstance().player.isOnLadder();
        boolean isCantJump = Minecraft.getInstance().player.isPassenger();
        boolean isOnWeb = BlockUtils.isPlayerInWeb();

        return !isDeBuffed && !isInLiquid && !isFlying && !isClimbing && !isCantJump && !isOnWeb;
    }

    public boolean cooldownComplete() {
        return Minecraft.getInstance().player != null &&
                Minecraft.getInstance().world != null &&
                Minecraft.getInstance().player.getCooledAttackStrength(1.5F) >= 0.93F;
    }

    public boolean rayTrace() {
        return RotationUtils.rayTraceEntity(Minecraft.getInstance().player.rotationYaw,
                Minecraft.getInstance().player.rotationPitch,
                attackRange.get() + rotationRange.get(),
                target) || attackMode.is("Резкий");
    }

    private void reset() {
        if (Minecraft.getInstance().player != null && Minecraft.getInstance().world != null) {
            Minecraft.getInstance().player.rotationYawOffset = Integer.MIN_VALUE;
        }
        target = null;
        canCrit = false;
    }

    public EnumSetting getAttackMode() { return attackMode; }
    public FloatSetting getAttackRange() { return attackRange; }
    public FloatSetting getRotationRange() { return rotationRange; }
    public MultiBooleanSetting getTargetSettings() { return targetSettings; }
    public EnumSetting getTargetEsp() { return targetEsp; }
    public EnumSetting getCritMode() { return critMode; }
    public EnumSetting getAttackStyle() { return attackStyle; }
    public MultiBooleanSetting getConsiderFactors() { return considerFactors; }
    public MultiBooleanSetting getChecks() { return checks; }
    public ScheduledExecutorService getScheduler() { return scheduler; }
    public Timer getPerfectDelay() { return perfectDelay; }
    public Timer getStopWatch() { return stopWatch; }
    public Script getScript() { return script; }
    public boolean isCanCrit() { return canCrit; }
    public int getSprintStopTicks() { return sprintStopTicks; }
    public int getRotationTicks() { return rotationTicks; }
    public Timer getYawUpdate() { return yawUpdate; }
    public Vector2f getLerpRotation() { return lerpRotation; }
    public Vector2f getLegacyRotation() { return legacyRotation; }
    public int getRotationCount() { return rotationCount; }
    public long getLastTickTime() { return lastTickTime; }
    public long getLastTickTime2() { return lastTickTime2; }
    public static BooleanOption getFreeSprint() { return freeSprint; }
    public LivingEntity getTarget() { return target; }
    public KillAura setTarget(LivingEntity target) { this.target = target; return this; }
}

KillAura Syntax Client​

 
Последнее редактирование:
ss -
Код:
Expand Collapse Copy
package combat;

import com.google.common.eventbus.Subscribe;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadLocalRandom;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.player.ClientPlayerEntity;
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.inventory.container.ClickType;
import net.minecraft.inventory.container.Slot;
import net.minecraft.item.AxeItem;
import net.minecraft.item.Items;
import net.minecraft.item.SwordItem;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.client.CAnimateHandPacket;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.potion.Effects;
import net.minecraft.tags.FluidTags;
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 = "АураУбийства", type = ModuleType.Combat)
public class KillAura extends Module {
    private final EnumSetting attackMode = new EnumSetting("Режим", "СпукиТайм", new String[]{"СпукиТайм", "ФанТайм", "Матикс", "Плавный", "Резкий", "Быстрый"});
    private final FloatSetting attackRange = new FloatSetting("Дальность атаки", 3.0F, 3.0F, 6.0F, 0.1F);
    private final FloatSetting rotationRange = new FloatSetting("Дальность поворота", 1.0F, 0.0F, 4.0F, 0.1F);
    private final MultiBooleanSetting targetSettings = new MultiBooleanSetting("Цели", new BooleanOption[]{
            new BooleanOption("Игроки", true),
            new BooleanOption("Без брони", true),
            new BooleanOption("Мобы", false),
            new BooleanOption("Животные", false),
            new BooleanOption("Невидимые без брони", true),
            new BooleanOption("Невидимые", true),
            new BooleanOption("Друзья", false)
    });
    private final EnumSetting targetEsp = new EnumSetting("Отображение цели", "1", new String[]{"1", "2", "3", "4", "5", "Нет"});
    private final EnumSetting critMode = new EnumSetting("Режим критического удара", "Только критические", new String[]{"Только критические", "Умные критические"});
    private final EnumSetting attackStyle = new EnumSetting("Стиль атаки", "1.9", new String[]{"1.9", "1.8"});
    private final MultiBooleanSetting considerFactors = new MultiBooleanSetting("Учитывать", new BooleanOption[]{
            new BooleanOption("Здоровье", true),
            new BooleanOption("Броня", true),
            new BooleanOption("Дальность", true),
            new BooleanOption("Зелья", true)
    });
    private final MultiBooleanSetting checks = new MultiBooleanSetting("Проверки", new BooleanOption[]{
            new BooleanOption("Не атаковать во время еды", true),
            new BooleanOption("Только меч", false),
            new BooleanOption("Атаковать через стены", false),
            new BooleanOption("Отключить при смерти", true)
    });
    public static final BooleanOption freeSprint = new BooleanOption("Свободный спринт", true);

    private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
    private final Timer perfectDelay = new Timer();
    private final Timer stopWatch = new Timer();
    private final Script script = new Script();
    private LivingEntity target;
    private boolean canCrit;
    private int sprintStopTicks;
    private int rotationTicks;
    private Timer yawUpdate = new Timer();
    private Vector2f lerpRotation = Vector2f.ZERO;
    private Vector2f legacyRotation = Vector2f.ZERO;
    private int rotationCount;
    private long lastTickTime = -1L;
    private long lastTickTime2 = -1L;

    public KillAura() {
        addSettings(new Setting[]{attackMode, attackRange, rotationRange, targetSettings, considerFactors, targetEsp, critMode, attackStyle, checks, freeSprint});
    }

    @Override
    public void toggle() {
        super.toggle();
        reset();
    }

    @Subscribe
    public void onPacket(PacketEvent event) {
        IPacket<?> packet = event.getPacket();
        if (packet instanceof CHeldItemChangePacket) {
            perfectDelay.reset(550L);
        } else if (packet instanceof CAnimateHandPacket) {
            perfectDelay.reset(450L);
        }
    }

    @Subscribe
    public void onInput(InputEvent event) {
        if (sprintStopTicks > 0) {
            event.setForward(0.0F);
            sprintStopTicks--;
        }
    }

    @Subscribe
    public void onPlayerDeath(PlayerDeathEvent event) {
        reset();
    }

    @Subscribe
    public void onWorldUnload(WorldUnloadEvent event) {
        reset();
    }

    @Subscribe
    public void onMotion(MotionEvent event) {
        if (target != null && Minecraft.getInstance().player != null && Minecraft.getInstance().world != null) {
            boolean fallCheck = Minecraft.getInstance().player.nextFallDistance != 0.0F;
            canCrit = !event.isToGround() && event.getFrom().y > event.getTo().y && fallCheck;
        } else {
            canCrit = false;
        }
    }

    @Subscribe
    public void onTick(TickEvent event) {
        script.update();
        if (checks.getValueByName("Отключить при смерти").get() && !Minecraft.getInstance().player.isAlive()) {
            toggle();
            return;
        }

        if (target == null || !isValid(target)) {
            updateTarget();
        }

        if (target != null && Minecraft.getInstance().player != null && Minecraft.getInstance().world != null) {
            if (!checkReturn() && !shieldBreaker()) {
                updateAttack();
            }
        } else {
            reset();
        }
    }

    @Subscribe
    public void onRender(RenderEvent event) {
        if (shouldAttack()) {
            rotationTicks = 2;
        }

        if (target != null && Minecraft.getInstance().player != null && Minecraft.getInstance().world != null) {
            if (checkReturn()) {
                return;
            }

            if (!attackMode.is("Резкий") && !attackMode.is("Резкий-Fov")) {
                updateRotation();
            } else if (rotationTicks > 0) {
                updateRotation();
                rotationTicks--;
            }
        } else {
            reset();
        }
    }

    private void updateRotation() {
        float randomYawOffset = 0.0F;
        float randomPitchOffset = 0.0F;
        Vector3d targetPos = target.getPositionVec().add(0.0, MathHelper.clamp(Minecraft.getInstance().player.getEyePosition(Minecraft.getInstance().getRenderPartialTicks()).y - target.getPosY(), 0.0, 1.0), 0.0);
        Vector3d vec = targetPos.subtract(Minecraft.getInstance().player.getEyePosition(Minecraft.getInstance().getRenderPartialTicks())).normalize();

        if (attackMode.is("Матикс")) {
            randomYawOffset = ThreadLocalRandom.current().nextFloat(-1.2222222F, 1.2222222F);
            randomPitchOffset = ThreadLocalRandom.current().nextFloat(-1.2222222F, 1.2222222F);
        } else if (attackMode.is("Плавный")) {
            randomYawOffset = ThreadLocalRandom.current().nextFloat(-1.0F, 1.0F);
        }

        float rawYaw = (float) Math.toDegrees(Math.atan2(-vec.x, vec.z)) + randomYawOffset;
        float rawPitch = (float) MathHelper.clamp(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))), -90.0F, 90.0F) + randomPitchOffset;
        float speed = new SecureRandom().nextBoolean() ? randomLerp(0.1F, 0.3F) : randomLerp(0.3F, 0.5F);
        legacyRotation = new Vector2f(wrapLerp(speed, MathHelper.wrapDegrees(legacyRotation.x), MathHelper.wrapDegrees(rawYaw)),
                wrapLerp(speed / 2.0F, legacyRotation.y, MathHelper.clamp(rawPitch, -90.0F, 90.0F)));

        float yaw = Minecraft.getInstance().player.rotationYaw + (float) Math.ceil(MathHelper.wrapDegrees(legacyRotation.x) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationYaw));
        float pitch = Minecraft.getInstance().player.rotationPitch + (float) Math.ceil(MathHelper.wrapDegrees(legacyRotation.y) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationPitch));
        Rotation rotation = new Rotation(yaw, pitch);

        if (attackMode.is("Матрица")) {
            RotationUtils.update(rotation, 90.0F, 90.0F, 25.0F, 25.0F, 0, 1, false);
        } else if (attackMode.is("Плавный")) {
            RotationUtils.update(rotation, randomLerp(6.0F, 17.0F), randomLerp(1.0F, 3.0F), randomLerp(20.0F, 30.0F), randomLerp(20.0F, 30.0F), 0, 1, false);
        } else if (attackMode.is("СпукиТайм")) {
            long tickTime = System.currentTimeMillis() / 100L;
            if (lastTickTime2 != tickTime) {
                lastTickTime2 = tickTime;
                float yawOffset = (float) Math.ceil((1.0F - cooldownFromLastSwing()) * randomLerp(15.0F, 25.0F) * (rotationCount == 0 ? 1 : -1));
                float pitchOffset = (float) Math.ceil((1.0F - cooldownFromLastSwing()) * randomLerp(5.0F, 7.0F) * (rotationCount == 0 ? 1 : -1));
                boolean tooFast = cooldownFromLastSwing() > 0.5F;
                lerpRotation = new Vector2f(wrapLerp(speed, MathHelper.wrapDegrees(lerpRotation.x), MathHelper.wrapDegrees(rawYaw + yawOffset)),
                        wrapLerp(speed / 2.0F, lerpRotation.y, MathHelper.clamp(rawPitch + pitchOffset, -90.0F, 90.0F)));
                yaw = Minecraft.getInstance().player.rotationYaw + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.x) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationYaw));
                pitch = Minecraft.getInstance().player.rotationPitch + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.y) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationPitch));
                Rotation rotationFT = new Rotation(yaw, pitch);
                RotationUtils.update(rotationFT, !tooFast && !rayTrace() ? 8.0F : 7.0F, 11.0F, 2.0F, 2.0F, 0, 5, false);
            } else {
                float yawOffset = (float) Math.ceil((1.0F - cooldownFromLastSwing()) * randomLerp(15.0F, 25.0F) * (rotationCount == 0 ? 1 : -1));
                float pitchOffset = (float) Math.ceil((1.0F - cooldownFromLastSwing()) * randomLerp(5.0F, 7.0F) * (rotationCount == 0 ? 1 : -1));
                boolean tooFast = cooldownFromLastSwing() > 0.5F;
                lerpRotation = new Vector2f(wrapLerp(speed, MathHelper.wrapDegrees(lerpRotation.x), MathHelper.wrapDegrees(rawYaw + yawOffset)),
                        wrapLerp(speed / 2.0F, lerpRotation.y, MathHelper.clamp(rawPitch + pitchOffset, -90.0F, 90.0F)));
                yaw = Minecraft.getInstance().player.rotationYaw + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.x) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationYaw));
                pitch = Minecraft.getInstance().player.rotationPitch + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.y) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationPitch));
                Rotation rotationFT = new Rotation(yaw, pitch);
                RotationUtils.update(rotationFT, !tooFast && !rayTrace() ? 3.0F : new SecureRandom().nextFloat(), 7.0F, 2.0F, 2.0F, 0, 5, false);
            }
        } else if (attackMode.is("ФанТайм")) {
            float cos = (float) Math.cos(System.currentTimeMillis() / 100.0F);
            float sin = (float) Math.sin(System.currentTimeMillis() / 100.0F);
            float yawOffset = (float) Math.ceil(randomLerp(6.0F, 12.0F) * cos + (1.0F - cooldownFromLastSwing()) * randomLerp(60.0F, 90.0F) * (rotationCount == 0 ? 1 : -1));
            float pitchOffset = (float) Math.ceil(randomLerp(6.0F, 12.0F) * sin + (1.0F - cooldownFromLastSwing()) * randomLerp(15.0F, 45.0F) * (rotationCount == 0 ? 1 : -1));
            boolean tooFast = cooldownFromLastSwing() > 0.5F;
            lerpRotation = new Vector2f(wrapLerp(speed, MathHelper.wrapDegrees(lerpRotation.x), MathHelper.wrapDegrees(rawYaw + yawOffset)),
                    wrapLerp(speed / 2.0F, lerpRotation.y, MathHelper.clamp(rawPitch + pitchOffset, -90.0F, 90.0F)));
            yaw = Minecraft.getInstance().player.rotationYaw + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.x) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationYaw));
            pitch = Minecraft.getInstance().player.rotationPitch + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.y) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationPitch));
            Rotation rotationFT = new Rotation(yaw, pitch);
            RotationUtils.update(rotationFT, !tooFast && !rayTrace() ? 3.0F : new SecureRandom().nextFloat(), 10.0F, 3.0F, 3.0F, 1, 5, false);
        } else if (attackMode.is("Быстрый")) {
            RotationUtils.update(rotation, 360.0F, 360.0F, 0, 1);
        }
    }

    public float cooldownFromLastSwing() {
        return MathHelper.clamp((float) Minecraft.getInstance().player.getTicksSinceLastSwing() / randomLerp(8.0F, 12.0F), 0.0F, 1.0F);
    }

    public float wrapLerp(float step, float input, float target) {
        return input + step * MathHelper.wrapDegrees(target - input);
    }

    public float randomLerp(float min, float max) {
        return MathUtils.lerp(max, min, new SecureRandom().nextFloat());
    }

    private void updateAttack() {
        if (shouldAttack() && rayTrace() && EntityUtils.getStrictDistance(target) < attackRange.get()) {
            boolean isInLiquid = Minecraft.getInstance().player.isActualySwimming() ||
                    Minecraft.getInstance().player.isSwimming() ||
                    Minecraft.getInstance().player.areEyesInFluid(FluidTags.WATER) ||
                    Minecraft.getInstance().player.areEyesInFluid(FluidTags.LAVA);
            boolean sprinting = Minecraft.getInstance().player.isSprinting();

            if (!isInLiquid && sprinting) {
                sprintStopTicks = 1;
                if (Minecraft.getInstance().player.serverSprintState) {
                    return;
                }
            }

            if (attackStyle.is("1.8")) {
                stopWatch.setLastMS((long) (30.0F + Math.random() * 20.0F));
            }

            if (attackMode.is("Резкий")) {
                long time = System.currentTimeMillis();
                float shakeX = (float) (Math.sin(time / 50.0F) * 10.0F + Math.sin(time / 80.0F) * 5.0F);
                float shakeY = (float) (Math.cos(time / 60.0F) * 8.0F + Math.cos(time / 90.0F) * 4.0F) * 0.8F;
                float smoothFactor = 1.0F;
                float smoothX = 0.0F;
                float smoothY = 0.0F;
                smoothX += (shakeX - smoothX) * smoothFactor;
                smoothY += (shakeY - smoothY) * smoothFactor;
                Vector2f targetRot = RotationUtils.calculate(target);
                int returnSpeed = ThreadLocalRandom.current().nextInt(38, 44);
                RotationUtils.update(new Rotation(targetRot.x + smoothX, targetRot.y + smoothY), 180.0F, returnSpeed, 0, 5);
            }

            attackEntity(target);
            rotationCount = (rotationCount + 1) % 2;
            canCrit = false;
            stopWatch.reset();
        }
    }

    private boolean shieldBreaker() {
        Slot axeSlot = InventoryUtils.getAxeSlot();
        if (target.getActiveItemStack().getItem() == Items.SHIELD && axeSlot != null && rayTrace()) {
            InventoryUtils.clickSlot(axeSlot, Minecraft.getInstance().player.inventory.currentItem, ClickType.SWAP, true);
            attackEntity(target);
            InventoryUtils.clickSlot(axeSlot, Minecraft.getInstance().player.inventory.currentItem, ClickType.SWAP, true);
            return true;
        }
        return false;
    }

    private boolean checkReturn() {
        if (Minecraft.getInstance().player.isHandActive() && checks.getValueByName("Не атаковать во время еды").get()) {
            return true;
        }
        if (!(Minecraft.getInstance().player.getHeldItemMainhand().getItem() instanceof AxeItem) &&
                !(Minecraft.getInstance().player.getHeldItemMainhand().getItem() instanceof SwordItem) &&
                checks.getValueByName("Только меч").get()) {
            return true;
        }
        return false;
    }

    private void attackEntity(Entity entity) {
        Minecraft.getInstance().playerController.attackEntity(Minecraft.getInstance().player, entity);
        Minecraft.getInstance().player.swingArm(Hand.MAIN_HAND);
    }

    private void updateTarget() {
        List<LivingEntity> targets = new ArrayList<>();
        for (Entity entity : Minecraft.getInstance().world.getAllEntities()) {
            if (entity instanceof LivingEntity living && isValid(living)) {
                targets.add(living);
            }
        }

        if (targets.isEmpty()) {
            target = null;
        } else if (targets.size() == 1) {
            target = targets.get(0);
        } else {
            targets.sort(Comparator.comparingDouble(entity -> EntityUtils.entityScore(entity,
                    considerFactors.getValueByName("Здоровье").get(),
                    considerFactors.getValueByName("Броня").get(),
                    considerFactors.getValueByName("Дальность").get(),
                    attackRange.get() + rotationRange.get(),
                    considerFactors.getValueByName("Зелья").get()));
            target = targets.get(0);
        }
    }

    private boolean isValid(LivingEntity entity) {
        if (entity instanceof ClientPlayerEntity || entity.ticksExisted < 3) {
            return false;
        }
        if (Minecraft.getInstance().player.getDistanceEyePos(entity) > (attackRange.get() + rotationRange.get())) {
            return false;
        }
        if (!checks.getValueByName("Атаковать через стены").get() && !Minecraft.getInstance().player.canEntityBeSeen(entity)) {
            return false;
        }

        AntiBot antiBot = ModuleManager.getInstance().getAntiBot();
        if (entity == ModuleManager.getInstance().getFreeCam().fakePlayer) {
            return false;
        }

        if (entity instanceof PlayerEntity player) {
            if (AntiBot.isBot(player) && antiBot.isEnabled()) {
                return false;
            }
            if (!targetSettings.getValueByName("Друзья").get() && FriendManager.isFriend(player.getName().getString())) {
                return false;
            }
            if (player.getName().getString().equalsIgnoreCase(Minecraft.getInstance().player.getName().getString())) {
                return false;
            }
            if (!targetSettings.getValueByName("Игроки").get()) {
                return false;
            }
            if (player.getTotalArmorValue() == 0 && !targetSettings.getValueByName("Без брони").get()) {
                return false;
            }
            if (player.isInvisible() && player.getTotalArmorValue() == 0 && !targetSettings.getValueByName("Невидимые без брони").get()) {
                return false;
            }
            if (player.isInvisible() && !targetSettings.getValueByName("Невидимые").get()) {
                return false;
            }
            if (player.isCreative()) {
                return false;
            }
        } else if ((entity instanceof MonsterEntity || entity instanceof SlimeEntity || entity instanceof VillagerEntity) && !targetSettings.getValueByName("Мобы").get()) {
            return false;
        } else if (entity instanceof AnimalEntity && !targetSettings.getValueByName("Животные").get()) {
            return false;
        }

        return !entity.isInvulnerable() && entity.isAlive() && !(entity instanceof ArmorStandEntity);
    }

    private boolean shouldAttack() {
        if (!perfectDelay.cooldownComplete() || !cooldownComplete()) {
            return false;
        }

        boolean isBlockAboveHead = BlockUtils.isBlockAboveHead();
        boolean isInLiquid = Minecraft.getInstance().player.isActualySwimming() ||
                Minecraft.getInstance().player.isSwimming() ||
                Minecraft.getInstance().player.areEyesInFluid(FluidTags.WATER) ||
                Minecraft.getInstance().player.areEyesInFluid(FluidTags.LAVA);

        if (isInLiquid) {
            return true;
        }

        boolean canDefaultCrit = Minecraft.getInstance().player.fallDistance > 0.0F && canCrit && isBlockAboveHead;
        boolean canSmartCrit = isBlockAboveHead && !Minecraft.getInstance().player.movementInput.jump &&
                !canCrit && Minecraft.getInstance().player.isOnGround() && Minecraft.getInstance().player.collidedVertically;

        if (critMode.is("Только критические")) {
            return shouldCritical() && canDefaultCrit;
        } else if (critMode.is("Умные критические")) {
            return canSmartCrit || canDefaultCrit;
        }
        return true;
    }

    private boolean shouldCritical() {
        boolean isDeBuffed = Minecraft.getInstance().player.isPotionActive(Effects.LEVITATION) ||
                Minecraft.getInstance().player.isPotionActive(Effects.BLINDNESS) ||
                Minecraft.getInstance().player.isPotionActive(Effects.SLOW_FALLING);
        boolean isInLiquid = Minecraft.getInstance().player.isActualySwimming() ||
                Minecraft.getInstance().player.isSwimming() ||
                Minecraft.getInstance().player.areEyesInFluid(FluidTags.WATER) ||
                Minecraft.getInstance().player.areEyesInFluid(FluidTags.LAVA);
        boolean isFlying = Minecraft.getInstance().player.abilities.isFlying ||
                Minecraft.getInstance().player.isElytraFlying();
        boolean isClimbing = Minecraft.getInstance().player.isOnLadder();
        boolean isCantJump = Minecraft.getInstance().player.isPassenger();
        boolean isOnWeb = BlockUtils.isPlayerInWeb();

        return !isDeBuffed && !isInLiquid && !isFlying && !isClimbing && !isCantJump && !isOnWeb;
    }

    public boolean cooldownComplete() {
        return Minecraft.getInstance().player != null &&
                Minecraft.getInstance().world != null &&
                Minecraft.getInstance().player.getCooledAttackStrength(1.5F) >= 0.93F;
    }

    public boolean rayTrace() {
        return RotationUtils.rayTraceEntity(Minecraft.getInstance().player.rotationYaw,
                Minecraft.getInstance().player.rotationPitch,
                attackRange.get() + rotationRange.get(),
                target) || attackMode.is("Резкий");
    }

    private void reset() {
        if (Minecraft.getInstance().player != null && Minecraft.getInstance().world != null) {
            Minecraft.getInstance().player.rotationYawOffset = Integer.MIN_VALUE;
        }
        target = null;
        canCrit = false;
    }

    public EnumSetting getAttackMode() { return attackMode; }
    public FloatSetting getAttackRange() { return attackRange; }
    public FloatSetting getRotationRange() { return rotationRange; }
    public MultiBooleanSetting getTargetSettings() { return targetSettings; }
    public EnumSetting getTargetEsp() { return targetEsp; }
    public EnumSetting getCritMode() { return critMode; }
    public EnumSetting getAttackStyle() { return attackStyle; }
    public MultiBooleanSetting getConsiderFactors() { return considerFactors; }
    public MultiBooleanSetting getChecks() { return checks; }
    public ScheduledExecutorService getScheduler() { return scheduler; }
    public Timer getPerfectDelay() { return perfectDelay; }
    public Timer getStopWatch() { return stopWatch; }
    public Script getScript() { return script; }
    public boolean isCanCrit() { return canCrit; }
    public int getSprintStopTicks() { return sprintStopTicks; }
    public int getRotationTicks() { return rotationTicks; }
    public Timer getYawUpdate() { return yawUpdate; }
    public Vector2f getLerpRotation() { return lerpRotation; }
    public Vector2f getLegacyRotation() { return legacyRotation; }
    public int getRotationCount() { return rotationCount; }
    public long getLastTickTime() { return lastTickTime; }
    public long getLastTickTime2() { return lastTickTime2; }
    public static BooleanOption getFreeSprint() { return freeSprint; }
    public LivingEntity getTarget() { return target; }
    public KillAura setTarget(LivingEntity target) { this.target = target; return this; }
}

KillAura Syntax Client​

не заренеймленный данк,точно
 
ss -
Код:
Expand Collapse Copy
package combat;

import com.google.common.eventbus.Subscribe;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadLocalRandom;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.player.ClientPlayerEntity;
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.inventory.container.ClickType;
import net.minecraft.inventory.container.Slot;
import net.minecraft.item.AxeItem;
import net.minecraft.item.Items;
import net.minecraft.item.SwordItem;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.client.CAnimateHandPacket;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.potion.Effects;
import net.minecraft.tags.FluidTags;
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 = "АураУбийства", type = ModuleType.Combat)
public class KillAura extends Module {
    private final EnumSetting attackMode = new EnumSetting("Режим", "СпукиТайм", new String[]{"СпукиТайм", "ФанТайм", "Матикс", "Плавный", "Резкий", "Быстрый"});
    private final FloatSetting attackRange = new FloatSetting("Дальность атаки", 3.0F, 3.0F, 6.0F, 0.1F);
    private final FloatSetting rotationRange = new FloatSetting("Дальность поворота", 1.0F, 0.0F, 4.0F, 0.1F);
    private final MultiBooleanSetting targetSettings = new MultiBooleanSetting("Цели", new BooleanOption[]{
            new BooleanOption("Игроки", true),
            new BooleanOption("Без брони", true),
            new BooleanOption("Мобы", false),
            new BooleanOption("Животные", false),
            new BooleanOption("Невидимые без брони", true),
            new BooleanOption("Невидимые", true),
            new BooleanOption("Друзья", false)
    });
    private final EnumSetting targetEsp = new EnumSetting("Отображение цели", "1", new String[]{"1", "2", "3", "4", "5", "Нет"});
    private final EnumSetting critMode = new EnumSetting("Режим критического удара", "Только критические", new String[]{"Только критические", "Умные критические"});
    private final EnumSetting attackStyle = new EnumSetting("Стиль атаки", "1.9", new String[]{"1.9", "1.8"});
    private final MultiBooleanSetting considerFactors = new MultiBooleanSetting("Учитывать", new BooleanOption[]{
            new BooleanOption("Здоровье", true),
            new BooleanOption("Броня", true),
            new BooleanOption("Дальность", true),
            new BooleanOption("Зелья", true)
    });
    private final MultiBooleanSetting checks = new MultiBooleanSetting("Проверки", new BooleanOption[]{
            new BooleanOption("Не атаковать во время еды", true),
            new BooleanOption("Только меч", false),
            new BooleanOption("Атаковать через стены", false),
            new BooleanOption("Отключить при смерти", true)
    });
    public static final BooleanOption freeSprint = new BooleanOption("Свободный спринт", true);

    private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
    private final Timer perfectDelay = new Timer();
    private final Timer stopWatch = new Timer();
    private final Script script = new Script();
    private LivingEntity target;
    private boolean canCrit;
    private int sprintStopTicks;
    private int rotationTicks;
    private Timer yawUpdate = new Timer();
    private Vector2f lerpRotation = Vector2f.ZERO;
    private Vector2f legacyRotation = Vector2f.ZERO;
    private int rotationCount;
    private long lastTickTime = -1L;
    private long lastTickTime2 = -1L;

    public KillAura() {
        addSettings(new Setting[]{attackMode, attackRange, rotationRange, targetSettings, considerFactors, targetEsp, critMode, attackStyle, checks, freeSprint});
    }

    @Override
    public void toggle() {
        super.toggle();
        reset();
    }

    @Subscribe
    public void onPacket(PacketEvent event) {
        IPacket<?> packet = event.getPacket();
        if (packet instanceof CHeldItemChangePacket) {
            perfectDelay.reset(550L);
        } else if (packet instanceof CAnimateHandPacket) {
            perfectDelay.reset(450L);
        }
    }

    @Subscribe
    public void onInput(InputEvent event) {
        if (sprintStopTicks > 0) {
            event.setForward(0.0F);
            sprintStopTicks--;
        }
    }

    @Subscribe
    public void onPlayerDeath(PlayerDeathEvent event) {
        reset();
    }

    @Subscribe
    public void onWorldUnload(WorldUnloadEvent event) {
        reset();
    }

    @Subscribe
    public void onMotion(MotionEvent event) {
        if (target != null && Minecraft.getInstance().player != null && Minecraft.getInstance().world != null) {
            boolean fallCheck = Minecraft.getInstance().player.nextFallDistance != 0.0F;
            canCrit = !event.isToGround() && event.getFrom().y > event.getTo().y && fallCheck;
        } else {
            canCrit = false;
        }
    }

    @Subscribe
    public void onTick(TickEvent event) {
        script.update();
        if (checks.getValueByName("Отключить при смерти").get() && !Minecraft.getInstance().player.isAlive()) {
            toggle();
            return;
        }

        if (target == null || !isValid(target)) {
            updateTarget();
        }

        if (target != null && Minecraft.getInstance().player != null && Minecraft.getInstance().world != null) {
            if (!checkReturn() && !shieldBreaker()) {
                updateAttack();
            }
        } else {
            reset();
        }
    }

    @Subscribe
    public void onRender(RenderEvent event) {
        if (shouldAttack()) {
            rotationTicks = 2;
        }

        if (target != null && Minecraft.getInstance().player != null && Minecraft.getInstance().world != null) {
            if (checkReturn()) {
                return;
            }

            if (!attackMode.is("Резкий") && !attackMode.is("Резкий-Fov")) {
                updateRotation();
            } else if (rotationTicks > 0) {
                updateRotation();
                rotationTicks--;
            }
        } else {
            reset();
        }
    }

    private void updateRotation() {
        float randomYawOffset = 0.0F;
        float randomPitchOffset = 0.0F;
        Vector3d targetPos = target.getPositionVec().add(0.0, MathHelper.clamp(Minecraft.getInstance().player.getEyePosition(Minecraft.getInstance().getRenderPartialTicks()).y - target.getPosY(), 0.0, 1.0), 0.0);
        Vector3d vec = targetPos.subtract(Minecraft.getInstance().player.getEyePosition(Minecraft.getInstance().getRenderPartialTicks())).normalize();

        if (attackMode.is("Матикс")) {
            randomYawOffset = ThreadLocalRandom.current().nextFloat(-1.2222222F, 1.2222222F);
            randomPitchOffset = ThreadLocalRandom.current().nextFloat(-1.2222222F, 1.2222222F);
        } else if (attackMode.is("Плавный")) {
            randomYawOffset = ThreadLocalRandom.current().nextFloat(-1.0F, 1.0F);
        }

        float rawYaw = (float) Math.toDegrees(Math.atan2(-vec.x, vec.z)) + randomYawOffset;
        float rawPitch = (float) MathHelper.clamp(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))), -90.0F, 90.0F) + randomPitchOffset;
        float speed = new SecureRandom().nextBoolean() ? randomLerp(0.1F, 0.3F) : randomLerp(0.3F, 0.5F);
        legacyRotation = new Vector2f(wrapLerp(speed, MathHelper.wrapDegrees(legacyRotation.x), MathHelper.wrapDegrees(rawYaw)),
                wrapLerp(speed / 2.0F, legacyRotation.y, MathHelper.clamp(rawPitch, -90.0F, 90.0F)));

        float yaw = Minecraft.getInstance().player.rotationYaw + (float) Math.ceil(MathHelper.wrapDegrees(legacyRotation.x) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationYaw));
        float pitch = Minecraft.getInstance().player.rotationPitch + (float) Math.ceil(MathHelper.wrapDegrees(legacyRotation.y) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationPitch));
        Rotation rotation = new Rotation(yaw, pitch);

        if (attackMode.is("Матрица")) {
            RotationUtils.update(rotation, 90.0F, 90.0F, 25.0F, 25.0F, 0, 1, false);
        } else if (attackMode.is("Плавный")) {
            RotationUtils.update(rotation, randomLerp(6.0F, 17.0F), randomLerp(1.0F, 3.0F), randomLerp(20.0F, 30.0F), randomLerp(20.0F, 30.0F), 0, 1, false);
        } else if (attackMode.is("СпукиТайм")) {
            long tickTime = System.currentTimeMillis() / 100L;
            if (lastTickTime2 != tickTime) {
                lastTickTime2 = tickTime;
                float yawOffset = (float) Math.ceil((1.0F - cooldownFromLastSwing()) * randomLerp(15.0F, 25.0F) * (rotationCount == 0 ? 1 : -1));
                float pitchOffset = (float) Math.ceil((1.0F - cooldownFromLastSwing()) * randomLerp(5.0F, 7.0F) * (rotationCount == 0 ? 1 : -1));
                boolean tooFast = cooldownFromLastSwing() > 0.5F;
                lerpRotation = new Vector2f(wrapLerp(speed, MathHelper.wrapDegrees(lerpRotation.x), MathHelper.wrapDegrees(rawYaw + yawOffset)),
                        wrapLerp(speed / 2.0F, lerpRotation.y, MathHelper.clamp(rawPitch + pitchOffset, -90.0F, 90.0F)));
                yaw = Minecraft.getInstance().player.rotationYaw + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.x) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationYaw));
                pitch = Minecraft.getInstance().player.rotationPitch + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.y) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationPitch));
                Rotation rotationFT = new Rotation(yaw, pitch);
                RotationUtils.update(rotationFT, !tooFast && !rayTrace() ? 8.0F : 7.0F, 11.0F, 2.0F, 2.0F, 0, 5, false);
            } else {
                float yawOffset = (float) Math.ceil((1.0F - cooldownFromLastSwing()) * randomLerp(15.0F, 25.0F) * (rotationCount == 0 ? 1 : -1));
                float pitchOffset = (float) Math.ceil((1.0F - cooldownFromLastSwing()) * randomLerp(5.0F, 7.0F) * (rotationCount == 0 ? 1 : -1));
                boolean tooFast = cooldownFromLastSwing() > 0.5F;
                lerpRotation = new Vector2f(wrapLerp(speed, MathHelper.wrapDegrees(lerpRotation.x), MathHelper.wrapDegrees(rawYaw + yawOffset)),
                        wrapLerp(speed / 2.0F, lerpRotation.y, MathHelper.clamp(rawPitch + pitchOffset, -90.0F, 90.0F)));
                yaw = Minecraft.getInstance().player.rotationYaw + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.x) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationYaw));
                pitch = Minecraft.getInstance().player.rotationPitch + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.y) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationPitch));
                Rotation rotationFT = new Rotation(yaw, pitch);
                RotationUtils.update(rotationFT, !tooFast && !rayTrace() ? 3.0F : new SecureRandom().nextFloat(), 7.0F, 2.0F, 2.0F, 0, 5, false);
            }
        } else if (attackMode.is("ФанТайм")) {
            float cos = (float) Math.cos(System.currentTimeMillis() / 100.0F);
            float sin = (float) Math.sin(System.currentTimeMillis() / 100.0F);
            float yawOffset = (float) Math.ceil(randomLerp(6.0F, 12.0F) * cos + (1.0F - cooldownFromLastSwing()) * randomLerp(60.0F, 90.0F) * (rotationCount == 0 ? 1 : -1));
            float pitchOffset = (float) Math.ceil(randomLerp(6.0F, 12.0F) * sin + (1.0F - cooldownFromLastSwing()) * randomLerp(15.0F, 45.0F) * (rotationCount == 0 ? 1 : -1));
            boolean tooFast = cooldownFromLastSwing() > 0.5F;
            lerpRotation = new Vector2f(wrapLerp(speed, MathHelper.wrapDegrees(lerpRotation.x), MathHelper.wrapDegrees(rawYaw + yawOffset)),
                    wrapLerp(speed / 2.0F, lerpRotation.y, MathHelper.clamp(rawPitch + pitchOffset, -90.0F, 90.0F)));
            yaw = Minecraft.getInstance().player.rotationYaw + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.x) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationYaw));
            pitch = Minecraft.getInstance().player.rotationPitch + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.y) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationPitch));
            Rotation rotationFT = new Rotation(yaw, pitch);
            RotationUtils.update(rotationFT, !tooFast && !rayTrace() ? 3.0F : new SecureRandom().nextFloat(), 10.0F, 3.0F, 3.0F, 1, 5, false);
        } else if (attackMode.is("Быстрый")) {
            RotationUtils.update(rotation, 360.0F, 360.0F, 0, 1);
        }
    }

    public float cooldownFromLastSwing() {
        return MathHelper.clamp((float) Minecraft.getInstance().player.getTicksSinceLastSwing() / randomLerp(8.0F, 12.0F), 0.0F, 1.0F);
    }

    public float wrapLerp(float step, float input, float target) {
        return input + step * MathHelper.wrapDegrees(target - input);
    }

    public float randomLerp(float min, float max) {
        return MathUtils.lerp(max, min, new SecureRandom().nextFloat());
    }

    private void updateAttack() {
        if (shouldAttack() && rayTrace() && EntityUtils.getStrictDistance(target) < attackRange.get()) {
            boolean isInLiquid = Minecraft.getInstance().player.isActualySwimming() ||
                    Minecraft.getInstance().player.isSwimming() ||
                    Minecraft.getInstance().player.areEyesInFluid(FluidTags.WATER) ||
                    Minecraft.getInstance().player.areEyesInFluid(FluidTags.LAVA);
            boolean sprinting = Minecraft.getInstance().player.isSprinting();

            if (!isInLiquid && sprinting) {
                sprintStopTicks = 1;
                if (Minecraft.getInstance().player.serverSprintState) {
                    return;
                }
            }

            if (attackStyle.is("1.8")) {
                stopWatch.setLastMS((long) (30.0F + Math.random() * 20.0F));
            }

            if (attackMode.is("Резкий")) {
                long time = System.currentTimeMillis();
                float shakeX = (float) (Math.sin(time / 50.0F) * 10.0F + Math.sin(time / 80.0F) * 5.0F);
                float shakeY = (float) (Math.cos(time / 60.0F) * 8.0F + Math.cos(time / 90.0F) * 4.0F) * 0.8F;
                float smoothFactor = 1.0F;
                float smoothX = 0.0F;
                float smoothY = 0.0F;
                smoothX += (shakeX - smoothX) * smoothFactor;
                smoothY += (shakeY - smoothY) * smoothFactor;
                Vector2f targetRot = RotationUtils.calculate(target);
                int returnSpeed = ThreadLocalRandom.current().nextInt(38, 44);
                RotationUtils.update(new Rotation(targetRot.x + smoothX, targetRot.y + smoothY), 180.0F, returnSpeed, 0, 5);
            }

            attackEntity(target);
            rotationCount = (rotationCount + 1) % 2;
            canCrit = false;
            stopWatch.reset();
        }
    }

    private boolean shieldBreaker() {
        Slot axeSlot = InventoryUtils.getAxeSlot();
        if (target.getActiveItemStack().getItem() == Items.SHIELD && axeSlot != null && rayTrace()) {
            InventoryUtils.clickSlot(axeSlot, Minecraft.getInstance().player.inventory.currentItem, ClickType.SWAP, true);
            attackEntity(target);
            InventoryUtils.clickSlot(axeSlot, Minecraft.getInstance().player.inventory.currentItem, ClickType.SWAP, true);
            return true;
        }
        return false;
    }

    private boolean checkReturn() {
        if (Minecraft.getInstance().player.isHandActive() && checks.getValueByName("Не атаковать во время еды").get()) {
            return true;
        }
        if (!(Minecraft.getInstance().player.getHeldItemMainhand().getItem() instanceof AxeItem) &&
                !(Minecraft.getInstance().player.getHeldItemMainhand().getItem() instanceof SwordItem) &&
                checks.getValueByName("Только меч").get()) {
            return true;
        }
        return false;
    }

    private void attackEntity(Entity entity) {
        Minecraft.getInstance().playerController.attackEntity(Minecraft.getInstance().player, entity);
        Minecraft.getInstance().player.swingArm(Hand.MAIN_HAND);
    }

    private void updateTarget() {
        List<LivingEntity> targets = new ArrayList<>();
        for (Entity entity : Minecraft.getInstance().world.getAllEntities()) {
            if (entity instanceof LivingEntity living && isValid(living)) {
                targets.add(living);
            }
        }

        if (targets.isEmpty()) {
            target = null;
        } else if (targets.size() == 1) {
            target = targets.get(0);
        } else {
            targets.sort(Comparator.comparingDouble(entity -> EntityUtils.entityScore(entity,
                    considerFactors.getValueByName("Здоровье").get(),
                    considerFactors.getValueByName("Броня").get(),
                    considerFactors.getValueByName("Дальность").get(),
                    attackRange.get() + rotationRange.get(),
                    considerFactors.getValueByName("Зелья").get()));
            target = targets.get(0);
        }
    }

    private boolean isValid(LivingEntity entity) {
        if (entity instanceof ClientPlayerEntity || entity.ticksExisted < 3) {
            return false;
        }
        if (Minecraft.getInstance().player.getDistanceEyePos(entity) > (attackRange.get() + rotationRange.get())) {
            return false;
        }
        if (!checks.getValueByName("Атаковать через стены").get() && !Minecraft.getInstance().player.canEntityBeSeen(entity)) {
            return false;
        }

        AntiBot antiBot = ModuleManager.getInstance().getAntiBot();
        if (entity == ModuleManager.getInstance().getFreeCam().fakePlayer) {
            return false;
        }

        if (entity instanceof PlayerEntity player) {
            if (AntiBot.isBot(player) && antiBot.isEnabled()) {
                return false;
            }
            if (!targetSettings.getValueByName("Друзья").get() && FriendManager.isFriend(player.getName().getString())) {
                return false;
            }
            if (player.getName().getString().equalsIgnoreCase(Minecraft.getInstance().player.getName().getString())) {
                return false;
            }
            if (!targetSettings.getValueByName("Игроки").get()) {
                return false;
            }
            if (player.getTotalArmorValue() == 0 && !targetSettings.getValueByName("Без брони").get()) {
                return false;
            }
            if (player.isInvisible() && player.getTotalArmorValue() == 0 && !targetSettings.getValueByName("Невидимые без брони").get()) {
                return false;
            }
            if (player.isInvisible() && !targetSettings.getValueByName("Невидимые").get()) {
                return false;
            }
            if (player.isCreative()) {
                return false;
            }
        } else if ((entity instanceof MonsterEntity || entity instanceof SlimeEntity || entity instanceof VillagerEntity) && !targetSettings.getValueByName("Мобы").get()) {
            return false;
        } else if (entity instanceof AnimalEntity && !targetSettings.getValueByName("Животные").get()) {
            return false;
        }

        return !entity.isInvulnerable() && entity.isAlive() && !(entity instanceof ArmorStandEntity);
    }

    private boolean shouldAttack() {
        if (!perfectDelay.cooldownComplete() || !cooldownComplete()) {
            return false;
        }

        boolean isBlockAboveHead = BlockUtils.isBlockAboveHead();
        boolean isInLiquid = Minecraft.getInstance().player.isActualySwimming() ||
                Minecraft.getInstance().player.isSwimming() ||
                Minecraft.getInstance().player.areEyesInFluid(FluidTags.WATER) ||
                Minecraft.getInstance().player.areEyesInFluid(FluidTags.LAVA);

        if (isInLiquid) {
            return true;
        }

        boolean canDefaultCrit = Minecraft.getInstance().player.fallDistance > 0.0F && canCrit && isBlockAboveHead;
        boolean canSmartCrit = isBlockAboveHead && !Minecraft.getInstance().player.movementInput.jump &&
                !canCrit && Minecraft.getInstance().player.isOnGround() && Minecraft.getInstance().player.collidedVertically;

        if (critMode.is("Только критические")) {
            return shouldCritical() && canDefaultCrit;
        } else if (critMode.is("Умные критические")) {
            return canSmartCrit || canDefaultCrit;
        }
        return true;
    }

    private boolean shouldCritical() {
        boolean isDeBuffed = Minecraft.getInstance().player.isPotionActive(Effects.LEVITATION) ||
                Minecraft.getInstance().player.isPotionActive(Effects.BLINDNESS) ||
                Minecraft.getInstance().player.isPotionActive(Effects.SLOW_FALLING);
        boolean isInLiquid = Minecraft.getInstance().player.isActualySwimming() ||
                Minecraft.getInstance().player.isSwimming() ||
                Minecraft.getInstance().player.areEyesInFluid(FluidTags.WATER) ||
                Minecraft.getInstance().player.areEyesInFluid(FluidTags.LAVA);
        boolean isFlying = Minecraft.getInstance().player.abilities.isFlying ||
                Minecraft.getInstance().player.isElytraFlying();
        boolean isClimbing = Minecraft.getInstance().player.isOnLadder();
        boolean isCantJump = Minecraft.getInstance().player.isPassenger();
        boolean isOnWeb = BlockUtils.isPlayerInWeb();

        return !isDeBuffed && !isInLiquid && !isFlying && !isClimbing && !isCantJump && !isOnWeb;
    }

    public boolean cooldownComplete() {
        return Minecraft.getInstance().player != null &&
                Minecraft.getInstance().world != null &&
                Minecraft.getInstance().player.getCooledAttackStrength(1.5F) >= 0.93F;
    }

    public boolean rayTrace() {
        return RotationUtils.rayTraceEntity(Minecraft.getInstance().player.rotationYaw,
                Minecraft.getInstance().player.rotationPitch,
                attackRange.get() + rotationRange.get(),
                target) || attackMode.is("Резкий");
    }

    private void reset() {
        if (Minecraft.getInstance().player != null && Minecraft.getInstance().world != null) {
            Minecraft.getInstance().player.rotationYawOffset = Integer.MIN_VALUE;
        }
        target = null;
        canCrit = false;
    }

    public EnumSetting getAttackMode() { return attackMode; }
    public FloatSetting getAttackRange() { return attackRange; }
    public FloatSetting getRotationRange() { return rotationRange; }
    public MultiBooleanSetting getTargetSettings() { return targetSettings; }
    public EnumSetting getTargetEsp() { return targetEsp; }
    public EnumSetting getCritMode() { return critMode; }
    public EnumSetting getAttackStyle() { return attackStyle; }
    public MultiBooleanSetting getConsiderFactors() { return considerFactors; }
    public MultiBooleanSetting getChecks() { return checks; }
    public ScheduledExecutorService getScheduler() { return scheduler; }
    public Timer getPerfectDelay() { return perfectDelay; }
    public Timer getStopWatch() { return stopWatch; }
    public Script getScript() { return script; }
    public boolean isCanCrit() { return canCrit; }
    public int getSprintStopTicks() { return sprintStopTicks; }
    public int getRotationTicks() { return rotationTicks; }
    public Timer getYawUpdate() { return yawUpdate; }
    public Vector2f getLerpRotation() { return lerpRotation; }
    public Vector2f getLegacyRotation() { return legacyRotation; }
    public int getRotationCount() { return rotationCount; }
    public long getLastTickTime() { return lastTickTime; }
    public long getLastTickTime2() { return lastTickTime2; }
    public static BooleanOption getFreeSprint() { return freeSprint; }
    public LivingEntity getTarget() { return target; }
    public KillAura setTarget(LivingEntity target) { this.target = target; return this; }
}

KillAura Syntax Client​

РЕНЕЙМ МОЕГО VESENCE RETURN ПОНЯЛ
 
ss -
Код:
Expand Collapse Copy
package combat;

import com.google.common.eventbus.Subscribe;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadLocalRandom;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.player.ClientPlayerEntity;
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.inventory.container.ClickType;
import net.minecraft.inventory.container.Slot;
import net.minecraft.item.AxeItem;
import net.minecraft.item.Items;
import net.minecraft.item.SwordItem;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.client.CAnimateHandPacket;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.potion.Effects;
import net.minecraft.tags.FluidTags;
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 = "AttackAura", type = ModuleType.Combat)
public class KillAura extends Module {
    private final EnumSetting attackMode = new EnumSetting("Режим", "СпукиТайм", new String[]{"СпукиТайм", "ФанТайм", "Матикс", "Плавный", "Резкий", "Быстрый"});
    private final FloatSetting attackRange = new FloatSetting("Дальность атаки", 3.0F, 3.0F, 6.0F, 0.1F);
    private final FloatSetting rotationRange = new FloatSetting("Дальность поворота", 1.0F, 0.0F, 4.0F, 0.1F);
    private final MultiBooleanSetting targetSettings = new MultiBooleanSetting("Цели", new BooleanOption[]{
            new BooleanOption("Игроки", true),
            new BooleanOption("Без брони", true),
            new BooleanOption("Мобы", false),
            new BooleanOption("Животные", false),
            new BooleanOption("Невидимые без брони", true),
            new BooleanOption("Невидимые", true),
            new BooleanOption("Друзья", false)
    });
    private final EnumSetting targetEsp = new EnumSetting("Отображение цели", "1", new String[]{"1", "2", "3", "4", "5", "Нет"});
    private final EnumSetting critMode = new EnumSetting("Режим критического удара", "Только критические", new String[]{"Только критические", "Умные критические"});
    private final EnumSetting attackStyle = new EnumSetting("Стиль атаки", "1.9", new String[]{"1.9", "1.8"});
    private final MultiBooleanSetting considerFactors = new MultiBooleanSetting("Учитывать", new BooleanOption[]{
            new BooleanOption("Здоровье", true),
            new BooleanOption("Броня", true),
            new BooleanOption("Дальность", true),
            new BooleanOption("Зелья", true)
    });
    private final MultiBooleanSetting checks = new MultiBooleanSetting("Проверки", new BooleanOption[]{
            new BooleanOption("Не атаковать во время еды", true),
            new BooleanOption("Только меч", false),
            new BooleanOption("Атаковать через стены", false),
            new BooleanOption("Отключить при смерти", true)
    });
    public static final BooleanOption freeSprint = new BooleanOption("Свободный спринт", true);

    private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
    private final Timer perfectDelay = new Timer();
    private final Timer stopWatch = new Timer();
    private final Script script = new Script();
    private LivingEntity target;
    private boolean canCrit;
    private int sprintStopTicks;
    private int rotationTicks;
    private Timer yawUpdate = new Timer();
    private Vector2f lerpRotation = Vector2f.ZERO;
    private Vector2f legacyRotation = Vector2f.ZERO;
    private int rotationCount;
    private long lastTickTime = -1L;
    private long lastTickTime2 = -1L;

    public KillAura() {
        addSettings(new Setting[]{attackMode, attackRange, rotationRange, targetSettings, considerFactors, targetEsp, critMode, attackStyle, checks, freeSprint});
    }

    @Override
    public void toggle() {
        super.toggle();
        reset();
    }

    @Subscribe
    public void onPacket(PacketEvent event) {
        IPacket<?> packet = event.getPacket();
        if (packet instanceof CHeldItemChangePacket) {
            perfectDelay.reset(550L);
        } else if (packet instanceof CAnimateHandPacket) {
            perfectDelay.reset(450L);
        }
    }

    @Subscribe
    public void onInput(InputEvent event) {
        if (sprintStopTicks > 0) {
            event.setForward(0.0F);
            sprintStopTicks--;
        }
    }

    @Subscribe
    public void onPlayerDeath(PlayerDeathEvent event) {
        reset();
    }

    @Subscribe
    public void onWorldUnload(WorldUnloadEvent event) {
        reset();
    }

    @Subscribe
    public void onMotion(MotionEvent event) {
        if (target != null && Minecraft.getInstance().player != null && Minecraft.getInstance().world != null) {
            boolean fallCheck = Minecraft.getInstance().player.nextFallDistance != 0.0F;
            canCrit = !event.isToGround() && event.getFrom().y > event.getTo().y && fallCheck;
        } else {
            canCrit = false;
        }
    }

    @Subscribe
    public void onTick(TickEvent event) {
        script.update();
        if (checks.getValueByName("Отключить при смерти").get() && !Minecraft.getInstance().player.isAlive()) {
            toggle();
            return;
        }

        if (target == null || !isValid(target)) {
            updateTarget();
        }

        if (target != null && Minecraft.getInstance().player != null && Minecraft.getInstance().world != null) {
            if (!checkReturn() && !shieldBreaker()) {
                updateAttack();
            }
        } else {
            reset();
        }
    }

    @Subscribe
    public void onRender(RenderEvent event) {
        if (shouldAttack()) {
            rotationTicks = 2;
        }

        if (target != null && Minecraft.getInstance().player != null && Minecraft.getInstance().world != null) {
            if (checkReturn()) {
                return;
            }

            if (!attackMode.is("Резкий") && !attackMode.is("Резкий-Fov")) {
                updateRotation();
            } else if (rotationTicks > 0) {
                updateRotation();
                rotationTicks--;
            }
        } else {
            reset();
        }
    }

    private void updateRotation() {
        float randomYawOffset = 0.0F;
        float randomPitchOffset = 0.0F;
        Vector3d targetPos = target.getPositionVec().add(0.0, MathHelper.clamp(Minecraft.getInstance().player.getEyePosition(Minecraft.getInstance().getRenderPartialTicks()).y - target.getPosY(), 0.0, 1.0), 0.0);
        Vector3d vec = targetPos.subtract(Minecraft.getInstance().player.getEyePosition(Minecraft.getInstance().getRenderPartialTicks())).normalize();

        if (attackMode.is("Матикс")) {
            randomYawOffset = ThreadLocalRandom.current().nextFloat(-1.2222222F, 1.2222222F);
            randomPitchOffset = ThreadLocalRandom.current().nextFloat(-1.2222222F, 1.2222222F);
        } else if (attackMode.is("Плавный")) {
            randomYawOffset = ThreadLocalRandom.current().nextFloat(-1.0F, 1.0F);
        }

        float rawYaw = (float) Math.toDegrees(Math.atan2(-vec.x, vec.z)) + randomYawOffset;
        float rawPitch = (float) MathHelper.clamp(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))), -90.0F, 90.0F) + randomPitchOffset;
        float speed = new SecureRandom().nextBoolean() ? randomLerp(0.1F, 0.3F) : randomLerp(0.3F, 0.5F);
        legacyRotation = new Vector2f(wrapLerp(speed, MathHelper.wrapDegrees(legacyRotation.x), MathHelper.wrapDegrees(rawYaw)),
                wrapLerp(speed / 2.0F, legacyRotation.y, MathHelper.clamp(rawPitch, -90.0F, 90.0F)));

        float yaw = Minecraft.getInstance().player.rotationYaw + (float) Math.ceil(MathHelper.wrapDegrees(legacyRotation.x) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationYaw));
        float pitch = Minecraft.getInstance().player.rotationPitch + (float) Math.ceil(MathHelper.wrapDegrees(legacyRotation.y) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationPitch));
        Rotation rotation = new Rotation(yaw, pitch);

        if (attackMode.is("Матрица")) {
            RotationUtils.update(rotation, 90.0F, 90.0F, 25.0F, 25.0F, 0, 1, false);
        } else if (attackMode.is("Плавный")) {
            RotationUtils.update(rotation, randomLerp(6.0F, 17.0F), randomLerp(1.0F, 3.0F), randomLerp(20.0F, 30.0F), randomLerp(20.0F, 30.0F), 0, 1, false);
        } else if (attackMode.is("СпукиТайм")) {
            long tickTime = System.currentTimeMillis() / 100L;
            if (lastTickTime2 != tickTime) {
                lastTickTime2 = tickTime;
                float yawOffset = (float) Math.ceil((1.0F - cooldownFromLastSwing()) * randomLerp(15.0F, 25.0F) * (rotationCount == 0 ? 1 : -1));
                float pitchOffset = (float) Math.ceil((1.0F - cooldownFromLastSwing()) * randomLerp(5.0F, 7.0F) * (rotationCount == 0 ? 1 : -1));
                boolean tooFast = cooldownFromLastSwing() > 0.5F;
                lerpRotation = new Vector2f(wrapLerp(speed, MathHelper.wrapDegrees(lerpRotation.x), MathHelper.wrapDegrees(rawYaw + yawOffset)),
                        wrapLerp(speed / 2.0F, lerpRotation.y, MathHelper.clamp(rawPitch + pitchOffset, -90.0F, 90.0F)));
                yaw = Minecraft.getInstance().player.rotationYaw + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.x) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationYaw));
                pitch = Minecraft.getInstance().player.rotationPitch + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.y) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationPitch));
                Rotation rotationFT = new Rotation(yaw, pitch);
                RotationUtils.update(rotationFT, !tooFast && !rayTrace() ? 8.0F : 7.0F, 11.0F, 2.0F, 2.0F, 0, 5, false);
            } else {
                float yawOffset = (float) Math.ceil((1.0F - cooldownFromLastSwing()) * randomLerp(15.0F, 25.0F) * (rotationCount == 0 ? 1 : -1));
                float pitchOffset = (float) Math.ceil((1.0F - cooldownFromLastSwing()) * randomLerp(5.0F, 7.0F) * (rotationCount == 0 ? 1 : -1));
                boolean tooFast = cooldownFromLastSwing() > 0.5F;
                lerpRotation = new Vector2f(wrapLerp(speed, MathHelper.wrapDegrees(lerpRotation.x), MathHelper.wrapDegrees(rawYaw + yawOffset)),
                        wrapLerp(speed / 2.0F, lerpRotation.y, MathHelper.clamp(rawPitch + pitchOffset, -90.0F, 90.0F)));
                yaw = Minecraft.getInstance().player.rotationYaw + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.x) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationYaw));
                pitch = Minecraft.getInstance().player.rotationPitch + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.y) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationPitch));
                Rotation rotationFT = new Rotation(yaw, pitch);
                RotationUtils.update(rotationFT, !tooFast && !rayTrace() ? 3.0F : new SecureRandom().nextFloat(), 7.0F, 2.0F, 2.0F, 0, 5, false);
            }
        } else if (attackMode.is("ФанТайм")) {
            float cos = (float) Math.cos(System.currentTimeMillis() / 100.0F);
            float sin = (float) Math.sin(System.currentTimeMillis() / 100.0F);
            float yawOffset = (float) Math.ceil(randomLerp(6.0F, 12.0F) * cos + (1.0F - cooldownFromLastSwing()) * randomLerp(60.0F, 90.0F) * (rotationCount == 0 ? 1 : -1));
            float pitchOffset = (float) Math.ceil(randomLerp(6.0F, 12.0F) * sin + (1.0F - cooldownFromLastSwing()) * randomLerp(15.0F, 45.0F) * (rotationCount == 0 ? 1 : -1));
            boolean tooFast = cooldownFromLastSwing() > 0.5F;
            lerpRotation = new Vector2f(wrapLerp(speed, MathHelper.wrapDegrees(lerpRotation.x), MathHelper.wrapDegrees(rawYaw + yawOffset)),
                    wrapLerp(speed / 2.0F, lerpRotation.y, MathHelper.clamp(rawPitch + pitchOffset, -90.0F, 90.0F)));
            yaw = Minecraft.getInstance().player.rotationYaw + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.x) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationYaw));
            pitch = Minecraft.getInstance().player.rotationPitch + (float) Math.ceil(MathHelper.wrapDegrees(lerpRotation.y) - MathHelper.wrapDegrees(Minecraft.getInstance().player.rotationPitch));
            Rotation rotationFT = new Rotation(yaw, pitch);
            RotationUtils.update(rotationFT, !tooFast && !rayTrace() ? 3.0F : new SecureRandom().nextFloat(), 10.0F, 3.0F, 3.0F, 1, 5, false);
        } else if (attackMode.is("Быстрый")) {
            RotationUtils.update(rotation, 360.0F, 360.0F, 0, 1);
        }
    }

    public float cooldownFromLastSwing() {
        return MathHelper.clamp((float) Minecraft.getInstance().player.getTicksSinceLastSwing() / randomLerp(8.0F, 12.0F), 0.0F, 1.0F);
    }

    public float wrapLerp(float step, float input, float target) {
        return input + step * MathHelper.wrapDegrees(target - input);
    }

    public float randomLerp(float min, float max) {
        return MathUtils.lerp(max, min, new SecureRandom().nextFloat());
    }

    private void updateAttack() {
        if (shouldAttack() && rayTrace() && EntityUtils.getStrictDistance(target) < attackRange.get()) {
            boolean isInLiquid = Minecraft.getInstance().player.isActualySwimming() ||
                    Minecraft.getInstance().player.isSwimming() ||
                    Minecraft.getInstance().player.areEyesInFluid(FluidTags.WATER) ||
                    Minecraft.getInstance().player.areEyesInFluid(FluidTags.LAVA);
            boolean sprinting = Minecraft.getInstance().player.isSprinting();

            if (!isInLiquid && sprinting) {
                sprintStopTicks = 1;
                if (Minecraft.getInstance().player.serverSprintState) {
                    return;
                }
            }

            if (attackStyle.is("1.8")) {
                stopWatch.setLastMS((long) (30.0F + Math.random() * 20.0F));
            }

            if (attackMode.is("Резкий")) {
                long time = System.currentTimeMillis();
                float shakeX = (float) (Math.sin(time / 50.0F) * 10.0F + Math.sin(time / 80.0F) * 5.0F);
                float shakeY = (float) (Math.cos(time / 60.0F) * 8.0F + Math.cos(time / 90.0F) * 4.0F) * 0.8F;
                float smoothFactor = 1.0F;
                float smoothX = 0.0F;
                float smoothY = 0.0F;
                smoothX += (shakeX - smoothX) * smoothFactor;
                smoothY += (shakeY - smoothY) * smoothFactor;
                Vector2f targetRot = RotationUtils.calculate(target);
                int returnSpeed = ThreadLocalRandom.current().nextInt(38, 44);
                RotationUtils.update(new Rotation(targetRot.x + smoothX, targetRot.y + smoothY), 180.0F, returnSpeed, 0, 5);
            }

            attackEntity(target);
            rotationCount = (rotationCount + 1) % 2;
            canCrit = false;
            stopWatch.reset();
        }
    }

    private boolean shieldBreaker() {
        Slot axeSlot = InventoryUtils.getAxeSlot();
        if (target.getActiveItemStack().getItem() == Items.SHIELD && axeSlot != null && rayTrace()) {
            InventoryUtils.clickSlot(axeSlot, Minecraft.getInstance().player.inventory.currentItem, ClickType.SWAP, true);
            attackEntity(target);
            InventoryUtils.clickSlot(axeSlot, Minecraft.getInstance().player.inventory.currentItem, ClickType.SWAP, true);
            return true;
        }
        return false;
    }

    private boolean checkReturn() {
        if (Minecraft.getInstance().player.isHandActive() && checks.getValueByName("Не атаковать во время еды").get()) {
            return true;
        }
        if (!(Minecraft.getInstance().player.getHeldItemMainhand().getItem() instanceof AxeItem) &&
                !(Minecraft.getInstance().player.getHeldItemMainhand().getItem() instanceof SwordItem) &&
                checks.getValueByName("Только меч").get()) {
            return true;
        }
        return false;
    }

    private void attackEntity(Entity entity) {
        Minecraft.getInstance().playerController.attackEntity(Minecraft.getInstance().player, entity);
        Minecraft.getInstance().player.swingArm(Hand.MAIN_HAND);
    }

    private void updateTarget() {
        List<LivingEntity> targets = new ArrayList<>();
        for (Entity entity : Minecraft.getInstance().world.getAllEntities()) {
            if (entity instanceof LivingEntity living && isValid(living)) {
                targets.add(living);
            }
        }

        if (targets.isEmpty()) {
            target = null;
        } else if (targets.size() == 1) {
            target = targets.get(0);
        } else {
            targets.sort(Comparator.comparingDouble(entity -> EntityUtils.entityScore(entity,
                    considerFactors.getValueByName("Здоровье").get(),
                    considerFactors.getValueByName("Броня").get(),
                    considerFactors.getValueByName("Дальность").get(),
                    attackRange.get() + rotationRange.get(),
                    considerFactors.getValueByName("Зелья").get()));
            target = targets.get(0);
        }
    }

    private boolean isValid(LivingEntity entity) {
        if (entity instanceof ClientPlayerEntity || entity.ticksExisted < 3) {
            return false;
        }
        if (Minecraft.getInstance().player.getDistanceEyePos(entity) > (attackRange.get() + rotationRange.get())) {
            return false;
        }
        if (!checks.getValueByName("Атаковать через стены").get() && !Minecraft.getInstance().player.canEntityBeSeen(entity)) {
            return false;
        }

        AntiBot antiBot = ModuleManager.getInstance().getAntiBot();
        if (entity == ModuleManager.getInstance().getFreeCam().fakePlayer) {
            return false;
        }

        if (entity instanceof PlayerEntity player) {
            if (AntiBot.isBot(player) && antiBot.isEnabled()) {
                return false;
            }
            if (!targetSettings.getValueByName("Друзья").get() && FriendManager.isFriend(player.getName().getString())) {
                return false;
            }
            if (player.getName().getString().equalsIgnoreCase(Minecraft.getInstance().player.getName().getString())) {
                return false;
            }
            if (!targetSettings.getValueByName("Игроки").get()) {
                return false;
            }
            if (player.getTotalArmorValue() == 0 && !targetSettings.getValueByName("Без брони").get()) {
                return false;
            }
            if (player.isInvisible() && player.getTotalArmorValue() == 0 && !targetSettings.getValueByName("Невидимые без брони").get()) {
                return false;
            }
            if (player.isInvisible() && !targetSettings.getValueByName("Невидимые").get()) {
                return false;
            }
            if (player.isCreative()) {
                return false;
            }
        } else if ((entity instanceof MonsterEntity || entity instanceof SlimeEntity || entity instanceof VillagerEntity) && !targetSettings.getValueByName("Мобы").get()) {
            return false;
        } else if (entity instanceof AnimalEntity && !targetSettings.getValueByName("Животные").get()) {
            return false;
        }

        return !entity.isInvulnerable() && entity.isAlive() && !(entity instanceof ArmorStandEntity);
    }

    private boolean shouldAttack() {
        if (!perfectDelay.cooldownComplete() || !cooldownComplete()) {
            return false;
        }

        boolean isBlockAboveHead = BlockUtils.isBlockAboveHead();
        boolean isInLiquid = Minecraft.getInstance().player.isActualySwimming() ||
                Minecraft.getInstance().player.isSwimming() ||
                Minecraft.getInstance().player.areEyesInFluid(FluidTags.WATER) ||
                Minecraft.getInstance().player.areEyesInFluid(FluidTags.LAVA);

        if (isInLiquid) {
            return true;
        }

        boolean canDefaultCrit = Minecraft.getInstance().player.fallDistance > 0.0F && canCrit && isBlockAboveHead;
        boolean canSmartCrit = isBlockAboveHead && !Minecraft.getInstance().player.movementInput.jump &&
                !canCrit && Minecraft.getInstance().player.isOnGround() && Minecraft.getInstance().player.collidedVertically;

        if (critMode.is("Только критические")) {
            return shouldCritical() && canDefaultCrit;
        } else if (critMode.is("Умные критические")) {
            return canSmartCrit || canDefaultCrit;
        }
        return true;
    }

    private boolean shouldCritical() {
        boolean isDeBuffed = Minecraft.getInstance().player.isPotionActive(Effects.LEVITATION) ||
                Minecraft.getInstance().player.isPotionActive(Effects.BLINDNESS) ||
                Minecraft.getInstance().player.isPotionActive(Effects.SLOW_FALLING);
        boolean isInLiquid = Minecraft.getInstance().player.isActualySwimming() ||
                Minecraft.getInstance().player.isSwimming() ||
                Minecraft.getInstance().player.areEyesInFluid(FluidTags.WATER) ||
                Minecraft.getInstance().player.areEyesInFluid(FluidTags.LAVA);
        boolean isFlying = Minecraft.getInstance().player.abilities.isFlying ||
                Minecraft.getInstance().player.isElytraFlying();
        boolean isClimbing = Minecraft.getInstance().player.isOnLadder();
        boolean isCantJump = Minecraft.getInstance().player.isPassenger();
        boolean isOnWeb = BlockUtils.isPlayerInWeb();

        return !isDeBuffed && !isInLiquid && !isFlying && !isClimbing && !isCantJump && !isOnWeb;
    }

    public boolean cooldownComplete() {
        return Minecraft.getInstance().player != null &&
                Minecraft.getInstance().world != null &&
                Minecraft.getInstance().player.getCooledAttackStrength(1.5F) >= 0.93F;
    }

    public boolean rayTrace() {
        return RotationUtils.rayTraceEntity(Minecraft.getInstance().player.rotationYaw,
                Minecraft.getInstance().player.rotationPitch,
                attackRange.get() + rotationRange.get(),
                target) || attackMode.is("Резкий");
    }

    private void reset() {
        if (Minecraft.getInstance().player != null && Minecraft.getInstance().world != null) {
            Minecraft.getInstance().player.rotationYawOffset = Integer.MIN_VALUE;
        }
        target = null;
        canCrit = false;
    }

    public EnumSetting getAttackMode() { return attackMode; }
    public FloatSetting getAttackRange() { return attackRange; }
    public FloatSetting getRotationRange() { return rotationRange; }
    public MultiBooleanSetting getTargetSettings() { return targetSettings; }
    public EnumSetting getTargetEsp() { return targetEsp; }
    public EnumSetting getCritMode() { return critMode; }
    public EnumSetting getAttackStyle() { return attackStyle; }
    public MultiBooleanSetting getConsiderFactors() { return considerFactors; }
    public MultiBooleanSetting getChecks() { return checks; }
    public ScheduledExecutorService getScheduler() { return scheduler; }
    public Timer getPerfectDelay() { return perfectDelay; }
    public Timer getStopWatch() { return stopWatch; }
    public Script getScript() { return script; }
    public boolean isCanCrit() { return canCrit; }
    public int getSprintStopTicks() { return sprintStopTicks; }
    public int getRotationTicks() { return rotationTicks; }
    public Timer getYawUpdate() { return yawUpdate; }
    public Vector2f getLerpRotation() { return lerpRotation; }
    public Vector2f getLegacyRotation() { return legacyRotation; }
    public int getRotationCount() { return rotationCount; }
    public long getLastTickTime() { return lastTickTime; }
    public long getLastTickTime2() { return lastTickTime2; }
    public static BooleanOption getFreeSprint() { return freeSprint; }
    public LivingEntity getTarget() { return target; }
    public KillAura setTarget(LivingEntity target) { this.target = target; return this; }
}

KillAura Syntax Client​

на видосе мой велясик килка синтакса это пзц
 
спс работает
 
рар ама фури:pepeuhh:
 
ты чо у мя спиздил килку, ты че гений?
 
скинь текстур пак пж
 
Назад
Сверху Снизу