-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Java:
/*
* Decompiled with CFR 0.150.
*/
package fun.rich.client.feature.impl.combat;
import fun.rich.client.event.EventTarget;
import fun.rich.client.event.events.impl.packet.EventAttackSilent;
import fun.rich.client.event.events.impl.packet.EventReceivePacket;
import fun.rich.client.event.events.impl.packet.EventSendPacket;
import fun.rich.client.event.events.impl.player.EventPreMotion;
import fun.rich.client.event.events.impl.player.EventUpdate;
import fun.rich.client.feature.Feature;
import fun.rich.client.feature.impl.FeatureCategory;
import fun.rich.client.ui.notification.NotificationMode;
import fun.rich.client.ui.notification.NotificationRenderer;
import fun.rich.client.ui.settings.impl.BooleanSetting;
import fun.rich.client.ui.settings.impl.ListSetting;
import fun.rich.client.ui.settings.impl.MultipleBoolSetting;
import fun.rich.client.ui.settings.impl.NumberSetting;
import fun.rich.client.utils.inventory.InvenotryUtil;
import fun.rich.client.utils.math.GCDFix;
import fun.rich.client.utils.math.KillauraUtils;
import fun.rich.client.utils.math.RotationHelper;
import fun.rich.client.utils.math.TimerHelper;
import net.minecraft.block.Block;
import net.minecraft.block.BlockLiquid;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemAxe;
import net.minecraft.item.ItemShield;
import net.minecraft.network.play.client.CPacketEntityAction;
import net.minecraft.network.play.client.CPacketHeldItemChange;
import net.minecraft.network.play.client.CPacketPlayerDigging;
import net.minecraft.network.play.client.CPacketUseEntity;
import net.minecraft.network.play.server.SPacketEntityStatus;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.text.TextFormatting;
import org.lwjgl.input.Mouse;
public class KillAura
extends Feature {
public static TimerHelper timerHelper = new TimerHelper();
public static float yaw;
public float pitch;
public float pitch2 = 0.0f;
private int notiTicks;
public static boolean isAttacking;
TimerHelper shieldFixerTimer = new TimerHelper();
public float yaw2 = 0.0f;
public static boolean isBreaked;
public static EntityLivingBase target;
public static ListSetting rotationMode;
public static ListSetting typeMode;
public static ListSetting sortMode;
public static NumberSetting fov;
public static NumberSetting attackCoolDown;
public static NumberSetting range;
public static NumberSetting yawrandom;
public static NumberSetting pitchRandom;
public static BooleanSetting staticPitch;
public static NumberSetting pitchHead;
public BooleanSetting rayCast = new BooleanSetting("RayCast", "\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430\u0432\u0435\u043b\u0430\u0441\u044c \u043b\u0438 \u0440\u043e\u0442\u0430\u0446\u0438\u044f \u043d\u0430 \u0445\u0438\u0442-\u0431\u043e\u043a\u0441 \u044d\u043d\u0442\u0438\u0442\u0438", false, () -> true);
public static BooleanSetting walls;
public static BooleanSetting onlyCritical;
public BooleanSetting spaceOnly = new BooleanSetting("Space Only", "Only Crits \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0435\u0441\u043b\u0438 \u0437\u0430\u0436\u0430\u0442 \u043f\u0440\u043e\u0431\u0435\u043b", false, () -> onlyCritical.getBoolValue());
public NumberSetting criticalFallDistance = new NumberSetting("Critical Fall Distance", "\u0420\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0430 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0434\u043e \u0437\u0435\u043c\u043b\u0438 \u0434\u043b\u044f \u043a\u0440\u0438\u0442\u0430", 0.2f, 0.08f, 1.0f, 0.01f, () -> onlyCritical.getBoolValue());
public BooleanSetting shieldFixer = new BooleanSetting("ShieldFixer", "\u041e\u0442\u0436\u0438\u043c\u0430\u0435\u0442 \u0449\u0438\u0442 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0443\u0434\u0430\u0440\u0430, \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043e\u0431\u043e\u0439\u0442\u0438 Matrix", false, () -> true);
public NumberSetting fixerDelay = new NumberSetting("Fixer Delay", "\u0420\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0430 \u043a\u0430\u043a \u0434\u043e\u043b\u0433\u043e \u0449\u0438\u0442 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0436\u043c\u0438\u043c\u0430\u0442\u044c\u0441\u044f (\u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435, \u0442\u0435\u043c \u0449\u0438\u0442 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u043b\u044c\u0448\u0435 \u043e\u0442\u0436\u0438\u043c\u0430\u0442\u044c\u0441\u044f)", 150.0f, 0.0f, 600.0f, 10.0f, () -> this.shieldFixer.getBoolValue());
public BooleanSetting shieldDesync = new BooleanSetting("Shield Desync", false, () -> true);
public static BooleanSetting shieldBreaker;
public static BooleanSetting breakNotifications;
public static BooleanSetting silentMove;
public static MultipleBoolSetting targetsSetting;
public KillAura() {
super("KillAura", "\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0430\u0442\u0442\u0430\u043a\u0443\u0435\u0442 \u044d\u043d\u0442\u0438\u0442\u0438", FeatureCategory.Combat);
this.addSettings(rotationMode, typeMode, sortMode, targetsSetting, fov, attackCoolDown, range, this.rayCast, yawrandom, pitchRandom, pitchHead, staticPitch, walls, onlyCritical, this.spaceOnly, this.criticalFallDistance, shieldBreaker, breakNotifications, this.shieldFixer, this.fixerDelay, this.shieldDesync, silentMove);
}
@EventTarget
public void onSendPacket(EventSendPacket event) {
if (event.getPacket() instanceof CPacketUseEntity cPacketUseEntity) {
if (cPacketUseEntity.getAction() == CPacketUseEntity.Action.INTERACT) {
event.setCancelled(true);
}
if (cPacketUseEntity.getAction() == CPacketUseEntity.Action.INTERACT_AT) {
event.setCancelled(true);
}
}
}
@EventTarget
public void onPreAttack(EventPreMotion event) {
boolean flag;
String mode = rotationMode.getOptions();
this.setSuffix(mode);
target = KillauraUtils.getSortEntities();
if (target == null) {
return;
}
if (!KillAura.rotationMode.currentMode.equals("Snap") && !RotationHelper.isLookingAtEntity(false, yaw, this.pitch, 0.12f, 0.12f, 0.12f, target, range.getNumberValue()) && this.rayCast.getBoolValue()) {
return;
}
Minecraft.player.jumpTicks = 0;
BlockPos blockPos = new BlockPos(Minecraft.player.posX, Minecraft.player.posY - 0.1, Minecraft.player.posZ);
Block block = KillAura.mc.world.getBlockState(blockPos).getBlock();
float f2 = Minecraft.player.getCooledAttackStrength(0.5f);
boolean bl = flag = f2 > 0.9f;
if (!flag && onlyCritical.getBoolValue()) {
return;
}
if (Minecraft.gameSettings.keyBindJump.isKeyDown() || !this.spaceOnly.getBoolValue()) {
if (fun.rich.client.utils.movement.MovementUtils.airBlockAboveHead()) {
if (!(Minecraft.player.fallDistance >= this.criticalFallDistance.getNumberValue() || block instanceof BlockLiquid || !onlyCritical.getBoolValue() || Minecraft.player.isRiding() || Minecraft.player.isOnLadder() || Minecraft.player.isInLiquid() || Minecraft.player.isInWeb)) {
Minecraft.player.connection.sendPacket(new CPacketEntityAction(Minecraft.player, CPacketEntityAction.Action.STOP_SPRINTING));
return;
}
} else if (!(!(Minecraft.player.fallDistance > 0.0f) || Minecraft.player.onGround || !onlyCritical.getBoolValue() || Minecraft.player.isRiding() || Minecraft.player.isOnLadder() || Minecraft.player.isInLiquid() || Minecraft.player.isInWeb)) {
Minecraft.player.connection.sendPacket(new CPacketEntityAction(Minecraft.player, CPacketEntityAction.Action.STOP_SPRINTING));
return;
}
}
if (KillAura.rotationMode.currentMode.equals("Snap") && Minecraft.player.getCooledAttackStrength(0.0f) >= attackCoolDown.getNumberValue()) {
float[] rots1 = RotationHelper.getRotations(target);
Minecraft.player.rotationYaw = rots1[0];
Minecraft.player.rotationPitch = rots1[1];
}
KillauraUtils.attackEntity(target);
}
@EventTarget
public void onRotations(EventPreMotion event) {
String mode = rotationMode.getOptions();
if (target == null) {
return;
}
if (!KillAura.target.isDead) {
float[] matrix = RotationHelper.getRotations(target);
float[] fake = RotationHelper.getFakeRotations(target);
float[] custom = RotationHelper.getCustomRotations(target);
if (mode.equalsIgnoreCase("Matrix")) {
event.setYaw(matrix[0]);
event.setPitch(matrix[1]);
yaw = matrix[0];
this.pitch = matrix[1];
Minecraft.player.renderYawOffset = matrix[0];
Minecraft.player.rotationYawHead= matrix[1];
Minecraft.player.rotationPitchHead = matrix[1];
} else if (mode.equalsIgnoreCase("Sunrise")) {
this.yaw2 = GCDFix.getFixedRotation(MathHelper.Rotate(this.yaw2, matrix[0], 40.0f, 50.0f));
this.pitch2 = GCDFix.getFixedRotation(MathHelper.Rotate(this.pitch2, matrix[1], 0.35f, 2.1f));
event.setYaw(this.yaw2);
event.setPitch(this.pitch2);
yaw = this.yaw2;
this.pitch = this.pitch2;
Minecraft.player.renderYawOffset = fake[0];
Minecraft.player.rotationYawHead = fake[0];
Minecraft.player.rotationPitchHead = fake[1];
} else if (mode.equalsIgnoreCase("Custom")) {
event.setYaw(custom[0]);
event.setPitch(custom[1]);
yaw = custom[0];
this.pitch = custom[1];
Minecraft.player.renderYawOffset = custom[0];
Minecraft.player.rotationYawHead = custom[0];
Minecraft.player.rotationPitchHead = custom[1];
} else if (mode.equalsIgnoreCase("Rilik")) {
event.setYaw(matrix[0]);
event.setPitch(matrix[1]);
Minecraft.player.renderYawOffset = fake[0];
Minecraft.player.rotationYawHead = fake[0];
Minecraft.player.rotationPitchHead = fake[1];
Minecraft.player.rotationYaw = matrix[2];
}
if (mode.equalsIgnoreCase("StormTest")) {
float[] rotVisual = RotationHelper.getRotations(target);
Minecraft.player.renderYawOffset = fake[0];
Minecraft.player.rotationPitchHead = fake[1];
Minecraft.player.rotationYawHead = fake[0];
yaw = matrix[0];
this.pitch = matrix[1];
}
}
}
@EventTarget
public void onAttackSilent(EventAttackSilent eventAttackSilent) {
isAttacking = true;
if (Minecraft.player.isBlocking() && this.shieldFixerTimer.hasReached(this.fixerDelay.getNumberValue()) && Minecraft.player.getHeldItem(EnumHand.OFF_HAND).getItem() instanceof ItemShield && this.shieldFixer.getBoolValue()) {
Minecraft.player.connection.sendPacket(new CPacketPlayerDigging(CPacketPlayerDigging.Action.RELEASE_USE_ITEM, new BlockPos(900, 900, 900), EnumFacing.UP));
KillAura.mc.playerController.processRightClick(Minecraft.player, KillAura.mc.world, EnumHand.OFF_HAND);
this.shieldFixerTimer.reset();
}
}
@EventTarget
public void onUpdate(EventUpdate event) {
if (this.shieldDesync.getBoolValue() && Minecraft.player.isBlocking() && target != null && Minecraft.player.ticksExisted % 8 == 0) {
Minecraft.player.connection.sendPacket(new CPacketPlayerDigging(CPacketPlayerDigging.Action.RELEASE_USE_ITEM, new BlockPos(900, 900, 900), EnumFacing.DOWN));
KillAura.mc.playerController.processRightClick(Minecraft.player, KillAura.mc.world, EnumHand.OFF_HAND);
}
if (this.shieldFixer.getBoolValue()) {
if (target.getHeldItemMainhand().getItem() instanceof ItemAxe) {
if (Minecraft.gameSettings.keyBindUseItem.isKeyDown()) {
Minecraft.gameSettings.keyBindUseItem.pressed = false;
}
} else {
Minecraft.gameSettings.keyBindUseItem.pressed = Mouse.isButtonDown(1);
}
}
}
@EventTarget
public void onSound(EventReceivePacket sound) {
SPacketEntityStatus sPacketEntityStatus;
if (breakNotifications.getBoolValue() && sound.getPacket() instanceof SPacketEntityStatus && (double)(sPacketEntityStatus = (SPacketEntityStatus)sound.getPacket()).getOpCode() == 26.3 && sPacketEntityStatus.getEntity(KillAura.mc.world) == target) {
if (this.notiTicks < 2) {
NotificationRenderer.queue(TextFormatting.GREEN + "Shield-Breaker", "Successfully destroyed " + target.getName() + " shield", 2, NotificationMode.SUCCESS);
} else {
this.notiTicks = 0;
}
}
}
public static void BreakShield(EntityLivingBase tg) {
if (InvenotryUtil.doesHotbarHaveAxe() && shieldBreaker.getBoolValue()) {
int item = InvenotryUtil.getAxe();
if (InvenotryUtil.getAxe() >= 0 && tg instanceof EntityPlayer && tg.isHandActive() && tg.getActiveItemStack().getItem() instanceof ItemShield) {
Minecraft.player.connection.sendPacket(new CPacketHeldItemChange(item));
KillAura.mc.playerController.attackEntity(Minecraft.player, target);
Minecraft.player.swingArm(EnumHand.MAIN_HAND);
Minecraft.player.connection.sendPacket(new CPacketHeldItemChange(Minecraft.player.inventory.currentItem));
}
}
}
@Override
public void onDisable() {
target = null;
super.onDisable();
}
static {
rotationMode = new ListSetting("Rotation Mode", "Matrix", () -> true, "Vanilla", "Matrix", "Sunrise", "Snap", "Rilik", "Custom", "StormTest");
typeMode = new ListSetting("Type Mode", "Single", () -> true, "Single", "Switch");
sortMode = new ListSetting("Priority Mode", "Distance", () -> KillAura.typeMode.currentMode.equalsIgnoreCase("Switch"), "Distance", "Health", "Crosshair", "Higher Armor", "Lowest Armor");
fov = new NumberSetting("FOV", "\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0434\u0438\u0443\u0441 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0434\u0430\u0440\u0438\u0442\u044c \u0438\u0433\u0440\u043e\u043a\u0430", 180.0f, 0.0f, 180.0f, 1.0f, () -> true);
attackCoolDown = new NumberSetting("Attack CoolDown", "\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0443\u0434\u0430\u0440\u0430", 0.85f, 0.1f, 1.0f, 0.01f, () -> !KillAura.rotationMode.currentMode.equals("Snap"));
range = new NumberSetting("AttackRange", "\u0414\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0434\u0430\u0440\u0438\u0442\u044c \u0438\u0433\u0440\u043e\u043a\u0430", 3.6f, 3.0f, 6.0f, 0.01f, () -> true);
yawrandom = new NumberSetting("Yaw Random", 1.6f, 0.1f, 20.0f, 0.01f, () -> KillAura.rotationMode.currentMode.equals("Custom"));
pitchRandom = new NumberSetting("Pitch Random", 1.6f, 0.1f, 20.0f, 0.01f, () -> KillAura.rotationMode.currentMode.equals("Custom"));
staticPitch = new BooleanSetting("Static Pitch", false, () -> KillAura.rotationMode.currentMode.equals("Custom"));
pitchHead = new NumberSetting("Pitch Head", 0.35f, 0.1f, 1.2f, 0.01f, () -> KillAura.rotationMode.currentMode.equals("Custom"));
walls = new BooleanSetting("Walls", "\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u0438\u0442\u044c \u0441\u043a\u0432\u043e\u0437\u044c \u0441\u0442\u0435\u043d\u044b", true, () -> true);
onlyCritical = new BooleanSetting("Only Critical", "\u0411\u044c\u0435\u0442 \u0432 \u043d\u0443\u0436\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043a\u0440\u0438\u0442\u0430", false, () -> true);
shieldBreaker = new BooleanSetting("ShieldBreaker", "\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u043e\u043c\u0430\u0435\u0442 \u0449\u0438\u0442 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u0438\u043a\u0443", false, () -> true);
breakNotifications = new BooleanSetting("Break Notifications", true, () -> shieldBreaker.getBoolValue());
silentMove = new BooleanSetting("SilentMove", false, () -> true);
targetsSetting = new MultipleBoolSetting("Targets", new BooleanSetting("Players", true), new BooleanSetting("Mobs"), new BooleanSetting("Animals"), new BooleanSetting("Villagers"), new BooleanSetting("Invisibles", true));
}
}