-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
ну вот крч,не пишите что я плохо деобфнул они такии и были износилованыи
Код:
import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.systems.RenderSystem;
import java.awt.Color;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ActiveRenderInfo;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.entity.LivingEntity;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
@ModuleRegister(name="TargetESP", type=Category.Render)
public class TargetESP extends Module {
public ModeSetting mode = new ModeSetting("Мод", "Призраки", new String[]{"Призраки", "Квадрат"});
public float rotationSpeed = 0.0f;
private final float acceleration = 0.01f;
public float yPos;
private final float maxRotationSpeed = 1.5f;
public boolean isReversing = false;
public float xPos;
public float rotationAngle = 0.0f;
public float zPos;
private static Minecraft mc = Minecraft.getInstance();
private static final float ANIMATION_PERIOD = 1500.0f;
public TargetESP() {
this.addSettings(new Setting[]{this.mode});
}
@Subscribe
public void onRender3D(RenderWorldLastEvent event) {
LivingEntity target = getTarget();
if (target == null || !mode.is("Квадрат")) {
return;
}
MatrixStack matrixStack = event.getMatrixStack();
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder bufferBuilder = tessellator.getBuffer();
matrixStack.push();
ActiveRenderInfo renderInfo = mc.gameRenderer.getActiveRenderInfo();
double x = targetEntity.getX() + (targetEntity.getX() - targetEntity.prevPosX) * event.getPartialTicks() - renderInfo.getProjectedView().x;
double y = targetEntity.getY() + (targetEntity.getY() - targetEntity.prevPosY) * event.getPartialTicks() - renderInfo.getProjectedView().y + (targetEntity.getHeight() / 2.0);
double z = targetEntity.getZ() + (targetEntity.getZ() - targetEntity.prevPosZ) * event.getPartialTicks() - renderInfo.getProjectedView().z;
matrixStack.translate(x, y, z);
matrixStack.mulPose(Vector3f.YP.rotationDegrees(-renderInfo.getYaw()));
matrixStack.mulPose(Vector3f.XP.rotationDegrees(renderInfo.getPitch()));
matrixStack.scale(-0.15f, -0.15f, -0.15f);
RenderSystem.disableDepthTest();
RenderSystem.enableBlend();
RenderSystem.setShaderColor(1.0f, 1.0f, 1.0f, 1.0f);
Minecraft.getInstance().getTextureManager().bindTexture(TextureAtlas.LOCATION_BLOCKS);
bufferBuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR);
Color color = new Color(Integer.parseInt(color, 16));
updateRotation();
matrixStack.mulPose(Vector3f.ZP.rotationDegrees(getRotationAngle()));
bufferBuilder.vertex(matrixStack.last().pose(), 4.5f, 4.5f, 0.0f).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).uv(0.0f, 0.0f).endVertex();
bufferBuilder.vertex(matrixStack.last().pose(), 4.5f, -4.5f, 0.0f).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).uv(0.0f, 1.0f).endVertex();
bufferBuilder.vertex(matrixStack.last().pose(), -4.5f, -4.5f, 0.0f).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).uv(1.0f, 1.0f).endVertex();
bufferBuilder.vertex(matrixStack.last().pose(), -4.5f, 4.5f, 0.0f).color(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()).uv(1.0f, 0.0f).endVertex();
tessellator.end();
RenderSystem.enableDepthTest();
RenderSystem.disableBlend();
matrixStack.pop();
}
public void renderAlternativeMarker(MatrixStack matrixStack) {
float animationProgress = getAnimationProgress();
Vector3d viewerPos = getViewerPosition();
Vector3d targetPos = getTargetPosition();
float scaleFactor = 0.6f;
float baseHeight = 0.0f;
boolean alternateMode = true;
for (int iteration = 0; iteration < 3; ++iteration) {
for (float angle = animationProgress * 360.0f; angle < animationProgress * 360.0f + 90.0f; angle += 2.0f) {
double radianAngle = Math.toRadians(angle);
double verticalOffset = baseHeight + Math.sin(radianAngle * 1.000000476837158) * 0.25;
float normalizedAngle = normalizeAngle(angle, animationProgress * 360.0f - 45.0f, animationProgress * 360.0f + 90.0f);
float sizeFactor = 0.45f;
setupRenderTransform(matrixStack, viewerPos, targetPos);
int color = getColor();
setupRenderState(false);
float adjustedSize = calculateAdjustedSize(alternateMode, normalizedAngle, scaleFactor, sizeFactor);
renderCircularGlow(matrixStack, angle, verticalOffset, adjustedSize, color);
setupRenderState(true);
matrixStack.pop();
}
animationProgress *= -1.25f;
alternateMode = !alternateMode;
baseHeight += 0.45f;
}
}
@SubscribeEvent
public void onRenderMarker(RenderWorldLastEvent event) {
if (mode.is("Призраки")) {
MatrixStack matrixStack = event.getMatrixStack();
LivingEntity target = Aura.getTarget();
if (target != null && target != mc.player) {
Vector3d targetPos = target.getPositionVec();
double x = targetPos.x;
double y = targetPos.y + target.getHeight() / 1.6f;
double z = targetPos.z;
float partialTicks = mc.getRenderPartialTicks();
x += (target.lastTickPosX + (target.getX() - target.lastTickPosX) * partialTicks - mc.getRenderManager().viewerPosX);
y += (target.lastTickPosY + (target.getY() - target.lastTickPosY) * partialTicks - mc.getRenderManager().viewerPosY);
z += (target.lastTickPosZ + (target.getZ() - target.lastTickPosZ) * partialTicks - mc.getRenderManager().viewerPosZ);
xPos = (float)x;
yPos = (float)y;
zPos = (float)z;
renderAlternativeMarker(matrixStack);
}
}
}
private static Minecraft getMinecraftInstance() {
return TargetESP.getMinecraft();
}
public void updateRotation() {
boolean isIncreasing = !bqJ.shouldDecreaseRotationSpeed(this);
float currentSpeed = bqJ.getRotationSpeed(this);
float maxSpeed = 2.3f;
if (isIncreasing) {
currentSpeed = Math.min(currentSpeed + 0.01f, maxSpeed);
bqJ.setRotationSpeed(this, currentSpeed);
if (currentSpeed >= maxSpeed) {
bqJ.setIsReversing(this, true);
}
} else {
currentSpeed = Math.max(currentSpeed - 0.01f, -maxSpeed);
bqJ.setRotationSpeed(this, currentSpeed);
if (currentSpeed <= -maxSpeed) {
bqJ.setIsReversing(this, false);
}
}
float currentAngle = bqJ.getRotationAngle(this);
float newAngle = currentAngle + currentSpeed;
bqJ.setRotationAngle(this, (newAngle + 360.0f) % 360.0f);
}
private static Minecraft getMinecraftInstanceStatic() {
return mc;
}
private static double getEntityDistance(LivingEntity entity) {
return TargetESP.getDistanceToEntity(entity);
}
public static float normalize(float a, float b, float c) {
return (a - b) / (c - b);
}
@Subscribe
public void onRender(RenderEvent event) {
}
public static float lerp(final float n, final float n2, final float n3) {
return n + (n2 - n) * n3;
}
}