Начинающий
-
Автор темы
- #1
- Выберите загрузчик игры
- Vanilla
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Пожалуйста, авторизуйтесь для просмотра ссылки.
- клик
Код:
package Fever.Visual.functions.impl.combat;
import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.renderer.ActiveRenderInfo;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.EntityRayTraceResult;
import net.minecraft.util.math.MathHelper;
import Fever.Visual.events.EventDisplay;
import Fever.Visual.events.WorldEvent;
import Fever.Visual.functions.api.Category;
import Fever.Visual.functions.api.Function;
import Fever.Visual.functions.api.FunctionRegister;
import Fever.Visual.functions.settings.impl.SliderSetting;
import Fever.Visual.utils.math.MathUtil;
import Fever.Visual.utils.math.Vector4i;
import Fever.Visual.utils.projections.ProjectionUtil;
import Fever.Visual.utils.render.ColorUtils;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.math.vector.Quaternion;
import net.minecraft.entity.LivingEntity;
import static org.lwjgl.opengl.GL11.GL_QUADS;
@FunctionRegister(name = "TargetESP2", type = Category.Combat)
public class TargetESP2 extends Function {
private LivingEntity target;
private boolean allow = false;
private final Minecraft mc = Minecraft.getInstance();
private final TargetESP.Stopwatch stopWatch = new TargetESP.Stopwatch();
private net.minecraft.entity.LivingEntity LivingEntity;
public static final SliderSetting soulEffectSize = new SliderSetting(
"Размер",
0.3f,
0.1f,
1.0f,
0.1f
);
private final SliderSetting soulEffectAlpha = new SliderSetting(
"Альфа",
0.6f,
0.1f,
1.0f,
0.1f
);
private final SliderSetting soulLength = new SliderSetting(
"Длинна душ",
0.4f,
0.1f,
10.0f,
0.1f
);
private long startTime;
public TargetESP2() {
addSettings(soulEffectSize, soulEffectAlpha, soulLength);
}
@Subscribe
private void onDisplay(EventDisplay e) {
if (e.getType() != EventDisplay.Type.PRE) {
return;
}
LivingEntity target = getTarget(LivingEntity);
if (target != null) {
double sin = Math.sin(System.currentTimeMillis() / 5000.0);
float size = 150.0F;
Vector3d interpolated = target.getPositon();
Vector2f pos = ProjectionUtil.project(interpolated.x, interpolated.y + target.getHeight() / 2f, interpolated.z);
GlStateManager.pushMatrix();
GlStateManager.translatef(pos.x, pos.y, 0);
GlStateManager.popMatrix();
}
}
private LivingEntity getTarget(LivingEntity nullTarget) {
RayTraceResult rayTraceResult = mc.objectMouseOver;
LivingEntity newTarget = nullTarget;
if (rayTraceResult != null && rayTraceResult.getType() == RayTraceResult.Type.ENTITY) {
Entity entityHit = ((EntityRayTraceResult) rayTraceResult).getEntity();
if (entityHit instanceof LivingEntity) {
newTarget = (LivingEntity) entityHit;
if (target != newTarget) {
target = newTarget;
stopWatch.reset();
allow = true;
}
}
}
else if (target != null && stopWatch.getElapsedTime() <= 5000) {
double distanceToTarget = mc.player.getDistance(target);
if (distanceToTarget <= 4) {
newTarget = target;
} else {
target = null;
allow = false;
}
}
else if (stopWatch.getElapsedTime() > 6000) {
target = null;
allow = false;
}
else if (mc.currentScreen instanceof ChatScreen) {
stopWatch.reset();
allow = true;
} else {
target = null;
allow = false;
}
return newTarget;
}
public void onTick() {
LivingEntity target = getTarget(null);
}
public static class Stopwatch {
private long startTime;
public Stopwatch() {
reset();
}
public void reset() {
startTime = System.currentTimeMillis();
}
public long getElapsedTime() {
return System.currentTimeMillis() - startTime;
}
}
@Subscribe
private void onWorldEvent(WorldEvent e) {
LivingEntity target = getTarget(LivingEntity);
if (target != null) {
MatrixStack ms = new MatrixStack();
ms.push();
RenderSystem.pushMatrix();
RenderSystem.disableLighting();
RenderSystem.depthMask(false);
RenderSystem.enableBlend();
RenderSystem.shadeModel(7425);
RenderSystem.disableCull();
RenderSystem.disableAlphaTest();
RenderSystem.blendFuncSeparate(770, 1, 0, 1);
double x = target.getPosX();
double y = target.getPosY() + target.getHeight() / 2f;
double z = target.getPosZ();
double radius = 0.7f;
float speed = 30;
float size = soulEffectSize.get();
double distance = 25;
int maxAlpha = 255;
int alphaFactor = 20;
int length = Math.round(soulLength.get());
ActiveRenderInfo camera = mc.getRenderManager().info;
ms.translate(-mc.getRenderManager().info.getProjectedView().getX(),
-mc.getRenderManager().info.getProjectedView().getY(),
-mc.getRenderManager().info.getProjectedView().getZ());
Vector3d interpolated = MathUtil.interpolate(target.getPositionVec(),
new Vector3d(target.lastTickPosX, target.lastTickPosY, target.lastTickPosZ),
e.getPartialTicks());
interpolated.y += 0.75f;
ms.translate(interpolated.x + 0.2f, interpolated.y + 0.5f, interpolated.z);
mc.getTextureManager().bindTexture(new ResourceLocation("ВашКлиент/images/glow.png"));
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder buffer = tessellator.getBuffer();
for (int j = 0; j < 3; j++) {
for (int i = 0; i < length; i++) {
Quaternion r = camera.getRotation().copy();
buffer.begin(GL_QUADS, DefaultVertexFormats.POSITION_COLOR_TEX);
double angle = 0.15f * (System.currentTimeMillis() - startTime - (i * distance)) / (speed);
double s = Math.sin(angle) * radius;
double c = Math.cos(angle) * radius;
switch (j) {
case 0:
ms.translate(s, c, -c);
break;
case 1:
ms.translate(-s, s, -c);
break;
case 2:
ms.translate(s, -c, -c);
break;
}
ms.translate(-size / 2f, -size / 2f, 0);
ms.rotate(r);
ms.translate(size / 2f, size / 2f, 0);
int color = ColorUtils.getColor(i);
int alpha = MathHelper.clamp(maxAlpha - (i * alphaFactor), 0, maxAlpha);
int colorWithAlpha = (color & 0xFFFFFF) | (MathHelper.clamp((int) (soulEffectAlpha.get() * 255), 255, 255) << 24);
buffer.pos(ms.getLast().getMatrix(), 0, -size, 0).color(colorWithAlpha).tex(0, 0).endVertex();
buffer.pos(ms.getLast().getMatrix(), -size, -size, 0).color(colorWithAlpha).tex(0, 1).endVertex();
buffer.pos(ms.getLast().getMatrix(), -size, 0, 0).color(colorWithAlpha).tex(1, 1).endVertex();
buffer.pos(ms.getLast().getMatrix(), 0, 0, 0).color(colorWithAlpha).tex(1, 0).endVertex();
tessellator.draw();
ms.translate(-size / 2f, -size / 2f, 0);
r.conjugate();
ms.rotate(r);
ms.translate(size / 2f, size / 2f, 0);
switch (j) {
case 0:
ms.translate(-s, -c, c);
break;
case 1:
ms.translate(s, -s, c);
break;
case 2:
ms.translate(-s, c, c);
break;
}
}
}
ms.translate(-x, -y, -z);
RenderSystem.defaultBlendFunc();
RenderSystem.disableBlend();
RenderSystem.enableCull();
RenderSystem.enableAlphaTest();
RenderSystem.depthMask(true);
RenderSystem.popMatrix();
ms.pop();
}
}
}