Вопрос Esp на fabric 1.21.4

  • Автор темы Автор темы adibasik
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
30 Май 2024
Сообщения
195
Реакции
2

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

В чем проблема есп они работают только когда я вхожу в игрока и то криво рисуются, пробывал еспешки из других баз взять та же проблема
(noad)

Java:
Expand Collapse Copy
@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)};
    }


}
 
координаты
 
.:
Expand Collapse Copy
@FeatureAnnotation(name = "Esp", category = Category.Render)
public class Esp extends Feature {
    public void onRender(EventRender2D e) {
        if (mc.player == null || mc.world == null || mc.getEntityRenderDispatcher().camera == null) return;

        for (Entity ent : mc.world.getEntities()) {
            if (ent instanceof PlayerEntity entity && entity != mc.player) {
                renderEsp(e, entity);
            }
            if (ent instanceof ItemEntity entity) {
                renderItem(e, entity);
            }
        }
    }

    private void renderEsp(EventRender2D event, PlayerEntity player) {
        if AscendableTextComponent text = player.getName();
        double x = player.getX();
        double y = player.getY() + getPlayerHeight(player);
        double z = player.getZ();

        Vec3d projectedPos = MathUtil.projectCoordinates(new Vec3d(x, y, z));
        if (projectedPos.z <= 0 || projectedPos.z >= 1) return;

        String textComponent = text.getString() + " [" + Formatting.RED + String.format("%.1f", getHealth(player)) + Formatting.RESET + "]";
        float textWidth = mc.textRenderer.getWidth(textComponent);
        float posX = (float) projectedPos.x - textWidth / 2;
        float posY = (float) projectedPos.y - 10;

        Team playerTeam = player.getScoreboardTeam();
        if (playerTeam != null) {
            event.getContext().drawText(mc.textRenderer, playerTeam.getPrefix().getString(), (int) posX, (int) (posY - 10), -1, true);
        }

        Color color = Core.getInstance().getFriendHandler().isFriend(player.getName().getString()) ? new Color(0x84FF00) : new Color(0xCECDCD);

        event.getContext().drawText(mc.textRenderer, textComponent, (int) posX, (int) posY, color.getRGB(), true);

        ArrayList<ItemStack> stacks = new ArrayList<>();
        stacks.add(player.getInventory().armor.get(3));
        stacks.add(player.getInventory().armor.get(2));
        stacks.add(player.getInventory().armor.get(1));
        stacks.add(player.getInventory().armor.get(0));
        stacks.add(player.getMainHandStack());
        stacks.add(player.getOffHandStack());

        float xOffset = -40;
        for (ItemStack itemStack : stacks) {
            if (itemStack.isEmpty()) continue;
            event.getContext().getMatrices().push();
            event.getContext().getMatrices().translate(posX + xOffset, posY - 25, 0);
            DiffuseLighting.enableGuiDepthLighting();
            event.getContext().drawItem(itemStack, 0, 0);
            event.getContext().drawItemInGui(mc.textRenderer, itemStack, 0, 0);
            event.getContext().getMatrices().pop();
            xOffset += 18;
        }
    }

    private void renderItem(EventRender2D e, ItemEntity ent) {
        double x = ent.getX();
        double y = ent.getY() + 0.5;
        double z = ent.getZ();

        Vec3d projectedPos = MathUtil.projectCoordinates(new Vec3d(x, y, z));
        if (projectedPos.z <= 0 || projectedPos.z >= 1) return;

        String textComponent = ent.getStack().getName().getString() + (ent.getStack().getCount() > 1 ? " x" + ent.getStack().getCount() : "");
        float textWidth = mc.textRenderer.getWidth(textComponent);
        float posX = (float) projectedPos.x - textWidth / 2;
        float posY = (float) projectedPos.y - 15;

        e.getContext().drawText(mc.textRenderer, textComponent, (int) posX, (int) posY, new Color(255, 255, 255).getRGB(), true);
    }

    private float getPlayerHeight(PlayerEntity player) {
        return player.isSneaking() ? 1.5f : 1.8f;
    }

    private float getHealth(PlayerEntity ent) {
        if (mc.getNetworkHandler() != null && ServerUtil.isOnFT()) {
            ScoreboardObjective scoreBoard = ent.getScoreboard().getObjectiveForSlot(ScoreboardDisplaySlot.BELOW_NAME);
            if (scoreBoard != null) {
                ReadableScoreboardScore score = ent.getScoreboard().getScore(ent, scoreBoard);
                if (score != null) {
                    MutableText text = ReadableScoreboardScore.getFormattedScore(score, scoreBoard.getNumberFormatOr(StyledNumberFormat.EMPTY));
                    try {
                        return Float.parseFloat(text.getString());
                    } catch (NumberFormatException ignored) {
                    }
                }
            }
        }
        return ent.getHealth() + ent.getAbsorptionAmount();
    }
}

Попробуй это.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
проблемы с проекцией, такая же проблема была у меня на мцп 1.21.1
 
.:
Expand Collapse Copy
@FeatureAnnotation(name = "Esp", category = Category.Render)
public class Esp extends Feature {
    public void onRender(EventRender2D e) {
        if (mc.player == null || mc.world == null || mc.getEntityRenderDispatcher().camera == null) return;

        for (Entity ent : mc.world.getEntities()) {
            if (ent instanceof PlayerEntity entity && entity != mc.player) {
                renderEsp(e, entity);
            }
            if (ent instanceof ItemEntity entity) {
                renderItem(e, entity);
            }
        }
    }

    private void renderEsp(EventRender2D event, PlayerEntity player) {
        if AscendableTextComponent text = player.getName();
        double x = player.getX();
        double y = player.getY() + getPlayerHeight(player);
        double z = player.getZ();

        Vec3d projectedPos = MathUtil.projectCoordinates(new Vec3d(x, y, z));
        if (projectedPos.z <= 0 || projectedPos.z >= 1) return;

        String textComponent = text.getString() + " [" + Formatting.RED + String.format("%.1f", getHealth(player)) + Formatting.RESET + "]";
        float textWidth = mc.textRenderer.getWidth(textComponent);
        float posX = (float) projectedPos.x - textWidth / 2;
        float posY = (float) projectedPos.y - 10;

        Team playerTeam = player.getScoreboardTeam();
        if (playerTeam != null) {
            event.getContext().drawText(mc.textRenderer, playerTeam.getPrefix().getString(), (int) posX, (int) (posY - 10), -1, true);
        }

        Color color = Core.getInstance().getFriendHandler().isFriend(player.getName().getString()) ? new Color(0x84FF00) : new Color(0xCECDCD);

        event.getContext().drawText(mc.textRenderer, textComponent, (int) posX, (int) posY, color.getRGB(), true);

        ArrayList<ItemStack> stacks = new ArrayList<>();
        stacks.add(player.getInventory().armor.get(3));
        stacks.add(player.getInventory().armor.get(2));
        stacks.add(player.getInventory().armor.get(1));
        stacks.add(player.getInventory().armor.get(0));
        stacks.add(player.getMainHandStack());
        stacks.add(player.getOffHandStack());

        float xOffset = -40;
        for (ItemStack itemStack : stacks) {
            if (itemStack.isEmpty()) continue;
            event.getContext().getMatrices().push();
            event.getContext().getMatrices().translate(posX + xOffset, posY - 25, 0);
            DiffuseLighting.enableGuiDepthLighting();
            event.getContext().drawItem(itemStack, 0, 0);
            event.getContext().drawItemInGui(mc.textRenderer, itemStack, 0, 0);
            event.getContext().getMatrices().pop();
            xOffset += 18;
        }
    }

    private void renderItem(EventRender2D e, ItemEntity ent) {
        double x = ent.getX();
        double y = ent.getY() + 0.5;
        double z = ent.getZ();

        Vec3d projectedPos = MathUtil.projectCoordinates(new Vec3d(x, y, z));
        if (projectedPos.z <= 0 || projectedPos.z >= 1) return;

        String textComponent = ent.getStack().getName().getString() + (ent.getStack().getCount() > 1 ? " x" + ent.getStack().getCount() : "");
        float textWidth = mc.textRenderer.getWidth(textComponent);
        float posX = (float) projectedPos.x - textWidth / 2;
        float posY = (float) projectedPos.y - 15;

        e.getContext().drawText(mc.textRenderer, textComponent, (int) posX, (int) posY, new Color(255, 255, 255).getRGB(), true);
    }

    private float getPlayerHeight(PlayerEntity player) {
        return player.isSneaking() ? 1.5f : 1.8f;
    }

    private float getHealth(PlayerEntity ent) {
        if (mc.getNetworkHandler() != null && ServerUtil.isOnFT()) {
            ScoreboardObjective scoreBoard = ent.getScoreboard().getObjectiveForSlot(ScoreboardDisplaySlot.BELOW_NAME);
            if (scoreBoard != null) {
                ReadableScoreboardScore score = ent.getScoreboard().getScore(ent, scoreBoard);
                if (score != null) {
                    MutableText text = ReadableScoreboardScore.getFormattedScore(score, scoreBoard.getNumberFormatOr(StyledNumberFormat.EMPTY));
                    try {
                        return Float.parseFloat(text.getString());
                    } catch (NumberFormatException ignored) {
                    }
                }
            }
        }
        return ent.getHealth() + ent.getAbsorptionAmount();
    }
}

Попробуй это.
не работает
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В чем проблема есп они работают только когда я вхожу в игрока и то криво рисуются, пробывал еспешки из других баз взять та же проблема
(noad)

Java:
Expand Collapse Copy
@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)};
    }


}
было бы хорошо посмотреть на сс, как я понял у тебя при определенном положении камеры все отлично работает, а при каком-то другом не очень
У меня такое было когда 3д есп делал на 2д рендере

EventRender2D и private static Vec3d[] getPoints(Entity ent) { хз
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
было бы хорошо посмотреть на сс, как я понял у тебя при определенном положении камеры все отлично работает, а при каком-то другом не очень
У меня такое было когда 3д есп делал на 2д рендере

EventRender2D и private static Vec3d[] getPoints(Entity ent) { хз
Тут есть сс
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1748975350540.png


мб
 
В чем проблема есп они работают только когда я вхожу в игрока и то криво рисуются, пробывал еспешки из других баз взять та же проблема
(noad)

Java:
Expand Collapse Copy
@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)};
    }


}
Здесь две причины (и то максиум неверные) 1. Что то с рендером есп на экране которые отображаются (что они на экране не отображаются а ток от игрока) 2. Прошуршать весь код с миром связанным и убрать ограничение (если оно есть)
 
Назад
Сверху Снизу