Вообщем перенес с 16.5 таргетесп на 1.21 и по итогу крашит, не рендерит, вообщем подскажите в чем ошибка, в кодинге не силен
Вот еще вариант
Java:
package thunder.hack.features.modules.render;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.entity.Entity;
import thunder.hack.features.modules.Module;
import thunder.hack.features.modules.combat.Aura;
import thunder.hack.setting.Setting;
import thunder.hack.utility.render.Render2DEngine;
import net.minecraft.client.render.*;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.RotationAxis;
import net.minecraft.util.math.Vec3d;
import java.awt.*;
public class TargetEsp extends Module {
private final Setting<Mode> displayMode = new Setting<>("Mode", Mode.Souls);
private final Setting<Float> soulEffectSize = new Setting<>("Size", 0.3f, 0.1f, 1.0f, v -> displayMode.getValue() == Mode.Souls);
private final Setting<Float> soulEffectAlpha = new Setting<>("Alpha", 0.6f, 0.1f, 1.0f, v -> displayMode.getValue() == Mode.Souls);
private final Setting<Float> soulLength = new Setting<>("Length", 0.4f, 0.1f, 10.0f, v -> displayMode.getValue() == Mode.Souls);
private static final Identifier IDENTIFIER = Identifier.of("thunderhack", "textures/hud/elements/glow.png");
private final Aura aura = thunder.hack.core.manager.client.ModuleManager.aura;
private final long startTime = System.currentTimeMillis();
public TargetEsp() {
super("TargetESP", Category.RENDER);
}
@Override
public void onRender3D(MatrixStack stack) {
Entity target = aura.findTarget();
if (displayMode.getValue() != Mode.Souls || !aura.isEnabled() || target == null)
return;
stack.push();
RenderSystem.disableCull();
RenderSystem.depthMask(false);
RenderSystem.enableBlend();
RenderSystem.blendFuncSeparate(770, 1, 0, 1);
double x = aura.findTarget().getX();
double y = aura.findTarget().getY() + aura.findTarget().getHeight() / 2f;
double z = aura.findTarget().getZ();
double radius = 0.7f;
float speed = 30;
float size = soulEffectSize.getValue();
double distance = 25;
int maxAlpha = 255;
int alphaFactor = 20;
int length = Math.round(soulLength.getValue());
stack.translate(-mc.gameRenderer.getCamera().getPos().x,
-mc.gameRenderer.getCamera().getPos().y,
-mc.gameRenderer.getCamera().getPos().z);
Vec3d interpolated = interpolateEntityPosition(aura.findTarget());
interpolated = interpolated.add(0, 0.75f, 0);
stack.translate(interpolated.x + 0.2f, interpolated.y + 0.5f, interpolated.z);
RenderSystem.setShaderTexture(0, IDENTIFIER);
RenderSystem.setShader(GameRenderer::getPositionColorProgram);
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder buffer = tessellator.begin(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION_TEXTURE_COLOR);
for (int j = 0; j < 3; j++) {
for (int i = 0; i < length; i++) {
stack.push();
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 -> stack.translate(s, c, -c);
case 1 -> stack.translate(-s, s, -c);
case 2 -> stack.translate(s, -c, -c);
}
stack.translate(-size / 2f, -size / 2f, 0);
stack.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(mc.gameRenderer.getCamera().getYaw()));
stack.translate(size / 2f, size / 2f, 0);
Color color1 = Render2DEngine.injectAlpha(new Color(0xFF00FFFF), MathHelper.clamp(maxAlpha - (i * alphaFactor), 0, maxAlpha));
Color color2 = Render2DEngine.injectAlpha(new Color(0xFFFF00FF), MathHelper.clamp(maxAlpha - (i * alphaFactor), 0, maxAlpha));
Color color = Render2DEngine.interpolateColorsBackAndForth(15, i, color1, color2, false);
int colorWithAlpha = color.getRGB() | (MathHelper.clamp((int) (soulEffectAlpha.getValue() * 255), 0, 255) << 24);
buffer.vertex(stack.peek().getPositionMatrix(), 0, -size, 0)
.color(colorWithAlpha)
.texture(0, 0);
buffer.vertex(stack.peek().getPositionMatrix(), -size, -size, 0)
.color(colorWithAlpha)
.texture(0, 1);
buffer.vertex(stack.peek().getPositionMatrix(), -size, 0, 0)
.color(colorWithAlpha)
.texture(1, 1);
buffer.vertex(stack.peek().getPositionMatrix(), 0, 0, 0)
.color(colorWithAlpha)
.texture(1, 0);
BufferRenderer.drawWithGlobalProgram(buffer.end());
stack.pop();
}
}
RenderSystem.enableCull();
RenderSystem.disableBlend();
RenderSystem.depthMask(true);
stack.pop();
}
private Vec3d interpolateEntityPosition(Entity entity) {
if (entity == null) return Vec3d.ZERO;
double x = entity.prevX + (entity.getX() - entity.prevX) * getTickDelta();
double y = entity.prevY + (entity.getY() - entity.prevY) * getTickDelta();
double z = entity.prevZ + (entity.getZ() - entity.prevZ) * getTickDelta();
return new Vec3d(x, y, z);
}
public static float getTickDelta() {
return mc.getRenderTickCounter().getTickDelta(true);
}
private enum Mode {
Souls("Souls"),
OTHER("Other");
private final String name;
Mode(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
}
}
Код:
package thunder.hack.features.modules.render;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.render.*;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.Entity;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.RotationAxis;
import net.minecraft.util.math.Vec3d;
import thunder.hack.features.modules.Module;
import thunder.hack.features.modules.combat.Aura;
import thunder.hack.setting.Setting;
import thunder.hack.utility.render.Render2DEngine;
import thunder.hack.utility.render.Render3DEngine;
import java.awt.*;
public class TargetEsp extends Module {
private final Setting<Mode> displayMode = new Setting<>("Mode", Mode.Souls);
private final Setting<Float> soulEffectSize = new Setting<>("Size", 0.3f, 0.1f, 1.0f, v -> displayMode.getValue() == Mode.Souls);
private final Setting<Float> soulEffectAlpha = new Setting<>("Alpha", 0.6f, 0.1f, 1.0f, v -> displayMode.getValue() == Mode.Souls);
private final Setting<Float> soulLength = new Setting<>("Length", 0.4f, 0.1f, 10.0f, v -> displayMode.getValue() == Mode.Souls);
private static final Identifier IDENTIFIER = Identifier.of("thunderhack", "textures/hud/elements/glow.png");
private final long startTime = System.currentTimeMillis();
public TargetEsp() {
super("TargetESP", Category.RENDER);
}
@Override
public void onRender3D(Render3DEngine event) {
Entity target = Aura.target;
if (displayMode.getValue() != Mode.Souls || target == null)
return;
MatrixStack stack = event.getMatrixStack();
stack.push();
RenderSystem.disableCull();
RenderSystem.depthMask(false);
RenderSystem.enableBlend();
RenderSystem.blendFuncSeparate(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE, GlStateManager.SrcFactor.ZERO, GlStateManager.DstFactor.ONE);
float size = soulEffectSize.getValue();
double distance = 25;
int maxAlpha = 255;
int alphaFactor = 20;
int length = Math.round(soulLength.getValue());
Vec3d interpolated = Render3DEngine.interpolateBox(target).add(0, target.getHeight() / 2f + 0.75f, 0);
stack.translate(interpolated.x - mc.gameRenderer.getCamera().getPos().x + 0.2f,
interpolated.y - mc.gameRenderer.getCamera().getPos().y + 0.5f,
interpolated.z - mc.gameRenderer.getCamera().getPos().z);
RenderSystem.setShaderTexture(0, IDENTIFIER);
RenderSystem.setShader(GameRenderer::getPositionColorProgram);
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder buffer = tessellator.getBuffer();
for (int j = 0; j < 3; j++) {
for (int i = 0; i < length; i++) {
stack.push();
double angle = 0.15f * (System.currentTimeMillis() - startTime - (i * distance)) / 30f;
double s = Math.sin(angle) * 0.7f;
double c = Math.cos(angle) * 0.7f;
switch (j) {
case 0 -> stack.translate(s, c, -c);
case 1 -> stack.translate(-s, s, -c);
case 2 -> stack.translate(s, -c, -c);
}
stack.translate(-size / 2f, -size / 2f, 0);
stack.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(mc.gameRenderer.getCamera().getYaw()));
stack.translate(size / 2f, size / 2f, 0);
Color color1 = Render2DEngine.injectAlpha(new Color(0xFF00FFFF), MathHelper.clamp(maxAlpha - (i * alphaFactor), 0, maxAlpha));
Color color2 = Render2DEngine.injectAlpha(new Color(0xFFFF00FF), MathHelper.clamp(maxAlpha - (i * alphaFactor), 0, maxAlpha));
Color color = Render2DEngine.interpolateColorsBackAndForth(15, i, color1, color2, false);
int colorWithAlpha = color.getRGB() | (MathHelper.clamp((int) (soulEffectAlpha.getValue() * 255), 0, 255) << 24);
buffer.begin(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION_TEXTURE_COLOR);
buffer.vertex(stack.peek().getPositionMatrix(), 0, -size, 0)
.texture(0, 0).color(colorWithAlpha).next();
buffer.vertex(stack.peek().getPositionMatrix(), -size, -size, 0)
.texture(0, 1).color(colorWithAlpha).next();
buffer.vertex(stack.peek().getPositionMatrix(), -size, 0, 0)
.texture(1, 1).color(colorWithAlpha).next();
buffer.vertex(stack.peek().getPositionMatrix(), 0, 0, 0)
.texture(1, 0).color(colorWithAlpha).next();
BufferRenderer.draw(buffer);
stack.pop();
}
}
RenderSystem.enableCull();
RenderSystem.disableBlend();
RenderSystem.depthMask(true);
stack.pop();
}
private enum Mode {
Souls("Souls"),
OTHER("Other");
private final String name;
Mode(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
}
}
Последнее редактирование: