-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
я вызвался помочь infinity client (не тот который слили) и у них там база експа 2.0 я чот пописал, а потом меня позвали в другой проект. вот вам киллаура снапы и еще плавная урон не ест тд тп если еще чтото надо пишите солью
Aura:
package www.infinity.features.impl.combat;
import www.infinity.events.Event;
import www.infinity.events.impl.player.EventInput;
import www.infinity.events.impl.player.EventInteractEntity;
import www.infinity.events.impl.player.EventMotion;
import www.infinity.events.impl.player.EventUpdate;
import www.infinity.features.api.Category;
import www.infinity.features.api.Feature;
import www.infinity.features.api.FeatureInfo;
import www.infinity.features.impl.player.AutoPotion;
import www.infinity.features.settings.impl.BooleanSetting;
import www.infinity.features.settings.impl.ModeSetting;
import www.infinity.features.settings.impl.MultiBoxSetting;
import www.infinity.features.settings.impl.SliderSetting;
import www.infinity.managers.Manager;
import www.infinity.utils.math.GCDUtils;
import www.infinity.utils.math.RayTraceUtils;
import www.infinity.utils.movement.MovementUtils;
import www.infinity.utils.world.InventoryUtils;
import lombok.Getter;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.enchantment.Enchantments;
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.passive.AnimalEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.ArmorItem;
import net.minecraft.item.ItemStack;
import net.minecraft.network.play.client.CEntityActionPacket;
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;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
@FeatureInfo(name = "Aura", desc = "Автоматически бьет сущностей", category = Category.Combat)
public class Aura extends Feature {
private final ModeSetting rotationMode = new ModeSetting("Режим ротации", "Обход", "Обход", "Снапы");
private final ModeSetting sortMode = new ModeSetting("Сортировать", "По всему", "По всему", "По дистанции", "По здоровью");
private final MultiBoxSetting targets = new MultiBoxSetting("Цели", new BooleanSetting("Игроки", true), new BooleanSetting("Голые", true), new BooleanSetting("Мобы", false), new BooleanSetting("Животные", false), new BooleanSetting("Друзья", false), new BooleanSetting("Голые невидимки", true), new BooleanSetting("Невидимки", true));
private final SliderSetting attackDistance = new SliderSetting("Дистанция аттаки", 3, 2, 6, 0.1f);
private final SliderSetting rotateDistance = new SliderSetting("Дистанция ротации", 0.5f, 0, 3, 0.1f).setVisible(() -> !rotationMode.is("Снапы"));
private final SliderSetting rotationSpeed = new SliderSetting("Скорость ротации", 0.5f, 0.1f, 1, 0.1f).setVisible(() -> rotationMode.is("Кастомный"));
public final MultiBoxSetting settings = new MultiBoxSetting("Настройки", new BooleanSetting("Только критами", true), new BooleanSetting("Коррекция движения", true), new BooleanSetting("Отжимать щит", true), new BooleanSetting("Ломать щит", true), new BooleanSetting("Отключать спринт", true), new BooleanSetting("Не бить если ешь", false), new BooleanSetting("Элитра таргет", true), new BooleanSetting("Не бить через стены", true));
private final SliderSetting elytraDistance = new SliderSetting("Дистанция на элитрах", 10, 0, 20, 0.5f).setVisible(() -> settings.get(6));
private final BooleanSetting space = new BooleanSetting("Только с пробелом", false).setVisible(() -> settings.get(0));
private final BooleanSetting randomCriticals = new BooleanSetting("Рандом криты", false).setVisible(() -> settings.get(0));
private final BooleanSetting silent = new BooleanSetting("Сайлент коррекция", true).setVisible(() -> settings.get(1));
private final BooleanSetting rayTrace = new BooleanSetting("Проверка наводки", true).setVisible(() -> rotationMode.is("Кастомный"));
private final BooleanSetting elytraBoost = new BooleanSetting("Обгон на элитре", true).setVisible(() -> settings.get(6));
private final SliderSetting elytraForward = new SliderSetting("Дистанция обгона", 4, 1, 5, 0.5f).setVisible(elytraBoost::get);
public final BooleanSetting elytraBooster = new BooleanSetting("Ускорение на элитре", false).setVisible(() -> settings.get(6));
public Vector2f rotation = new Vector2f(0, 0);
private boolean isRotated;
private long cpsLimit = 0;
private float lastYaw;
private int ticks;
[USER=270918]@Getter[/USER]
public static LivingEntity target = null;
public Aura() {
addSettings(rotationMode, sortMode, targets, attackDistance, rotateDistance, elytraDistance, rotationSpeed, settings, space, randomCriticals, silent, rayTrace, elytraBoost, elytraForward, elytraBooster);
}
[USER=1367676]@override[/USER]
public void onEvent(Event event) {
if (event instanceof EventInteractEntity entity) {
if (target != null) entity.setCancel(true);
}
if (event instanceof EventInput eventInput) {
if (settings.get(1) && silent.get()) MovementUtils.fixMovement(eventInput, Manager.FEATURE_MANAGER.getFeature(AutoPotion.class).isActivePotion ? mc.player.rotationYaw : rotation.x);
}
if (event instanceof EventUpdate) {
onUpdate();
}
if (event instanceof EventMotion eventMotion) {
onMotion(eventMotion);
}
}
private void onUpdate() {
if (!(target != null && isValidTarget(target))) target = findTarget();
if (target == null || Manager.FEATURE_MANAGER.getFeature(AutoPotion.class).isActivePotion) {
cpsLimit = System.currentTimeMillis();
reset();
return;
}
switch (rotationMode.get()) {
case "Снапы" -> {
if (shouldAttack()) {
attackTarget();
ticks = 2;
}
if (ticks > 0) {
updateRotation();
ticks--;
} else {
reset();
}
}
case "Обход" -> {
isRotated = false;
if (shouldAttack()) attackTarget();
if (!isRotated) updateRotation();
}
}
}
private void onMotion(EventMotion eventMotion) {
if (target == null || Manager.FEATURE_MANAGER.getFeature(AutoPotion.class).isActivePotion) return;
eventMotion.setYaw(rotation.x);
eventMotion.setPitch(rotation.y);
mc.player.rotationYawHead = rotation.x;
mc.player.renderYawOffset = rotation.x;
mc.player.rotationPitchHead = rotation.y;
}
private void attackTarget() {
if (mc.player.isHandActive() && settings.get(5)) return;
if (settings.get(2) && mc.player.isBlocking()) mc.playerController.onStoppedUsingItem(mc.player);
if (settings.get(4) && mc.player.serverSprintState) {
mc.player.setSprinting(false);
mc.gameSettings.keyBindSprint.setPressed(false);
mc.player.connection.sendPacketWithoutEvent(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.STOP_SPRINTING));
}
cpsLimit = System.currentTimeMillis() + 500;
Manager.FEATURE_MANAGER.getFeature(Criticals.class).cancelCrit = true;
Manager.FEATURE_MANAGER.getFeature(Criticals.class).doCrit();
mc.playerController.attackEntity(mc.player, target);
Manager.FEATURE_MANAGER.getFeature(Criticals.class).cancelCrit = false;
mc.player.swingArm(Hand.MAIN_HAND);
if (target instanceof PlayerEntity playerEntity && settings.get(3)) breakShieldPlayer(playerEntity);
if (settings.get(4) && mc.player.serverSprintState) {
mc.player.setSprinting(true);
mc.gameSettings.keyBindSprint.setPressed(true);
mc.player.connection.sendPacketWithoutEvent(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_SPRINTING));
}
}
private void updateRotation() {
isRotated = true;
Vector3d targetVector;
if (elytraBoost.get() && mc.player.isElytraFlying() && target.isElytraFlying()) {
targetVector = target.getPositionVec().add(0, MathHelper.clamp(mc.player.getPosYEye() - target.getPosY(), 0, target.getHeight() * (mc.player.getDistanceEyePos(target) / attackDistance.getValue().floatValue())), 0).subtract(mc.player.getEyePosition(1)).add(target.getMotion().scale(elytraForward.getValue().floatValue()));
} else {
targetVector = target.getPositionVec().add(0, MathHelper.clamp(mc.player.getPosYEye() - target.getPosY(), 0, target.getHeight() * (mc.player.getDistanceEyePos(target) / attackDistance.getValue().floatValue())), 0).subtract(mc.player.getEyePosition(1));
}
float deltaYaw = (float) MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(targetVector.z, targetVector.x)) - 90 - rotation.x);
float deltaPitch = (float) -Math.toDegrees(Math.atan2(targetVector.y, Math.hypot(targetVector.x, targetVector.z))) - rotation.y;
switch (rotationMode.get()) {
case "ыы", "ы" -> {
float clampedYaw = Math.min(Math.max(Math.abs(deltaYaw), 1), 180 * (rotationMode.is("Обычный") ? 0.33f : rotationSpeed.getValue().floatValue()));
float clampedPitch = Math.min(Math.max(Math.abs(deltaPitch), 1), 90 * (rotationMode.is("Обычный") ? 0.33f : rotationSpeed.getValue().floatValue()));
if (Math.abs(clampedYaw - lastYaw) <= 3) clampedYaw = lastYaw + 3.1f;
clampedPitch /= 3f;
float newYaw = rotation.x + (deltaYaw > 0 ? clampedYaw : -clampedYaw);
float newPitch = MathHelper.clamp(rotation.y + (deltaPitch > 0 ? clampedPitch : -clampedPitch), -90, 90);
newYaw -= (newYaw - rotation.x) % GCDUtils.getGCDValue();
newPitch -= (newPitch - rotation.y) % GCDUtils.getGCDValue();
rotation = new Vector2f(newYaw, newPitch);
lastYaw = clampedYaw;
}
case "Снапы", "Обход" -> {
float newYaw = rotation.x + deltaYaw;
float newPitch = MathHelper.clamp(rotation.y + deltaPitch, -90, 90);
newYaw -= (newYaw - rotation.x) % GCDUtils.getGCDValue();
newPitch -= (newPitch - rotation.y) % GCDUtils.getGCDValue();
rotation = new Vector2f(newYaw, newPitch);
}
}
}
private boolean shouldAttack() {
return target != null && canAttack() && cpsLimit <= System.currentTimeMillis();
}
private boolean canAttack() {
boolean onSpace = space.get() && mc.player.isOnGround() && !mc.gameSettings.keyBindJump.isKeyDown();
boolean reasonForAttack = mc.player.isPotionActive(Effects.LEVITATION) || mc.player.isPotionActive(Effects.BLINDNESS) || mc.player.isPotionActive(Effects.SLOW_FALLING) || mc.player.isOnLadder() || mc.player.isInWater() && mc.player.areEyesInFluid(FluidTags.WATER) || mc.player.isInLava() && mc.player.areEyesInFluid(FluidTags.LAVA) || mc.player.isPassenger() || mc.player.abilities.isFlying || mc.player.isElytraFlying() || mc.player.isSwimming();
if (mc.player.getDistance(target) > attackDistance.getValue().floatValue() || mc.player.getCooledAttackStrength(1.5f) < 0.93f - (randomCriticals.get() ? Math.random() * 0.05 : 0)) return false;
if (!reasonForAttack && settings.get(0)) return onSpace || !mc.player.isOnGround() && mc.player.fallDistance > 0;
return true;
}
private LivingEntity findTarget() {
List<LivingEntity> targets = new ArrayList<>();
for (Entity entity : mc.world.getAllEntities()) {
if (entity instanceof LivingEntity && isValidTarget((LivingEntity) entity)) targets.add((LivingEntity) entity);
}
if (targets.isEmpty()) return null;
if (targets.size() > 1) {
switch (sortMode.get()) {
case "По всему" -> targets.sort(Comparator.comparingDouble(target -> {
if (target instanceof PlayerEntity playerEntity) return -getEntityArmor(playerEntity);
if (target instanceof LivingEntity livingEntity) return -livingEntity.getTotalArmorValue();
return 0;
}).thenComparing((object1, object2) -> {
double health1 = getEntityHealth((LivingEntity) object1);
double health2 = getEntityHealth((LivingEntity) object2);
return Double.compare(health1, health2);
}).thenComparing((object1, object2) -> {
double distance1 = mc.player.getDistance((LivingEntity) object1);
double distance2 = mc.player.getDistance((LivingEntity) object2);
return Double.compare(distance1, distance2);
}));
case "По дистанции" -> targets.sort(Comparator.comparingDouble(mc.player::getDistance).thenComparingDouble(this::getEntityHealth));
case "По здоровью" -> targets.sort(Comparator.comparingDouble(this::getEntityHealth).thenComparingDouble(mc.player::getDistance));
}
}
return targets.get(0);
}
private boolean isValidTarget(LivingEntity entity) {
if (entity instanceof ClientPlayerEntity) return false;
if (!mc.player.canEntityBeSeen(entity) && settings.get(7)) return false;
if (mc.player.getDistanceEyePos(entity) > attackDistance.getValue().floatValue() + (!rotationMode.is("Снапы") ? rotateDistance.getValue().floatValue() : 0) + (mc.player.isElytraFlying() && settings.get(6) ? elytraDistance.getValue().floatValue() : 0)) return false;
if (entity instanceof PlayerEntity player) {
if (AntiBot.isBot(entity)) return false;
if (!targets.get(4) && Manager.FRIEND_MANAGER.isFriend(player.getName().getString())) return false;
if (player.getName().getString().equalsIgnoreCase(mc.player.getName().getString())) return false;
}
if (entity instanceof PlayerEntity && !targets.get(0)) return false;
if (entity instanceof PlayerEntity && entity.getTotalArmorValue() == 0 && !targets.get(1)) return false;
if (entity instanceof PlayerEntity && entity.isInvisible() && entity.getTotalArmorValue() == 0 && !targets.get(5)) return false;
if (entity instanceof PlayerEntity && entity.isInvisible() && !targets.get(6)) return false;
if (entity instanceof MonsterEntity && !targets.get(2)) return false;
if ((entity instanceof AnimalEntity || entity instanceof VillagerEntity) && !targets.get(3)) return false;
return !entity.isInvulnerable() && entity.isAlive() && !(entity instanceof ArmorStandEntity);
}
private void breakShieldPlayer(PlayerEntity entity) {
if (entity.isBlocking()) {
int invSlot = InventoryUtils.getAxeInInventory(false);
int hbSlot = InventoryUtils.getAxeInInventory(true);
if (hbSlot == -1 && invSlot != -1) {
int bestSlot = InventoryUtils.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.sendPacketWithoutEvent(new CHeldItemChangePacket(bestSlot));
mc.playerController.attackEntity(mc.player, entity);
mc.player.swingArm(Hand.MAIN_HAND);
mc.player.connection.sendPacketWithoutEvent(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 (hbSlot != -1) {
mc.player.connection.sendPacketWithoutEvent(new CHeldItemChangePacket(hbSlot));
mc.playerController.attackEntity(mc.player, entity);
mc.player.swingArm(Hand.MAIN_HAND);
mc.player.connection.sendPacketWithoutEvent(new CHeldItemChangePacket(mc.player.inventory.currentItem));
}
}
}
private double getProtection(ItemStack itemStack) {
ArmorItem armor = (ArmorItem) itemStack.getItem();
double damageReduce = armor.getDamageReduceAmount();
if (itemStack.isEnchanted()) damageReduce += EnchantmentHelper.getEnchantmentLevel(Enchantments.PROTECTION, itemStack) * 0.25;
return damageReduce;
}
private double getEntityArmor(PlayerEntity target) {
double totalArmor = 0;
for (ItemStack armorStack : target.inventory.armorInventory) {
if (armorStack != null && armorStack.getItem() instanceof ArmorItem) totalArmor += getProtection(armorStack);
}
return totalArmor;
}
private double getEntityHealth(Entity target) {
if (target instanceof PlayerEntity player) {
return (player.getHealth() + player.getAbsorptionAmount()) * getEntityArmor(player) / 20;
} else if (target instanceof LivingEntity livingEntity) {
return livingEntity.getHealth() + livingEntity.getAbsorptionAmount();
}
return 0;
}
private void reset() {
rotation = new Vector2f(mc.player.rotationYaw, mc.player.rotationPitch);
}
[USER=1367676]@override[/USER]
public void onEnable() {
super.onEnable();
reset();
target = null;
}
[USER=1367676]@override[/USER]
public void onDisable() {
super.onDisable();
reset();
target = null;
cpsLimit = System.currentTimeMillis();
}
}