Исходник Evaware #028 SRC Ready

Начинающий
Статус
Оффлайн
Регистрация
14 Окт 2024
Сообщения
60
Реакции[?]
1
Поинты[?]
1K
Пожалуйста, авторизуйтесь для просмотра ссылки.

Пожалуйста, авторизуйтесь для просмотра ссылки.

из нового:
step
crystalaura -> ставить обсидиан
Код:
package eva.ware.modules.impl.combat;

import com.google.common.eventbus.Subscribe;
import eva.ware.Evaware;
import eva.ware.events.EventInput;
import eva.ware.events.EventMotion;
import eva.ware.events.EventUpdate;
import eva.ware.manager.friend.FriendManager;
import eva.ware.modules.api.Category;
import eva.ware.modules.api.Module;
import eva.ware.modules.api.ModuleRegister;
import eva.ware.modules.settings.api.Setting;
import eva.ware.modules.settings.impl.CheckBoxSetting;
import eva.ware.modules.settings.impl.ModeListSetting;
import eva.ware.modules.settings.impl.ModeSetting;
import eva.ware.modules.settings.impl.SliderSetting;
import eva.ware.ui.clickgui.ClickGuiScreen;
import eva.ware.utils.math.MathUtility;
import eva.ware.utils.math.SensUtility;
import eva.ware.utils.math.TimerUtility;
import eva.ware.utils.player.AttackUtility;
import eva.ware.utils.player.InventoryUtility;
import eva.ware.utils.player.MouseUtility;
import eva.ware.utils.player.MoveUtility;
import eva.ware.utils.player.PlayerUtility;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.client.entity.player.RemoteClientPlayerEntity;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.gui.screen.IngameMenuScreen;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.item.ArmorStandEntity;
import net.minecraft.entity.merchant.villager.VillagerEntity;
import net.minecraft.entity.monster.MonsterEntity;
import net.minecraft.entity.monster.SlimeEntity;
import net.minecraft.entity.passive.AnimalEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.UseAction;
import net.minecraft.network.play.client.CHeldItemChangePacket;
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;

@ModuleRegister(
        name = "HitAura",
        category = Category.Combat
)
public class HitAura extends Module {
    final ModeSetting type = new ModeSetting("Тип", "Плавная", new String[]{"Плавная", "Резкая", "HolyWorld"});
    final ModeSetting visualType = new ModeSetting("Визуальная наводка", "Обычная", new String[]{"Обычная", "Спин-бот", "Никакая"});
    final SliderSetting attackRange = new SliderSetting("Дистанция аттаки", 3.0F, 2.5F, 6.0F, 0.05F);
    final SliderSetting elytraRange = new SliderSetting("Дистанция на элитре", 6.0F, 0.0F, 16.0F, 0.05F);
    final SliderSetting preRange = (new SliderSetting("Дистанция наводки", 0.3F, 0.0F, 3.0F, 0.05F)).visibleIf(() -> {
        return !this.type.is("Резкая");
    });
    final SliderSetting tick = (new SliderSetting("Тики", 2.0F, 1.0F, 10.0F, 1.0F)).visibleIf(() -> {
        return this.type.is("Резкая");
    });
    final ModeSetting clickType = new ModeSetting("Режим кликов", "1.9", new String[]{"1.8", "1.9"});
    final SliderSetting minCPS = (new SliderSetting("Мин. CPS", 7.0F, 1.0F, 10.0F, 1.0F)).visibleIf(() -> {
        return !this.clickType.is("1.9");
    });
    final SliderSetting maxCPS = (new SliderSetting("Макс. CPS", 10.0F, 1.0F, 20.0F, 1.0F)).visibleIf(() -> {
        return !this.clickType.is("1.9");
    });
    final ModeListSetting targets = new ModeListSetting("Таргеты", new CheckBoxSetting[]{new CheckBoxSetting("Игроки", true), new CheckBoxSetting("Голые", true), new CheckBoxSetting("Мобы", false), new CheckBoxSetting("Животные", false), new CheckBoxSetting("Друзья", false), new CheckBoxSetting("Голые невидимки", true), new CheckBoxSetting("Невидимки", true)});
    final ModeListSetting consider = new ModeListSetting("Учитывать", new CheckBoxSetting[]{new CheckBoxSetting("Хп", true), new CheckBoxSetting("Броню", true), new CheckBoxSetting("Дистанцию", true), new CheckBoxSetting("Баффы", true)});
    final ModeListSetting options = new ModeListSetting("Опции", new CheckBoxSetting[]{new CheckBoxSetting("Только криты", true), new CheckBoxSetting("Ломать щит", true), new CheckBoxSetting("Отжимать щит", false), new CheckBoxSetting("Синхронизировать с TPS", false), new CheckBoxSetting("Фокусировать одну цель", true), new CheckBoxSetting("Коррекция движения", true), new CheckBoxSetting("Оптимальная дистанция", false), new CheckBoxSetting("Резольвер", true)});
    final ModeListSetting moreOptions = new ModeListSetting("Дополнительное", new CheckBoxSetting[]{new CheckBoxSetting("Проверка луча", true), new CheckBoxSetting("Перелетать противника", true), new CheckBoxSetting("Бить через стены", true), new CheckBoxSetting("Не бить если кушаешь", false), new CheckBoxSetting("Не бить если в гуи", false), new CheckBoxSetting("Рандомизация", true)});
    final SliderSetting elytraForward = (new SliderSetting("Значение перелета", 75.0F, 1.0F, 100.0F, 1.0F)).visibleIf(() -> {
        return (Boolean)this.moreOptions.is("Перелетать противника").getValue();
    });
    public CheckBoxSetting smartCrits = (new CheckBoxSetting("Умные криты", false)).visibleIf(() -> {
        return (Boolean)this.options.is("Только криты").getValue();
    });
    final ModeSetting correctionType = (new ModeSetting("Тип коррекции", "Незаметный", new String[]{"Незаметный", "Сфокусированный"})).visibleIf(() -> {
        return (Boolean)this.options.is("Коррекция движения").getValue();
    });
    final ModeSetting critType = new ModeSetting("Крит хелпер", "None", new String[]{"None", "Matrix", "NCP", "NCP+", "Grim"});
    private final TimerUtility timerUtility = new TimerUtility();
    public Vector2f rotate = new Vector2f(0.0F, 0.0F);
    public Vector2f visualRotateVector = new Vector2f(0.0F, 0.0F);
    private LivingEntity target;
    private Entity selected;
    int ticks = 0;
    boolean isRotated = false;
    boolean isAttacking = false;
    boolean crystalAuraRule = true;
    boolean elytraTargetRule;
    float lastYaw;
    float lastPitch;
    boolean isReversing = false;
    private float rotationSpeed;
    private float rotationAngle;
    final PotionThrower autoPotion;
    double moreAttackDistanceOnElytra = 0.0;

    float aimDistance() {
        return !this.type.is("Резкая") ? (Float)this.preRange.getValue() : 0.0F;
    }

    float maxRange() {
        return this.attackDistance() + (mc.player.isElytraFlying() ? (Float)this.elytraRange.getValue() : 0.0F) + this.aimDistance();
    }

    public HitAura(PotionThrower autoPotion) {
        this.autoPotion = autoPotion;
        this.addSettings(new Setting[]{this.type, this.visualType, this.attackRange, this.preRange, this.elytraRange, this.tick, this.clickType, this.minCPS, this.maxCPS, this.targets, this.consider, this.options, this.moreOptions, this.elytraForward, this.smartCrits, this.correctionType, this.critType});
    }

    @Subscribe
    public void onInput(EventInput eventInput) {
        if ((Boolean)this.options.is("Коррекция движения").getValue() && this.correctionType.is("Незаметный") && this.crystalAuraRule) {
            MoveUtility.fixMovement(eventInput, this.rotate.x);
        }

    }

    @Subscribe
    public void onUpdate(EventUpdate e) {
        if (this.crystalAuraRule) {
            if ((Boolean)this.options.is("Фокусировать одну цель").getValue() && (this.target == null || !this.isValid(this.target)) || !(Boolean)this.options.is("Фокусировать одну цель").getValue()) {
                this.updateTarget();
            }

            if ((Boolean)this.options.is("Резольвер").getValue()) {
                this.resolvePlayers();
                this.releaseResolver();
            }

            if (this.target != null && (!this.autoPotion.isEnabled() || !this.autoPotion.isActive())) {
                this.isRotated = false;
                this.visualRotationUpdate();
                this.updateRotation();
                if (this.shouldPlayerFalling() && this.timerUtility.hasTimeElapsed()) {
                    this.ticks = ((Float)this.tick.getValue()).intValue();
                    this.forceAttack();
                }

                if (!mc.player.isElytraFlying()) {
                    if (this.type.is("Резкая")) {
                        if (this.ticks > 0) {
                            this.setRotate();
                            --this.ticks;
                        } else {
                            this.reset();
                        }
                    } else if (!this.isRotated) {
                        this.setRotate();
                    }
                } else if (!this.isRotated) {
                    this.setRotate();
                }
            } else {
                this.timerUtility.setLastMS(0L);
                this.reset();
            }

            if (this.target != null && this.isRotated && !mc.player.isElytraFlying() && mc.player.getDistanceEyePos(this.target) <= (double)this.attackDistance()) {
                this.critHelper();
            }

        }
    }

    @Subscribe
    private void onWalking(EventMotion e) {
        if (this.target != null && (!this.autoPotion.isEnabled() || !this.autoPotion.isActive()) && this.crystalAuraRule) {
            float yaw = this.visualRotateVector.x;
            float pitch = this.visualRotateVector.y;
            e.setYaw(this.rotate.x);
            e.setPitch(this.rotate.y);
            mc.player.rotationYawHead = yaw;
            mc.player.renderYawOffset = PlayerUtility.calculateCorrectYawOffset(yaw);
            mc.player.rotationPitchHead = pitch;
        }
    }

    public void setRotate() {
        this.elytraTargetRule = mc.player.isElytraFlying() && this.target.isElytraFlying();
        if (this.type.is("Резкая")) {
            this.updateRotation(2.1474836E9F);
        } else {
            this.updateRotation(9999.0F);
        }

    }

    public float attackDistance() {
        if ((Boolean)this.options.is("Оптимальная дистанция").getValue() && !Evaware.getInst().getModuleManager().getTPInfluence().isEnabled()) {
            return !mc.player.isSwimming() ? (float)(3.6 + this.moreAttackDistanceOnElytra) : (float)(3.0 + this.moreAttackDistanceOnElytra);
        } else {
            return Evaware.getInst().getModuleManager().getTPInfluence().isEnabled() && !Evaware.getInst().getModuleManager().getFreeCam().isEnabled() ? (Float)Evaware.getInst().getModuleManager().getTPInfluence().range.getValue() : (float)((double)(Float)this.attackRange.getValue() + this.moreAttackDistanceOnElytra);
        }
    }

    public void resolvePlayers() {
        Iterator var1 = mc.world.getPlayers().iterator();

        while(var1.hasNext()) {
            PlayerEntity player = (PlayerEntity)var1.next();
            if (player instanceof RemoteClientPlayerEntity) {
                ((RemoteClientPlayerEntity)player).resolve();
            }
        }

    }

    public void releaseResolver() {
        Iterator var1 = mc.world.getPlayers().iterator();

        while(var1.hasNext()) {
            PlayerEntity player = (PlayerEntity)var1.next();
            if (player instanceof RemoteClientPlayerEntity) {
                ((RemoteClientPlayerEntity)player).releaseResolver();
            }
        }

    }

    private void updateTarget() {
        List<LivingEntity> targets = new ArrayList();
        Iterator var2 = mc.world.getAllEntities().iterator();

        while(var2.hasNext()) {
            Entity entity = (Entity)var2.next();
            if (entity instanceof LivingEntity living) {
                if (this.isValid(living)) {
                    targets.add(living);
                }
            }
        }

        if (targets.isEmpty()) {
            this.target = null;
        } else if (targets.size() == 1) {
            this.target = (LivingEntity)targets.get(0);
        } else {
            targets.sort(Comparator.comparingDouble((entityx) -> {
                return MathUtility.entity(entityx, (Boolean)this.consider.is("Хп").getValue(), (Boolean)this.consider.is("Броню").getValue(), (Boolean)this.consider.is("Дистанцию").getValue(), (double)this.maxRange(), (Boolean)this.consider.is("Баффы").getValue());
            }));
            this.target = (LivingEntity)targets.get(0);
        }
    }

    private void updateRotation(float rotationYawSpeed) {
        float scaleFactor = (Boolean)this.moreOptions.is("Перелетать противника").getValue() ? (PlayerUtility.getEntityBPS(this.target, false) > 8.0 ? (Float)this.elytraForward.getValue() / 20.0F : 1.0F) : 1.0F;
        Vector3d vec;
        float yawToTarget;
        float pitchToTarget;
        float yawDelta;
        float pitchDelta;
        float yaw;
        float pitch;
        float gcd;
        float clampedYaw;
        float clampedPitch;
        float randomYawFactor;
        float randomPitchFactor;
        float randomThreshold;
        float randomAddition;
        if (this.elytraTargetRule) {
            vec = this.target.getPositionVec().add(0.0, MathHelper.clamp(this.target.getPosY() - (double)this.target.getHeight(), 0.0, (double)(this.target.getHeight() / 2.0F)), 0.0).subtract(mc.player.getEyePosition(1.0F)).add(this.target.getMotion().mul(this.elytraTargetRule ? (double)scaleFactor : 1.0, mc.player.isElytraFlying() && this.target.isElytraFlying() ? (double)scaleFactor : 1.0, mc.player.isElytraFlying() && this.target.isElytraFlying() ? (double)scaleFactor : 1.0));
            yawToTarget = (float)MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90.0);
            pitchToTarget = (float)(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))));
            yawDelta = MathHelper.wrapDegrees(yawToTarget - this.rotate.x);
            pitchDelta = MathHelper.wrapDegrees(pitchToTarget - this.rotate.y);
            switch ((String)this.type.getValue()) {
                case "Плавная":
                    yaw = Math.min(Math.max(Math.abs(yawDelta), 1.0F), rotationYawSpeed);
                    pitch = Math.max(Math.abs(pitchDelta), 1.0F);
                    gcd = this.rotate.x + (yawDelta > 0.0F ? yaw : -yaw) + SensUtility.getSensitivity((float)(Math.cos((double)System.currentTimeMillis() / 50.0) * 7.0));
                    pitch = MathHelper.clamp(this.rotate.y + (pitchDelta > 0.0F ? pitch : -pitch), -89.0F, 89.0F) + SensUtility.getSensitivity((float)(Math.cos((double)System.currentTimeMillis() / 50.0) * 7.0));
                    gcd -= (gcd - this.rotate.x) % SensUtility.getGCDValue();
                    pitch -= (pitch - this.rotate.y) % SensUtility.getGCDValue();
                    this.rotate = new Vector2f(gcd, pitch);
                    this.lastYaw = yaw;
                    this.lastPitch = pitch;
                    break;
                case "Резкая":
                    yaw = this.rotate.x + yawDelta;
                    pitch = MathHelper.clamp(this.rotate.y + pitchDelta, -90.0F, 90.0F);
                    gcd = SensUtility.getGCDValue();
                    yaw -= (yaw - this.rotate.x) % gcd;
                    pitch -= (pitch - this.rotate.y) % gcd;
                    this.rotate = new Vector2f(yaw, pitch);
                    break;
                case "HolyWorld":
                    clampedYaw = Math.min(Math.max(Math.abs(yawDelta), 1.0E-4F), 52.0F);
                    clampedPitch = Math.min(Math.max(Math.abs(pitchDelta), 1.0E-4F), 22.0F);
                    randomYawFactor = (float)(Math.random() * 1.5 - 1.5);
                    randomPitchFactor = (float)(Math.random() * 1.5 - 1.0);
                    randomThreshold = (float)(Math.random() * 1.5);
                    randomAddition = (float)(Math.random() * 2.5 + 1.5);
                    if (this.selected != this.target) {
                        clampedPitch = Math.max(Math.abs(pitchDelta), 1.0F);
                    } else {
                        clampedPitch /= 3.0F;
                    }

                    if (Math.abs(clampedYaw - this.lastYaw) <= randomThreshold) {
                        clampedYaw = this.lastYaw + randomAddition;
                    }

                    clampedYaw += randomYawFactor;
                    clampedPitch += randomPitchFactor;
                    yaw = this.rotate.x + (yawDelta > 0.0F ? clampedYaw : -clampedYaw);
                    pitch = MathHelper.clamp(this.rotate.y + (pitchDelta > 0.0F ? clampedPitch : -clampedPitch), -90.0F, 90.0F);
                    gcd = SensUtility.getGCDValue();
                    yaw -= (yaw - this.rotate.x) % gcd;
                    pitch -= (pitch - this.rotate.y) % gcd;
                    this.rotate = new Vector2f(yaw, pitch);
                    this.lastYaw = clampedYaw;
                    this.lastPitch = clampedPitch;
            }
        } else {
            vec = this.target.getPositionVec().add(0.0, MathHelper.clamp(this.target.getPosY() - (double)this.target.getHeight(), 0.0, (double)(this.target.getHeight() / 2.0F)), 0.0).subtract(mc.player.getEyePosition(1.0F));
            yawToTarget = (float)MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90.0);
            pitchToTarget = (float)(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))));
            yawDelta = MathHelper.wrapDegrees(yawToTarget - this.rotate.x);
            pitchDelta = MathHelper.wrapDegrees(pitchToTarget - this.rotate.y);
            int roundedYaw = (int)yawDelta;
            switch ((String)this.type.getValue()) {
                case "Плавная":
                    yaw = Math.min(Math.max(Math.abs(yawDelta), 1.0F), rotationYawSpeed);
                    pitch = Math.max(Math.abs(pitchDelta), 1.0F);
                    gcd = this.rotate.x + (yawDelta > 0.0F ? yaw : -yaw);
                    pitch = MathHelper.clamp(this.rotate.y + (pitchDelta > 0.0F ? pitch : -pitch), -89.0F, 89.0F);
                    gcd -= (gcd - this.rotate.x) % SensUtility.getGCDValue();
                    pitch -= (pitch - this.rotate.y) % SensUtility.getGCDValue();
                    this.rotate = new Vector2f(gcd, pitch);
                    this.lastYaw = yaw;
                    this.lastPitch = pitch;
                    break;
                case "Резкая":
                    yaw = this.rotate.x + (float)roundedYaw;
                    pitch = MathHelper.clamp(this.rotate.y + pitchDelta, -90.0F, 90.0F);
                    gcd = SensUtility.getGCDValue();
                    yaw -= (yaw - this.rotate.x) % gcd;
                    pitch -= (pitch - this.rotate.y) % gcd;
                    this.rotate = new Vector2f(yaw, pitch);
                    break;
                case "HolyWorld":
                    clampedYaw = Math.min(Math.max(Math.abs(yawDelta), 1.0E-4F), 52.0F);
                    clampedPitch = Math.min(Math.max(Math.abs(pitchDelta), 1.0E-4F), 22.0F);
                    randomYawFactor = (float)(Math.random() * 1.5 - 1.5);
                    randomPitchFactor = (float)(Math.random() * 1.5 - 1.0);
                    randomThreshold = (float)(Math.random() * 1.5);
                    randomAddition = (float)(Math.random() * 2.5 + 1.5);
                    if (this.selected != this.target) {
                        clampedPitch = Math.max(Math.abs(pitchDelta), 1.0F);
                    } else {
                        clampedPitch /= 3.0F;
                    }

                    if (Math.abs(clampedYaw - this.lastYaw) <= randomThreshold) {
                        clampedYaw = this.lastYaw + randomAddition;
                    }

                    clampedYaw += randomYawFactor;
                    clampedPitch += randomPitchFactor;
                    yaw = this.rotate.x + (yawDelta > 0.0F ? clampedYaw : -clampedYaw);
                    pitch = MathHelper.clamp(this.rotate.y + (pitchDelta > 0.0F ? clampedPitch : -clampedPitch), -90.0F, 90.0F);
                    gcd = SensUtility.getGCDValue();
                    yaw -= (yaw - this.rotate.x) % gcd;
                    pitch -= (pitch - this.rotate.y) % gcd;
                    this.rotate = new Vector2f(yaw, pitch);
                    this.lastYaw = clampedYaw;
                    this.lastPitch = clampedPitch;
            }
        }

        if ((Boolean)this.options.is("Коррекция движения").getValue()) {
            mc.player.rotationYawOffset = this.rotate.x;
        }

    }

    private void visualRotationUpdate() {
        Vector3d vec = this.target.getPositionVec().add(0.0, MathHelper.clamp(mc.player.getPosYEye() - this.target.getPosY(), 0.0, (double)this.target.getHeight() * (mc.player.getDistanceEyePos(this.target) / (double)this.attackDistance())), 0.0).subtract(mc.player.getEyePosition(1.0F));
        float yawDelta = (float)MathHelper.wrapDegrees(MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90.0) - (double)this.visualRotateVector.x);
        float pitchDelta = (float)MathHelper.wrapDegrees(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))) - (double)this.visualRotateVector.y);
        int roundYawDelta = (int)Math.abs(yawDelta);
        int roundPitchDelta = (int)Math.abs(pitchDelta);
        float gcd = SensUtility.getGCDValue();
        float yaw = 0.0F;
        float pitch = 0.0F;
        float clampedPitch = 0.0F;
        float clampedYaw = 0.0F;
        switch ((String)this.visualType.getValue()) {
            case "Обычная":
                clampedYaw = (float)Math.min(roundYawDelta, 40);
                clampedPitch = Math.min((float)roundPitchDelta * 0.33F, 30.0F);
                yaw = this.visualRotateVector.x + (yawDelta > 0.0F ? clampedYaw : -clampedYaw);
                pitch = MathHelper.clamp(this.visualRotateVector.y + (pitchDelta > 0.0F ? clampedPitch : -clampedPitch), -89.0F, 89.0F);
                yaw -= (yaw - this.visualRotateVector.x) % gcd;
                pitch -= (pitch - this.visualRotateVector.y) % gcd;
                break;
            case "Спин-бот":
                clampedPitch = Math.min((float)roundPitchDelta * 0.33F, 30.0F);
                pitch = MathHelper.clamp(this.visualRotateVector.y + (pitchDelta > 0.0F ? clampedPitch : -clampedPitch), -89.0F, 89.0F);
                pitch -= (pitch - this.visualRotateVector.y) % gcd;
                yaw = this.rotationAngle;
                break;
            case "Никакая":
                yaw = mc.player.rotationYaw;
                pitch = mc.player.rotationPitch;
        }

        this.visualRotateVector = new Vector2f(yaw, pitch);
        this.lastYaw = clampedYaw;
        this.lastPitch = clampedPitch;
    }

    public void updateRotation() {
        float limitSpeed = 60.0F;
        float reverseSpeed = 5.0F;
        if (!this.isReversing) {
            this.rotationSpeed += reverseSpeed;
            if (this.rotationSpeed > limitSpeed) {
                this.rotationSpeed = limitSpeed;
                this.isReversing = true;
            }
        } else {
            this.rotationSpeed -= reverseSpeed;
            if (this.rotationSpeed < -limitSpeed) {
                this.rotationSpeed = -limitSpeed;
                this.isReversing = false;
            }
        }

        this.rotationAngle += this.rotationSpeed;
        this.rotationAngle = (this.rotationAngle + 360.0F) % 360.0F;
    }

    public void critHelper() {
        switch ((String)this.critType.getValue()) {
            case "None":
                return;
            case "Matrix":
                if (mc.player.isJumping && mc.player.motion.getY() < -0.1 && (double)mc.player.fallDistance > 0.5 && MoveUtility.getMotion() < 0.12) {
                    mc.player.motion.y = -1.0;
                }
                break;
            case "NCP":
                if (mc.player.isJumping && mc.player.fallDistance != 0.0F) {
                    Vector3d var10000 = mc.player.motion;
                    var10000.y -= 0.078;
                }
                break;
            case "NCP+":
                if ((double)mc.player.fallDistance > 0.7 && (double)mc.player.fallDistance < 0.8 && this.target != null) {
                    mc.timer.timerSpeed = 2.0F;
                } else {
                    mc.timer.timerSpeed = 1.0F;
                }
                break;
            case "Grim":
                if (mc.player.isJumping && mc.player.fallDistance > 0.0F && (double)mc.player.fallDistance <= 1.2 && !MoveUtility.moveKeysPressed()) {
                    mc.player.jumpTicks = 0;
                    if ((double)mc.timer.timerSpeed == 1.0) {
                        mc.timer.timerSpeed = 1.005F;
                    }
                }
        }

    }

    private void forceAttack() {
        if (this.isAttacking || this.canAttack()) {
            this.isAttacking = true;

            try {
                this.preAttack();
                this.attack();
                this.postAttack();
            } finally {
                this.isAttacking = false;
            }

        }
    }

    private boolean canAttack() {
        this.selected = MouseUtility.getMouseOver(this.target, this.rotate.x, this.rotate.y, (double)this.attackDistance());
        if (mc.player.getDistanceEyePos(this.target) > (double)this.attackDistance()) {
            return false;
        } else if ((Boolean)this.moreOptions.is("Проверка луча").getValue() && !this.elytraTargetRule && this.selected == null) {
            return false;
        } else if (!(Boolean)this.moreOptions.is("Бить через стены").getValue() && !mc.player.canEntityBeSeen(this.target)) {
            return false;
        } else if ((Boolean)this.moreOptions.is("Не бить если кушаешь").getValue() && mc.player.isHandActive() && mc.player.getHeldItemOffhand().getUseAction() == UseAction.EAT) {
            return false;
        } else {
            return !(Boolean)this.moreOptions.is("Не бить если в гуи").getValue() || mc.currentScreen == null || mc.currentScreen instanceof ClickGuiScreen || mc.currentScreen instanceof ChatScreen || mc.currentScreen instanceof IngameMenuScreen;
        }
    }

    private void preAttack() {
        Evaware.getInst().getModuleManager().getTPInfluence().hitAuraTPPRe(this.target);
        if (mc.player.isBlocking() && (Boolean)this.options.is("Отжимать щит").getValue()) {
            mc.playerController.onStoppedUsingItem(mc.player);
        }

    }

    private void attack() {
        int minCPSValue = ((Float)this.minCPS.getValue()).intValue();
        int maxCPSValue = ((Float)this.maxCPS.getValue()).intValue();
        if (minCPSValue > maxCPSValue) {
            maxCPSValue = minCPSValue;
        }

        int minMS = 1000 / maxCPSValue;
        int maxMS = 1000 / minCPSValue;
        Random random = new Random();
        int randomMS = random.nextInt(maxMS - minMS + 1) + minMS;
        this.timerUtility.setLastMS(this.clickType.is("1.9") ? 500L : (long)randomMS);
        Criticals.cancelCrit = true;
        if (Evaware.getInst().getModuleManager().getCriticals().isEnabled() && Criticals.canUseCriticals()) {
            Evaware.getInst().getModuleManager().getCriticals().sendCrit();
        }

        mc.playerController.attackEntity(mc.player, this.target);
        mc.player.swingArm(Hand.MAIN_HAND);
        Criticals.cancelCrit = false;
    }

    private void postAttack() {
        LivingEntity var2 = this.target;
        if (var2 instanceof PlayerEntity player) {
            if ((Boolean)this.options.is("Ломать щит").getValue()) {
                this.breakShieldPlayer(player);
            }
        }

        Evaware.getInst().getModuleManager().getTPInfluence().hitAuraTPPost(this.target);
    }

    public boolean shouldPlayerFalling() {
        return AttackUtility.isPlayerFalling((Boolean)this.options.is("Только криты").getValue() && !Criticals.canUseCriticals(), (Boolean)this.smartCrits.getValue(), (Boolean)this.options.is("Синхронизировать с TPS").getValue(), this.clickType.is("1.9"));
    }

    private boolean isValid(LivingEntity entity) {
        if (entity instanceof ClientPlayerEntity) {
            return false;
        } else if (entity.ticksExisted < 3) {
            return false;
        } else if (mc.player.getDistanceEyePos(entity) > (double)this.maxRange()) {
            return false;
        } else if (entity == Evaware.getInst().getModuleManager().getFreeCam().fakePlayer) {
            return false;
        } else {
            if (entity instanceof PlayerEntity) {
                PlayerEntity p = (PlayerEntity)entity;
                if (AntiBot.isBot(entity)) {
                    return false;
                }

                if (!(Boolean)this.targets.is("Друзья").getValue() && FriendManager.isFriend(p.getName().getString())) {
                    return false;
                }

                if (p.getName().getString().equalsIgnoreCase(mc.player.getName().getString())) {
                    return false;
                }
            }

            if (entity instanceof PlayerEntity && !(Boolean)this.targets.is("Игроки").getValue()) {
                return false;
            } else if (entity instanceof PlayerEntity && entity.getTotalArmorValue() == 0 && !(Boolean)this.targets.is("Голые").getValue()) {
                return false;
            } else if (entity instanceof PlayerEntity && entity.isInvisible() && entity.getTotalArmorValue() == 0 && !(Boolean)this.targets.is("Голые невидимки").getValue()) {
                return false;
            } else if (entity instanceof PlayerEntity && entity.isInvisible() && !(Boolean)this.targets.is("Невидимки").getValue()) {
                return false;
            } else if (entity instanceof PlayerEntity && ((PlayerEntity)entity).isCreative()) {
                return false;
            } else if ((entity instanceof MonsterEntity || entity instanceof SlimeEntity || entity instanceof VillagerEntity) && !(Boolean)this.targets.is("Мобы").getValue()) {
                return false;
            } else if (entity instanceof AnimalEntity && !(Boolean)this.targets.is("Животные").getValue()) {
                return false;
            } else {
                return !entity.isInvulnerable() && entity.isAlive() && !(entity instanceof ArmorStandEntity);
            }
        }
    }

    private void breakShieldPlayer(PlayerEntity entity) {
        if (entity.isBlocking()) {
            int invSlot = InventoryUtility.getInstance().getAxeInInventory(false);
            int hotBarSlot = InventoryUtility.getInstance().getAxeInInventory(true);
            if (hotBarSlot == -1 && invSlot != -1) {
                int bestSlot = InventoryUtility.getInstance().findBestSlotInHotBar();
                mc.playerController.windowClick(0, invSlot, 0, ClickType.PICKUP, mc.player);
                mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(bestSlot));
                mc.playerController.attackEntity(mc.player, entity);
                mc.player.swingArm(Hand.MAIN_HAND);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
                mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);
                mc.playerController.windowClick(0, invSlot, 0, ClickType.PICKUP, mc.player);
            }

            if (hotBarSlot != -1) {
                mc.player.connection.sendPacket(new CHeldItemChangePacket(hotBarSlot));
                mc.playerController.attackEntity(mc.player, entity);
                mc.player.swingArm(Hand.MAIN_HAND);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
            }
        }

    }

    private void reset() {
        if ((Boolean)this.options.is("Коррекция движения").getValue()) {
            mc.player.rotationYawOffset = -2.1474836E9F;
        }

        this.rotate = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch);
    }

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

    public void onDisable() {
        super.onDisable();
        this.reset();
        this.timerUtility.setLastMS(0L);
        this.target = null;
        mc.timer.timerSpeed = 1.0F;
    }

    public ModeSetting getType() {
        return this.type;
    }

    public ModeListSetting getOptions() {
        return this.options;
    }

    public ModeListSetting getMoreOptions() {
        return this.moreOptions;
    }

    public TimerUtility getTimerUtility() {
        return this.timerUtility;
    }

    public LivingEntity getTarget() {
        return this.target;
    }

    public void setTarget(LivingEntity target) {
        this.target = target;
    }
}
держите рабочую килку с евы
 
Начинающий
Статус
Оффлайн
Регистрация
6 Окт 2024
Сообщения
18
Реакции[?]
0
Поинты[?]
0
Код:
package eva.ware.modules.impl.combat;

import com.google.common.eventbus.Subscribe;
import eva.ware.Evaware;
import eva.ware.events.EventInput;
import eva.ware.events.EventMotion;
import eva.ware.events.EventUpdate;
import eva.ware.manager.friend.FriendManager;
import eva.ware.modules.api.Category;
import eva.ware.modules.api.Module;
import eva.ware.modules.api.ModuleRegister;
import eva.ware.modules.settings.api.Setting;
import eva.ware.modules.settings.impl.CheckBoxSetting;
import eva.ware.modules.settings.impl.ModeListSetting;
import eva.ware.modules.settings.impl.ModeSetting;
import eva.ware.modules.settings.impl.SliderSetting;
import eva.ware.ui.clickgui.ClickGuiScreen;
import eva.ware.utils.math.MathUtility;
import eva.ware.utils.math.SensUtility;
import eva.ware.utils.math.TimerUtility;
import eva.ware.utils.player.AttackUtility;
import eva.ware.utils.player.InventoryUtility;
import eva.ware.utils.player.MouseUtility;
import eva.ware.utils.player.MoveUtility;
import eva.ware.utils.player.PlayerUtility;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.client.entity.player.RemoteClientPlayerEntity;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.gui.screen.IngameMenuScreen;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.item.ArmorStandEntity;
import net.minecraft.entity.merchant.villager.VillagerEntity;
import net.minecraft.entity.monster.MonsterEntity;
import net.minecraft.entity.monster.SlimeEntity;
import net.minecraft.entity.passive.AnimalEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.UseAction;
import net.minecraft.network.play.client.CHeldItemChangePacket;
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;

@ModuleRegister(
        name = "HitAura",
        category = Category.Combat
)
public class HitAura extends Module {
    final ModeSetting type = new ModeSetting("Тип", "Плавная", new String[]{"Плавная", "Резкая", "HolyWorld"});
    final ModeSetting visualType = new ModeSetting("Визуальная наводка", "Обычная", new String[]{"Обычная", "Спин-бот", "Никакая"});
    final SliderSetting attackRange = new SliderSetting("Дистанция аттаки", 3.0F, 2.5F, 6.0F, 0.05F);
    final SliderSetting elytraRange = new SliderSetting("Дистанция на элитре", 6.0F, 0.0F, 16.0F, 0.05F);
    final SliderSetting preRange = (new SliderSetting("Дистанция наводки", 0.3F, 0.0F, 3.0F, 0.05F)).visibleIf(() -> {
        return !this.type.is("Резкая");
    });
    final SliderSetting tick = (new SliderSetting("Тики", 2.0F, 1.0F, 10.0F, 1.0F)).visibleIf(() -> {
        return this.type.is("Резкая");
    });
    final ModeSetting clickType = new ModeSetting("Режим кликов", "1.9", new String[]{"1.8", "1.9"});
    final SliderSetting minCPS = (new SliderSetting("Мин. CPS", 7.0F, 1.0F, 10.0F, 1.0F)).visibleIf(() -> {
        return !this.clickType.is("1.9");
    });
    final SliderSetting maxCPS = (new SliderSetting("Макс. CPS", 10.0F, 1.0F, 20.0F, 1.0F)).visibleIf(() -> {
        return !this.clickType.is("1.9");
    });
    final ModeListSetting targets = new ModeListSetting("Таргеты", new CheckBoxSetting[]{new CheckBoxSetting("Игроки", true), new CheckBoxSetting("Голые", true), new CheckBoxSetting("Мобы", false), new CheckBoxSetting("Животные", false), new CheckBoxSetting("Друзья", false), new CheckBoxSetting("Голые невидимки", true), new CheckBoxSetting("Невидимки", true)});
    final ModeListSetting consider = new ModeListSetting("Учитывать", new CheckBoxSetting[]{new CheckBoxSetting("Хп", true), new CheckBoxSetting("Броню", true), new CheckBoxSetting("Дистанцию", true), new CheckBoxSetting("Баффы", true)});
    final ModeListSetting options = new ModeListSetting("Опции", new CheckBoxSetting[]{new CheckBoxSetting("Только криты", true), new CheckBoxSetting("Ломать щит", true), new CheckBoxSetting("Отжимать щит", false), new CheckBoxSetting("Синхронизировать с TPS", false), new CheckBoxSetting("Фокусировать одну цель", true), new CheckBoxSetting("Коррекция движения", true), new CheckBoxSetting("Оптимальная дистанция", false), new CheckBoxSetting("Резольвер", true)});
    final ModeListSetting moreOptions = new ModeListSetting("Дополнительное", new CheckBoxSetting[]{new CheckBoxSetting("Проверка луча", true), new CheckBoxSetting("Перелетать противника", true), new CheckBoxSetting("Бить через стены", true), new CheckBoxSetting("Не бить если кушаешь", false), new CheckBoxSetting("Не бить если в гуи", false), new CheckBoxSetting("Рандомизация", true)});
    final SliderSetting elytraForward = (new SliderSetting("Значение перелета", 75.0F, 1.0F, 100.0F, 1.0F)).visibleIf(() -> {
        return (Boolean)this.moreOptions.is("Перелетать противника").getValue();
    });
    public CheckBoxSetting smartCrits = (new CheckBoxSetting("Умные криты", false)).visibleIf(() -> {
        return (Boolean)this.options.is("Только криты").getValue();
    });
    final ModeSetting correctionType = (new ModeSetting("Тип коррекции", "Незаметный", new String[]{"Незаметный", "Сфокусированный"})).visibleIf(() -> {
        return (Boolean)this.options.is("Коррекция движения").getValue();
    });
    final ModeSetting critType = new ModeSetting("Крит хелпер", "None", new String[]{"None", "Matrix", "NCP", "NCP+", "Grim"});
    private final TimerUtility timerUtility = new TimerUtility();
    public Vector2f rotate = new Vector2f(0.0F, 0.0F);
    public Vector2f visualRotateVector = new Vector2f(0.0F, 0.0F);
    private LivingEntity target;
    private Entity selected;
    int ticks = 0;
    boolean isRotated = false;
    boolean isAttacking = false;
    boolean crystalAuraRule = true;
    boolean elytraTargetRule;
    float lastYaw;
    float lastPitch;
    boolean isReversing = false;
    private float rotationSpeed;
    private float rotationAngle;
    final PotionThrower autoPotion;
    double moreAttackDistanceOnElytra = 0.0;

    float aimDistance() {
        return !this.type.is("Резкая") ? (Float)this.preRange.getValue() : 0.0F;
    }

    float maxRange() {
        return this.attackDistance() + (mc.player.isElytraFlying() ? (Float)this.elytraRange.getValue() : 0.0F) + this.aimDistance();
    }

    public HitAura(PotionThrower autoPotion) {
        this.autoPotion = autoPotion;
        this.addSettings(new Setting[]{this.type, this.visualType, this.attackRange, this.preRange, this.elytraRange, this.tick, this.clickType, this.minCPS, this.maxCPS, this.targets, this.consider, this.options, this.moreOptions, this.elytraForward, this.smartCrits, this.correctionType, this.critType});
    }

    @Subscribe
    public void onInput(EventInput eventInput) {
        if ((Boolean)this.options.is("Коррекция движения").getValue() && this.correctionType.is("Незаметный") && this.crystalAuraRule) {
            MoveUtility.fixMovement(eventInput, this.rotate.x);
        }

    }

    @Subscribe
    public void onUpdate(EventUpdate e) {
        if (this.crystalAuraRule) {
            if ((Boolean)this.options.is("Фокусировать одну цель").getValue() && (this.target == null || !this.isValid(this.target)) || !(Boolean)this.options.is("Фокусировать одну цель").getValue()) {
                this.updateTarget();
            }

            if ((Boolean)this.options.is("Резольвер").getValue()) {
                this.resolvePlayers();
                this.releaseResolver();
            }

            if (this.target != null && (!this.autoPotion.isEnabled() || !this.autoPotion.isActive())) {
                this.isRotated = false;
                this.visualRotationUpdate();
                this.updateRotation();
                if (this.shouldPlayerFalling() && this.timerUtility.hasTimeElapsed()) {
                    this.ticks = ((Float)this.tick.getValue()).intValue();
                    this.forceAttack();
                }

                if (!mc.player.isElytraFlying()) {
                    if (this.type.is("Резкая")) {
                        if (this.ticks > 0) {
                            this.setRotate();
                            --this.ticks;
                        } else {
                            this.reset();
                        }
                    } else if (!this.isRotated) {
                        this.setRotate();
                    }
                } else if (!this.isRotated) {
                    this.setRotate();
                }
            } else {
                this.timerUtility.setLastMS(0L);
                this.reset();
            }

            if (this.target != null && this.isRotated && !mc.player.isElytraFlying() && mc.player.getDistanceEyePos(this.target) <= (double)this.attackDistance()) {
                this.critHelper();
            }

        }
    }

    @Subscribe
    private void onWalking(EventMotion e) {
        if (this.target != null && (!this.autoPotion.isEnabled() || !this.autoPotion.isActive()) && this.crystalAuraRule) {
            float yaw = this.visualRotateVector.x;
            float pitch = this.visualRotateVector.y;
            e.setYaw(this.rotate.x);
            e.setPitch(this.rotate.y);
            mc.player.rotationYawHead = yaw;
            mc.player.renderYawOffset = PlayerUtility.calculateCorrectYawOffset(yaw);
            mc.player.rotationPitchHead = pitch;
        }
    }

    public void setRotate() {
        this.elytraTargetRule = mc.player.isElytraFlying() && this.target.isElytraFlying();
        if (this.type.is("Резкая")) {
            this.updateRotation(2.1474836E9F);
        } else {
            this.updateRotation(9999.0F);
        }

    }

    public float attackDistance() {
        if ((Boolean)this.options.is("Оптимальная дистанция").getValue() && !Evaware.getInst().getModuleManager().getTPInfluence().isEnabled()) {
            return !mc.player.isSwimming() ? (float)(3.6 + this.moreAttackDistanceOnElytra) : (float)(3.0 + this.moreAttackDistanceOnElytra);
        } else {
            return Evaware.getInst().getModuleManager().getTPInfluence().isEnabled() && !Evaware.getInst().getModuleManager().getFreeCam().isEnabled() ? (Float)Evaware.getInst().getModuleManager().getTPInfluence().range.getValue() : (float)((double)(Float)this.attackRange.getValue() + this.moreAttackDistanceOnElytra);
        }
    }

    public void resolvePlayers() {
        Iterator var1 = mc.world.getPlayers().iterator();

        while(var1.hasNext()) {
            PlayerEntity player = (PlayerEntity)var1.next();
            if (player instanceof RemoteClientPlayerEntity) {
                ((RemoteClientPlayerEntity)player).resolve();
            }
        }

    }

    public void releaseResolver() {
        Iterator var1 = mc.world.getPlayers().iterator();

        while(var1.hasNext()) {
            PlayerEntity player = (PlayerEntity)var1.next();
            if (player instanceof RemoteClientPlayerEntity) {
                ((RemoteClientPlayerEntity)player).releaseResolver();
            }
        }

    }

    private void updateTarget() {
        List<LivingEntity> targets = new ArrayList();
        Iterator var2 = mc.world.getAllEntities().iterator();

        while(var2.hasNext()) {
            Entity entity = (Entity)var2.next();
            if (entity instanceof LivingEntity living) {
                if (this.isValid(living)) {
                    targets.add(living);
                }
            }
        }

        if (targets.isEmpty()) {
            this.target = null;
        } else if (targets.size() == 1) {
            this.target = (LivingEntity)targets.get(0);
        } else {
            targets.sort(Comparator.comparingDouble((entityx) -> {
                return MathUtility.entity(entityx, (Boolean)this.consider.is("Хп").getValue(), (Boolean)this.consider.is("Броню").getValue(), (Boolean)this.consider.is("Дистанцию").getValue(), (double)this.maxRange(), (Boolean)this.consider.is("Баффы").getValue());
            }));
            this.target = (LivingEntity)targets.get(0);
        }
    }

    private void updateRotation(float rotationYawSpeed) {
        float scaleFactor = (Boolean)this.moreOptions.is("Перелетать противника").getValue() ? (PlayerUtility.getEntityBPS(this.target, false) > 8.0 ? (Float)this.elytraForward.getValue() / 20.0F : 1.0F) : 1.0F;
        Vector3d vec;
        float yawToTarget;
        float pitchToTarget;
        float yawDelta;
        float pitchDelta;
        float yaw;
        float pitch;
        float gcd;
        float clampedYaw;
        float clampedPitch;
        float randomYawFactor;
        float randomPitchFactor;
        float randomThreshold;
        float randomAddition;
        if (this.elytraTargetRule) {
            vec = this.target.getPositionVec().add(0.0, MathHelper.clamp(this.target.getPosY() - (double)this.target.getHeight(), 0.0, (double)(this.target.getHeight() / 2.0F)), 0.0).subtract(mc.player.getEyePosition(1.0F)).add(this.target.getMotion().mul(this.elytraTargetRule ? (double)scaleFactor : 1.0, mc.player.isElytraFlying() && this.target.isElytraFlying() ? (double)scaleFactor : 1.0, mc.player.isElytraFlying() && this.target.isElytraFlying() ? (double)scaleFactor : 1.0));
            yawToTarget = (float)MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90.0);
            pitchToTarget = (float)(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))));
            yawDelta = MathHelper.wrapDegrees(yawToTarget - this.rotate.x);
            pitchDelta = MathHelper.wrapDegrees(pitchToTarget - this.rotate.y);
            switch ((String)this.type.getValue()) {
                case "Плавная":
                    yaw = Math.min(Math.max(Math.abs(yawDelta), 1.0F), rotationYawSpeed);
                    pitch = Math.max(Math.abs(pitchDelta), 1.0F);
                    gcd = this.rotate.x + (yawDelta > 0.0F ? yaw : -yaw) + SensUtility.getSensitivity((float)(Math.cos((double)System.currentTimeMillis() / 50.0) * 7.0));
                    pitch = MathHelper.clamp(this.rotate.y + (pitchDelta > 0.0F ? pitch : -pitch), -89.0F, 89.0F) + SensUtility.getSensitivity((float)(Math.cos((double)System.currentTimeMillis() / 50.0) * 7.0));
                    gcd -= (gcd - this.rotate.x) % SensUtility.getGCDValue();
                    pitch -= (pitch - this.rotate.y) % SensUtility.getGCDValue();
                    this.rotate = new Vector2f(gcd, pitch);
                    this.lastYaw = yaw;
                    this.lastPitch = pitch;
                    break;
                case "Резкая":
                    yaw = this.rotate.x + yawDelta;
                    pitch = MathHelper.clamp(this.rotate.y + pitchDelta, -90.0F, 90.0F);
                    gcd = SensUtility.getGCDValue();
                    yaw -= (yaw - this.rotate.x) % gcd;
                    pitch -= (pitch - this.rotate.y) % gcd;
                    this.rotate = new Vector2f(yaw, pitch);
                    break;
                case "HolyWorld":
                    clampedYaw = Math.min(Math.max(Math.abs(yawDelta), 1.0E-4F), 52.0F);
                    clampedPitch = Math.min(Math.max(Math.abs(pitchDelta), 1.0E-4F), 22.0F);
                    randomYawFactor = (float)(Math.random() * 1.5 - 1.5);
                    randomPitchFactor = (float)(Math.random() * 1.5 - 1.0);
                    randomThreshold = (float)(Math.random() * 1.5);
                    randomAddition = (float)(Math.random() * 2.5 + 1.5);
                    if (this.selected != this.target) {
                        clampedPitch = Math.max(Math.abs(pitchDelta), 1.0F);
                    } else {
                        clampedPitch /= 3.0F;
                    }

                    if (Math.abs(clampedYaw - this.lastYaw) <= randomThreshold) {
                        clampedYaw = this.lastYaw + randomAddition;
                    }

                    clampedYaw += randomYawFactor;
                    clampedPitch += randomPitchFactor;
                    yaw = this.rotate.x + (yawDelta > 0.0F ? clampedYaw : -clampedYaw);
                    pitch = MathHelper.clamp(this.rotate.y + (pitchDelta > 0.0F ? clampedPitch : -clampedPitch), -90.0F, 90.0F);
                    gcd = SensUtility.getGCDValue();
                    yaw -= (yaw - this.rotate.x) % gcd;
                    pitch -= (pitch - this.rotate.y) % gcd;
                    this.rotate = new Vector2f(yaw, pitch);
                    this.lastYaw = clampedYaw;
                    this.lastPitch = clampedPitch;
            }
        } else {
            vec = this.target.getPositionVec().add(0.0, MathHelper.clamp(this.target.getPosY() - (double)this.target.getHeight(), 0.0, (double)(this.target.getHeight() / 2.0F)), 0.0).subtract(mc.player.getEyePosition(1.0F));
            yawToTarget = (float)MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90.0);
            pitchToTarget = (float)(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))));
            yawDelta = MathHelper.wrapDegrees(yawToTarget - this.rotate.x);
            pitchDelta = MathHelper.wrapDegrees(pitchToTarget - this.rotate.y);
            int roundedYaw = (int)yawDelta;
            switch ((String)this.type.getValue()) {
                case "Плавная":
                    yaw = Math.min(Math.max(Math.abs(yawDelta), 1.0F), rotationYawSpeed);
                    pitch = Math.max(Math.abs(pitchDelta), 1.0F);
                    gcd = this.rotate.x + (yawDelta > 0.0F ? yaw : -yaw);
                    pitch = MathHelper.clamp(this.rotate.y + (pitchDelta > 0.0F ? pitch : -pitch), -89.0F, 89.0F);
                    gcd -= (gcd - this.rotate.x) % SensUtility.getGCDValue();
                    pitch -= (pitch - this.rotate.y) % SensUtility.getGCDValue();
                    this.rotate = new Vector2f(gcd, pitch);
                    this.lastYaw = yaw;
                    this.lastPitch = pitch;
                    break;
                case "Резкая":
                    yaw = this.rotate.x + (float)roundedYaw;
                    pitch = MathHelper.clamp(this.rotate.y + pitchDelta, -90.0F, 90.0F);
                    gcd = SensUtility.getGCDValue();
                    yaw -= (yaw - this.rotate.x) % gcd;
                    pitch -= (pitch - this.rotate.y) % gcd;
                    this.rotate = new Vector2f(yaw, pitch);
                    break;
                case "HolyWorld":
                    clampedYaw = Math.min(Math.max(Math.abs(yawDelta), 1.0E-4F), 52.0F);
                    clampedPitch = Math.min(Math.max(Math.abs(pitchDelta), 1.0E-4F), 22.0F);
                    randomYawFactor = (float)(Math.random() * 1.5 - 1.5);
                    randomPitchFactor = (float)(Math.random() * 1.5 - 1.0);
                    randomThreshold = (float)(Math.random() * 1.5);
                    randomAddition = (float)(Math.random() * 2.5 + 1.5);
                    if (this.selected != this.target) {
                        clampedPitch = Math.max(Math.abs(pitchDelta), 1.0F);
                    } else {
                        clampedPitch /= 3.0F;
                    }

                    if (Math.abs(clampedYaw - this.lastYaw) <= randomThreshold) {
                        clampedYaw = this.lastYaw + randomAddition;
                    }

                    clampedYaw += randomYawFactor;
                    clampedPitch += randomPitchFactor;
                    yaw = this.rotate.x + (yawDelta > 0.0F ? clampedYaw : -clampedYaw);
                    pitch = MathHelper.clamp(this.rotate.y + (pitchDelta > 0.0F ? clampedPitch : -clampedPitch), -90.0F, 90.0F);
                    gcd = SensUtility.getGCDValue();
                    yaw -= (yaw - this.rotate.x) % gcd;
                    pitch -= (pitch - this.rotate.y) % gcd;
                    this.rotate = new Vector2f(yaw, pitch);
                    this.lastYaw = clampedYaw;
                    this.lastPitch = clampedPitch;
            }
        }

        if ((Boolean)this.options.is("Коррекция движения").getValue()) {
            mc.player.rotationYawOffset = this.rotate.x;
        }

    }

    private void visualRotationUpdate() {
        Vector3d vec = this.target.getPositionVec().add(0.0, MathHelper.clamp(mc.player.getPosYEye() - this.target.getPosY(), 0.0, (double)this.target.getHeight() * (mc.player.getDistanceEyePos(this.target) / (double)this.attackDistance())), 0.0).subtract(mc.player.getEyePosition(1.0F));
        float yawDelta = (float)MathHelper.wrapDegrees(MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vec.z, vec.x)) - 90.0) - (double)this.visualRotateVector.x);
        float pitchDelta = (float)MathHelper.wrapDegrees(-Math.toDegrees(Math.atan2(vec.y, Math.hypot(vec.x, vec.z))) - (double)this.visualRotateVector.y);
        int roundYawDelta = (int)Math.abs(yawDelta);
        int roundPitchDelta = (int)Math.abs(pitchDelta);
        float gcd = SensUtility.getGCDValue();
        float yaw = 0.0F;
        float pitch = 0.0F;
        float clampedPitch = 0.0F;
        float clampedYaw = 0.0F;
        switch ((String)this.visualType.getValue()) {
            case "Обычная":
                clampedYaw = (float)Math.min(roundYawDelta, 40);
                clampedPitch = Math.min((float)roundPitchDelta * 0.33F, 30.0F);
                yaw = this.visualRotateVector.x + (yawDelta > 0.0F ? clampedYaw : -clampedYaw);
                pitch = MathHelper.clamp(this.visualRotateVector.y + (pitchDelta > 0.0F ? clampedPitch : -clampedPitch), -89.0F, 89.0F);
                yaw -= (yaw - this.visualRotateVector.x) % gcd;
                pitch -= (pitch - this.visualRotateVector.y) % gcd;
                break;
            case "Спин-бот":
                clampedPitch = Math.min((float)roundPitchDelta * 0.33F, 30.0F);
                pitch = MathHelper.clamp(this.visualRotateVector.y + (pitchDelta > 0.0F ? clampedPitch : -clampedPitch), -89.0F, 89.0F);
                pitch -= (pitch - this.visualRotateVector.y) % gcd;
                yaw = this.rotationAngle;
                break;
            case "Никакая":
                yaw = mc.player.rotationYaw;
                pitch = mc.player.rotationPitch;
        }

        this.visualRotateVector = new Vector2f(yaw, pitch);
        this.lastYaw = clampedYaw;
        this.lastPitch = clampedPitch;
    }

    public void updateRotation() {
        float limitSpeed = 60.0F;
        float reverseSpeed = 5.0F;
        if (!this.isReversing) {
            this.rotationSpeed += reverseSpeed;
            if (this.rotationSpeed > limitSpeed) {
                this.rotationSpeed = limitSpeed;
                this.isReversing = true;
            }
        } else {
            this.rotationSpeed -= reverseSpeed;
            if (this.rotationSpeed < -limitSpeed) {
                this.rotationSpeed = -limitSpeed;
                this.isReversing = false;
            }
        }

        this.rotationAngle += this.rotationSpeed;
        this.rotationAngle = (this.rotationAngle + 360.0F) % 360.0F;
    }

    public void critHelper() {
        switch ((String)this.critType.getValue()) {
            case "None":
                return;
            case "Matrix":
                if (mc.player.isJumping && mc.player.motion.getY() < -0.1 && (double)mc.player.fallDistance > 0.5 && MoveUtility.getMotion() < 0.12) {
                    mc.player.motion.y = -1.0;
                }
                break;
            case "NCP":
                if (mc.player.isJumping && mc.player.fallDistance != 0.0F) {
                    Vector3d var10000 = mc.player.motion;
                    var10000.y -= 0.078;
                }
                break;
            case "NCP+":
                if ((double)mc.player.fallDistance > 0.7 && (double)mc.player.fallDistance < 0.8 && this.target != null) {
                    mc.timer.timerSpeed = 2.0F;
                } else {
                    mc.timer.timerSpeed = 1.0F;
                }
                break;
            case "Grim":
                if (mc.player.isJumping && mc.player.fallDistance > 0.0F && (double)mc.player.fallDistance <= 1.2 && !MoveUtility.moveKeysPressed()) {
                    mc.player.jumpTicks = 0;
                    if ((double)mc.timer.timerSpeed == 1.0) {
                        mc.timer.timerSpeed = 1.005F;
                    }
                }
        }

    }

    private void forceAttack() {
        if (this.isAttacking || this.canAttack()) {
            this.isAttacking = true;

            try {
                this.preAttack();
                this.attack();
                this.postAttack();
            } finally {
                this.isAttacking = false;
            }

        }
    }

    private boolean canAttack() {
        this.selected = MouseUtility.getMouseOver(this.target, this.rotate.x, this.rotate.y, (double)this.attackDistance());
        if (mc.player.getDistanceEyePos(this.target) > (double)this.attackDistance()) {
            return false;
        } else if ((Boolean)this.moreOptions.is("Проверка луча").getValue() && !this.elytraTargetRule && this.selected == null) {
            return false;
        } else if (!(Boolean)this.moreOptions.is("Бить через стены").getValue() && !mc.player.canEntityBeSeen(this.target)) {
            return false;
        } else if ((Boolean)this.moreOptions.is("Не бить если кушаешь").getValue() && mc.player.isHandActive() && mc.player.getHeldItemOffhand().getUseAction() == UseAction.EAT) {
            return false;
        } else {
            return !(Boolean)this.moreOptions.is("Не бить если в гуи").getValue() || mc.currentScreen == null || mc.currentScreen instanceof ClickGuiScreen || mc.currentScreen instanceof ChatScreen || mc.currentScreen instanceof IngameMenuScreen;
        }
    }

    private void preAttack() {
        Evaware.getInst().getModuleManager().getTPInfluence().hitAuraTPPRe(this.target);
        if (mc.player.isBlocking() && (Boolean)this.options.is("Отжимать щит").getValue()) {
            mc.playerController.onStoppedUsingItem(mc.player);
        }

    }

    private void attack() {
        int minCPSValue = ((Float)this.minCPS.getValue()).intValue();
        int maxCPSValue = ((Float)this.maxCPS.getValue()).intValue();
        if (minCPSValue > maxCPSValue) {
            maxCPSValue = minCPSValue;
        }

        int minMS = 1000 / maxCPSValue;
        int maxMS = 1000 / minCPSValue;
        Random random = new Random();
        int randomMS = random.nextInt(maxMS - minMS + 1) + minMS;
        this.timerUtility.setLastMS(this.clickType.is("1.9") ? 500L : (long)randomMS);
        Criticals.cancelCrit = true;
        if (Evaware.getInst().getModuleManager().getCriticals().isEnabled() && Criticals.canUseCriticals()) {
            Evaware.getInst().getModuleManager().getCriticals().sendCrit();
        }

        mc.playerController.attackEntity(mc.player, this.target);
        mc.player.swingArm(Hand.MAIN_HAND);
        Criticals.cancelCrit = false;
    }

    private void postAttack() {
        LivingEntity var2 = this.target;
        if (var2 instanceof PlayerEntity player) {
            if ((Boolean)this.options.is("Ломать щит").getValue()) {
                this.breakShieldPlayer(player);
            }
        }

        Evaware.getInst().getModuleManager().getTPInfluence().hitAuraTPPost(this.target);
    }

    public boolean shouldPlayerFalling() {
        return AttackUtility.isPlayerFalling((Boolean)this.options.is("Только криты").getValue() && !Criticals.canUseCriticals(), (Boolean)this.smartCrits.getValue(), (Boolean)this.options.is("Синхронизировать с TPS").getValue(), this.clickType.is("1.9"));
    }

    private boolean isValid(LivingEntity entity) {
        if (entity instanceof ClientPlayerEntity) {
            return false;
        } else if (entity.ticksExisted < 3) {
            return false;
        } else if (mc.player.getDistanceEyePos(entity) > (double)this.maxRange()) {
            return false;
        } else if (entity == Evaware.getInst().getModuleManager().getFreeCam().fakePlayer) {
            return false;
        } else {
            if (entity instanceof PlayerEntity) {
                PlayerEntity p = (PlayerEntity)entity;
                if (AntiBot.isBot(entity)) {
                    return false;
                }

                if (!(Boolean)this.targets.is("Друзья").getValue() && FriendManager.isFriend(p.getName().getString())) {
                    return false;
                }

                if (p.getName().getString().equalsIgnoreCase(mc.player.getName().getString())) {
                    return false;
                }
            }

            if (entity instanceof PlayerEntity && !(Boolean)this.targets.is("Игроки").getValue()) {
                return false;
            } else if (entity instanceof PlayerEntity && entity.getTotalArmorValue() == 0 && !(Boolean)this.targets.is("Голые").getValue()) {
                return false;
            } else if (entity instanceof PlayerEntity && entity.isInvisible() && entity.getTotalArmorValue() == 0 && !(Boolean)this.targets.is("Голые невидимки").getValue()) {
                return false;
            } else if (entity instanceof PlayerEntity && entity.isInvisible() && !(Boolean)this.targets.is("Невидимки").getValue()) {
                return false;
            } else if (entity instanceof PlayerEntity && ((PlayerEntity)entity).isCreative()) {
                return false;
            } else if ((entity instanceof MonsterEntity || entity instanceof SlimeEntity || entity instanceof VillagerEntity) && !(Boolean)this.targets.is("Мобы").getValue()) {
                return false;
            } else if (entity instanceof AnimalEntity && !(Boolean)this.targets.is("Животные").getValue()) {
                return false;
            } else {
                return !entity.isInvulnerable() && entity.isAlive() && !(entity instanceof ArmorStandEntity);
            }
        }
    }

    private void breakShieldPlayer(PlayerEntity entity) {
        if (entity.isBlocking()) {
            int invSlot = InventoryUtility.getInstance().getAxeInInventory(false);
            int hotBarSlot = InventoryUtility.getInstance().getAxeInInventory(true);
            if (hotBarSlot == -1 && invSlot != -1) {
                int bestSlot = InventoryUtility.getInstance().findBestSlotInHotBar();
                mc.playerController.windowClick(0, invSlot, 0, ClickType.PICKUP, mc.player);
                mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(bestSlot));
                mc.playerController.attackEntity(mc.player, entity);
                mc.player.swingArm(Hand.MAIN_HAND);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
                mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);
                mc.playerController.windowClick(0, invSlot, 0, ClickType.PICKUP, mc.player);
            }

            if (hotBarSlot != -1) {
                mc.player.connection.sendPacket(new CHeldItemChangePacket(hotBarSlot));
                mc.playerController.attackEntity(mc.player, entity);
                mc.player.swingArm(Hand.MAIN_HAND);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
            }
        }

    }

    private void reset() {
        if ((Boolean)this.options.is("Коррекция движения").getValue()) {
            mc.player.rotationYawOffset = -2.1474836E9F;
        }

        this.rotate = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch);
    }

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

    public void onDisable() {
        super.onDisable();
        this.reset();
        this.timerUtility.setLastMS(0L);
        this.target = null;
        mc.timer.timerSpeed = 1.0F;
    }

    public ModeSetting getType() {
        return this.type;
    }

    public ModeListSetting getOptions() {
        return this.options;
    }

    public ModeListSetting getMoreOptions() {
        return this.moreOptions;
    }

    public TimerUtility getTimerUtility() {
        return this.timerUtility;
    }

    public LivingEntity getTarget() {
        return this.target;
    }

    public void setTarget(LivingEntity target) {
        this.target = target;
    }
}
держите рабочую килку с евы
рабочую где?)
 
Начинающий
Статус
Оффлайн
Регистрация
4 Июл 2021
Сообщения
230
Реакции[?]
1
Поинты[?]
2K
Сверху Снизу