Начинающий
- Статус
- Оффлайн
- Регистрация
- 30 Май 2024
- Сообщения
- 195
- Реакции
- 2
В чем проблема есп они работают только когда я вхожу в игрока и то криво рисуются, пробывал еспешки из других баз взять та же проблема
(noad)
Java:
@FeatureAnnotation(name = "Esp", category = Category.Render)
public class Esp extends Feature {
@Subscribe
public void onRender(EventRender2D e) {
if (mc.player == null || mc.world == null) return;
if (mc.getEntityRenderDispatcher().camera == null) return;
for (Entity ent : mc.world.getEntities()) {
if (ent instanceof PlayerEntity entity) {
renderEsp(e, entity);
}
if (ent instanceof ItemEntity entity) {
renderItem(e, entity);
}
}
}
private void renderEsp(EventRender2D event, PlayerEntity player) {
if (player == mc.player && mc.options.getPerspective().isFirstPerson()) return;
double x = MathUtil.interpolate(player.prevX, player.getX());
double y = MathUtil.interpolate(player.prevY, player.getY());
double z = MathUtil.interpolate(player.prevZ, player.getZ());
Vec3d projectedPos = MathUtil.projectCoordinates(new Vec3d(x, y + getPlayerHeight(player), z));
if (projectedPos.z <= 0 || projectedPos.z >= 1) return;
String textComponent = player.getName().getString() + " [" + Formatting.RED + getHealth(player) + Formatting.GRAY + "]";
float textWidth = mc.textRenderer.getWidth((textComponent) + 6);
float posX = (float) projectedPos.x - textWidth / 2;
float posY = ((float) projectedPos.y - getPlayerHeight(player));
Team playerTeam = player.getScoreboardTeam();
if (playerTeam != null) {
event.getContext().drawText(MinecraftClient.getInstance().textRenderer,
playerTeam.getPrefix(),
(int) (posX - MinecraftClient.getInstance().textRenderer.getWidth(playerTeam.getPrefix()) + 2),
(int) (posY - 15),
-1,
true);
}
Color color = new Color(0xCECDCD);
if (Core.getInstance().getFriendHandler().isFriend(player.getName().getString())) {
color = new Color(0x84FF00);
}
event.getContext().drawText(MinecraftClient.getInstance().textRenderer,
textComponent,
(int) (posX - 2),
(int) (posY - 15),
color.getRGB(),
true);
ArrayList<ItemStack> stacks = new ArrayList<>();
stacks.add(player.getInventory().armor.get(0));
stacks.add(player.getInventory().armor.get(1));
stacks.add(player.getInventory().armor.get(2));
stacks.add(player.getInventory().armor.get(3));
stacks.add(player.getOffHandStack());
stacks.add(player.getMainHandStack());
float xOffset = 0;
for (ItemStack itemStack : stacks) {
String sName = mc.player.networkHandler.getServerInfo() == null ? "none" : mc.player.networkHandler.getServerInfo().address;
if (sName.contains("holyworld")) {
if (itemStack.getCount() > itemStack.getMaxCount()) {
itemStack.setCount(itemStack.getMaxCount());
}
}
event.getContext().getMatrices().push();
event.getContext().getMatrices().translate(posX - 25 + xOffset, (float) (posY - 33f), 0);
DiffuseLighting.disableGuiDepthLighting();
event.getContext().drawItem(itemStack, 0, 0);
event.getContext().drawStackOverlay(mc.textRenderer, itemStack, 0, 0);
event.getContext().getMatrices().pop();
xOffset += 15;
}
}
private void renderItem(EventRender2D e, ItemEntity ent) {
Vec3d[] vectors = getPoints(ent);
Vector4d position = null;
for (Vec3d vector : vectors) {
vector = MathUtil.projectCoordinates(new Vec3d(vector.x, vector.y, vector.z));
if (vector.z > 0 && vector.z < 1) {
if (position == null)
position = new Vector4d(vector.x, vector.y, vector.z, 0);
position.x = Math.min(vector.x, position.x);
position.y = Math.min(vector.y, position.y);
position.z = Math.max(vector.x, position.z);
position.w = Math.max(vector.y, position.w);
}
}
if (position != null) {
float posX = (float) position.x;
float posY = (float) position.y;
float endPosX = (float) position.z;
int count = ent.getStack().getCount();
String textComponent = "";
textComponent += (ent.getDisplayName().getString()) + " ";
textComponent += ent.getStack().getItem().getMaxCount() > 1 ? "x" + count : "";
float diff = (endPosX - posX) / 2f;
float textWidth = ent.getStack().getItem().getMaxCount() > 1 ? mc.textRenderer.getWidth(textComponent) : mc.textRenderer.getWidth(textComponent) - 2;
float tagX = (posX + diff - textWidth / 2f) * 1;
e.getContext().drawText(MinecraftClient.getInstance().textRenderer,
textComponent,
(int) (posX - 2),
(int) (posY - 15),
new Color(255, 255, 255).getRGB(),
true);
}
}
private float getPlayerHeight(PlayerEntity player) {
return player.getPose() == EntityPose.CROUCHING ? 1.5f : 2.0f;
}
public float getHealth(PlayerEntity ent) {
if ((mc.getNetworkHandler() != null && mc.getNetworkHandler().getServerInfo() != null && ServerUtil.isOnFT())) {
ScoreboardObjective scoreBoard;
String resolvedHp = "";
if ((ent.getScoreboard()).getObjectiveForSlot(ScoreboardDisplaySlot.BELOW_NAME) != null) {
scoreBoard = (ent.getScoreboard()).getObjectiveForSlot(ScoreboardDisplaySlot.BELOW_NAME);
if (scoreBoard != null) {
ReadableScoreboardScore readableScoreboardScore = ent.getScoreboard().getScore(ent, scoreBoard);
MutableText text2 = ReadableScoreboardScore.getFormattedScore(readableScoreboardScore, scoreBoard.getNumberFormatOr(StyledNumberFormat.EMPTY));
resolvedHp = text2.getString();
}
}
float numValue = 0;
try {
numValue = Float.parseFloat(resolvedHp);
} catch (NumberFormatException ignored) {
}
return numValue;
} else return ent.getHealth() + ent.getAbsorptionAmount();
}
@NotNull
private static Vec3d[] getPoints(Entity ent) {
double x = ent.prevX + (ent.getX() - ent.prevX) * MathUtil.getTickDelta();
double y = ent.prevY + (ent.getY() - ent.prevY) * MathUtil.getTickDelta();
double z = ent.prevZ + (ent.getZ() - ent.prevZ) * MathUtil.getTickDelta();
Box axisAlignedBB2 = ent.getBoundingBox();
Box axisAlignedBB = new Box(axisAlignedBB2.minX - ent.getX() + x - 0.05, axisAlignedBB2.minY - ent.getY() + y, axisAlignedBB2.minZ - ent.getZ() + z - 0.05, axisAlignedBB2.maxX - ent.getX() + x + 0.05, axisAlignedBB2.maxY - ent.getY() + y + 0.15, axisAlignedBB2.maxZ - ent.getZ() + z + 0.05);
return new Vec3d[]{new Vec3d(axisAlignedBB.minX, axisAlignedBB.minY, axisAlignedBB.minZ), new Vec3d(axisAlignedBB.minX, axisAlignedBB.maxY, axisAlignedBB.minZ), new Vec3d(axisAlignedBB.maxX, axisAlignedBB.minY, axisAlignedBB.minZ), new Vec3d(axisAlignedBB.maxX, axisAlignedBB.maxY, axisAlignedBB.minZ), new Vec3d(axisAlignedBB.minX, axisAlignedBB.minY, axisAlignedBB.maxZ), new Vec3d(axisAlignedBB.minX, axisAlignedBB.maxY, axisAlignedBB.maxZ), new Vec3d(axisAlignedBB.maxX, axisAlignedBB.minY, axisAlignedBB.maxZ), new Vec3d(axisAlignedBB.maxX, axisAlignedBB.maxY, axisAlignedBB.maxZ)};
}
}