Hud Nursultan Alpha ! Слив худа Nursultan Alpha на Exp 2.0

Начинающий
Начинающий
Статус
Онлайн
Регистрация
24 Авг 2024
Сообщения
18
Реакции
0
Увидел то что никто не может спастить этот вырвеглазный HUD Nursultan на EXP 2.0 | Если худ на SS Говно - смотрите у себя потому что у меня другие шрифты!

Вот сливаю вам такой HUD Nursultan под базу Expensive 2.0:
1734024268357.png


На самом деле сложнее всего было написать код на музыку, а так нет.
Иконки не с нурика потому что нужно установить шрифт (Я использовал другой потому что я буду переделывать HUD под свой чит)

Чтобы были те иконки установите nyrik.ttf по кнопке
Пожалуйста, авторизуйтесь для просмотра ссылки.
и напишите эти коды в expensive-master/src/wtf/expensive/font/Fonts.java:
На 21 строке: public static volatile StyledFont[] nyrik = new StyledFont[42];

На 62 строке:

for (int i = 8; i < 24;i++) {
nyrik = new StyledFont("nyrik.ttf", i, 0.0f, 0.0f, 0.0f, true, Lang.ENG_RU);
}

PS: Чтобы установить nyrik.ttf зайдите в expensive-master/src/assets/minecraft/expensive/font, если у вас вылетает повторите все заного.

Код на HUD:


Код:
Expand Collapse Copy
    private void watermark(MatrixStack stack) {
        Object[] objectArray = new Object[1];
        objectArray[0] = Math.hypot(Minecraft.player.getPosX() - Minecraft.player.prevPosX, Minecraft.player.getPosZ() - Minecraft.player.prevPosZ) * 20.0;
        double speed2 = (Double) objectArray[0];
        String text = speed2 == 0.0 ? "0.0" : String.format(Locale.ENGLISH, "%.2f", speed2).replace(',', '.');
        String user = ClientUtil.me == null ? "null" : ClientUtil.me.getName();
        StringBuilder titleText = new StringBuilder("");
        LocalTime time = LocalTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
        titleText.append(time.format(formatter));
        int var10000 = (int)Minecraft.player.getPosX();
        String cord = var10000 + " " + (int)Minecraft.player.getPosY() + " " + (int)Minecraft.player.getPosZ();
        float debugTPS = (int)Sunshine.getInstance().getTpsCalc().getTPS();
        int firstColor = ColorUtil.getColorStyle(0.0f);
        int secondColor = ColorUtil.getColorStyle(90.0f);
        if (this.gradienthud.get()) {
            RenderUtil.Render2D.drawGradientRound(5.0f, 5.2f, 45.0f, 12.0f, 3.4f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(54.5f, 4.8f, Fonts.msSemiBold[13].getWidth(user) + Fonts.msSemiBold[13].getWidth(titleText.toString()) + 78.0f, 12.3f, 3.3f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(5.0f, 20.5f, 22.5f + Fonts.msSemiBold[13].getWidth(cord), 12.0f, 3.0f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(32.0f + Fonts.msSemiBold[13].getWidth(cord), 20.5f, 38.2f + Fonts.msSemiBold[13].getWidth(text), 12.0f, 3.3f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
        }
        RenderUtil.Render2D.drawRoundedCorner(4.0f, 4.0f, 47.0f, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(53.5f, 4.0f, Fonts.msSemiBold[13].getWidth(user) + Fonts.msSemiBold[13].getWidth(titleText.toString()) + 80.0f, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(4.0f, 19.5f, 24.5f + Fonts.msSemiBold[13].getWidth(cord), 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(31.0f + Fonts.msSemiBold[13].getWidth(cord), 19.5f, 40.0f + Fonts.msSemiBold[13].getWidth(text), 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(74.0f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text), 19.5f, 30.0f + (float)debugTPS, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRect(20.5f, 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(70.5f + Fonts.msSemiBold[13].getWidth(user), 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(115.0f + Fonts.msSemiBold[13].getWidth(user), 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(45.0f + Fonts.msSemiBold[13].getWidth(cord), 22.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(20.0f, 22.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        Fonts.Nurik[19].drawString(stack, ClientUtil.gradient("S", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 8.0, 10.0, -1);
        Fonts.msSemiBold[13].drawString(stack, ClientUtil.gradient("Alpha", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 25.5, 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("W", ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(90.0f)), 58.0, 10.5, -1);
        Fonts.msSemiBold[13].drawString(stack, user, 67.5, 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("X", ColorUtil.getColorStyle(150.0f), ColorUtil.getColorStyle(120.0f)), (double)(73.5f + Fonts.msSemiBold[13].getWidth(user)), 10.5, -1);
        StyledFont var10 = Fonts.msSemiBold[13];
        Minecraft var10002 = mc;
        var10.drawString(stack, Minecraft.debugFPS + " Fps", (double)(84.9f + Fonts.msSemiBold[13].getWidth(user)), 10.0, -1);
        Fonts.msSemiBold[13].drawString(stack, titleText.toString(), (double)(128.5f + Fonts.msSemiBold[13].getWidth(user)), 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("V", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), (double)(118.0f + Fonts.msSemiBold[13].getWidth(user)), 10.5, -1);
        Fonts.msSemiBold[13].drawString(stack, text, (double)(50.5f + Fonts.msSemiBold[13].getWidth(cord)), 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.msSemiBold[13].drawString(stack, "BPS", (double)(53.0f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text)), 25.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("&#35", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), (double)(27.0f + Fonts.msSemiBold[13].getWidth(cord)), 25.5, -1);
        Fonts.msSemiBold[13].drawString(stack, cord, 24.0, 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("F", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 9.0, 25.5, -1);
        Fonts.msSemiBold[13].drawString(stack, "Tps " + debugTPS, (double)(87.3f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text)), 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("Q", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 77.0 + (double)Fonts.msSemiBold[13].getWidth(cord) + (double)Fonts.msSemiBold[13].getWidth(text), 25.5, -1);
    }


    private void updateFunctions() {
        for (Function function : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (function.category == Type.Render) continue;
            this.functions.add(function);
            this.functions.sort((f1, f2) -> Float.compare(Fonts.msSemiBold[13].getWidth(f2.name), Fonts.msSemiBold[13].getWidth(f1.name)));
        }
    }

    private void onKeyBindsRender(MatrixStack stack) {
        float posX = this.keyBinds.getX();
        float posY = this.keyBinds.getY();
        int headerHeight = 14;
        int padding = 5;
        int firstColor = ColorUtil.getColorStyle(0.0f);
        int secondColor = ColorUtil.getColorStyle(90.0f);
        this.activeModules = 0;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (f.bind == 0 || !f.state) continue;
            ++this.activeModules;
        }
        this.keyBinds.setHeight((float)this.activeModules * this.offset + (float)headerHeight);
        float maxWidth = 0.0f;
        float height2 = (float)this.activeModules * this.offset;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            String text;
            if (f.bind == 0 || !f.state || (text = ClientUtil.getKey(f.bind)) == null) continue;
            String bindText = text.toUpperCase();
            float bindWidth = Fonts.msSemiBold[12].getWidth(bindText);
            float nameWidth = Fonts.msSemiBold[12].getWidth(f.name);
            maxWidth = Math.max(maxWidth, bindWidth);
            maxWidth = Math.max(maxWidth, nameWidth);
        }
        float targetWidth = Math.max(60.0f, 15.5f + maxWidth + (float)(padding * 2) + 5.0f);
        this.widthAnime = AnimationMath.lerp(this.widthAnime, targetWidth, 10.5f);
        this.keyBinds.setWidth(this.widthAnime);
        if (this.gradienthud.get()) {
            RenderUtil.Render2D.drawGradientRound(posX + 1.0f, posY + -1.1f, this.keyBinds.getWidth() - 2.0f, 12.3f, 2.7f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
        }
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, this.keyBinds.getWidth(), 14.0f, 3.5f, new Color(24, 24, 24, 236).getRGB());
        RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        Fonts.babkatv[15].drawString(stack, "Hotkeys", (double)(posX + 19.5f), (double)(posY + 3.5f), new Color(255, 255, 255, 255).getRGB());
        Fonts.nursultan[16].drawString(stack, "C", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, this.keyBinds.getWidth(), this.keyBinds.getHeight());
        int index = 0;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            String text;
            if (f.bind == 0 || !f.state || (text = ClientUtil.getKey(f.bind)) == null) continue;
            String bindText = text.toUpperCase();
            float bindWidth = Fonts.babkatv[13].getWidth(bindText);
            StyledFont keyname = Fonts.babkatv[13];
            if (this.gradienthud.get()) {
                RenderUtil.Render2D.drawGradientRound(posX + 0.9f, posY - 5.2f + (float)headerHeight + (float)padding + (float)index * this.offset, this.keyBinds.getWidth() - 2.0f, 8.3f, 2.8f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            }
            RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY - 6.0f + (float)headerHeight + (float)padding + (float)index * this.offset, this.keyBinds.getWidth(), 10.0f, 3.5f, new Color(24, 24, 24, 236).getRGB());
            keyname.drawString(stack, f.name, (double)(posX + -2.0f + (float)padding), (double)(posY - 2.5f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            Fonts.babkatv[13].drawString(stack, bindText, (double)(posX + this.keyBinds.getWidth() - (float)padding - bindWidth + 1.5f), (double)(posY - 2.5f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            ++index;
        }
        SmartScissor.unset();
        SmartScissor.pop();
    }

    private void onStaffListRender(MatrixStack matrixStack) {
        float posX = this.staffListt1.getX();
        float posY = this.staffListt1.getY();
        int headerHeight = 14;
        float width2 = Math.max(this.nameWidth + 40.0f, 150.0f);
        int padding = 5;
        float offset = 10.5f;
        float height2 = (float)this.activeStaff * offset;
        this.hDynam = AnimationMath.fast(this.hDynam, height2, 100.0f);
        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width2, 100.0f);
        this.updateMaxWidth();
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, (float)(this.maxWidth + 10 + this.maxWidth1), 14.0f, 4.0f, new Color(30, 30, 30, 255).getRGB());
        Fonts.msSemiBold[14].drawCenteredString(matrixStack, "StaffList", (double)(posX + 35.5f), (double)(posY + 3.0f), -1);
        Fonts.Nurik[16].drawString(matrixStack, "Y", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
        RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 255).getRGB());
        int index = 0;
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, this.widthDynamic, (float)headerHeight + this.hDynam + (float)padding / 2.0f);
        if (!this.staffPlayers.isEmpty()) {
            this.staffStartTimes.keySet().retainAll(this.staffPlayers);
            for (Staff staff : this.staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status2 = staff.getStatus().string;
                if (this.gradienthud.get()) {
                    // empty if block
                }
                if (!this.staffStartTimes.containsKey(staff)) {
                    this.staffStartTimes.put(staff, System.currentTimeMillis());
                }
                long timeDifference = (System.currentTimeMillis() - this.staffStartTimes.get(staff)) / 1000L;
                String timeString = this.formatTime(timeDifference);
                RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY + (float)headerHeight + (float)padding + (float)index * offset - 6.0f, (float)(this.maxWidth + 10), 10.0f, 4.0f, new Color(30, 30, 30, 255).getRGB());
                Fonts.msSemiBold[12].drawString(matrixStack, prefix, (double)(posX + (float)padding - 3.0f), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), -1);
                Fonts.msSemiBold[12].drawString(matrixStack, name + " " + status2, (double)(posX + (float)padding + Fonts.gilroyBold[12].getWidth(prefix.getString() + "3")), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), -1);
                Fonts.msSemiBold[12].drawString(matrixStack, "    " + timeString + " ", (double)(posX + (float)padding + Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2)), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), new Color(255, 255, 255).getRGB());
                this.nameWidth = Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2 + " (" + timeString + ")");
                ++index;
            }
        } else {
            this.nameWidth = 0.0f;
        }
        SmartScissor.unset();
        SmartScissor.pop();
        this.activeStaff = index;
        this.staffListt1.setWidth(this.widthDynamic);
        this.staffListt1.setHeight(this.hDynam + (float)headerHeight);
    }

    private void updateMaxWidth() {
        this.maxWidth = 60;
        if (!this.staffPlayers.isEmpty()) {
            for (Staff staff : this.staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status2 = staff.getStatus().string;
                if (!this.staffStartTimes.containsKey(staff)) {
                    this.staffStartTimes.put(staff, System.currentTimeMillis());
                }
                long timeDifference = (System.currentTimeMillis() - this.staffStartTimes.get(staff)) / 1000L;
                String timeString = this.formatTime(timeDifference);
                int currentWidth = (int)Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2 + " (" + timeString + ")");
                if (currentWidth <= this.maxWidth) continue;
                this.maxWidth = currentWidth;
            }
        }
    }

    private String formatTime(long timeDifference) {
        if (timeDifference >= 3600L) {
            int minutes = (int)(timeDifference / 3600L);
            int seconds = (int)(timeDifference % 3600L / 60L);
            return minutes + "h " + seconds + "m";
        }
        if (timeDifference >= 60L) {
            int minutes = (int)(timeDifference / 60L);
            int seconds = (int)(timeDifference % 60L);
            return minutes + "m " + seconds + "s";
        }
        return timeDifference + "s";
    }

    public void setStaffPlayers(List<Staff> staffPlayers) {
        this.staffPlayers = staffPlayers;
    }

    private void onSchedules(MatrixStack stack) {
        float posX = this.Schedules.getX();
        float posY = this.Schedules.getY();
        int headerHeight = 14;
        int padding = 5;
        this.Schedules.setHeight(this.SchedulesOffset + (float)headerHeight);
        float maxWidth = 0.0f;
        ZoneId moscowZone = ZoneId.of("Europe/Moscow");
        LocalDateTime now = LocalDateTime.now(moscowZone);
        for (int hour = 9; hour <= 1; hour += 2) {
            LocalDateTime scheduleTime = LocalDateTime.from(LocalTime.now().withHour(hour).withMinute(0).withSecond(0));
            String scheduleText = scheduleTime.format(DateTimeFormatter.ofPattern("HH:mm"));
            float targetWidth = Math.max(60.0f, 15.5f + maxWidth + (float)(padding * 2) + 5.0f);
            this.Schedules.setWidth(targetWidth);
            RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, 100.0f, 14.0f, 4.0f, new Color(30, 30, 30, 210).getRGB());
            RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
            Fonts.msSemiBold[14].drawCenteredString(stack, "Schedules", (double)(this.Schedules.getX() + 35.0f), (double)(posY + 3.5f), -1);
            Fonts.Nurik[16].drawString(stack, "C", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
            SmartScissor.push();
            SmartScissor.setFromComponentCoordinates(posX, posY, this.Schedules.getWidth(), this.Schedules.getHeight());
            int index = 0;
            RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY - 6.0f + (float)headerHeight + (float)padding + (float)index * this.offset, this.Schedules.getWidth(), 10.0f, 4.0f, new Color(30, 30, 30, 210).getRGB());
            Fonts.msSemiBold[12].drawString(stack, scheduleText, (double)(posX + (float)padding), (double)(posY - 1.8f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            float lineX = posX + this.Schedules.getWidth() - (float)padding - 8.0f;
            RenderUtil.Render2D.drawRect(lineX, posY + (float)headerHeight + (float)padding + (float)index * this.offset - 4.0f, 0.3f, 5.5f, new Color(200, 200, 200, 100).getRGB());
            ++index;
            SmartScissor.unset();
            SmartScissor.pop();
        }
    }

    private void onArmorRender(MatrixStack matrixStack) {
        float x = this.Armor.getX();
        float y = this.Armor.getY();
        int width2 = 100;
        int height2 = 79;
        RenderUtil.Render2D.drawRoundedRect(x, y + 45.0f, width2 - 30, height2 - 40, 3.0f, ColorUtil.rgba(30, 21, 39, 90));
        int posY = (int)y + 63;
        int posX = (int)x + 3;
        for (ItemStack itemStack : Minecraft.player.getArmorInventoryList()) {
            if (!itemStack.isEmpty()) {
                mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, posX, posY);
                int maxDamage = itemStack.getMaxDamage();
                if (maxDamage > 0) {
                    float damagePercentage = (float)itemStack.getDamage() * 100.0f / (float)maxDamage;
                    int red = (int)(255.0f * (damagePercentage / 100.0f));
                    int green = 255 - red;
                    int roundedPercentage = Math.round(100.0f - damagePercentage);
                    Fonts.gilroyBold[14].drawCenteredString(matrixStack, "" + roundedPercentage, (double)(posX + width2 - 92), (double)(posY - 11), ColorUtil.rgba(red, green, 0, 210));
                    RenderUtil.Render2D.drawRect(posX + width2 - 98, posY - 3, 12.0f, 0.5f, ColorUtil.rgba(200, 200, 200, 100));
                } else {
                    Fonts.gilroyBold[14].drawCenteredString(matrixStack, "null", (double)(posX + width2 - 92), (double)(posY - 11), -1);
                    RenderUtil.Render2D.drawRect(posX + width2 - 98, posY - 3, 12.0f, 0.5f, ColorUtil.rgba(200, 200, 200, 100));
                }
                posX += 16;
            }
            this.Armor.setWidth(width2);
            this.Armor.setHeight(height2);
        }
    }

    private void onPotionElementsRender(MatrixStack matrixStack) {
        float posX = this.potionStatus.getX();
        float posY = this.potionStatus.getY();
        int width2 = Minecraft.player.getActivePotionEffects().isEmpty() ? 80 : 98;

        System.out.println("Central square position: X=" + posX + ", Y=" + (posY - 20.0f));
        System.out.println("Left square position: X=" + (posX - 15.0f) + ", Y=" + posY);
        System.out.println("Right square position: X=" + (posX + width2 + 5.0f) + ", Y=" + posY);

        try {
            // Отображаем центральную полосу
            RenderUtil.Render2D.drawRoundedCorner(posX, posY - 20.0f, width2, 15.0f, 3.5f, new Color(50, 100, 255, 200).getRGB());

            // Отображаем левый квадрат
            RenderUtil.Render2D.drawRect(posX - 15.0f, posY, 10.0f, 10.0f, new Color(255, 0, 0, 255).getRGB());

            // Отображаем правый квадрат
            RenderUtil.Render2D.drawRect(posX + width2 + 5.0f, posY, 10.0f, 10.0f, new Color(0, 255, 0, 255).getRGB());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }



    private void onRenderTargetHUD(MatrixStack matrixStack) {
        float posX = this.targetHUD.getX();
        float posY = this.targetHUD.getY();
        this.targetHUD.setWidth(120.0f);
        this.targetHUD.setHeight(36.0f);
        this.target = this.getTarget(this.target);
        this.scale1 = this.targetHudAnimation.getOutput();
        if (this.scale1 == 0.0) {
            this.target = null;
        }
        if (this.target == null) {
            return;
        }
        int hp = (int) target.getHealth();
        if (mc.getCurrentServerData() != null && mc.world != null && mc.world.getScoreboard() != null) {
            Score score = mc.world.getScoreboard().getOrCreateScore(target.getScoreboardName(), mc.world.getScoreboard().getObjectiveInDisplaySlot(2));
            String serverIP = mc.getCurrentServerData().serverIP;
            if ((serverIP.contains("funtime") && target instanceof PlayerEntity) ||
                    serverIP.contains("reallyworld") ||
                    serverIP.contains("skytime") ||
                    serverIP.contains("local") ||
                    serverIP.contains("space-times"))
            {
                int scorePoints = score.getScorePoints();
                hp = scorePoints;
            }
        }
        String targetName = this.target.getName().getString();
        String substring = targetName.substring(0, Math.min(targetName.length(), 10));
        this.health = AnimationMath.fast(this.health, hp / this.target.getMaxHealth(), 5.0f);
        float round_degree = 7.0f;
        GlStateManager.pushMatrix();
        AnimationMath.sizeAnimation(posX + 50.0f, posY + 19.0f, this.scale1);
        int backgroundColor = ColorUtil.rgba(20, 20, 20, 255);
        RenderUtil.Render2D.drawShadow(posX, posY - 4.0f, 100.0f, this.targetHUD.getHeight(), (int)round_degree, ColorUtil.rgba(20, 20, 20, 150), ColorUtil.rgba(20, 20, 0, 190));
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 4.0f, 100.0f, this.targetHUD.getHeight(), round_degree, backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, 100.0, this.targetHUD.getHeight());
        RenderUtil.Render2D.drawRoundedRect(posX + 4.0f, posY, 28.0f, 28.0f, 6.0f, Color.BLACK.getRGB());
        if (target instanceof AbstractClientPlayerEntity) {
            StencilUtil.initStencilToWrite();
            RenderUtil.Render2D.drawRoundedRect(posX + 4.0f, posY, 28, 28, 3.0F, -1);
            StencilUtil.readStencilBuffer(1);
            RenderUtil.Render2D.drawFace(posX + 4.0f, posY, 8.0F, 8.0F, 8.0F, 8.0F, 28, 28, 64.0F, 64.0F, (AbstractClientPlayerEntity) this.target);
            StencilUtil.uninitStencilBuffer();
        }
        StyledFont medium = Fonts.msMedium[17];
        medium.drawString(matrixStack, substring, posX + 32.0f + 4.0f, posY + 2.0f, -1);
        Fonts.msSemiBold[12].drawString(matrixStack, "HP: " + hp * 5 + "%", posX + 32.0f + 4.0f, posY + 19.0f - 5.0f, -1);
        SmartScissor.unset();
        SmartScissor.pop();
        float currentHP = hp;
        if (currentHP >= 10.0f) {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(0, 128, 0, 255), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(0, 204, 0, 250), ColorUtil.rgba(0, 153, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(0, 128, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(0, 204, 0, 60), ColorUtil.rgba(0, 153, 0, 60));
        } else if (currentHP >= 5.0f) {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(62, 71, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(255, 255, 0, 250), ColorUtil.rgba(153, 153, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(62, 71, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(255, 255, 0, 60), ColorUtil.rgba(153, 153, 0, 60));
        } else {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(71, 0, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(102, 0, 0, 250), ColorUtil.rgba(204, 0, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(71, 0, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(102, 0, 0, 60), ColorUtil.rgba(204, 0, 0, 60));
        }
        this.drawItemStack(posX + 3.0F, posY - 8.0F - 5.5F, 10.0F);

        GlStateManager.popMatrix();
    }
 
Увидел то что никто не может спастить этот вырвеглазный HUD Nursultan на EXP 2.0 | Если худ на SS Говно - смотрите у себя потому что у меня другие шрифты!

Вот сливаю вам такой HUD Nursultan под базу Expensive 2.0:
Посмотреть вложение 292639

На самом деле сложнее всего было написать код на музыку, а так нет.
Иконки не с нурика потому что нужно установить шрифт (Я использовал другой потому что я буду переделывать HUD под свой чит)

Чтобы были те иконки установите nyrik.ttf по кнопке
Пожалуйста, авторизуйтесь для просмотра ссылки.
и напишите эти коды в expensive-master/src/wtf/expensive/font/Fonts.java:
На 21 строке: public static volatile StyledFont[] nyrik = new StyledFont[42];

На 62 строке:

for (int i = 8; i < 24;i++) {
nyrik = new StyledFont("nyrik.ttf", i, 0.0f, 0.0f, 0.0f, true, Lang.ENG_RU);
}

PS: Чтобы установить nyrik.ttf зайдите в expensive-master/src/assets/minecraft/expensive/font, если у вас вылетает повторите все заного.

Код на HUD:


Код:
Expand Collapse Copy
    private void watermark(MatrixStack stack) {
        Object[] objectArray = new Object[1];
        objectArray[0] = Math.hypot(Minecraft.player.getPosX() - Minecraft.player.prevPosX, Minecraft.player.getPosZ() - Minecraft.player.prevPosZ) * 20.0;
        double speed2 = (Double) objectArray[0];
        String text = speed2 == 0.0 ? "0.0" : String.format(Locale.ENGLISH, "%.2f", speed2).replace(',', '.');
        String user = ClientUtil.me == null ? "null" : ClientUtil.me.getName();
        StringBuilder titleText = new StringBuilder("");
        LocalTime time = LocalTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
        titleText.append(time.format(formatter));
        int var10000 = (int)Minecraft.player.getPosX();
        String cord = var10000 + " " + (int)Minecraft.player.getPosY() + " " + (int)Minecraft.player.getPosZ();
        float debugTPS = (int)Sunshine.getInstance().getTpsCalc().getTPS();
        int firstColor = ColorUtil.getColorStyle(0.0f);
        int secondColor = ColorUtil.getColorStyle(90.0f);
        if (this.gradienthud.get()) {
            RenderUtil.Render2D.drawGradientRound(5.0f, 5.2f, 45.0f, 12.0f, 3.4f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(54.5f, 4.8f, Fonts.msSemiBold[13].getWidth(user) + Fonts.msSemiBold[13].getWidth(titleText.toString()) + 78.0f, 12.3f, 3.3f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(5.0f, 20.5f, 22.5f + Fonts.msSemiBold[13].getWidth(cord), 12.0f, 3.0f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(32.0f + Fonts.msSemiBold[13].getWidth(cord), 20.5f, 38.2f + Fonts.msSemiBold[13].getWidth(text), 12.0f, 3.3f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
        }
        RenderUtil.Render2D.drawRoundedCorner(4.0f, 4.0f, 47.0f, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(53.5f, 4.0f, Fonts.msSemiBold[13].getWidth(user) + Fonts.msSemiBold[13].getWidth(titleText.toString()) + 80.0f, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(4.0f, 19.5f, 24.5f + Fonts.msSemiBold[13].getWidth(cord), 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(31.0f + Fonts.msSemiBold[13].getWidth(cord), 19.5f, 40.0f + Fonts.msSemiBold[13].getWidth(text), 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(74.0f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text), 19.5f, 30.0f + (float)debugTPS, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRect(20.5f, 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(70.5f + Fonts.msSemiBold[13].getWidth(user), 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(115.0f + Fonts.msSemiBold[13].getWidth(user), 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(45.0f + Fonts.msSemiBold[13].getWidth(cord), 22.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(20.0f, 22.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        Fonts.Nurik[19].drawString(stack, ClientUtil.gradient("S", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 8.0, 10.0, -1);
        Fonts.msSemiBold[13].drawString(stack, ClientUtil.gradient("Alpha", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 25.5, 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("W", ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(90.0f)), 58.0, 10.5, -1);
        Fonts.msSemiBold[13].drawString(stack, user, 67.5, 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("X", ColorUtil.getColorStyle(150.0f), ColorUtil.getColorStyle(120.0f)), (double)(73.5f + Fonts.msSemiBold[13].getWidth(user)), 10.5, -1);
        StyledFont var10 = Fonts.msSemiBold[13];
        Minecraft var10002 = mc;
        var10.drawString(stack, Minecraft.debugFPS + " Fps", (double)(84.9f + Fonts.msSemiBold[13].getWidth(user)), 10.0, -1);
        Fonts.msSemiBold[13].drawString(stack, titleText.toString(), (double)(128.5f + Fonts.msSemiBold[13].getWidth(user)), 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("V", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), (double)(118.0f + Fonts.msSemiBold[13].getWidth(user)), 10.5, -1);
        Fonts.msSemiBold[13].drawString(stack, text, (double)(50.5f + Fonts.msSemiBold[13].getWidth(cord)), 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.msSemiBold[13].drawString(stack, "BPS", (double)(53.0f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text)), 25.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("&#35", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), (double)(27.0f + Fonts.msSemiBold[13].getWidth(cord)), 25.5, -1);
        Fonts.msSemiBold[13].drawString(stack, cord, 24.0, 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("F", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 9.0, 25.5, -1);
        Fonts.msSemiBold[13].drawString(stack, "Tps " + debugTPS, (double)(87.3f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text)), 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("Q", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 77.0 + (double)Fonts.msSemiBold[13].getWidth(cord) + (double)Fonts.msSemiBold[13].getWidth(text), 25.5, -1);
    }


    private void updateFunctions() {
        for (Function function : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (function.category == Type.Render) continue;
            this.functions.add(function);
            this.functions.sort((f1, f2) -> Float.compare(Fonts.msSemiBold[13].getWidth(f2.name), Fonts.msSemiBold[13].getWidth(f1.name)));
        }
    }

    private void onKeyBindsRender(MatrixStack stack) {
        float posX = this.keyBinds.getX();
        float posY = this.keyBinds.getY();
        int headerHeight = 14;
        int padding = 5;
        int firstColor = ColorUtil.getColorStyle(0.0f);
        int secondColor = ColorUtil.getColorStyle(90.0f);
        this.activeModules = 0;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (f.bind == 0 || !f.state) continue;
            ++this.activeModules;
        }
        this.keyBinds.setHeight((float)this.activeModules * this.offset + (float)headerHeight);
        float maxWidth = 0.0f;
        float height2 = (float)this.activeModules * this.offset;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            String text;
            if (f.bind == 0 || !f.state || (text = ClientUtil.getKey(f.bind)) == null) continue;
            String bindText = text.toUpperCase();
            float bindWidth = Fonts.msSemiBold[12].getWidth(bindText);
            float nameWidth = Fonts.msSemiBold[12].getWidth(f.name);
            maxWidth = Math.max(maxWidth, bindWidth);
            maxWidth = Math.max(maxWidth, nameWidth);
        }
        float targetWidth = Math.max(60.0f, 15.5f + maxWidth + (float)(padding * 2) + 5.0f);
        this.widthAnime = AnimationMath.lerp(this.widthAnime, targetWidth, 10.5f);
        this.keyBinds.setWidth(this.widthAnime);
        if (this.gradienthud.get()) {
            RenderUtil.Render2D.drawGradientRound(posX + 1.0f, posY + -1.1f, this.keyBinds.getWidth() - 2.0f, 12.3f, 2.7f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
        }
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, this.keyBinds.getWidth(), 14.0f, 3.5f, new Color(24, 24, 24, 236).getRGB());
        RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        Fonts.babkatv[15].drawString(stack, "Hotkeys", (double)(posX + 19.5f), (double)(posY + 3.5f), new Color(255, 255, 255, 255).getRGB());
        Fonts.nursultan[16].drawString(stack, "C", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, this.keyBinds.getWidth(), this.keyBinds.getHeight());
        int index = 0;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            String text;
            if (f.bind == 0 || !f.state || (text = ClientUtil.getKey(f.bind)) == null) continue;
            String bindText = text.toUpperCase();
            float bindWidth = Fonts.babkatv[13].getWidth(bindText);
            StyledFont keyname = Fonts.babkatv[13];
            if (this.gradienthud.get()) {
                RenderUtil.Render2D.drawGradientRound(posX + 0.9f, posY - 5.2f + (float)headerHeight + (float)padding + (float)index * this.offset, this.keyBinds.getWidth() - 2.0f, 8.3f, 2.8f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            }
            RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY - 6.0f + (float)headerHeight + (float)padding + (float)index * this.offset, this.keyBinds.getWidth(), 10.0f, 3.5f, new Color(24, 24, 24, 236).getRGB());
            keyname.drawString(stack, f.name, (double)(posX + -2.0f + (float)padding), (double)(posY - 2.5f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            Fonts.babkatv[13].drawString(stack, bindText, (double)(posX + this.keyBinds.getWidth() - (float)padding - bindWidth + 1.5f), (double)(posY - 2.5f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            ++index;
        }
        SmartScissor.unset();
        SmartScissor.pop();
    }

    private void onStaffListRender(MatrixStack matrixStack) {
        float posX = this.staffListt1.getX();
        float posY = this.staffListt1.getY();
        int headerHeight = 14;
        float width2 = Math.max(this.nameWidth + 40.0f, 150.0f);
        int padding = 5;
        float offset = 10.5f;
        float height2 = (float)this.activeStaff * offset;
        this.hDynam = AnimationMath.fast(this.hDynam, height2, 100.0f);
        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width2, 100.0f);
        this.updateMaxWidth();
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, (float)(this.maxWidth + 10 + this.maxWidth1), 14.0f, 4.0f, new Color(30, 30, 30, 255).getRGB());
        Fonts.msSemiBold[14].drawCenteredString(matrixStack, "StaffList", (double)(posX + 35.5f), (double)(posY + 3.0f), -1);
        Fonts.Nurik[16].drawString(matrixStack, "Y", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
        RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 255).getRGB());
        int index = 0;
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, this.widthDynamic, (float)headerHeight + this.hDynam + (float)padding / 2.0f);
        if (!this.staffPlayers.isEmpty()) {
            this.staffStartTimes.keySet().retainAll(this.staffPlayers);
            for (Staff staff : this.staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status2 = staff.getStatus().string;
                if (this.gradienthud.get()) {
                    // empty if block
                }
                if (!this.staffStartTimes.containsKey(staff)) {
                    this.staffStartTimes.put(staff, System.currentTimeMillis());
                }
                long timeDifference = (System.currentTimeMillis() - this.staffStartTimes.get(staff)) / 1000L;
                String timeString = this.formatTime(timeDifference);
                RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY + (float)headerHeight + (float)padding + (float)index * offset - 6.0f, (float)(this.maxWidth + 10), 10.0f, 4.0f, new Color(30, 30, 30, 255).getRGB());
                Fonts.msSemiBold[12].drawString(matrixStack, prefix, (double)(posX + (float)padding - 3.0f), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), -1);
                Fonts.msSemiBold[12].drawString(matrixStack, name + " " + status2, (double)(posX + (float)padding + Fonts.gilroyBold[12].getWidth(prefix.getString() + "3")), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), -1);
                Fonts.msSemiBold[12].drawString(matrixStack, "    " + timeString + " ", (double)(posX + (float)padding + Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2)), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), new Color(255, 255, 255).getRGB());
                this.nameWidth = Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2 + " (" + timeString + ")");
                ++index;
            }
        } else {
            this.nameWidth = 0.0f;
        }
        SmartScissor.unset();
        SmartScissor.pop();
        this.activeStaff = index;
        this.staffListt1.setWidth(this.widthDynamic);
        this.staffListt1.setHeight(this.hDynam + (float)headerHeight);
    }

    private void updateMaxWidth() {
        this.maxWidth = 60;
        if (!this.staffPlayers.isEmpty()) {
            for (Staff staff : this.staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status2 = staff.getStatus().string;
                if (!this.staffStartTimes.containsKey(staff)) {
                    this.staffStartTimes.put(staff, System.currentTimeMillis());
                }
                long timeDifference = (System.currentTimeMillis() - this.staffStartTimes.get(staff)) / 1000L;
                String timeString = this.formatTime(timeDifference);
                int currentWidth = (int)Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2 + " (" + timeString + ")");
                if (currentWidth <= this.maxWidth) continue;
                this.maxWidth = currentWidth;
            }
        }
    }

    private String formatTime(long timeDifference) {
        if (timeDifference >= 3600L) {
            int minutes = (int)(timeDifference / 3600L);
            int seconds = (int)(timeDifference % 3600L / 60L);
            return minutes + "h " + seconds + "m";
        }
        if (timeDifference >= 60L) {
            int minutes = (int)(timeDifference / 60L);
            int seconds = (int)(timeDifference % 60L);
            return minutes + "m " + seconds + "s";
        }
        return timeDifference + "s";
    }

    public void setStaffPlayers(List<Staff> staffPlayers) {
        this.staffPlayers = staffPlayers;
    }

    private void onSchedules(MatrixStack stack) {
        float posX = this.Schedules.getX();
        float posY = this.Schedules.getY();
        int headerHeight = 14;
        int padding = 5;
        this.Schedules.setHeight(this.SchedulesOffset + (float)headerHeight);
        float maxWidth = 0.0f;
        ZoneId moscowZone = ZoneId.of("Europe/Moscow");
        LocalDateTime now = LocalDateTime.now(moscowZone);
        for (int hour = 9; hour <= 1; hour += 2) {
            LocalDateTime scheduleTime = LocalDateTime.from(LocalTime.now().withHour(hour).withMinute(0).withSecond(0));
            String scheduleText = scheduleTime.format(DateTimeFormatter.ofPattern("HH:mm"));
            float targetWidth = Math.max(60.0f, 15.5f + maxWidth + (float)(padding * 2) + 5.0f);
            this.Schedules.setWidth(targetWidth);
            RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, 100.0f, 14.0f, 4.0f, new Color(30, 30, 30, 210).getRGB());
            RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
            Fonts.msSemiBold[14].drawCenteredString(stack, "Schedules", (double)(this.Schedules.getX() + 35.0f), (double)(posY + 3.5f), -1);
            Fonts.Nurik[16].drawString(stack, "C", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
            SmartScissor.push();
            SmartScissor.setFromComponentCoordinates(posX, posY, this.Schedules.getWidth(), this.Schedules.getHeight());
            int index = 0;
            RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY - 6.0f + (float)headerHeight + (float)padding + (float)index * this.offset, this.Schedules.getWidth(), 10.0f, 4.0f, new Color(30, 30, 30, 210).getRGB());
            Fonts.msSemiBold[12].drawString(stack, scheduleText, (double)(posX + (float)padding), (double)(posY - 1.8f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            float lineX = posX + this.Schedules.getWidth() - (float)padding - 8.0f;
            RenderUtil.Render2D.drawRect(lineX, posY + (float)headerHeight + (float)padding + (float)index * this.offset - 4.0f, 0.3f, 5.5f, new Color(200, 200, 200, 100).getRGB());
            ++index;
            SmartScissor.unset();
            SmartScissor.pop();
        }
    }

    private void onArmorRender(MatrixStack matrixStack) {
        float x = this.Armor.getX();
        float y = this.Armor.getY();
        int width2 = 100;
        int height2 = 79;
        RenderUtil.Render2D.drawRoundedRect(x, y + 45.0f, width2 - 30, height2 - 40, 3.0f, ColorUtil.rgba(30, 21, 39, 90));
        int posY = (int)y + 63;
        int posX = (int)x + 3;
        for (ItemStack itemStack : Minecraft.player.getArmorInventoryList()) {
            if (!itemStack.isEmpty()) {
                mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, posX, posY);
                int maxDamage = itemStack.getMaxDamage();
                if (maxDamage > 0) {
                    float damagePercentage = (float)itemStack.getDamage() * 100.0f / (float)maxDamage;
                    int red = (int)(255.0f * (damagePercentage / 100.0f));
                    int green = 255 - red;
                    int roundedPercentage = Math.round(100.0f - damagePercentage);
                    Fonts.gilroyBold[14].drawCenteredString(matrixStack, "" + roundedPercentage, (double)(posX + width2 - 92), (double)(posY - 11), ColorUtil.rgba(red, green, 0, 210));
                    RenderUtil.Render2D.drawRect(posX + width2 - 98, posY - 3, 12.0f, 0.5f, ColorUtil.rgba(200, 200, 200, 100));
                } else {
                    Fonts.gilroyBold[14].drawCenteredString(matrixStack, "null", (double)(posX + width2 - 92), (double)(posY - 11), -1);
                    RenderUtil.Render2D.drawRect(posX + width2 - 98, posY - 3, 12.0f, 0.5f, ColorUtil.rgba(200, 200, 200, 100));
                }
                posX += 16;
            }
            this.Armor.setWidth(width2);
            this.Armor.setHeight(height2);
        }
    }

    private void onPotionElementsRender(MatrixStack matrixStack) {
        float posX = this.potionStatus.getX();
        float posY = this.potionStatus.getY();
        int width2 = Minecraft.player.getActivePotionEffects().isEmpty() ? 80 : 98;

        System.out.println("Central square position: X=" + posX + ", Y=" + (posY - 20.0f));
        System.out.println("Left square position: X=" + (posX - 15.0f) + ", Y=" + posY);
        System.out.println("Right square position: X=" + (posX + width2 + 5.0f) + ", Y=" + posY);

        try {
            // Отображаем центральную полосу
            RenderUtil.Render2D.drawRoundedCorner(posX, posY - 20.0f, width2, 15.0f, 3.5f, new Color(50, 100, 255, 200).getRGB());

            // Отображаем левый квадрат
            RenderUtil.Render2D.drawRect(posX - 15.0f, posY, 10.0f, 10.0f, new Color(255, 0, 0, 255).getRGB());

            // Отображаем правый квадрат
            RenderUtil.Render2D.drawRect(posX + width2 + 5.0f, posY, 10.0f, 10.0f, new Color(0, 255, 0, 255).getRGB());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }



    private void onRenderTargetHUD(MatrixStack matrixStack) {
        float posX = this.targetHUD.getX();
        float posY = this.targetHUD.getY();
        this.targetHUD.setWidth(120.0f);
        this.targetHUD.setHeight(36.0f);
        this.target = this.getTarget(this.target);
        this.scale1 = this.targetHudAnimation.getOutput();
        if (this.scale1 == 0.0) {
            this.target = null;
        }
        if (this.target == null) {
            return;
        }
        int hp = (int) target.getHealth();
        if (mc.getCurrentServerData() != null && mc.world != null && mc.world.getScoreboard() != null) {
            Score score = mc.world.getScoreboard().getOrCreateScore(target.getScoreboardName(), mc.world.getScoreboard().getObjectiveInDisplaySlot(2));
            String serverIP = mc.getCurrentServerData().serverIP;
            if ((serverIP.contains("funtime") && target instanceof PlayerEntity) ||
                    serverIP.contains("reallyworld") ||
                    serverIP.contains("skytime") ||
                    serverIP.contains("local") ||
                    serverIP.contains("space-times"))
            {
                int scorePoints = score.getScorePoints();
                hp = scorePoints;
            }
        }
        String targetName = this.target.getName().getString();
        String substring = targetName.substring(0, Math.min(targetName.length(), 10));
        this.health = AnimationMath.fast(this.health, hp / this.target.getMaxHealth(), 5.0f);
        float round_degree = 7.0f;
        GlStateManager.pushMatrix();
        AnimationMath.sizeAnimation(posX + 50.0f, posY + 19.0f, this.scale1);
        int backgroundColor = ColorUtil.rgba(20, 20, 20, 255);
        RenderUtil.Render2D.drawShadow(posX, posY - 4.0f, 100.0f, this.targetHUD.getHeight(), (int)round_degree, ColorUtil.rgba(20, 20, 20, 150), ColorUtil.rgba(20, 20, 0, 190));
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 4.0f, 100.0f, this.targetHUD.getHeight(), round_degree, backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, 100.0, this.targetHUD.getHeight());
        RenderUtil.Render2D.drawRoundedRect(posX + 4.0f, posY, 28.0f, 28.0f, 6.0f, Color.BLACK.getRGB());
        if (target instanceof AbstractClientPlayerEntity) {
            StencilUtil.initStencilToWrite();
            RenderUtil.Render2D.drawRoundedRect(posX + 4.0f, posY, 28, 28, 3.0F, -1);
            StencilUtil.readStencilBuffer(1);
            RenderUtil.Render2D.drawFace(posX + 4.0f, posY, 8.0F, 8.0F, 8.0F, 8.0F, 28, 28, 64.0F, 64.0F, (AbstractClientPlayerEntity) this.target);
            StencilUtil.uninitStencilBuffer();
        }
        StyledFont medium = Fonts.msMedium[17];
        medium.drawString(matrixStack, substring, posX + 32.0f + 4.0f, posY + 2.0f, -1);
        Fonts.msSemiBold[12].drawString(matrixStack, "HP: " + hp * 5 + "%", posX + 32.0f + 4.0f, posY + 19.0f - 5.0f, -1);
        SmartScissor.unset();
        SmartScissor.pop();
        float currentHP = hp;
        if (currentHP >= 10.0f) {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(0, 128, 0, 255), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(0, 204, 0, 250), ColorUtil.rgba(0, 153, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(0, 128, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(0, 204, 0, 60), ColorUtil.rgba(0, 153, 0, 60));
        } else if (currentHP >= 5.0f) {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(62, 71, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(255, 255, 0, 250), ColorUtil.rgba(153, 153, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(62, 71, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(255, 255, 0, 60), ColorUtil.rgba(153, 153, 0, 60));
        } else {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(71, 0, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(102, 0, 0, 250), ColorUtil.rgba(204, 0, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(71, 0, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(102, 0, 0, 60), ColorUtil.rgba(204, 0, 0, 60));
        }
        this.drawItemStack(posX + 3.0F, posY - 8.0F - 5.5F, 10.0F);

        GlStateManager.popMatrix();
    }
бля, пиздец
 
че с таргетхудом блять
 
Что с кодом...
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
худ делал пьяный индус-пианист
 
это же тот самый легендарный халдер, который сделал худ для Celestial Client Recode 240225build?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Увидел то что никто не может спастить этот вырвеглазный HUD Nursultan на EXP 2.0 | Если худ на SS Говно - смотрите у себя потому что у меня другие шрифты!

Вот сливаю вам такой HUD Nursultan под базу Expensive 2.0:
Посмотреть вложение 292639

На самом деле сложнее всего было написать код на музыку, а так нет.
Иконки не с нурика потому что нужно установить шрифт (Я использовал другой потому что я буду переделывать HUD под свой чит)

Чтобы были те иконки установите nyrik.ttf по кнопке
Пожалуйста, авторизуйтесь для просмотра ссылки.
и напишите эти коды в expensive-master/src/wtf/expensive/font/Fonts.java:
На 21 строке: public static volatile StyledFont[] nyrik = new StyledFont[42];

На 62 строке:

for (int i = 8; i < 24;i++) {
nyrik = new StyledFont("nyrik.ttf", i, 0.0f, 0.0f, 0.0f, true, Lang.ENG_RU);
}

PS: Чтобы установить nyrik.ttf зайдите в expensive-master/src/assets/minecraft/expensive/font, если у вас вылетает повторите все заного.

Код на HUD:


Код:
Expand Collapse Copy
    private void watermark(MatrixStack stack) {
        Object[] objectArray = new Object[1];
        objectArray[0] = Math.hypot(Minecraft.player.getPosX() - Minecraft.player.prevPosX, Minecraft.player.getPosZ() - Minecraft.player.prevPosZ) * 20.0;
        double speed2 = (Double) objectArray[0];
        String text = speed2 == 0.0 ? "0.0" : String.format(Locale.ENGLISH, "%.2f", speed2).replace(',', '.');
        String user = ClientUtil.me == null ? "null" : ClientUtil.me.getName();
        StringBuilder titleText = new StringBuilder("");
        LocalTime time = LocalTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
        titleText.append(time.format(formatter));
        int var10000 = (int)Minecraft.player.getPosX();
        String cord = var10000 + " " + (int)Minecraft.player.getPosY() + " " + (int)Minecraft.player.getPosZ();
        float debugTPS = (int)Sunshine.getInstance().getTpsCalc().getTPS();
        int firstColor = ColorUtil.getColorStyle(0.0f);
        int secondColor = ColorUtil.getColorStyle(90.0f);
        if (this.gradienthud.get()) {
            RenderUtil.Render2D.drawGradientRound(5.0f, 5.2f, 45.0f, 12.0f, 3.4f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(54.5f, 4.8f, Fonts.msSemiBold[13].getWidth(user) + Fonts.msSemiBold[13].getWidth(titleText.toString()) + 78.0f, 12.3f, 3.3f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(5.0f, 20.5f, 22.5f + Fonts.msSemiBold[13].getWidth(cord), 12.0f, 3.0f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(32.0f + Fonts.msSemiBold[13].getWidth(cord), 20.5f, 38.2f + Fonts.msSemiBold[13].getWidth(text), 12.0f, 3.3f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
        }
        RenderUtil.Render2D.drawRoundedCorner(4.0f, 4.0f, 47.0f, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(53.5f, 4.0f, Fonts.msSemiBold[13].getWidth(user) + Fonts.msSemiBold[13].getWidth(titleText.toString()) + 80.0f, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(4.0f, 19.5f, 24.5f + Fonts.msSemiBold[13].getWidth(cord), 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(31.0f + Fonts.msSemiBold[13].getWidth(cord), 19.5f, 40.0f + Fonts.msSemiBold[13].getWidth(text), 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(74.0f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text), 19.5f, 30.0f + (float)debugTPS, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRect(20.5f, 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(70.5f + Fonts.msSemiBold[13].getWidth(user), 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(115.0f + Fonts.msSemiBold[13].getWidth(user), 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(45.0f + Fonts.msSemiBold[13].getWidth(cord), 22.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(20.0f, 22.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        Fonts.Nurik[19].drawString(stack, ClientUtil.gradient("S", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 8.0, 10.0, -1);
        Fonts.msSemiBold[13].drawString(stack, ClientUtil.gradient("Alpha", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 25.5, 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("W", ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(90.0f)), 58.0, 10.5, -1);
        Fonts.msSemiBold[13].drawString(stack, user, 67.5, 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("X", ColorUtil.getColorStyle(150.0f), ColorUtil.getColorStyle(120.0f)), (double)(73.5f + Fonts.msSemiBold[13].getWidth(user)), 10.5, -1);
        StyledFont var10 = Fonts.msSemiBold[13];
        Minecraft var10002 = mc;
        var10.drawString(stack, Minecraft.debugFPS + " Fps", (double)(84.9f + Fonts.msSemiBold[13].getWidth(user)), 10.0, -1);
        Fonts.msSemiBold[13].drawString(stack, titleText.toString(), (double)(128.5f + Fonts.msSemiBold[13].getWidth(user)), 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("V", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), (double)(118.0f + Fonts.msSemiBold[13].getWidth(user)), 10.5, -1);
        Fonts.msSemiBold[13].drawString(stack, text, (double)(50.5f + Fonts.msSemiBold[13].getWidth(cord)), 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.msSemiBold[13].drawString(stack, "BPS", (double)(53.0f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text)), 25.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("&#35", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), (double)(27.0f + Fonts.msSemiBold[13].getWidth(cord)), 25.5, -1);
        Fonts.msSemiBold[13].drawString(stack, cord, 24.0, 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("F", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 9.0, 25.5, -1);
        Fonts.msSemiBold[13].drawString(stack, "Tps " + debugTPS, (double)(87.3f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text)), 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("Q", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 77.0 + (double)Fonts.msSemiBold[13].getWidth(cord) + (double)Fonts.msSemiBold[13].getWidth(text), 25.5, -1);
    }


    private void updateFunctions() {
        for (Function function : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (function.category == Type.Render) continue;
            this.functions.add(function);
            this.functions.sort((f1, f2) -> Float.compare(Fonts.msSemiBold[13].getWidth(f2.name), Fonts.msSemiBold[13].getWidth(f1.name)));
        }
    }

    private void onKeyBindsRender(MatrixStack stack) {
        float posX = this.keyBinds.getX();
        float posY = this.keyBinds.getY();
        int headerHeight = 14;
        int padding = 5;
        int firstColor = ColorUtil.getColorStyle(0.0f);
        int secondColor = ColorUtil.getColorStyle(90.0f);
        this.activeModules = 0;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (f.bind == 0 || !f.state) continue;
            ++this.activeModules;
        }
        this.keyBinds.setHeight((float)this.activeModules * this.offset + (float)headerHeight);
        float maxWidth = 0.0f;
        float height2 = (float)this.activeModules * this.offset;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            String text;
            if (f.bind == 0 || !f.state || (text = ClientUtil.getKey(f.bind)) == null) continue;
            String bindText = text.toUpperCase();
            float bindWidth = Fonts.msSemiBold[12].getWidth(bindText);
            float nameWidth = Fonts.msSemiBold[12].getWidth(f.name);
            maxWidth = Math.max(maxWidth, bindWidth);
            maxWidth = Math.max(maxWidth, nameWidth);
        }
        float targetWidth = Math.max(60.0f, 15.5f + maxWidth + (float)(padding * 2) + 5.0f);
        this.widthAnime = AnimationMath.lerp(this.widthAnime, targetWidth, 10.5f);
        this.keyBinds.setWidth(this.widthAnime);
        if (this.gradienthud.get()) {
            RenderUtil.Render2D.drawGradientRound(posX + 1.0f, posY + -1.1f, this.keyBinds.getWidth() - 2.0f, 12.3f, 2.7f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
        }
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, this.keyBinds.getWidth(), 14.0f, 3.5f, new Color(24, 24, 24, 236).getRGB());
        RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        Fonts.babkatv[15].drawString(stack, "Hotkeys", (double)(posX + 19.5f), (double)(posY + 3.5f), new Color(255, 255, 255, 255).getRGB());
        Fonts.nursultan[16].drawString(stack, "C", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, this.keyBinds.getWidth(), this.keyBinds.getHeight());
        int index = 0;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            String text;
            if (f.bind == 0 || !f.state || (text = ClientUtil.getKey(f.bind)) == null) continue;
            String bindText = text.toUpperCase();
            float bindWidth = Fonts.babkatv[13].getWidth(bindText);
            StyledFont keyname = Fonts.babkatv[13];
            if (this.gradienthud.get()) {
                RenderUtil.Render2D.drawGradientRound(posX + 0.9f, posY - 5.2f + (float)headerHeight + (float)padding + (float)index * this.offset, this.keyBinds.getWidth() - 2.0f, 8.3f, 2.8f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            }
            RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY - 6.0f + (float)headerHeight + (float)padding + (float)index * this.offset, this.keyBinds.getWidth(), 10.0f, 3.5f, new Color(24, 24, 24, 236).getRGB());
            keyname.drawString(stack, f.name, (double)(posX + -2.0f + (float)padding), (double)(posY - 2.5f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            Fonts.babkatv[13].drawString(stack, bindText, (double)(posX + this.keyBinds.getWidth() - (float)padding - bindWidth + 1.5f), (double)(posY - 2.5f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            ++index;
        }
        SmartScissor.unset();
        SmartScissor.pop();
    }

    private void onStaffListRender(MatrixStack matrixStack) {
        float posX = this.staffListt1.getX();
        float posY = this.staffListt1.getY();
        int headerHeight = 14;
        float width2 = Math.max(this.nameWidth + 40.0f, 150.0f);
        int padding = 5;
        float offset = 10.5f;
        float height2 = (float)this.activeStaff * offset;
        this.hDynam = AnimationMath.fast(this.hDynam, height2, 100.0f);
        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width2, 100.0f);
        this.updateMaxWidth();
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, (float)(this.maxWidth + 10 + this.maxWidth1), 14.0f, 4.0f, new Color(30, 30, 30, 255).getRGB());
        Fonts.msSemiBold[14].drawCenteredString(matrixStack, "StaffList", (double)(posX + 35.5f), (double)(posY + 3.0f), -1);
        Fonts.Nurik[16].drawString(matrixStack, "Y", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
        RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 255).getRGB());
        int index = 0;
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, this.widthDynamic, (float)headerHeight + this.hDynam + (float)padding / 2.0f);
        if (!this.staffPlayers.isEmpty()) {
            this.staffStartTimes.keySet().retainAll(this.staffPlayers);
            for (Staff staff : this.staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status2 = staff.getStatus().string;
                if (this.gradienthud.get()) {
                    // empty if block
                }
                if (!this.staffStartTimes.containsKey(staff)) {
                    this.staffStartTimes.put(staff, System.currentTimeMillis());
                }
                long timeDifference = (System.currentTimeMillis() - this.staffStartTimes.get(staff)) / 1000L;
                String timeString = this.formatTime(timeDifference);
                RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY + (float)headerHeight + (float)padding + (float)index * offset - 6.0f, (float)(this.maxWidth + 10), 10.0f, 4.0f, new Color(30, 30, 30, 255).getRGB());
                Fonts.msSemiBold[12].drawString(matrixStack, prefix, (double)(posX + (float)padding - 3.0f), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), -1);
                Fonts.msSemiBold[12].drawString(matrixStack, name + " " + status2, (double)(posX + (float)padding + Fonts.gilroyBold[12].getWidth(prefix.getString() + "3")), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), -1);
                Fonts.msSemiBold[12].drawString(matrixStack, "    " + timeString + " ", (double)(posX + (float)padding + Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2)), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), new Color(255, 255, 255).getRGB());
                this.nameWidth = Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2 + " (" + timeString + ")");
                ++index;
            }
        } else {
            this.nameWidth = 0.0f;
        }
        SmartScissor.unset();
        SmartScissor.pop();
        this.activeStaff = index;
        this.staffListt1.setWidth(this.widthDynamic);
        this.staffListt1.setHeight(this.hDynam + (float)headerHeight);
    }

    private void updateMaxWidth() {
        this.maxWidth = 60;
        if (!this.staffPlayers.isEmpty()) {
            for (Staff staff : this.staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status2 = staff.getStatus().string;
                if (!this.staffStartTimes.containsKey(staff)) {
                    this.staffStartTimes.put(staff, System.currentTimeMillis());
                }
                long timeDifference = (System.currentTimeMillis() - this.staffStartTimes.get(staff)) / 1000L;
                String timeString = this.formatTime(timeDifference);
                int currentWidth = (int)Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2 + " (" + timeString + ")");
                if (currentWidth <= this.maxWidth) continue;
                this.maxWidth = currentWidth;
            }
        }
    }

    private String formatTime(long timeDifference) {
        if (timeDifference >= 3600L) {
            int minutes = (int)(timeDifference / 3600L);
            int seconds = (int)(timeDifference % 3600L / 60L);
            return minutes + "h " + seconds + "m";
        }
        if (timeDifference >= 60L) {
            int minutes = (int)(timeDifference / 60L);
            int seconds = (int)(timeDifference % 60L);
            return minutes + "m " + seconds + "s";
        }
        return timeDifference + "s";
    }

    public void setStaffPlayers(List<Staff> staffPlayers) {
        this.staffPlayers = staffPlayers;
    }

    private void onSchedules(MatrixStack stack) {
        float posX = this.Schedules.getX();
        float posY = this.Schedules.getY();
        int headerHeight = 14;
        int padding = 5;
        this.Schedules.setHeight(this.SchedulesOffset + (float)headerHeight);
        float maxWidth = 0.0f;
        ZoneId moscowZone = ZoneId.of("Europe/Moscow");
        LocalDateTime now = LocalDateTime.now(moscowZone);
        for (int hour = 9; hour <= 1; hour += 2) {
            LocalDateTime scheduleTime = LocalDateTime.from(LocalTime.now().withHour(hour).withMinute(0).withSecond(0));
            String scheduleText = scheduleTime.format(DateTimeFormatter.ofPattern("HH:mm"));
            float targetWidth = Math.max(60.0f, 15.5f + maxWidth + (float)(padding * 2) + 5.0f);
            this.Schedules.setWidth(targetWidth);
            RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, 100.0f, 14.0f, 4.0f, new Color(30, 30, 30, 210).getRGB());
            RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
            Fonts.msSemiBold[14].drawCenteredString(stack, "Schedules", (double)(this.Schedules.getX() + 35.0f), (double)(posY + 3.5f), -1);
            Fonts.Nurik[16].drawString(stack, "C", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
            SmartScissor.push();
            SmartScissor.setFromComponentCoordinates(posX, posY, this.Schedules.getWidth(), this.Schedules.getHeight());
            int index = 0;
            RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY - 6.0f + (float)headerHeight + (float)padding + (float)index * this.offset, this.Schedules.getWidth(), 10.0f, 4.0f, new Color(30, 30, 30, 210).getRGB());
            Fonts.msSemiBold[12].drawString(stack, scheduleText, (double)(posX + (float)padding), (double)(posY - 1.8f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            float lineX = posX + this.Schedules.getWidth() - (float)padding - 8.0f;
            RenderUtil.Render2D.drawRect(lineX, posY + (float)headerHeight + (float)padding + (float)index * this.offset - 4.0f, 0.3f, 5.5f, new Color(200, 200, 200, 100).getRGB());
            ++index;
            SmartScissor.unset();
            SmartScissor.pop();
        }
    }

    private void onArmorRender(MatrixStack matrixStack) {
        float x = this.Armor.getX();
        float y = this.Armor.getY();
        int width2 = 100;
        int height2 = 79;
        RenderUtil.Render2D.drawRoundedRect(x, y + 45.0f, width2 - 30, height2 - 40, 3.0f, ColorUtil.rgba(30, 21, 39, 90));
        int posY = (int)y + 63;
        int posX = (int)x + 3;
        for (ItemStack itemStack : Minecraft.player.getArmorInventoryList()) {
            if (!itemStack.isEmpty()) {
                mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, posX, posY);
                int maxDamage = itemStack.getMaxDamage();
                if (maxDamage > 0) {
                    float damagePercentage = (float)itemStack.getDamage() * 100.0f / (float)maxDamage;
                    int red = (int)(255.0f * (damagePercentage / 100.0f));
                    int green = 255 - red;
                    int roundedPercentage = Math.round(100.0f - damagePercentage);
                    Fonts.gilroyBold[14].drawCenteredString(matrixStack, "" + roundedPercentage, (double)(posX + width2 - 92), (double)(posY - 11), ColorUtil.rgba(red, green, 0, 210));
                    RenderUtil.Render2D.drawRect(posX + width2 - 98, posY - 3, 12.0f, 0.5f, ColorUtil.rgba(200, 200, 200, 100));
                } else {
                    Fonts.gilroyBold[14].drawCenteredString(matrixStack, "null", (double)(posX + width2 - 92), (double)(posY - 11), -1);
                    RenderUtil.Render2D.drawRect(posX + width2 - 98, posY - 3, 12.0f, 0.5f, ColorUtil.rgba(200, 200, 200, 100));
                }
                posX += 16;
            }
            this.Armor.setWidth(width2);
            this.Armor.setHeight(height2);
        }
    }

    private void onPotionElementsRender(MatrixStack matrixStack) {
        float posX = this.potionStatus.getX();
        float posY = this.potionStatus.getY();
        int width2 = Minecraft.player.getActivePotionEffects().isEmpty() ? 80 : 98;

        System.out.println("Central square position: X=" + posX + ", Y=" + (posY - 20.0f));
        System.out.println("Left square position: X=" + (posX - 15.0f) + ", Y=" + posY);
        System.out.println("Right square position: X=" + (posX + width2 + 5.0f) + ", Y=" + posY);

        try {
            // Отображаем центральную полосу
            RenderUtil.Render2D.drawRoundedCorner(posX, posY - 20.0f, width2, 15.0f, 3.5f, new Color(50, 100, 255, 200).getRGB());

            // Отображаем левый квадрат
            RenderUtil.Render2D.drawRect(posX - 15.0f, posY, 10.0f, 10.0f, new Color(255, 0, 0, 255).getRGB());

            // Отображаем правый квадрат
            RenderUtil.Render2D.drawRect(posX + width2 + 5.0f, posY, 10.0f, 10.0f, new Color(0, 255, 0, 255).getRGB());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }



    private void onRenderTargetHUD(MatrixStack matrixStack) {
        float posX = this.targetHUD.getX();
        float posY = this.targetHUD.getY();
        this.targetHUD.setWidth(120.0f);
        this.targetHUD.setHeight(36.0f);
        this.target = this.getTarget(this.target);
        this.scale1 = this.targetHudAnimation.getOutput();
        if (this.scale1 == 0.0) {
            this.target = null;
        }
        if (this.target == null) {
            return;
        }
        int hp = (int) target.getHealth();
        if (mc.getCurrentServerData() != null && mc.world != null && mc.world.getScoreboard() != null) {
            Score score = mc.world.getScoreboard().getOrCreateScore(target.getScoreboardName(), mc.world.getScoreboard().getObjectiveInDisplaySlot(2));
            String serverIP = mc.getCurrentServerData().serverIP;
            if ((serverIP.contains("funtime") && target instanceof PlayerEntity) ||
                    serverIP.contains("reallyworld") ||
                    serverIP.contains("skytime") ||
                    serverIP.contains("local") ||
                    serverIP.contains("space-times"))
            {
                int scorePoints = score.getScorePoints();
                hp = scorePoints;
            }
        }
        String targetName = this.target.getName().getString();
        String substring = targetName.substring(0, Math.min(targetName.length(), 10));
        this.health = AnimationMath.fast(this.health, hp / this.target.getMaxHealth(), 5.0f);
        float round_degree = 7.0f;
        GlStateManager.pushMatrix();
        AnimationMath.sizeAnimation(posX + 50.0f, posY + 19.0f, this.scale1);
        int backgroundColor = ColorUtil.rgba(20, 20, 20, 255);
        RenderUtil.Render2D.drawShadow(posX, posY - 4.0f, 100.0f, this.targetHUD.getHeight(), (int)round_degree, ColorUtil.rgba(20, 20, 20, 150), ColorUtil.rgba(20, 20, 0, 190));
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 4.0f, 100.0f, this.targetHUD.getHeight(), round_degree, backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, 100.0, this.targetHUD.getHeight());
        RenderUtil.Render2D.drawRoundedRect(posX + 4.0f, posY, 28.0f, 28.0f, 6.0f, Color.BLACK.getRGB());
        if (target instanceof AbstractClientPlayerEntity) {
            StencilUtil.initStencilToWrite();
            RenderUtil.Render2D.drawRoundedRect(posX + 4.0f, posY, 28, 28, 3.0F, -1);
            StencilUtil.readStencilBuffer(1);
            RenderUtil.Render2D.drawFace(posX + 4.0f, posY, 8.0F, 8.0F, 8.0F, 8.0F, 28, 28, 64.0F, 64.0F, (AbstractClientPlayerEntity) this.target);
            StencilUtil.uninitStencilBuffer();
        }
        StyledFont medium = Fonts.msMedium[17];
        medium.drawString(matrixStack, substring, posX + 32.0f + 4.0f, posY + 2.0f, -1);
        Fonts.msSemiBold[12].drawString(matrixStack, "HP: " + hp * 5 + "%", posX + 32.0f + 4.0f, posY + 19.0f - 5.0f, -1);
        SmartScissor.unset();
        SmartScissor.pop();
        float currentHP = hp;
        if (currentHP >= 10.0f) {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(0, 128, 0, 255), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(0, 204, 0, 250), ColorUtil.rgba(0, 153, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(0, 128, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(0, 204, 0, 60), ColorUtil.rgba(0, 153, 0, 60));
        } else if (currentHP >= 5.0f) {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(62, 71, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(255, 255, 0, 250), ColorUtil.rgba(153, 153, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(62, 71, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(255, 255, 0, 60), ColorUtil.rgba(153, 153, 0, 60));
        } else {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(71, 0, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(102, 0, 0, 250), ColorUtil.rgba(204, 0, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(71, 0, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(102, 0, 0, 60), ColorUtil.rgba(204, 0, 0, 60));
        }
        this.drawItemStack(posX + 3.0F, posY - 8.0F - 5.5F, 10.0F);

        GlStateManager.popMatrix();
    }
что с кодом... это больше похоже на фигму
 
ну бро блюр у тебя конечно не нурсултан можно только поплакать..
 
тап хуадд
 
Если бы не таргетхуд и другие элементы худа - могло хотя бы под пивас пойти.
Но созрел вопрос - а якого хуя тут забув шлюхєр клиент?
1734108490882.png
 
Увидел то что никто не может спастить этот вырвеглазный HUD Nursultan на EXP 2.0 | Если худ на SS Говно - смотрите у себя потому что у меня другие шрифты!

Вот сливаю вам такой HUD Nursultan под базу Expensive 2.0:
Посмотреть вложение 292639

На самом деле сложнее всего было написать код на музыку, а так нет.
Иконки не с нурика потому что нужно установить шрифт (Я использовал другой потому что я буду переделывать HUD под свой чит)

Чтобы были те иконки установите nyrik.ttf по кнопке
Пожалуйста, авторизуйтесь для просмотра ссылки.
и напишите эти коды в expensive-master/src/wtf/expensive/font/Fonts.java:
На 21 строке: public static volatile StyledFont[] nyrik = new StyledFont[42];

На 62 строке:

for (int i = 8; i < 24;i++) {
nyrik = new StyledFont("nyrik.ttf", i, 0.0f, 0.0f, 0.0f, true, Lang.ENG_RU);
}

PS: Чтобы установить nyrik.ttf зайдите в expensive-master/src/assets/minecraft/expensive/font, если у вас вылетает повторите все заного.

Код на HUD:


Код:
Expand Collapse Copy
    private void watermark(MatrixStack stack) {
        Object[] objectArray = new Object[1];
        objectArray[0] = Math.hypot(Minecraft.player.getPosX() - Minecraft.player.prevPosX, Minecraft.player.getPosZ() - Minecraft.player.prevPosZ) * 20.0;
        double speed2 = (Double) objectArray[0];
        String text = speed2 == 0.0 ? "0.0" : String.format(Locale.ENGLISH, "%.2f", speed2).replace(',', '.');
        String user = ClientUtil.me == null ? "null" : ClientUtil.me.getName();
        StringBuilder titleText = new StringBuilder("");
        LocalTime time = LocalTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
        titleText.append(time.format(formatter));
        int var10000 = (int)Minecraft.player.getPosX();
        String cord = var10000 + " " + (int)Minecraft.player.getPosY() + " " + (int)Minecraft.player.getPosZ();
        float debugTPS = (int)Sunshine.getInstance().getTpsCalc().getTPS();
        int firstColor = ColorUtil.getColorStyle(0.0f);
        int secondColor = ColorUtil.getColorStyle(90.0f);
        if (this.gradienthud.get()) {
            RenderUtil.Render2D.drawGradientRound(5.0f, 5.2f, 45.0f, 12.0f, 3.4f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(54.5f, 4.8f, Fonts.msSemiBold[13].getWidth(user) + Fonts.msSemiBold[13].getWidth(titleText.toString()) + 78.0f, 12.3f, 3.3f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(5.0f, 20.5f, 22.5f + Fonts.msSemiBold[13].getWidth(cord), 12.0f, 3.0f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(32.0f + Fonts.msSemiBold[13].getWidth(cord), 20.5f, 38.2f + Fonts.msSemiBold[13].getWidth(text), 12.0f, 3.3f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
        }
        RenderUtil.Render2D.drawRoundedCorner(4.0f, 4.0f, 47.0f, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(53.5f, 4.0f, Fonts.msSemiBold[13].getWidth(user) + Fonts.msSemiBold[13].getWidth(titleText.toString()) + 80.0f, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(4.0f, 19.5f, 24.5f + Fonts.msSemiBold[13].getWidth(cord), 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(31.0f + Fonts.msSemiBold[13].getWidth(cord), 19.5f, 40.0f + Fonts.msSemiBold[13].getWidth(text), 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(74.0f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text), 19.5f, 30.0f + (float)debugTPS, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRect(20.5f, 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(70.5f + Fonts.msSemiBold[13].getWidth(user), 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(115.0f + Fonts.msSemiBold[13].getWidth(user), 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(45.0f + Fonts.msSemiBold[13].getWidth(cord), 22.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(20.0f, 22.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        Fonts.Nurik[19].drawString(stack, ClientUtil.gradient("S", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 8.0, 10.0, -1);
        Fonts.msSemiBold[13].drawString(stack, ClientUtil.gradient("Alpha", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 25.5, 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("W", ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(90.0f)), 58.0, 10.5, -1);
        Fonts.msSemiBold[13].drawString(stack, user, 67.5, 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("X", ColorUtil.getColorStyle(150.0f), ColorUtil.getColorStyle(120.0f)), (double)(73.5f + Fonts.msSemiBold[13].getWidth(user)), 10.5, -1);
        StyledFont var10 = Fonts.msSemiBold[13];
        Minecraft var10002 = mc;
        var10.drawString(stack, Minecraft.debugFPS + " Fps", (double)(84.9f + Fonts.msSemiBold[13].getWidth(user)), 10.0, -1);
        Fonts.msSemiBold[13].drawString(stack, titleText.toString(), (double)(128.5f + Fonts.msSemiBold[13].getWidth(user)), 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("V", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), (double)(118.0f + Fonts.msSemiBold[13].getWidth(user)), 10.5, -1);
        Fonts.msSemiBold[13].drawString(stack, text, (double)(50.5f + Fonts.msSemiBold[13].getWidth(cord)), 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.msSemiBold[13].drawString(stack, "BPS", (double)(53.0f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text)), 25.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("&#35", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), (double)(27.0f + Fonts.msSemiBold[13].getWidth(cord)), 25.5, -1);
        Fonts.msSemiBold[13].drawString(stack, cord, 24.0, 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("F", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 9.0, 25.5, -1);
        Fonts.msSemiBold[13].drawString(stack, "Tps " + debugTPS, (double)(87.3f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text)), 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("Q", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 77.0 + (double)Fonts.msSemiBold[13].getWidth(cord) + (double)Fonts.msSemiBold[13].getWidth(text), 25.5, -1);
    }


    private void updateFunctions() {
        for (Function function : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (function.category == Type.Render) continue;
            this.functions.add(function);
            this.functions.sort((f1, f2) -> Float.compare(Fonts.msSemiBold[13].getWidth(f2.name), Fonts.msSemiBold[13].getWidth(f1.name)));
        }
    }

    private void onKeyBindsRender(MatrixStack stack) {
        float posX = this.keyBinds.getX();
        float posY = this.keyBinds.getY();
        int headerHeight = 14;
        int padding = 5;
        int firstColor = ColorUtil.getColorStyle(0.0f);
        int secondColor = ColorUtil.getColorStyle(90.0f);
        this.activeModules = 0;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (f.bind == 0 || !f.state) continue;
            ++this.activeModules;
        }
        this.keyBinds.setHeight((float)this.activeModules * this.offset + (float)headerHeight);
        float maxWidth = 0.0f;
        float height2 = (float)this.activeModules * this.offset;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            String text;
            if (f.bind == 0 || !f.state || (text = ClientUtil.getKey(f.bind)) == null) continue;
            String bindText = text.toUpperCase();
            float bindWidth = Fonts.msSemiBold[12].getWidth(bindText);
            float nameWidth = Fonts.msSemiBold[12].getWidth(f.name);
            maxWidth = Math.max(maxWidth, bindWidth);
            maxWidth = Math.max(maxWidth, nameWidth);
        }
        float targetWidth = Math.max(60.0f, 15.5f + maxWidth + (float)(padding * 2) + 5.0f);
        this.widthAnime = AnimationMath.lerp(this.widthAnime, targetWidth, 10.5f);
        this.keyBinds.setWidth(this.widthAnime);
        if (this.gradienthud.get()) {
            RenderUtil.Render2D.drawGradientRound(posX + 1.0f, posY + -1.1f, this.keyBinds.getWidth() - 2.0f, 12.3f, 2.7f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
        }
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, this.keyBinds.getWidth(), 14.0f, 3.5f, new Color(24, 24, 24, 236).getRGB());
        RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        Fonts.babkatv[15].drawString(stack, "Hotkeys", (double)(posX + 19.5f), (double)(posY + 3.5f), new Color(255, 255, 255, 255).getRGB());
        Fonts.nursultan[16].drawString(stack, "C", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, this.keyBinds.getWidth(), this.keyBinds.getHeight());
        int index = 0;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            String text;
            if (f.bind == 0 || !f.state || (text = ClientUtil.getKey(f.bind)) == null) continue;
            String bindText = text.toUpperCase();
            float bindWidth = Fonts.babkatv[13].getWidth(bindText);
            StyledFont keyname = Fonts.babkatv[13];
            if (this.gradienthud.get()) {
                RenderUtil.Render2D.drawGradientRound(posX + 0.9f, posY - 5.2f + (float)headerHeight + (float)padding + (float)index * this.offset, this.keyBinds.getWidth() - 2.0f, 8.3f, 2.8f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            }
            RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY - 6.0f + (float)headerHeight + (float)padding + (float)index * this.offset, this.keyBinds.getWidth(), 10.0f, 3.5f, new Color(24, 24, 24, 236).getRGB());
            keyname.drawString(stack, f.name, (double)(posX + -2.0f + (float)padding), (double)(posY - 2.5f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            Fonts.babkatv[13].drawString(stack, bindText, (double)(posX + this.keyBinds.getWidth() - (float)padding - bindWidth + 1.5f), (double)(posY - 2.5f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            ++index;
        }
        SmartScissor.unset();
        SmartScissor.pop();
    }

    private void onStaffListRender(MatrixStack matrixStack) {
        float posX = this.staffListt1.getX();
        float posY = this.staffListt1.getY();
        int headerHeight = 14;
        float width2 = Math.max(this.nameWidth + 40.0f, 150.0f);
        int padding = 5;
        float offset = 10.5f;
        float height2 = (float)this.activeStaff * offset;
        this.hDynam = AnimationMath.fast(this.hDynam, height2, 100.0f);
        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width2, 100.0f);
        this.updateMaxWidth();
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, (float)(this.maxWidth + 10 + this.maxWidth1), 14.0f, 4.0f, new Color(30, 30, 30, 255).getRGB());
        Fonts.msSemiBold[14].drawCenteredString(matrixStack, "StaffList", (double)(posX + 35.5f), (double)(posY + 3.0f), -1);
        Fonts.Nurik[16].drawString(matrixStack, "Y", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
        RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 255).getRGB());
        int index = 0;
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, this.widthDynamic, (float)headerHeight + this.hDynam + (float)padding / 2.0f);
        if (!this.staffPlayers.isEmpty()) {
            this.staffStartTimes.keySet().retainAll(this.staffPlayers);
            for (Staff staff : this.staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status2 = staff.getStatus().string;
                if (this.gradienthud.get()) {
                    // empty if block
                }
                if (!this.staffStartTimes.containsKey(staff)) {
                    this.staffStartTimes.put(staff, System.currentTimeMillis());
                }
                long timeDifference = (System.currentTimeMillis() - this.staffStartTimes.get(staff)) / 1000L;
                String timeString = this.formatTime(timeDifference);
                RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY + (float)headerHeight + (float)padding + (float)index * offset - 6.0f, (float)(this.maxWidth + 10), 10.0f, 4.0f, new Color(30, 30, 30, 255).getRGB());
                Fonts.msSemiBold[12].drawString(matrixStack, prefix, (double)(posX + (float)padding - 3.0f), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), -1);
                Fonts.msSemiBold[12].drawString(matrixStack, name + " " + status2, (double)(posX + (float)padding + Fonts.gilroyBold[12].getWidth(prefix.getString() + "3")), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), -1);
                Fonts.msSemiBold[12].drawString(matrixStack, "    " + timeString + " ", (double)(posX + (float)padding + Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2)), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), new Color(255, 255, 255).getRGB());
                this.nameWidth = Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2 + " (" + timeString + ")");
                ++index;
            }
        } else {
            this.nameWidth = 0.0f;
        }
        SmartScissor.unset();
        SmartScissor.pop();
        this.activeStaff = index;
        this.staffListt1.setWidth(this.widthDynamic);
        this.staffListt1.setHeight(this.hDynam + (float)headerHeight);
    }

    private void updateMaxWidth() {
        this.maxWidth = 60;
        if (!this.staffPlayers.isEmpty()) {
            for (Staff staff : this.staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status2 = staff.getStatus().string;
                if (!this.staffStartTimes.containsKey(staff)) {
                    this.staffStartTimes.put(staff, System.currentTimeMillis());
                }
                long timeDifference = (System.currentTimeMillis() - this.staffStartTimes.get(staff)) / 1000L;
                String timeString = this.formatTime(timeDifference);
                int currentWidth = (int)Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2 + " (" + timeString + ")");
                if (currentWidth <= this.maxWidth) continue;
                this.maxWidth = currentWidth;
            }
        }
    }

    private String formatTime(long timeDifference) {
        if (timeDifference >= 3600L) {
            int minutes = (int)(timeDifference / 3600L);
            int seconds = (int)(timeDifference % 3600L / 60L);
            return minutes + "h " + seconds + "m";
        }
        if (timeDifference >= 60L) {
            int minutes = (int)(timeDifference / 60L);
            int seconds = (int)(timeDifference % 60L);
            return minutes + "m " + seconds + "s";
        }
        return timeDifference + "s";
    }

    public void setStaffPlayers(List<Staff> staffPlayers) {
        this.staffPlayers = staffPlayers;
    }

    private void onSchedules(MatrixStack stack) {
        float posX = this.Schedules.getX();
        float posY = this.Schedules.getY();
        int headerHeight = 14;
        int padding = 5;
        this.Schedules.setHeight(this.SchedulesOffset + (float)headerHeight);
        float maxWidth = 0.0f;
        ZoneId moscowZone = ZoneId.of("Europe/Moscow");
        LocalDateTime now = LocalDateTime.now(moscowZone);
        for (int hour = 9; hour <= 1; hour += 2) {
            LocalDateTime scheduleTime = LocalDateTime.from(LocalTime.now().withHour(hour).withMinute(0).withSecond(0));
            String scheduleText = scheduleTime.format(DateTimeFormatter.ofPattern("HH:mm"));
            float targetWidth = Math.max(60.0f, 15.5f + maxWidth + (float)(padding * 2) + 5.0f);
            this.Schedules.setWidth(targetWidth);
            RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, 100.0f, 14.0f, 4.0f, new Color(30, 30, 30, 210).getRGB());
            RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
            Fonts.msSemiBold[14].drawCenteredString(stack, "Schedules", (double)(this.Schedules.getX() + 35.0f), (double)(posY + 3.5f), -1);
            Fonts.Nurik[16].drawString(stack, "C", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
            SmartScissor.push();
            SmartScissor.setFromComponentCoordinates(posX, posY, this.Schedules.getWidth(), this.Schedules.getHeight());
            int index = 0;
            RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY - 6.0f + (float)headerHeight + (float)padding + (float)index * this.offset, this.Schedules.getWidth(), 10.0f, 4.0f, new Color(30, 30, 30, 210).getRGB());
            Fonts.msSemiBold[12].drawString(stack, scheduleText, (double)(posX + (float)padding), (double)(posY - 1.8f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            float lineX = posX + this.Schedules.getWidth() - (float)padding - 8.0f;
            RenderUtil.Render2D.drawRect(lineX, posY + (float)headerHeight + (float)padding + (float)index * this.offset - 4.0f, 0.3f, 5.5f, new Color(200, 200, 200, 100).getRGB());
            ++index;
            SmartScissor.unset();
            SmartScissor.pop();
        }
    }

    private void onArmorRender(MatrixStack matrixStack) {
        float x = this.Armor.getX();
        float y = this.Armor.getY();
        int width2 = 100;
        int height2 = 79;
        RenderUtil.Render2D.drawRoundedRect(x, y + 45.0f, width2 - 30, height2 - 40, 3.0f, ColorUtil.rgba(30, 21, 39, 90));
        int posY = (int)y + 63;
        int posX = (int)x + 3;
        for (ItemStack itemStack : Minecraft.player.getArmorInventoryList()) {
            if (!itemStack.isEmpty()) {
                mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, posX, posY);
                int maxDamage = itemStack.getMaxDamage();
                if (maxDamage > 0) {
                    float damagePercentage = (float)itemStack.getDamage() * 100.0f / (float)maxDamage;
                    int red = (int)(255.0f * (damagePercentage / 100.0f));
                    int green = 255 - red;
                    int roundedPercentage = Math.round(100.0f - damagePercentage);
                    Fonts.gilroyBold[14].drawCenteredString(matrixStack, "" + roundedPercentage, (double)(posX + width2 - 92), (double)(posY - 11), ColorUtil.rgba(red, green, 0, 210));
                    RenderUtil.Render2D.drawRect(posX + width2 - 98, posY - 3, 12.0f, 0.5f, ColorUtil.rgba(200, 200, 200, 100));
                } else {
                    Fonts.gilroyBold[14].drawCenteredString(matrixStack, "null", (double)(posX + width2 - 92), (double)(posY - 11), -1);
                    RenderUtil.Render2D.drawRect(posX + width2 - 98, posY - 3, 12.0f, 0.5f, ColorUtil.rgba(200, 200, 200, 100));
                }
                posX += 16;
            }
            this.Armor.setWidth(width2);
            this.Armor.setHeight(height2);
        }
    }

    private void onPotionElementsRender(MatrixStack matrixStack) {
        float posX = this.potionStatus.getX();
        float posY = this.potionStatus.getY();
        int width2 = Minecraft.player.getActivePotionEffects().isEmpty() ? 80 : 98;

        System.out.println("Central square position: X=" + posX + ", Y=" + (posY - 20.0f));
        System.out.println("Left square position: X=" + (posX - 15.0f) + ", Y=" + posY);
        System.out.println("Right square position: X=" + (posX + width2 + 5.0f) + ", Y=" + posY);

        try {
            // Отображаем центральную полосу
            RenderUtil.Render2D.drawRoundedCorner(posX, posY - 20.0f, width2, 15.0f, 3.5f, new Color(50, 100, 255, 200).getRGB());

            // Отображаем левый квадрат
            RenderUtil.Render2D.drawRect(posX - 15.0f, posY, 10.0f, 10.0f, new Color(255, 0, 0, 255).getRGB());

            // Отображаем правый квадрат
            RenderUtil.Render2D.drawRect(posX + width2 + 5.0f, posY, 10.0f, 10.0f, new Color(0, 255, 0, 255).getRGB());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }



    private void onRenderTargetHUD(MatrixStack matrixStack) {
        float posX = this.targetHUD.getX();
        float posY = this.targetHUD.getY();
        this.targetHUD.setWidth(120.0f);
        this.targetHUD.setHeight(36.0f);
        this.target = this.getTarget(this.target);
        this.scale1 = this.targetHudAnimation.getOutput();
        if (this.scale1 == 0.0) {
            this.target = null;
        }
        if (this.target == null) {
            return;
        }
        int hp = (int) target.getHealth();
        if (mc.getCurrentServerData() != null && mc.world != null && mc.world.getScoreboard() != null) {
            Score score = mc.world.getScoreboard().getOrCreateScore(target.getScoreboardName(), mc.world.getScoreboard().getObjectiveInDisplaySlot(2));
            String serverIP = mc.getCurrentServerData().serverIP;
            if ((serverIP.contains("funtime") && target instanceof PlayerEntity) ||
                    serverIP.contains("reallyworld") ||
                    serverIP.contains("skytime") ||
                    serverIP.contains("local") ||
                    serverIP.contains("space-times"))
            {
                int scorePoints = score.getScorePoints();
                hp = scorePoints;
            }
        }
        String targetName = this.target.getName().getString();
        String substring = targetName.substring(0, Math.min(targetName.length(), 10));
        this.health = AnimationMath.fast(this.health, hp / this.target.getMaxHealth(), 5.0f);
        float round_degree = 7.0f;
        GlStateManager.pushMatrix();
        AnimationMath.sizeAnimation(posX + 50.0f, posY + 19.0f, this.scale1);
        int backgroundColor = ColorUtil.rgba(20, 20, 20, 255);
        RenderUtil.Render2D.drawShadow(posX, posY - 4.0f, 100.0f, this.targetHUD.getHeight(), (int)round_degree, ColorUtil.rgba(20, 20, 20, 150), ColorUtil.rgba(20, 20, 0, 190));
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 4.0f, 100.0f, this.targetHUD.getHeight(), round_degree, backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, 100.0, this.targetHUD.getHeight());
        RenderUtil.Render2D.drawRoundedRect(posX + 4.0f, posY, 28.0f, 28.0f, 6.0f, Color.BLACK.getRGB());
        if (target instanceof AbstractClientPlayerEntity) {
            StencilUtil.initStencilToWrite();
            RenderUtil.Render2D.drawRoundedRect(posX + 4.0f, posY, 28, 28, 3.0F, -1);
            StencilUtil.readStencilBuffer(1);
            RenderUtil.Render2D.drawFace(posX + 4.0f, posY, 8.0F, 8.0F, 8.0F, 8.0F, 28, 28, 64.0F, 64.0F, (AbstractClientPlayerEntity) this.target);
            StencilUtil.uninitStencilBuffer();
        }
        StyledFont medium = Fonts.msMedium[17];
        medium.drawString(matrixStack, substring, posX + 32.0f + 4.0f, posY + 2.0f, -1);
        Fonts.msSemiBold[12].drawString(matrixStack, "HP: " + hp * 5 + "%", posX + 32.0f + 4.0f, posY + 19.0f - 5.0f, -1);
        SmartScissor.unset();
        SmartScissor.pop();
        float currentHP = hp;
        if (currentHP >= 10.0f) {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(0, 128, 0, 255), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(0, 204, 0, 250), ColorUtil.rgba(0, 153, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(0, 128, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(0, 204, 0, 60), ColorUtil.rgba(0, 153, 0, 60));
        } else if (currentHP >= 5.0f) {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(62, 71, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(255, 255, 0, 250), ColorUtil.rgba(153, 153, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(62, 71, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(255, 255, 0, 60), ColorUtil.rgba(153, 153, 0, 60));
        } else {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(71, 0, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(102, 0, 0, 250), ColorUtil.rgba(204, 0, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(71, 0, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(102, 0, 0, 60), ColorUtil.rgba(204, 0, 0, 60));
        }
        this.drawItemStack(posX + 3.0F, posY - 8.0F - 5.5F, 10.0F);

        GlStateManager.popMatrix();
    }
nfrjt joeotybt xnj nt,z ehjybkb d ltncndtdst,fkb b dvtcnj ukfp e nt,z gtybc
ой я хотел сказать что

Ты сделал полную хуйню что я захотел вскрыться нахуй....
ну ты сделал полное говно
у меня говно кота в лотке красивее выглядит
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Увидел то что никто не может спастить этот вырвеглазный HUD Nursultan на EXP 2.0 | Если худ на SS Говно - смотрите у себя потому что у меня другие шрифты!

Вот сливаю вам такой HUD Nursultan под базу Expensive 2.0:
Посмотреть вложение 292639

На самом деле сложнее всего было написать код на музыку, а так нет.
Иконки не с нурика потому что нужно установить шрифт (Я использовал другой потому что я буду переделывать HUD под свой чит)

Чтобы были те иконки установите nyrik.ttf по кнопке
Пожалуйста, авторизуйтесь для просмотра ссылки.
и напишите эти коды в expensive-master/src/wtf/expensive/font/Fonts.java:
На 21 строке: public static volatile StyledFont[] nyrik = new StyledFont[42];

На 62 строке:

for (int i = 8; i < 24;i++) {
nyrik = new StyledFont("nyrik.ttf", i, 0.0f, 0.0f, 0.0f, true, Lang.ENG_RU);
}

PS: Чтобы установить nyrik.ttf зайдите в expensive-master/src/assets/minecraft/expensive/font, если у вас вылетает повторите все заного.

Код на HUD:


Код:
Expand Collapse Copy
    private void watermark(MatrixStack stack) {
        Object[] objectArray = new Object[1];
        objectArray[0] = Math.hypot(Minecraft.player.getPosX() - Minecraft.player.prevPosX, Minecraft.player.getPosZ() - Minecraft.player.prevPosZ) * 20.0;
        double speed2 = (Double) objectArray[0];
        String text = speed2 == 0.0 ? "0.0" : String.format(Locale.ENGLISH, "%.2f", speed2).replace(',', '.');
        String user = ClientUtil.me == null ? "null" : ClientUtil.me.getName();
        StringBuilder titleText = new StringBuilder("");
        LocalTime time = LocalTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
        titleText.append(time.format(formatter));
        int var10000 = (int)Minecraft.player.getPosX();
        String cord = var10000 + " " + (int)Minecraft.player.getPosY() + " " + (int)Minecraft.player.getPosZ();
        float debugTPS = (int)Sunshine.getInstance().getTpsCalc().getTPS();
        int firstColor = ColorUtil.getColorStyle(0.0f);
        int secondColor = ColorUtil.getColorStyle(90.0f);
        if (this.gradienthud.get()) {
            RenderUtil.Render2D.drawGradientRound(5.0f, 5.2f, 45.0f, 12.0f, 3.4f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(54.5f, 4.8f, Fonts.msSemiBold[13].getWidth(user) + Fonts.msSemiBold[13].getWidth(titleText.toString()) + 78.0f, 12.3f, 3.3f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(5.0f, 20.5f, 22.5f + Fonts.msSemiBold[13].getWidth(cord), 12.0f, 3.0f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(32.0f + Fonts.msSemiBold[13].getWidth(cord), 20.5f, 38.2f + Fonts.msSemiBold[13].getWidth(text), 12.0f, 3.3f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
        }
        RenderUtil.Render2D.drawRoundedCorner(4.0f, 4.0f, 47.0f, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(53.5f, 4.0f, Fonts.msSemiBold[13].getWidth(user) + Fonts.msSemiBold[13].getWidth(titleText.toString()) + 80.0f, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(4.0f, 19.5f, 24.5f + Fonts.msSemiBold[13].getWidth(cord), 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(31.0f + Fonts.msSemiBold[13].getWidth(cord), 19.5f, 40.0f + Fonts.msSemiBold[13].getWidth(text), 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(74.0f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text), 19.5f, 30.0f + (float)debugTPS, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRect(20.5f, 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(70.5f + Fonts.msSemiBold[13].getWidth(user), 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(115.0f + Fonts.msSemiBold[13].getWidth(user), 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(45.0f + Fonts.msSemiBold[13].getWidth(cord), 22.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(20.0f, 22.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        Fonts.Nurik[19].drawString(stack, ClientUtil.gradient("S", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 8.0, 10.0, -1);
        Fonts.msSemiBold[13].drawString(stack, ClientUtil.gradient("Alpha", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 25.5, 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("W", ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(90.0f)), 58.0, 10.5, -1);
        Fonts.msSemiBold[13].drawString(stack, user, 67.5, 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("X", ColorUtil.getColorStyle(150.0f), ColorUtil.getColorStyle(120.0f)), (double)(73.5f + Fonts.msSemiBold[13].getWidth(user)), 10.5, -1);
        StyledFont var10 = Fonts.msSemiBold[13];
        Minecraft var10002 = mc;
        var10.drawString(stack, Minecraft.debugFPS + " Fps", (double)(84.9f + Fonts.msSemiBold[13].getWidth(user)), 10.0, -1);
        Fonts.msSemiBold[13].drawString(stack, titleText.toString(), (double)(128.5f + Fonts.msSemiBold[13].getWidth(user)), 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("V", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), (double)(118.0f + Fonts.msSemiBold[13].getWidth(user)), 10.5, -1);
        Fonts.msSemiBold[13].drawString(stack, text, (double)(50.5f + Fonts.msSemiBold[13].getWidth(cord)), 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.msSemiBold[13].drawString(stack, "BPS", (double)(53.0f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text)), 25.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("&#35", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), (double)(27.0f + Fonts.msSemiBold[13].getWidth(cord)), 25.5, -1);
        Fonts.msSemiBold[13].drawString(stack, cord, 24.0, 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("F", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 9.0, 25.5, -1);
        Fonts.msSemiBold[13].drawString(stack, "Tps " + debugTPS, (double)(87.3f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text)), 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("Q", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 77.0 + (double)Fonts.msSemiBold[13].getWidth(cord) + (double)Fonts.msSemiBold[13].getWidth(text), 25.5, -1);
    }


    private void updateFunctions() {
        for (Function function : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (function.category == Type.Render) continue;
            this.functions.add(function);
            this.functions.sort((f1, f2) -> Float.compare(Fonts.msSemiBold[13].getWidth(f2.name), Fonts.msSemiBold[13].getWidth(f1.name)));
        }
    }

    private void onKeyBindsRender(MatrixStack stack) {
        float posX = this.keyBinds.getX();
        float posY = this.keyBinds.getY();
        int headerHeight = 14;
        int padding = 5;
        int firstColor = ColorUtil.getColorStyle(0.0f);
        int secondColor = ColorUtil.getColorStyle(90.0f);
        this.activeModules = 0;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (f.bind == 0 || !f.state) continue;
            ++this.activeModules;
        }
        this.keyBinds.setHeight((float)this.activeModules * this.offset + (float)headerHeight);
        float maxWidth = 0.0f;
        float height2 = (float)this.activeModules * this.offset;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            String text;
            if (f.bind == 0 || !f.state || (text = ClientUtil.getKey(f.bind)) == null) continue;
            String bindText = text.toUpperCase();
            float bindWidth = Fonts.msSemiBold[12].getWidth(bindText);
            float nameWidth = Fonts.msSemiBold[12].getWidth(f.name);
            maxWidth = Math.max(maxWidth, bindWidth);
            maxWidth = Math.max(maxWidth, nameWidth);
        }
        float targetWidth = Math.max(60.0f, 15.5f + maxWidth + (float)(padding * 2) + 5.0f);
        this.widthAnime = AnimationMath.lerp(this.widthAnime, targetWidth, 10.5f);
        this.keyBinds.setWidth(this.widthAnime);
        if (this.gradienthud.get()) {
            RenderUtil.Render2D.drawGradientRound(posX + 1.0f, posY + -1.1f, this.keyBinds.getWidth() - 2.0f, 12.3f, 2.7f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
        }
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, this.keyBinds.getWidth(), 14.0f, 3.5f, new Color(24, 24, 24, 236).getRGB());
        RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        Fonts.babkatv[15].drawString(stack, "Hotkeys", (double)(posX + 19.5f), (double)(posY + 3.5f), new Color(255, 255, 255, 255).getRGB());
        Fonts.nursultan[16].drawString(stack, "C", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, this.keyBinds.getWidth(), this.keyBinds.getHeight());
        int index = 0;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            String text;
            if (f.bind == 0 || !f.state || (text = ClientUtil.getKey(f.bind)) == null) continue;
            String bindText = text.toUpperCase();
            float bindWidth = Fonts.babkatv[13].getWidth(bindText);
            StyledFont keyname = Fonts.babkatv[13];
            if (this.gradienthud.get()) {
                RenderUtil.Render2D.drawGradientRound(posX + 0.9f, posY - 5.2f + (float)headerHeight + (float)padding + (float)index * this.offset, this.keyBinds.getWidth() - 2.0f, 8.3f, 2.8f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            }
            RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY - 6.0f + (float)headerHeight + (float)padding + (float)index * this.offset, this.keyBinds.getWidth(), 10.0f, 3.5f, new Color(24, 24, 24, 236).getRGB());
            keyname.drawString(stack, f.name, (double)(posX + -2.0f + (float)padding), (double)(posY - 2.5f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            Fonts.babkatv[13].drawString(stack, bindText, (double)(posX + this.keyBinds.getWidth() - (float)padding - bindWidth + 1.5f), (double)(posY - 2.5f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            ++index;
        }
        SmartScissor.unset();
        SmartScissor.pop();
    }

    private void onStaffListRender(MatrixStack matrixStack) {
        float posX = this.staffListt1.getX();
        float posY = this.staffListt1.getY();
        int headerHeight = 14;
        float width2 = Math.max(this.nameWidth + 40.0f, 150.0f);
        int padding = 5;
        float offset = 10.5f;
        float height2 = (float)this.activeStaff * offset;
        this.hDynam = AnimationMath.fast(this.hDynam, height2, 100.0f);
        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width2, 100.0f);
        this.updateMaxWidth();
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, (float)(this.maxWidth + 10 + this.maxWidth1), 14.0f, 4.0f, new Color(30, 30, 30, 255).getRGB());
        Fonts.msSemiBold[14].drawCenteredString(matrixStack, "StaffList", (double)(posX + 35.5f), (double)(posY + 3.0f), -1);
        Fonts.Nurik[16].drawString(matrixStack, "Y", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
        RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 255).getRGB());
        int index = 0;
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, this.widthDynamic, (float)headerHeight + this.hDynam + (float)padding / 2.0f);
        if (!this.staffPlayers.isEmpty()) {
            this.staffStartTimes.keySet().retainAll(this.staffPlayers);
            for (Staff staff : this.staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status2 = staff.getStatus().string;
                if (this.gradienthud.get()) {
                    // empty if block
                }
                if (!this.staffStartTimes.containsKey(staff)) {
                    this.staffStartTimes.put(staff, System.currentTimeMillis());
                }
                long timeDifference = (System.currentTimeMillis() - this.staffStartTimes.get(staff)) / 1000L;
                String timeString = this.formatTime(timeDifference);
                RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY + (float)headerHeight + (float)padding + (float)index * offset - 6.0f, (float)(this.maxWidth + 10), 10.0f, 4.0f, new Color(30, 30, 30, 255).getRGB());
                Fonts.msSemiBold[12].drawString(matrixStack, prefix, (double)(posX + (float)padding - 3.0f), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), -1);
                Fonts.msSemiBold[12].drawString(matrixStack, name + " " + status2, (double)(posX + (float)padding + Fonts.gilroyBold[12].getWidth(prefix.getString() + "3")), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), -1);
                Fonts.msSemiBold[12].drawString(matrixStack, "    " + timeString + " ", (double)(posX + (float)padding + Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2)), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), new Color(255, 255, 255).getRGB());
                this.nameWidth = Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2 + " (" + timeString + ")");
                ++index;
            }
        } else {
            this.nameWidth = 0.0f;
        }
        SmartScissor.unset();
        SmartScissor.pop();
        this.activeStaff = index;
        this.staffListt1.setWidth(this.widthDynamic);
        this.staffListt1.setHeight(this.hDynam + (float)headerHeight);
    }

    private void updateMaxWidth() {
        this.maxWidth = 60;
        if (!this.staffPlayers.isEmpty()) {
            for (Staff staff : this.staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status2 = staff.getStatus().string;
                if (!this.staffStartTimes.containsKey(staff)) {
                    this.staffStartTimes.put(staff, System.currentTimeMillis());
                }
                long timeDifference = (System.currentTimeMillis() - this.staffStartTimes.get(staff)) / 1000L;
                String timeString = this.formatTime(timeDifference);
                int currentWidth = (int)Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2 + " (" + timeString + ")");
                if (currentWidth <= this.maxWidth) continue;
                this.maxWidth = currentWidth;
            }
        }
    }

    private String formatTime(long timeDifference) {
        if (timeDifference >= 3600L) {
            int minutes = (int)(timeDifference / 3600L);
            int seconds = (int)(timeDifference % 3600L / 60L);
            return minutes + "h " + seconds + "m";
        }
        if (timeDifference >= 60L) {
            int minutes = (int)(timeDifference / 60L);
            int seconds = (int)(timeDifference % 60L);
            return minutes + "m " + seconds + "s";
        }
        return timeDifference + "s";
    }

    public void setStaffPlayers(List<Staff> staffPlayers) {
        this.staffPlayers = staffPlayers;
    }

    private void onSchedules(MatrixStack stack) {
        float posX = this.Schedules.getX();
        float posY = this.Schedules.getY();
        int headerHeight = 14;
        int padding = 5;
        this.Schedules.setHeight(this.SchedulesOffset + (float)headerHeight);
        float maxWidth = 0.0f;
        ZoneId moscowZone = ZoneId.of("Europe/Moscow");
        LocalDateTime now = LocalDateTime.now(moscowZone);
        for (int hour = 9; hour <= 1; hour += 2) {
            LocalDateTime scheduleTime = LocalDateTime.from(LocalTime.now().withHour(hour).withMinute(0).withSecond(0));
            String scheduleText = scheduleTime.format(DateTimeFormatter.ofPattern("HH:mm"));
            float targetWidth = Math.max(60.0f, 15.5f + maxWidth + (float)(padding * 2) + 5.0f);
            this.Schedules.setWidth(targetWidth);
            RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, 100.0f, 14.0f, 4.0f, new Color(30, 30, 30, 210).getRGB());
            RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
            Fonts.msSemiBold[14].drawCenteredString(stack, "Schedules", (double)(this.Schedules.getX() + 35.0f), (double)(posY + 3.5f), -1);
            Fonts.Nurik[16].drawString(stack, "C", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
            SmartScissor.push();
            SmartScissor.setFromComponentCoordinates(posX, posY, this.Schedules.getWidth(), this.Schedules.getHeight());
            int index = 0;
            RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY - 6.0f + (float)headerHeight + (float)padding + (float)index * this.offset, this.Schedules.getWidth(), 10.0f, 4.0f, new Color(30, 30, 30, 210).getRGB());
            Fonts.msSemiBold[12].drawString(stack, scheduleText, (double)(posX + (float)padding), (double)(posY - 1.8f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            float lineX = posX + this.Schedules.getWidth() - (float)padding - 8.0f;
            RenderUtil.Render2D.drawRect(lineX, posY + (float)headerHeight + (float)padding + (float)index * this.offset - 4.0f, 0.3f, 5.5f, new Color(200, 200, 200, 100).getRGB());
            ++index;
            SmartScissor.unset();
            SmartScissor.pop();
        }
    }

    private void onArmorRender(MatrixStack matrixStack) {
        float x = this.Armor.getX();
        float y = this.Armor.getY();
        int width2 = 100;
        int height2 = 79;
        RenderUtil.Render2D.drawRoundedRect(x, y + 45.0f, width2 - 30, height2 - 40, 3.0f, ColorUtil.rgba(30, 21, 39, 90));
        int posY = (int)y + 63;
        int posX = (int)x + 3;
        for (ItemStack itemStack : Minecraft.player.getArmorInventoryList()) {
            if (!itemStack.isEmpty()) {
                mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, posX, posY);
                int maxDamage = itemStack.getMaxDamage();
                if (maxDamage > 0) {
                    float damagePercentage = (float)itemStack.getDamage() * 100.0f / (float)maxDamage;
                    int red = (int)(255.0f * (damagePercentage / 100.0f));
                    int green = 255 - red;
                    int roundedPercentage = Math.round(100.0f - damagePercentage);
                    Fonts.gilroyBold[14].drawCenteredString(matrixStack, "" + roundedPercentage, (double)(posX + width2 - 92), (double)(posY - 11), ColorUtil.rgba(red, green, 0, 210));
                    RenderUtil.Render2D.drawRect(posX + width2 - 98, posY - 3, 12.0f, 0.5f, ColorUtil.rgba(200, 200, 200, 100));
                } else {
                    Fonts.gilroyBold[14].drawCenteredString(matrixStack, "null", (double)(posX + width2 - 92), (double)(posY - 11), -1);
                    RenderUtil.Render2D.drawRect(posX + width2 - 98, posY - 3, 12.0f, 0.5f, ColorUtil.rgba(200, 200, 200, 100));
                }
                posX += 16;
            }
            this.Armor.setWidth(width2);
            this.Armor.setHeight(height2);
        }
    }

    private void onPotionElementsRender(MatrixStack matrixStack) {
        float posX = this.potionStatus.getX();
        float posY = this.potionStatus.getY();
        int width2 = Minecraft.player.getActivePotionEffects().isEmpty() ? 80 : 98;

        System.out.println("Central square position: X=" + posX + ", Y=" + (posY - 20.0f));
        System.out.println("Left square position: X=" + (posX - 15.0f) + ", Y=" + posY);
        System.out.println("Right square position: X=" + (posX + width2 + 5.0f) + ", Y=" + posY);

        try {
            // Отображаем центральную полосу
            RenderUtil.Render2D.drawRoundedCorner(posX, posY - 20.0f, width2, 15.0f, 3.5f, new Color(50, 100, 255, 200).getRGB());

            // Отображаем левый квадрат
            RenderUtil.Render2D.drawRect(posX - 15.0f, posY, 10.0f, 10.0f, new Color(255, 0, 0, 255).getRGB());

            // Отображаем правый квадрат
            RenderUtil.Render2D.drawRect(posX + width2 + 5.0f, posY, 10.0f, 10.0f, new Color(0, 255, 0, 255).getRGB());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }



    private void onRenderTargetHUD(MatrixStack matrixStack) {
        float posX = this.targetHUD.getX();
        float posY = this.targetHUD.getY();
        this.targetHUD.setWidth(120.0f);
        this.targetHUD.setHeight(36.0f);
        this.target = this.getTarget(this.target);
        this.scale1 = this.targetHudAnimation.getOutput();
        if (this.scale1 == 0.0) {
            this.target = null;
        }
        if (this.target == null) {
            return;
        }
        int hp = (int) target.getHealth();
        if (mc.getCurrentServerData() != null && mc.world != null && mc.world.getScoreboard() != null) {
            Score score = mc.world.getScoreboard().getOrCreateScore(target.getScoreboardName(), mc.world.getScoreboard().getObjectiveInDisplaySlot(2));
            String serverIP = mc.getCurrentServerData().serverIP;
            if ((serverIP.contains("funtime") && target instanceof PlayerEntity) ||
                    serverIP.contains("reallyworld") ||
                    serverIP.contains("skytime") ||
                    serverIP.contains("local") ||
                    serverIP.contains("space-times"))
            {
                int scorePoints = score.getScorePoints();
                hp = scorePoints;
            }
        }
        String targetName = this.target.getName().getString();
        String substring = targetName.substring(0, Math.min(targetName.length(), 10));
        this.health = AnimationMath.fast(this.health, hp / this.target.getMaxHealth(), 5.0f);
        float round_degree = 7.0f;
        GlStateManager.pushMatrix();
        AnimationMath.sizeAnimation(posX + 50.0f, posY + 19.0f, this.scale1);
        int backgroundColor = ColorUtil.rgba(20, 20, 20, 255);
        RenderUtil.Render2D.drawShadow(posX, posY - 4.0f, 100.0f, this.targetHUD.getHeight(), (int)round_degree, ColorUtil.rgba(20, 20, 20, 150), ColorUtil.rgba(20, 20, 0, 190));
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 4.0f, 100.0f, this.targetHUD.getHeight(), round_degree, backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, 100.0, this.targetHUD.getHeight());
        RenderUtil.Render2D.drawRoundedRect(posX + 4.0f, posY, 28.0f, 28.0f, 6.0f, Color.BLACK.getRGB());
        if (target instanceof AbstractClientPlayerEntity) {
            StencilUtil.initStencilToWrite();
            RenderUtil.Render2D.drawRoundedRect(posX + 4.0f, posY, 28, 28, 3.0F, -1);
            StencilUtil.readStencilBuffer(1);
            RenderUtil.Render2D.drawFace(posX + 4.0f, posY, 8.0F, 8.0F, 8.0F, 8.0F, 28, 28, 64.0F, 64.0F, (AbstractClientPlayerEntity) this.target);
            StencilUtil.uninitStencilBuffer();
        }
        StyledFont medium = Fonts.msMedium[17];
        medium.drawString(matrixStack, substring, posX + 32.0f + 4.0f, posY + 2.0f, -1);
        Fonts.msSemiBold[12].drawString(matrixStack, "HP: " + hp * 5 + "%", posX + 32.0f + 4.0f, posY + 19.0f - 5.0f, -1);
        SmartScissor.unset();
        SmartScissor.pop();
        float currentHP = hp;
        if (currentHP >= 10.0f) {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(0, 128, 0, 255), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(0, 204, 0, 250), ColorUtil.rgba(0, 153, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(0, 128, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(0, 204, 0, 60), ColorUtil.rgba(0, 153, 0, 60));
        } else if (currentHP >= 5.0f) {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(62, 71, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(255, 255, 0, 250), ColorUtil.rgba(153, 153, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(62, 71, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(255, 255, 0, 60), ColorUtil.rgba(153, 153, 0, 60));
        } else {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(71, 0, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(102, 0, 0, 250), ColorUtil.rgba(204, 0, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(71, 0, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(102, 0, 0, 60), ColorUtil.rgba(204, 0, 0, 60));
        }
        this.drawItemStack(posX + 3.0F, posY - 8.0F - 5.5F, 10.0F);

        GlStateManager.popMatrix();
    }
это вообще не нурик
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Увидел то что никто не может спастить этот вырвеглазный HUD Nursultan на EXP 2.0 | Если худ на SS Говно - смотрите у себя потому что у меня другие шрифты!

Вот сливаю вам такой HUD Nursultan под базу Expensive 2.0:
Посмотреть вложение 292639

На самом деле сложнее всего было написать код на музыку, а так нет.
Иконки не с нурика потому что нужно установить шрифт (Я использовал другой потому что я буду переделывать HUD под свой чит)

Чтобы были те иконки установите nyrik.ttf по кнопке
Пожалуйста, авторизуйтесь для просмотра ссылки.
и напишите эти коды в expensive-master/src/wtf/expensive/font/Fonts.java:
На 21 строке: public static volatile StyledFont[] nyrik = new StyledFont[42];

На 62 строке:

for (int i = 8; i < 24;i++) {
nyrik = new StyledFont("nyrik.ttf", i, 0.0f, 0.0f, 0.0f, true, Lang.ENG_RU);
}

PS: Чтобы установить nyrik.ttf зайдите в expensive-master/src/assets/minecraft/expensive/font, если у вас вылетает повторите все заного.

Код на HUD:


Код:
Expand Collapse Copy
    private void watermark(MatrixStack stack) {
        Object[] objectArray = new Object[1];
        objectArray[0] = Math.hypot(Minecraft.player.getPosX() - Minecraft.player.prevPosX, Minecraft.player.getPosZ() - Minecraft.player.prevPosZ) * 20.0;
        double speed2 = (Double) objectArray[0];
        String text = speed2 == 0.0 ? "0.0" : String.format(Locale.ENGLISH, "%.2f", speed2).replace(',', '.');
        String user = ClientUtil.me == null ? "null" : ClientUtil.me.getName();
        StringBuilder titleText = new StringBuilder("");
        LocalTime time = LocalTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
        titleText.append(time.format(formatter));
        int var10000 = (int)Minecraft.player.getPosX();
        String cord = var10000 + " " + (int)Minecraft.player.getPosY() + " " + (int)Minecraft.player.getPosZ();
        float debugTPS = (int)Sunshine.getInstance().getTpsCalc().getTPS();
        int firstColor = ColorUtil.getColorStyle(0.0f);
        int secondColor = ColorUtil.getColorStyle(90.0f);
        if (this.gradienthud.get()) {
            RenderUtil.Render2D.drawGradientRound(5.0f, 5.2f, 45.0f, 12.0f, 3.4f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(54.5f, 4.8f, Fonts.msSemiBold[13].getWidth(user) + Fonts.msSemiBold[13].getWidth(titleText.toString()) + 78.0f, 12.3f, 3.3f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(5.0f, 20.5f, 22.5f + Fonts.msSemiBold[13].getWidth(cord), 12.0f, 3.0f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(32.0f + Fonts.msSemiBold[13].getWidth(cord), 20.5f, 38.2f + Fonts.msSemiBold[13].getWidth(text), 12.0f, 3.3f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
        }
        RenderUtil.Render2D.drawRoundedCorner(4.0f, 4.0f, 47.0f, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(53.5f, 4.0f, Fonts.msSemiBold[13].getWidth(user) + Fonts.msSemiBold[13].getWidth(titleText.toString()) + 80.0f, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(4.0f, 19.5f, 24.5f + Fonts.msSemiBold[13].getWidth(cord), 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(31.0f + Fonts.msSemiBold[13].getWidth(cord), 19.5f, 40.0f + Fonts.msSemiBold[13].getWidth(text), 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(74.0f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text), 19.5f, 30.0f + (float)debugTPS, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRect(20.5f, 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(70.5f + Fonts.msSemiBold[13].getWidth(user), 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(115.0f + Fonts.msSemiBold[13].getWidth(user), 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(45.0f + Fonts.msSemiBold[13].getWidth(cord), 22.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(20.0f, 22.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        Fonts.Nurik[19].drawString(stack, ClientUtil.gradient("S", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 8.0, 10.0, -1);
        Fonts.msSemiBold[13].drawString(stack, ClientUtil.gradient("Alpha", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 25.5, 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("W", ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(90.0f)), 58.0, 10.5, -1);
        Fonts.msSemiBold[13].drawString(stack, user, 67.5, 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("X", ColorUtil.getColorStyle(150.0f), ColorUtil.getColorStyle(120.0f)), (double)(73.5f + Fonts.msSemiBold[13].getWidth(user)), 10.5, -1);
        StyledFont var10 = Fonts.msSemiBold[13];
        Minecraft var10002 = mc;
        var10.drawString(stack, Minecraft.debugFPS + " Fps", (double)(84.9f + Fonts.msSemiBold[13].getWidth(user)), 10.0, -1);
        Fonts.msSemiBold[13].drawString(stack, titleText.toString(), (double)(128.5f + Fonts.msSemiBold[13].getWidth(user)), 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("V", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), (double)(118.0f + Fonts.msSemiBold[13].getWidth(user)), 10.5, -1);
        Fonts.msSemiBold[13].drawString(stack, text, (double)(50.5f + Fonts.msSemiBold[13].getWidth(cord)), 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.msSemiBold[13].drawString(stack, "BPS", (double)(53.0f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text)), 25.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("&#35", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), (double)(27.0f + Fonts.msSemiBold[13].getWidth(cord)), 25.5, -1);
        Fonts.msSemiBold[13].drawString(stack, cord, 24.0, 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("F", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 9.0, 25.5, -1);
        Fonts.msSemiBold[13].drawString(stack, "Tps " + debugTPS, (double)(87.3f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text)), 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("Q", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 77.0 + (double)Fonts.msSemiBold[13].getWidth(cord) + (double)Fonts.msSemiBold[13].getWidth(text), 25.5, -1);
    }


    private void updateFunctions() {
        for (Function function : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (function.category == Type.Render) continue;
            this.functions.add(function);
            this.functions.sort((f1, f2) -> Float.compare(Fonts.msSemiBold[13].getWidth(f2.name), Fonts.msSemiBold[13].getWidth(f1.name)));
        }
    }

    private void onKeyBindsRender(MatrixStack stack) {
        float posX = this.keyBinds.getX();
        float posY = this.keyBinds.getY();
        int headerHeight = 14;
        int padding = 5;
        int firstColor = ColorUtil.getColorStyle(0.0f);
        int secondColor = ColorUtil.getColorStyle(90.0f);
        this.activeModules = 0;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (f.bind == 0 || !f.state) continue;
            ++this.activeModules;
        }
        this.keyBinds.setHeight((float)this.activeModules * this.offset + (float)headerHeight);
        float maxWidth = 0.0f;
        float height2 = (float)this.activeModules * this.offset;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            String text;
            if (f.bind == 0 || !f.state || (text = ClientUtil.getKey(f.bind)) == null) continue;
            String bindText = text.toUpperCase();
            float bindWidth = Fonts.msSemiBold[12].getWidth(bindText);
            float nameWidth = Fonts.msSemiBold[12].getWidth(f.name);
            maxWidth = Math.max(maxWidth, bindWidth);
            maxWidth = Math.max(maxWidth, nameWidth);
        }
        float targetWidth = Math.max(60.0f, 15.5f + maxWidth + (float)(padding * 2) + 5.0f);
        this.widthAnime = AnimationMath.lerp(this.widthAnime, targetWidth, 10.5f);
        this.keyBinds.setWidth(this.widthAnime);
        if (this.gradienthud.get()) {
            RenderUtil.Render2D.drawGradientRound(posX + 1.0f, posY + -1.1f, this.keyBinds.getWidth() - 2.0f, 12.3f, 2.7f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
        }
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, this.keyBinds.getWidth(), 14.0f, 3.5f, new Color(24, 24, 24, 236).getRGB());
        RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        Fonts.babkatv[15].drawString(stack, "Hotkeys", (double)(posX + 19.5f), (double)(posY + 3.5f), new Color(255, 255, 255, 255).getRGB());
        Fonts.nursultan[16].drawString(stack, "C", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, this.keyBinds.getWidth(), this.keyBinds.getHeight());
        int index = 0;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            String text;
            if (f.bind == 0 || !f.state || (text = ClientUtil.getKey(f.bind)) == null) continue;
            String bindText = text.toUpperCase();
            float bindWidth = Fonts.babkatv[13].getWidth(bindText);
            StyledFont keyname = Fonts.babkatv[13];
            if (this.gradienthud.get()) {
                RenderUtil.Render2D.drawGradientRound(posX + 0.9f, posY - 5.2f + (float)headerHeight + (float)padding + (float)index * this.offset, this.keyBinds.getWidth() - 2.0f, 8.3f, 2.8f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            }
            RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY - 6.0f + (float)headerHeight + (float)padding + (float)index * this.offset, this.keyBinds.getWidth(), 10.0f, 3.5f, new Color(24, 24, 24, 236).getRGB());
            keyname.drawString(stack, f.name, (double)(posX + -2.0f + (float)padding), (double)(posY - 2.5f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            Fonts.babkatv[13].drawString(stack, bindText, (double)(posX + this.keyBinds.getWidth() - (float)padding - bindWidth + 1.5f), (double)(posY - 2.5f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            ++index;
        }
        SmartScissor.unset();
        SmartScissor.pop();
    }

    private void onStaffListRender(MatrixStack matrixStack) {
        float posX = this.staffListt1.getX();
        float posY = this.staffListt1.getY();
        int headerHeight = 14;
        float width2 = Math.max(this.nameWidth + 40.0f, 150.0f);
        int padding = 5;
        float offset = 10.5f;
        float height2 = (float)this.activeStaff * offset;
        this.hDynam = AnimationMath.fast(this.hDynam, height2, 100.0f);
        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width2, 100.0f);
        this.updateMaxWidth();
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, (float)(this.maxWidth + 10 + this.maxWidth1), 14.0f, 4.0f, new Color(30, 30, 30, 255).getRGB());
        Fonts.msSemiBold[14].drawCenteredString(matrixStack, "StaffList", (double)(posX + 35.5f), (double)(posY + 3.0f), -1);
        Fonts.Nurik[16].drawString(matrixStack, "Y", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
        RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 255).getRGB());
        int index = 0;
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, this.widthDynamic, (float)headerHeight + this.hDynam + (float)padding / 2.0f);
        if (!this.staffPlayers.isEmpty()) {
            this.staffStartTimes.keySet().retainAll(this.staffPlayers);
            for (Staff staff : this.staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status2 = staff.getStatus().string;
                if (this.gradienthud.get()) {
                    // empty if block
                }
                if (!this.staffStartTimes.containsKey(staff)) {
                    this.staffStartTimes.put(staff, System.currentTimeMillis());
                }
                long timeDifference = (System.currentTimeMillis() - this.staffStartTimes.get(staff)) / 1000L;
                String timeString = this.formatTime(timeDifference);
                RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY + (float)headerHeight + (float)padding + (float)index * offset - 6.0f, (float)(this.maxWidth + 10), 10.0f, 4.0f, new Color(30, 30, 30, 255).getRGB());
                Fonts.msSemiBold[12].drawString(matrixStack, prefix, (double)(posX + (float)padding - 3.0f), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), -1);
                Fonts.msSemiBold[12].drawString(matrixStack, name + " " + status2, (double)(posX + (float)padding + Fonts.gilroyBold[12].getWidth(prefix.getString() + "3")), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), -1);
                Fonts.msSemiBold[12].drawString(matrixStack, "    " + timeString + " ", (double)(posX + (float)padding + Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2)), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), new Color(255, 255, 255).getRGB());
                this.nameWidth = Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2 + " (" + timeString + ")");
                ++index;
            }
        } else {
            this.nameWidth = 0.0f;
        }
        SmartScissor.unset();
        SmartScissor.pop();
        this.activeStaff = index;
        this.staffListt1.setWidth(this.widthDynamic);
        this.staffListt1.setHeight(this.hDynam + (float)headerHeight);
    }

    private void updateMaxWidth() {
        this.maxWidth = 60;
        if (!this.staffPlayers.isEmpty()) {
            for (Staff staff : this.staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status2 = staff.getStatus().string;
                if (!this.staffStartTimes.containsKey(staff)) {
                    this.staffStartTimes.put(staff, System.currentTimeMillis());
                }
                long timeDifference = (System.currentTimeMillis() - this.staffStartTimes.get(staff)) / 1000L;
                String timeString = this.formatTime(timeDifference);
                int currentWidth = (int)Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2 + " (" + timeString + ")");
                if (currentWidth <= this.maxWidth) continue;
                this.maxWidth = currentWidth;
            }
        }
    }

    private String formatTime(long timeDifference) {
        if (timeDifference >= 3600L) {
            int minutes = (int)(timeDifference / 3600L);
            int seconds = (int)(timeDifference % 3600L / 60L);
            return minutes + "h " + seconds + "m";
        }
        if (timeDifference >= 60L) {
            int minutes = (int)(timeDifference / 60L);
            int seconds = (int)(timeDifference % 60L);
            return minutes + "m " + seconds + "s";
        }
        return timeDifference + "s";
    }

    public void setStaffPlayers(List<Staff> staffPlayers) {
        this.staffPlayers = staffPlayers;
    }

    private void onSchedules(MatrixStack stack) {
        float posX = this.Schedules.getX();
        float posY = this.Schedules.getY();
        int headerHeight = 14;
        int padding = 5;
        this.Schedules.setHeight(this.SchedulesOffset + (float)headerHeight);
        float maxWidth = 0.0f;
        ZoneId moscowZone = ZoneId.of("Europe/Moscow");
        LocalDateTime now = LocalDateTime.now(moscowZone);
        for (int hour = 9; hour <= 1; hour += 2) {
            LocalDateTime scheduleTime = LocalDateTime.from(LocalTime.now().withHour(hour).withMinute(0).withSecond(0));
            String scheduleText = scheduleTime.format(DateTimeFormatter.ofPattern("HH:mm"));
            float targetWidth = Math.max(60.0f, 15.5f + maxWidth + (float)(padding * 2) + 5.0f);
            this.Schedules.setWidth(targetWidth);
            RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, 100.0f, 14.0f, 4.0f, new Color(30, 30, 30, 210).getRGB());
            RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
            Fonts.msSemiBold[14].drawCenteredString(stack, "Schedules", (double)(this.Schedules.getX() + 35.0f), (double)(posY + 3.5f), -1);
            Fonts.Nurik[16].drawString(stack, "C", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
            SmartScissor.push();
            SmartScissor.setFromComponentCoordinates(posX, posY, this.Schedules.getWidth(), this.Schedules.getHeight());
            int index = 0;
            RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY - 6.0f + (float)headerHeight + (float)padding + (float)index * this.offset, this.Schedules.getWidth(), 10.0f, 4.0f, new Color(30, 30, 30, 210).getRGB());
            Fonts.msSemiBold[12].drawString(stack, scheduleText, (double)(posX + (float)padding), (double)(posY - 1.8f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            float lineX = posX + this.Schedules.getWidth() - (float)padding - 8.0f;
            RenderUtil.Render2D.drawRect(lineX, posY + (float)headerHeight + (float)padding + (float)index * this.offset - 4.0f, 0.3f, 5.5f, new Color(200, 200, 200, 100).getRGB());
            ++index;
            SmartScissor.unset();
            SmartScissor.pop();
        }
    }

    private void onArmorRender(MatrixStack matrixStack) {
        float x = this.Armor.getX();
        float y = this.Armor.getY();
        int width2 = 100;
        int height2 = 79;
        RenderUtil.Render2D.drawRoundedRect(x, y + 45.0f, width2 - 30, height2 - 40, 3.0f, ColorUtil.rgba(30, 21, 39, 90));
        int posY = (int)y + 63;
        int posX = (int)x + 3;
        for (ItemStack itemStack : Minecraft.player.getArmorInventoryList()) {
            if (!itemStack.isEmpty()) {
                mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, posX, posY);
                int maxDamage = itemStack.getMaxDamage();
                if (maxDamage > 0) {
                    float damagePercentage = (float)itemStack.getDamage() * 100.0f / (float)maxDamage;
                    int red = (int)(255.0f * (damagePercentage / 100.0f));
                    int green = 255 - red;
                    int roundedPercentage = Math.round(100.0f - damagePercentage);
                    Fonts.gilroyBold[14].drawCenteredString(matrixStack, "" + roundedPercentage, (double)(posX + width2 - 92), (double)(posY - 11), ColorUtil.rgba(red, green, 0, 210));
                    RenderUtil.Render2D.drawRect(posX + width2 - 98, posY - 3, 12.0f, 0.5f, ColorUtil.rgba(200, 200, 200, 100));
                } else {
                    Fonts.gilroyBold[14].drawCenteredString(matrixStack, "null", (double)(posX + width2 - 92), (double)(posY - 11), -1);
                    RenderUtil.Render2D.drawRect(posX + width2 - 98, posY - 3, 12.0f, 0.5f, ColorUtil.rgba(200, 200, 200, 100));
                }
                posX += 16;
            }
            this.Armor.setWidth(width2);
            this.Armor.setHeight(height2);
        }
    }

    private void onPotionElementsRender(MatrixStack matrixStack) {
        float posX = this.potionStatus.getX();
        float posY = this.potionStatus.getY();
        int width2 = Minecraft.player.getActivePotionEffects().isEmpty() ? 80 : 98;

        System.out.println("Central square position: X=" + posX + ", Y=" + (posY - 20.0f));
        System.out.println("Left square position: X=" + (posX - 15.0f) + ", Y=" + posY);
        System.out.println("Right square position: X=" + (posX + width2 + 5.0f) + ", Y=" + posY);

        try {
            // Отображаем центральную полосу
            RenderUtil.Render2D.drawRoundedCorner(posX, posY - 20.0f, width2, 15.0f, 3.5f, new Color(50, 100, 255, 200).getRGB());

            // Отображаем левый квадрат
            RenderUtil.Render2D.drawRect(posX - 15.0f, posY, 10.0f, 10.0f, new Color(255, 0, 0, 255).getRGB());

            // Отображаем правый квадрат
            RenderUtil.Render2D.drawRect(posX + width2 + 5.0f, posY, 10.0f, 10.0f, new Color(0, 255, 0, 255).getRGB());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }



    private void onRenderTargetHUD(MatrixStack matrixStack) {
        float posX = this.targetHUD.getX();
        float posY = this.targetHUD.getY();
        this.targetHUD.setWidth(120.0f);
        this.targetHUD.setHeight(36.0f);
        this.target = this.getTarget(this.target);
        this.scale1 = this.targetHudAnimation.getOutput();
        if (this.scale1 == 0.0) {
            this.target = null;
        }
        if (this.target == null) {
            return;
        }
        int hp = (int) target.getHealth();
        if (mc.getCurrentServerData() != null && mc.world != null && mc.world.getScoreboard() != null) {
            Score score = mc.world.getScoreboard().getOrCreateScore(target.getScoreboardName(), mc.world.getScoreboard().getObjectiveInDisplaySlot(2));
            String serverIP = mc.getCurrentServerData().serverIP;
            if ((serverIP.contains("funtime") && target instanceof PlayerEntity) ||
                    serverIP.contains("reallyworld") ||
                    serverIP.contains("skytime") ||
                    serverIP.contains("local") ||
                    serverIP.contains("space-times"))
            {
                int scorePoints = score.getScorePoints();
                hp = scorePoints;
            }
        }
        String targetName = this.target.getName().getString();
        String substring = targetName.substring(0, Math.min(targetName.length(), 10));
        this.health = AnimationMath.fast(this.health, hp / this.target.getMaxHealth(), 5.0f);
        float round_degree = 7.0f;
        GlStateManager.pushMatrix();
        AnimationMath.sizeAnimation(posX + 50.0f, posY + 19.0f, this.scale1);
        int backgroundColor = ColorUtil.rgba(20, 20, 20, 255);
        RenderUtil.Render2D.drawShadow(posX, posY - 4.0f, 100.0f, this.targetHUD.getHeight(), (int)round_degree, ColorUtil.rgba(20, 20, 20, 150), ColorUtil.rgba(20, 20, 0, 190));
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 4.0f, 100.0f, this.targetHUD.getHeight(), round_degree, backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, 100.0, this.targetHUD.getHeight());
        RenderUtil.Render2D.drawRoundedRect(posX + 4.0f, posY, 28.0f, 28.0f, 6.0f, Color.BLACK.getRGB());
        if (target instanceof AbstractClientPlayerEntity) {
            StencilUtil.initStencilToWrite();
            RenderUtil.Render2D.drawRoundedRect(posX + 4.0f, posY, 28, 28, 3.0F, -1);
            StencilUtil.readStencilBuffer(1);
            RenderUtil.Render2D.drawFace(posX + 4.0f, posY, 8.0F, 8.0F, 8.0F, 8.0F, 28, 28, 64.0F, 64.0F, (AbstractClientPlayerEntity) this.target);
            StencilUtil.uninitStencilBuffer();
        }
        StyledFont medium = Fonts.msMedium[17];
        medium.drawString(matrixStack, substring, posX + 32.0f + 4.0f, posY + 2.0f, -1);
        Fonts.msSemiBold[12].drawString(matrixStack, "HP: " + hp * 5 + "%", posX + 32.0f + 4.0f, posY + 19.0f - 5.0f, -1);
        SmartScissor.unset();
        SmartScissor.pop();
        float currentHP = hp;
        if (currentHP >= 10.0f) {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(0, 128, 0, 255), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(0, 204, 0, 250), ColorUtil.rgba(0, 153, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(0, 128, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(0, 204, 0, 60), ColorUtil.rgba(0, 153, 0, 60));
        } else if (currentHP >= 5.0f) {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(62, 71, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(255, 255, 0, 250), ColorUtil.rgba(153, 153, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(62, 71, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(255, 255, 0, 60), ColorUtil.rgba(153, 153, 0, 60));
        } else {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(71, 0, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(102, 0, 0, 250), ColorUtil.rgba(204, 0, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(71, 0, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(102, 0, 0, 60), ColorUtil.rgba(204, 0, 0, 60));
        }
        this.drawItemStack(posX + 3.0F, posY - 8.0F - 5.5F, 10.0F);

        GlStateManager.popMatrix();
    }
ХАЫВХАХЫВ ЧТО ЗА ПИЗДЕЦ
 
Увидел то что никто не может спастить этот вырвеглазный HUD Nursultan на EXP 2.0 | Если худ на SS Говно - смотрите у себя потому что у меня другие шрифты!

Вот сливаю вам такой HUD Nursultan под базу Expensive 2.0:
Посмотреть вложение 292639

На самом деле сложнее всего было написать код на музыку, а так нет.
Иконки не с нурика потому что нужно установить шрифт (Я использовал другой потому что я буду переделывать HUD под свой чит)

Чтобы были те иконки установите nyrik.ttf по кнопке
Пожалуйста, авторизуйтесь для просмотра ссылки.
и напишите эти коды в expensive-master/src/wtf/expensive/font/Fonts.java:
На 21 строке: public static volatile StyledFont[] nyrik = new StyledFont[42];

На 62 строке:

for (int i = 8; i < 24;i++) {
nyrik = new StyledFont("nyrik.ttf", i, 0.0f, 0.0f, 0.0f, true, Lang.ENG_RU);
}

PS: Чтобы установить nyrik.ttf зайдите в expensive-master/src/assets/minecraft/expensive/font, если у вас вылетает повторите все заного.

Код на HUD:


Код:
Expand Collapse Copy
    private void watermark(MatrixStack stack) {
        Object[] objectArray = new Object[1];
        objectArray[0] = Math.hypot(Minecraft.player.getPosX() - Minecraft.player.prevPosX, Minecraft.player.getPosZ() - Minecraft.player.prevPosZ) * 20.0;
        double speed2 = (Double) objectArray[0];
        String text = speed2 == 0.0 ? "0.0" : String.format(Locale.ENGLISH, "%.2f", speed2).replace(',', '.');
        String user = ClientUtil.me == null ? "null" : ClientUtil.me.getName();
        StringBuilder titleText = new StringBuilder("");
        LocalTime time = LocalTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
        titleText.append(time.format(formatter));
        int var10000 = (int)Minecraft.player.getPosX();
        String cord = var10000 + " " + (int)Minecraft.player.getPosY() + " " + (int)Minecraft.player.getPosZ();
        float debugTPS = (int)Sunshine.getInstance().getTpsCalc().getTPS();
        int firstColor = ColorUtil.getColorStyle(0.0f);
        int secondColor = ColorUtil.getColorStyle(90.0f);
        if (this.gradienthud.get()) {
            RenderUtil.Render2D.drawGradientRound(5.0f, 5.2f, 45.0f, 12.0f, 3.4f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(54.5f, 4.8f, Fonts.msSemiBold[13].getWidth(user) + Fonts.msSemiBold[13].getWidth(titleText.toString()) + 78.0f, 12.3f, 3.3f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(5.0f, 20.5f, 22.5f + Fonts.msSemiBold[13].getWidth(cord), 12.0f, 3.0f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(32.0f + Fonts.msSemiBold[13].getWidth(cord), 20.5f, 38.2f + Fonts.msSemiBold[13].getWidth(text), 12.0f, 3.3f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
        }
        RenderUtil.Render2D.drawRoundedCorner(4.0f, 4.0f, 47.0f, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(53.5f, 4.0f, Fonts.msSemiBold[13].getWidth(user) + Fonts.msSemiBold[13].getWidth(titleText.toString()) + 80.0f, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(4.0f, 19.5f, 24.5f + Fonts.msSemiBold[13].getWidth(cord), 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(31.0f + Fonts.msSemiBold[13].getWidth(cord), 19.5f, 40.0f + Fonts.msSemiBold[13].getWidth(text), 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(74.0f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text), 19.5f, 30.0f + (float)debugTPS, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRect(20.5f, 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(70.5f + Fonts.msSemiBold[13].getWidth(user), 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(115.0f + Fonts.msSemiBold[13].getWidth(user), 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(45.0f + Fonts.msSemiBold[13].getWidth(cord), 22.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(20.0f, 22.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        Fonts.Nurik[19].drawString(stack, ClientUtil.gradient("S", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 8.0, 10.0, -1);
        Fonts.msSemiBold[13].drawString(stack, ClientUtil.gradient("Alpha", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 25.5, 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("W", ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(90.0f)), 58.0, 10.5, -1);
        Fonts.msSemiBold[13].drawString(stack, user, 67.5, 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("X", ColorUtil.getColorStyle(150.0f), ColorUtil.getColorStyle(120.0f)), (double)(73.5f + Fonts.msSemiBold[13].getWidth(user)), 10.5, -1);
        StyledFont var10 = Fonts.msSemiBold[13];
        Minecraft var10002 = mc;
        var10.drawString(stack, Minecraft.debugFPS + " Fps", (double)(84.9f + Fonts.msSemiBold[13].getWidth(user)), 10.0, -1);
        Fonts.msSemiBold[13].drawString(stack, titleText.toString(), (double)(128.5f + Fonts.msSemiBold[13].getWidth(user)), 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("V", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), (double)(118.0f + Fonts.msSemiBold[13].getWidth(user)), 10.5, -1);
        Fonts.msSemiBold[13].drawString(stack, text, (double)(50.5f + Fonts.msSemiBold[13].getWidth(cord)), 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.msSemiBold[13].drawString(stack, "BPS", (double)(53.0f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text)), 25.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("&#35", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), (double)(27.0f + Fonts.msSemiBold[13].getWidth(cord)), 25.5, -1);
        Fonts.msSemiBold[13].drawString(stack, cord, 24.0, 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("F", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 9.0, 25.5, -1);
        Fonts.msSemiBold[13].drawString(stack, "Tps " + debugTPS, (double)(87.3f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text)), 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("Q", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 77.0 + (double)Fonts.msSemiBold[13].getWidth(cord) + (double)Fonts.msSemiBold[13].getWidth(text), 25.5, -1);
    }


    private void updateFunctions() {
        for (Function function : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (function.category == Type.Render) continue;
            this.functions.add(function);
            this.functions.sort((f1, f2) -> Float.compare(Fonts.msSemiBold[13].getWidth(f2.name), Fonts.msSemiBold[13].getWidth(f1.name)));
        }
    }

    private void onKeyBindsRender(MatrixStack stack) {
        float posX = this.keyBinds.getX();
        float posY = this.keyBinds.getY();
        int headerHeight = 14;
        int padding = 5;
        int firstColor = ColorUtil.getColorStyle(0.0f);
        int secondColor = ColorUtil.getColorStyle(90.0f);
        this.activeModules = 0;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (f.bind == 0 || !f.state) continue;
            ++this.activeModules;
        }
        this.keyBinds.setHeight((float)this.activeModules * this.offset + (float)headerHeight);
        float maxWidth = 0.0f;
        float height2 = (float)this.activeModules * this.offset;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            String text;
            if (f.bind == 0 || !f.state || (text = ClientUtil.getKey(f.bind)) == null) continue;
            String bindText = text.toUpperCase();
            float bindWidth = Fonts.msSemiBold[12].getWidth(bindText);
            float nameWidth = Fonts.msSemiBold[12].getWidth(f.name);
            maxWidth = Math.max(maxWidth, bindWidth);
            maxWidth = Math.max(maxWidth, nameWidth);
        }
        float targetWidth = Math.max(60.0f, 15.5f + maxWidth + (float)(padding * 2) + 5.0f);
        this.widthAnime = AnimationMath.lerp(this.widthAnime, targetWidth, 10.5f);
        this.keyBinds.setWidth(this.widthAnime);
        if (this.gradienthud.get()) {
            RenderUtil.Render2D.drawGradientRound(posX + 1.0f, posY + -1.1f, this.keyBinds.getWidth() - 2.0f, 12.3f, 2.7f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
        }
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, this.keyBinds.getWidth(), 14.0f, 3.5f, new Color(24, 24, 24, 236).getRGB());
        RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        Fonts.babkatv[15].drawString(stack, "Hotkeys", (double)(posX + 19.5f), (double)(posY + 3.5f), new Color(255, 255, 255, 255).getRGB());
        Fonts.nursultan[16].drawString(stack, "C", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, this.keyBinds.getWidth(), this.keyBinds.getHeight());
        int index = 0;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            String text;
            if (f.bind == 0 || !f.state || (text = ClientUtil.getKey(f.bind)) == null) continue;
            String bindText = text.toUpperCase();
            float bindWidth = Fonts.babkatv[13].getWidth(bindText);
            StyledFont keyname = Fonts.babkatv[13];
            if (this.gradienthud.get()) {
                RenderUtil.Render2D.drawGradientRound(posX + 0.9f, posY - 5.2f + (float)headerHeight + (float)padding + (float)index * this.offset, this.keyBinds.getWidth() - 2.0f, 8.3f, 2.8f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            }
            RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY - 6.0f + (float)headerHeight + (float)padding + (float)index * this.offset, this.keyBinds.getWidth(), 10.0f, 3.5f, new Color(24, 24, 24, 236).getRGB());
            keyname.drawString(stack, f.name, (double)(posX + -2.0f + (float)padding), (double)(posY - 2.5f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            Fonts.babkatv[13].drawString(stack, bindText, (double)(posX + this.keyBinds.getWidth() - (float)padding - bindWidth + 1.5f), (double)(posY - 2.5f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            ++index;
        }
        SmartScissor.unset();
        SmartScissor.pop();
    }

    private void onStaffListRender(MatrixStack matrixStack) {
        float posX = this.staffListt1.getX();
        float posY = this.staffListt1.getY();
        int headerHeight = 14;
        float width2 = Math.max(this.nameWidth + 40.0f, 150.0f);
        int padding = 5;
        float offset = 10.5f;
        float height2 = (float)this.activeStaff * offset;
        this.hDynam = AnimationMath.fast(this.hDynam, height2, 100.0f);
        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width2, 100.0f);
        this.updateMaxWidth();
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, (float)(this.maxWidth + 10 + this.maxWidth1), 14.0f, 4.0f, new Color(30, 30, 30, 255).getRGB());
        Fonts.msSemiBold[14].drawCenteredString(matrixStack, "StaffList", (double)(posX + 35.5f), (double)(posY + 3.0f), -1);
        Fonts.Nurik[16].drawString(matrixStack, "Y", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
        RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 255).getRGB());
        int index = 0;
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, this.widthDynamic, (float)headerHeight + this.hDynam + (float)padding / 2.0f);
        if (!this.staffPlayers.isEmpty()) {
            this.staffStartTimes.keySet().retainAll(this.staffPlayers);
            for (Staff staff : this.staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status2 = staff.getStatus().string;
                if (this.gradienthud.get()) {
                    // empty if block
                }
                if (!this.staffStartTimes.containsKey(staff)) {
                    this.staffStartTimes.put(staff, System.currentTimeMillis());
                }
                long timeDifference = (System.currentTimeMillis() - this.staffStartTimes.get(staff)) / 1000L;
                String timeString = this.formatTime(timeDifference);
                RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY + (float)headerHeight + (float)padding + (float)index * offset - 6.0f, (float)(this.maxWidth + 10), 10.0f, 4.0f, new Color(30, 30, 30, 255).getRGB());
                Fonts.msSemiBold[12].drawString(matrixStack, prefix, (double)(posX + (float)padding - 3.0f), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), -1);
                Fonts.msSemiBold[12].drawString(matrixStack, name + " " + status2, (double)(posX + (float)padding + Fonts.gilroyBold[12].getWidth(prefix.getString() + "3")), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), -1);
                Fonts.msSemiBold[12].drawString(matrixStack, "    " + timeString + " ", (double)(posX + (float)padding + Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2)), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), new Color(255, 255, 255).getRGB());
                this.nameWidth = Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2 + " (" + timeString + ")");
                ++index;
            }
        } else {
            this.nameWidth = 0.0f;
        }
        SmartScissor.unset();
        SmartScissor.pop();
        this.activeStaff = index;
        this.staffListt1.setWidth(this.widthDynamic);
        this.staffListt1.setHeight(this.hDynam + (float)headerHeight);
    }

    private void updateMaxWidth() {
        this.maxWidth = 60;
        if (!this.staffPlayers.isEmpty()) {
            for (Staff staff : this.staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status2 = staff.getStatus().string;
                if (!this.staffStartTimes.containsKey(staff)) {
                    this.staffStartTimes.put(staff, System.currentTimeMillis());
                }
                long timeDifference = (System.currentTimeMillis() - this.staffStartTimes.get(staff)) / 1000L;
                String timeString = this.formatTime(timeDifference);
                int currentWidth = (int)Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2 + " (" + timeString + ")");
                if (currentWidth <= this.maxWidth) continue;
                this.maxWidth = currentWidth;
            }
        }
    }

    private String formatTime(long timeDifference) {
        if (timeDifference >= 3600L) {
            int minutes = (int)(timeDifference / 3600L);
            int seconds = (int)(timeDifference % 3600L / 60L);
            return minutes + "h " + seconds + "m";
        }
        if (timeDifference >= 60L) {
            int minutes = (int)(timeDifference / 60L);
            int seconds = (int)(timeDifference % 60L);
            return minutes + "m " + seconds + "s";
        }
        return timeDifference + "s";
    }

    public void setStaffPlayers(List<Staff> staffPlayers) {
        this.staffPlayers = staffPlayers;
    }

    private void onSchedules(MatrixStack stack) {
        float posX = this.Schedules.getX();
        float posY = this.Schedules.getY();
        int headerHeight = 14;
        int padding = 5;
        this.Schedules.setHeight(this.SchedulesOffset + (float)headerHeight);
        float maxWidth = 0.0f;
        ZoneId moscowZone = ZoneId.of("Europe/Moscow");
        LocalDateTime now = LocalDateTime.now(moscowZone);
        for (int hour = 9; hour <= 1; hour += 2) {
            LocalDateTime scheduleTime = LocalDateTime.from(LocalTime.now().withHour(hour).withMinute(0).withSecond(0));
            String scheduleText = scheduleTime.format(DateTimeFormatter.ofPattern("HH:mm"));
            float targetWidth = Math.max(60.0f, 15.5f + maxWidth + (float)(padding * 2) + 5.0f);
            this.Schedules.setWidth(targetWidth);
            RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, 100.0f, 14.0f, 4.0f, new Color(30, 30, 30, 210).getRGB());
            RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
            Fonts.msSemiBold[14].drawCenteredString(stack, "Schedules", (double)(this.Schedules.getX() + 35.0f), (double)(posY + 3.5f), -1);
            Fonts.Nurik[16].drawString(stack, "C", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
            SmartScissor.push();
            SmartScissor.setFromComponentCoordinates(posX, posY, this.Schedules.getWidth(), this.Schedules.getHeight());
            int index = 0;
            RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY - 6.0f + (float)headerHeight + (float)padding + (float)index * this.offset, this.Schedules.getWidth(), 10.0f, 4.0f, new Color(30, 30, 30, 210).getRGB());
            Fonts.msSemiBold[12].drawString(stack, scheduleText, (double)(posX + (float)padding), (double)(posY - 1.8f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            float lineX = posX + this.Schedules.getWidth() - (float)padding - 8.0f;
            RenderUtil.Render2D.drawRect(lineX, posY + (float)headerHeight + (float)padding + (float)index * this.offset - 4.0f, 0.3f, 5.5f, new Color(200, 200, 200, 100).getRGB());
            ++index;
            SmartScissor.unset();
            SmartScissor.pop();
        }
    }

    private void onArmorRender(MatrixStack matrixStack) {
        float x = this.Armor.getX();
        float y = this.Armor.getY();
        int width2 = 100;
        int height2 = 79;
        RenderUtil.Render2D.drawRoundedRect(x, y + 45.0f, width2 - 30, height2 - 40, 3.0f, ColorUtil.rgba(30, 21, 39, 90));
        int posY = (int)y + 63;
        int posX = (int)x + 3;
        for (ItemStack itemStack : Minecraft.player.getArmorInventoryList()) {
            if (!itemStack.isEmpty()) {
                mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, posX, posY);
                int maxDamage = itemStack.getMaxDamage();
                if (maxDamage > 0) {
                    float damagePercentage = (float)itemStack.getDamage() * 100.0f / (float)maxDamage;
                    int red = (int)(255.0f * (damagePercentage / 100.0f));
                    int green = 255 - red;
                    int roundedPercentage = Math.round(100.0f - damagePercentage);
                    Fonts.gilroyBold[14].drawCenteredString(matrixStack, "" + roundedPercentage, (double)(posX + width2 - 92), (double)(posY - 11), ColorUtil.rgba(red, green, 0, 210));
                    RenderUtil.Render2D.drawRect(posX + width2 - 98, posY - 3, 12.0f, 0.5f, ColorUtil.rgba(200, 200, 200, 100));
                } else {
                    Fonts.gilroyBold[14].drawCenteredString(matrixStack, "null", (double)(posX + width2 - 92), (double)(posY - 11), -1);
                    RenderUtil.Render2D.drawRect(posX + width2 - 98, posY - 3, 12.0f, 0.5f, ColorUtil.rgba(200, 200, 200, 100));
                }
                posX += 16;
            }
            this.Armor.setWidth(width2);
            this.Armor.setHeight(height2);
        }
    }

    private void onPotionElementsRender(MatrixStack matrixStack) {
        float posX = this.potionStatus.getX();
        float posY = this.potionStatus.getY();
        int width2 = Minecraft.player.getActivePotionEffects().isEmpty() ? 80 : 98;

        System.out.println("Central square position: X=" + posX + ", Y=" + (posY - 20.0f));
        System.out.println("Left square position: X=" + (posX - 15.0f) + ", Y=" + posY);
        System.out.println("Right square position: X=" + (posX + width2 + 5.0f) + ", Y=" + posY);

        try {
            // Отображаем центральную полосу
            RenderUtil.Render2D.drawRoundedCorner(posX, posY - 20.0f, width2, 15.0f, 3.5f, new Color(50, 100, 255, 200).getRGB());

            // Отображаем левый квадрат
            RenderUtil.Render2D.drawRect(posX - 15.0f, posY, 10.0f, 10.0f, new Color(255, 0, 0, 255).getRGB());

            // Отображаем правый квадрат
            RenderUtil.Render2D.drawRect(posX + width2 + 5.0f, posY, 10.0f, 10.0f, new Color(0, 255, 0, 255).getRGB());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }



    private void onRenderTargetHUD(MatrixStack matrixStack) {
        float posX = this.targetHUD.getX();
        float posY = this.targetHUD.getY();
        this.targetHUD.setWidth(120.0f);
        this.targetHUD.setHeight(36.0f);
        this.target = this.getTarget(this.target);
        this.scale1 = this.targetHudAnimation.getOutput();
        if (this.scale1 == 0.0) {
            this.target = null;
        }
        if (this.target == null) {
            return;
        }
        int hp = (int) target.getHealth();
        if (mc.getCurrentServerData() != null && mc.world != null && mc.world.getScoreboard() != null) {
            Score score = mc.world.getScoreboard().getOrCreateScore(target.getScoreboardName(), mc.world.getScoreboard().getObjectiveInDisplaySlot(2));
            String serverIP = mc.getCurrentServerData().serverIP;
            if ((serverIP.contains("funtime") && target instanceof PlayerEntity) ||
                    serverIP.contains("reallyworld") ||
                    serverIP.contains("skytime") ||
                    serverIP.contains("local") ||
                    serverIP.contains("space-times"))
            {
                int scorePoints = score.getScorePoints();
                hp = scorePoints;
            }
        }
        String targetName = this.target.getName().getString();
        String substring = targetName.substring(0, Math.min(targetName.length(), 10));
        this.health = AnimationMath.fast(this.health, hp / this.target.getMaxHealth(), 5.0f);
        float round_degree = 7.0f;
        GlStateManager.pushMatrix();
        AnimationMath.sizeAnimation(posX + 50.0f, posY + 19.0f, this.scale1);
        int backgroundColor = ColorUtil.rgba(20, 20, 20, 255);
        RenderUtil.Render2D.drawShadow(posX, posY - 4.0f, 100.0f, this.targetHUD.getHeight(), (int)round_degree, ColorUtil.rgba(20, 20, 20, 150), ColorUtil.rgba(20, 20, 0, 190));
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 4.0f, 100.0f, this.targetHUD.getHeight(), round_degree, backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, 100.0, this.targetHUD.getHeight());
        RenderUtil.Render2D.drawRoundedRect(posX + 4.0f, posY, 28.0f, 28.0f, 6.0f, Color.BLACK.getRGB());
        if (target instanceof AbstractClientPlayerEntity) {
            StencilUtil.initStencilToWrite();
            RenderUtil.Render2D.drawRoundedRect(posX + 4.0f, posY, 28, 28, 3.0F, -1);
            StencilUtil.readStencilBuffer(1);
            RenderUtil.Render2D.drawFace(posX + 4.0f, posY, 8.0F, 8.0F, 8.0F, 8.0F, 28, 28, 64.0F, 64.0F, (AbstractClientPlayerEntity) this.target);
            StencilUtil.uninitStencilBuffer();
        }
        StyledFont medium = Fonts.msMedium[17];
        medium.drawString(matrixStack, substring, posX + 32.0f + 4.0f, posY + 2.0f, -1);
        Fonts.msSemiBold[12].drawString(matrixStack, "HP: " + hp * 5 + "%", posX + 32.0f + 4.0f, posY + 19.0f - 5.0f, -1);
        SmartScissor.unset();
        SmartScissor.pop();
        float currentHP = hp;
        if (currentHP >= 10.0f) {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(0, 128, 0, 255), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(0, 204, 0, 250), ColorUtil.rgba(0, 153, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(0, 128, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(0, 204, 0, 60), ColorUtil.rgba(0, 153, 0, 60));
        } else if (currentHP >= 5.0f) {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(62, 71, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(255, 255, 0, 250), ColorUtil.rgba(153, 153, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(62, 71, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(255, 255, 0, 60), ColorUtil.rgba(153, 153, 0, 60));
        } else {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(71, 0, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(102, 0, 0, 250), ColorUtil.rgba(204, 0, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(71, 0, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(102, 0, 0, 60), ColorUtil.rgba(204, 0, 0, 60));
        }
        this.drawItemStack(posX + 3.0F, posY - 8.0F - 5.5F, 10.0F);

        GlStateManager.popMatrix();
    }
у альфы не такое закругления,+ты не дабавил блюра,и у тебя не те иконки
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Увидел то что никто не может спастить этот вырвеглазный HUD Nursultan на EXP 2.0 | Если худ на SS Говно - смотрите у себя потому что у меня другие шрифты!

Вот сливаю вам такой HUD Nursultan под базу Expensive 2.0:
Посмотреть вложение 292639

На самом деле сложнее всего было написать код на музыку, а так нет.
Иконки не с нурика потому что нужно установить шрифт (Я использовал другой потому что я буду переделывать HUD под свой чит)

Чтобы были те иконки установите nyrik.ttf по кнопке
Пожалуйста, авторизуйтесь для просмотра ссылки.
и напишите эти коды в expensive-master/src/wtf/expensive/font/Fonts.java:
На 21 строке: public static volatile StyledFont[] nyrik = new StyledFont[42];

На 62 строке:

for (int i = 8; i < 24;i++) {
nyrik = new StyledFont("nyrik.ttf", i, 0.0f, 0.0f, 0.0f, true, Lang.ENG_RU);
}

PS: Чтобы установить nyrik.ttf зайдите в expensive-master/src/assets/minecraft/expensive/font, если у вас вылетает повторите все заного.

Код на HUD:


Код:
Expand Collapse Copy
    private void watermark(MatrixStack stack) {
        Object[] objectArray = new Object[1];
        objectArray[0] = Math.hypot(Minecraft.player.getPosX() - Minecraft.player.prevPosX, Minecraft.player.getPosZ() - Minecraft.player.prevPosZ) * 20.0;
        double speed2 = (Double) objectArray[0];
        String text = speed2 == 0.0 ? "0.0" : String.format(Locale.ENGLISH, "%.2f", speed2).replace(',', '.');
        String user = ClientUtil.me == null ? "null" : ClientUtil.me.getName();
        StringBuilder titleText = new StringBuilder("");
        LocalTime time = LocalTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
        titleText.append(time.format(formatter));
        int var10000 = (int)Minecraft.player.getPosX();
        String cord = var10000 + " " + (int)Minecraft.player.getPosY() + " " + (int)Minecraft.player.getPosZ();
        float debugTPS = (int)Sunshine.getInstance().getTpsCalc().getTPS();
        int firstColor = ColorUtil.getColorStyle(0.0f);
        int secondColor = ColorUtil.getColorStyle(90.0f);
        if (this.gradienthud.get()) {
            RenderUtil.Render2D.drawGradientRound(5.0f, 5.2f, 45.0f, 12.0f, 3.4f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(54.5f, 4.8f, Fonts.msSemiBold[13].getWidth(user) + Fonts.msSemiBold[13].getWidth(titleText.toString()) + 78.0f, 12.3f, 3.3f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(5.0f, 20.5f, 22.5f + Fonts.msSemiBold[13].getWidth(cord), 12.0f, 3.0f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            RenderUtil.Render2D.drawGradientRound(32.0f + Fonts.msSemiBold[13].getWidth(cord), 20.5f, 38.2f + Fonts.msSemiBold[13].getWidth(text), 12.0f, 3.3f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
        }
        RenderUtil.Render2D.drawRoundedCorner(4.0f, 4.0f, 47.0f, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(53.5f, 4.0f, Fonts.msSemiBold[13].getWidth(user) + Fonts.msSemiBold[13].getWidth(titleText.toString()) + 80.0f, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(4.0f, 19.5f, 24.5f + Fonts.msSemiBold[13].getWidth(cord), 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(31.0f + Fonts.msSemiBold[13].getWidth(cord), 19.5f, 40.0f + Fonts.msSemiBold[13].getWidth(text), 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRoundedCorner(74.0f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text), 19.5f, 30.0f + (float)debugTPS, 14.0f, 4.0f, new Color(24, 24, 24, 240).getRGB());
        RenderUtil.Render2D.drawRect(20.5f, 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(70.5f + Fonts.msSemiBold[13].getWidth(user), 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(115.0f + Fonts.msSemiBold[13].getWidth(user), 7.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(45.0f + Fonts.msSemiBold[13].getWidth(cord), 22.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        RenderUtil.Render2D.drawRect(20.0f, 22.5f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        Fonts.Nurik[19].drawString(stack, ClientUtil.gradient("S", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 8.0, 10.0, -1);
        Fonts.msSemiBold[13].drawString(stack, ClientUtil.gradient("Alpha", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 25.5, 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("W", ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(90.0f)), 58.0, 10.5, -1);
        Fonts.msSemiBold[13].drawString(stack, user, 67.5, 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("X", ColorUtil.getColorStyle(150.0f), ColorUtil.getColorStyle(120.0f)), (double)(73.5f + Fonts.msSemiBold[13].getWidth(user)), 10.5, -1);
        StyledFont var10 = Fonts.msSemiBold[13];
        Minecraft var10002 = mc;
        var10.drawString(stack, Minecraft.debugFPS + " Fps", (double)(84.9f + Fonts.msSemiBold[13].getWidth(user)), 10.0, -1);
        Fonts.msSemiBold[13].drawString(stack, titleText.toString(), (double)(128.5f + Fonts.msSemiBold[13].getWidth(user)), 10.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("V", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), (double)(118.0f + Fonts.msSemiBold[13].getWidth(user)), 10.5, -1);
        Fonts.msSemiBold[13].drawString(stack, text, (double)(50.5f + Fonts.msSemiBold[13].getWidth(cord)), 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.msSemiBold[13].drawString(stack, "BPS", (double)(53.0f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text)), 25.0, -1);
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("&#35", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), (double)(27.0f + Fonts.msSemiBold[13].getWidth(cord)), 25.5, -1);
        Fonts.msSemiBold[13].drawString(stack, cord, 24.0, 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("F", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 9.0, 25.5, -1);
        Fonts.msSemiBold[13].drawString(stack, "Tps " + debugTPS, (double)(87.3f + Fonts.msSemiBold[13].getWidth(cord) + Fonts.msSemiBold[13].getWidth(text)), 25.0, new Color(255, 255, 255, 255).getRGB());
        Fonts.Nurik[14].drawString(stack, ClientUtil.gradient("Q", ColorUtil.getColorStyle(90.0f), ColorUtil.getColorStyle(180.0f)), 77.0 + (double)Fonts.msSemiBold[13].getWidth(cord) + (double)Fonts.msSemiBold[13].getWidth(text), 25.5, -1);
    }


    private void updateFunctions() {
        for (Function function : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (function.category == Type.Render) continue;
            this.functions.add(function);
            this.functions.sort((f1, f2) -> Float.compare(Fonts.msSemiBold[13].getWidth(f2.name), Fonts.msSemiBold[13].getWidth(f1.name)));
        }
    }

    private void onKeyBindsRender(MatrixStack stack) {
        float posX = this.keyBinds.getX();
        float posY = this.keyBinds.getY();
        int headerHeight = 14;
        int padding = 5;
        int firstColor = ColorUtil.getColorStyle(0.0f);
        int secondColor = ColorUtil.getColorStyle(90.0f);
        this.activeModules = 0;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            if (f.bind == 0 || !f.state) continue;
            ++this.activeModules;
        }
        this.keyBinds.setHeight((float)this.activeModules * this.offset + (float)headerHeight);
        float maxWidth = 0.0f;
        float height2 = (float)this.activeModules * this.offset;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            String text;
            if (f.bind == 0 || !f.state || (text = ClientUtil.getKey(f.bind)) == null) continue;
            String bindText = text.toUpperCase();
            float bindWidth = Fonts.msSemiBold[12].getWidth(bindText);
            float nameWidth = Fonts.msSemiBold[12].getWidth(f.name);
            maxWidth = Math.max(maxWidth, bindWidth);
            maxWidth = Math.max(maxWidth, nameWidth);
        }
        float targetWidth = Math.max(60.0f, 15.5f + maxWidth + (float)(padding * 2) + 5.0f);
        this.widthAnime = AnimationMath.lerp(this.widthAnime, targetWidth, 10.5f);
        this.keyBinds.setWidth(this.widthAnime);
        if (this.gradienthud.get()) {
            RenderUtil.Render2D.drawGradientRound(posX + 1.0f, posY + -1.1f, this.keyBinds.getWidth() - 2.0f, 12.3f, 2.7f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
        }
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, this.keyBinds.getWidth(), 14.0f, 3.5f, new Color(24, 24, 24, 236).getRGB());
        RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
        Fonts.babkatv[15].drawString(stack, "Hotkeys", (double)(posX + 19.5f), (double)(posY + 3.5f), new Color(255, 255, 255, 255).getRGB());
        Fonts.nursultan[16].drawString(stack, "C", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, this.keyBinds.getWidth(), this.keyBinds.getHeight());
        int index = 0;
        for (Function f : Managment.FUNCTION_MANAGER.getFunctions()) {
            String text;
            if (f.bind == 0 || !f.state || (text = ClientUtil.getKey(f.bind)) == null) continue;
            String bindText = text.toUpperCase();
            float bindWidth = Fonts.babkatv[13].getWidth(bindText);
            StyledFont keyname = Fonts.babkatv[13];
            if (this.gradienthud.get()) {
                RenderUtil.Render2D.drawGradientRound(posX + 0.9f, posY - 5.2f + (float)headerHeight + (float)padding + (float)index * this.offset, this.keyBinds.getWidth() - 2.0f, 8.3f, 2.8f, firstColor, secondColor, ColorUtil.getColorStyle(180.0f), ColorUtil.getColorStyle(270.0f));
            }
            RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY - 6.0f + (float)headerHeight + (float)padding + (float)index * this.offset, this.keyBinds.getWidth(), 10.0f, 3.5f, new Color(24, 24, 24, 236).getRGB());
            keyname.drawString(stack, f.name, (double)(posX + -2.0f + (float)padding), (double)(posY - 2.5f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            Fonts.babkatv[13].drawString(stack, bindText, (double)(posX + this.keyBinds.getWidth() - (float)padding - bindWidth + 1.5f), (double)(posY - 2.5f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            ++index;
        }
        SmartScissor.unset();
        SmartScissor.pop();
    }

    private void onStaffListRender(MatrixStack matrixStack) {
        float posX = this.staffListt1.getX();
        float posY = this.staffListt1.getY();
        int headerHeight = 14;
        float width2 = Math.max(this.nameWidth + 40.0f, 150.0f);
        int padding = 5;
        float offset = 10.5f;
        float height2 = (float)this.activeStaff * offset;
        this.hDynam = AnimationMath.fast(this.hDynam, height2, 100.0f);
        this.widthDynamic = AnimationMath.fast(this.widthDynamic, width2, 100.0f);
        this.updateMaxWidth();
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, (float)(this.maxWidth + 10 + this.maxWidth1), 14.0f, 4.0f, new Color(30, 30, 30, 255).getRGB());
        Fonts.msSemiBold[14].drawCenteredString(matrixStack, "StaffList", (double)(posX + 35.5f), (double)(posY + 3.0f), -1);
        Fonts.Nurik[16].drawString(matrixStack, "Y", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
        RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 255).getRGB());
        int index = 0;
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, this.widthDynamic, (float)headerHeight + this.hDynam + (float)padding / 2.0f);
        if (!this.staffPlayers.isEmpty()) {
            this.staffStartTimes.keySet().retainAll(this.staffPlayers);
            for (Staff staff : this.staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status2 = staff.getStatus().string;
                if (this.gradienthud.get()) {
                    // empty if block
                }
                if (!this.staffStartTimes.containsKey(staff)) {
                    this.staffStartTimes.put(staff, System.currentTimeMillis());
                }
                long timeDifference = (System.currentTimeMillis() - this.staffStartTimes.get(staff)) / 1000L;
                String timeString = this.formatTime(timeDifference);
                RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY + (float)headerHeight + (float)padding + (float)index * offset - 6.0f, (float)(this.maxWidth + 10), 10.0f, 4.0f, new Color(30, 30, 30, 255).getRGB());
                Fonts.msSemiBold[12].drawString(matrixStack, prefix, (double)(posX + (float)padding - 3.0f), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), -1);
                Fonts.msSemiBold[12].drawString(matrixStack, name + " " + status2, (double)(posX + (float)padding + Fonts.gilroyBold[12].getWidth(prefix.getString() + "3")), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), -1);
                Fonts.msSemiBold[12].drawString(matrixStack, "    " + timeString + " ", (double)(posX + (float)padding + Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2)), (double)(posY + (float)headerHeight + (float)padding + (float)index * offset - 2.0f), new Color(255, 255, 255).getRGB());
                this.nameWidth = Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2 + " (" + timeString + ")");
                ++index;
            }
        } else {
            this.nameWidth = 0.0f;
        }
        SmartScissor.unset();
        SmartScissor.pop();
        this.activeStaff = index;
        this.staffListt1.setWidth(this.widthDynamic);
        this.staffListt1.setHeight(this.hDynam + (float)headerHeight);
    }

    private void updateMaxWidth() {
        this.maxWidth = 60;
        if (!this.staffPlayers.isEmpty()) {
            for (Staff staff : this.staffPlayers) {
                String name = staff.getName();
                ITextComponent prefix = staff.getPrefix();
                String status2 = staff.getStatus().string;
                if (!this.staffStartTimes.containsKey(staff)) {
                    this.staffStartTimes.put(staff, System.currentTimeMillis());
                }
                long timeDifference = (System.currentTimeMillis() - this.staffStartTimes.get(staff)) / 1000L;
                String timeString = this.formatTime(timeDifference);
                int currentWidth = (int)Fonts.msSemiBold[12].getWidth(prefix.getString() + name + " " + status2 + " (" + timeString + ")");
                if (currentWidth <= this.maxWidth) continue;
                this.maxWidth = currentWidth;
            }
        }
    }

    private String formatTime(long timeDifference) {
        if (timeDifference >= 3600L) {
            int minutes = (int)(timeDifference / 3600L);
            int seconds = (int)(timeDifference % 3600L / 60L);
            return minutes + "h " + seconds + "m";
        }
        if (timeDifference >= 60L) {
            int minutes = (int)(timeDifference / 60L);
            int seconds = (int)(timeDifference % 60L);
            return minutes + "m " + seconds + "s";
        }
        return timeDifference + "s";
    }

    public void setStaffPlayers(List<Staff> staffPlayers) {
        this.staffPlayers = staffPlayers;
    }

    private void onSchedules(MatrixStack stack) {
        float posX = this.Schedules.getX();
        float posY = this.Schedules.getY();
        int headerHeight = 14;
        int padding = 5;
        this.Schedules.setHeight(this.SchedulesOffset + (float)headerHeight);
        float maxWidth = 0.0f;
        ZoneId moscowZone = ZoneId.of("Europe/Moscow");
        LocalDateTime now = LocalDateTime.now(moscowZone);
        for (int hour = 9; hour <= 1; hour += 2) {
            LocalDateTime scheduleTime = LocalDateTime.from(LocalTime.now().withHour(hour).withMinute(0).withSecond(0));
            String scheduleText = scheduleTime.format(DateTimeFormatter.ofPattern("HH:mm"));
            float targetWidth = Math.max(60.0f, 15.5f + maxWidth + (float)(padding * 2) + 5.0f);
            this.Schedules.setWidth(targetWidth);
            RenderUtil.Render2D.drawRoundedCorner(posX, posY - 2.0f, 100.0f, 14.0f, 4.0f, new Color(30, 30, 30, 210).getRGB());
            RenderUtil.Render2D.drawRect(posX + 16.0f, posY + 1.0f, 0.3f, 7.5f, new Color(200, 200, 200, 100).getRGB());
            Fonts.msSemiBold[14].drawCenteredString(stack, "Schedules", (double)(this.Schedules.getX() + 35.0f), (double)(posY + 3.5f), -1);
            Fonts.Nurik[16].drawString(stack, "C", (double)(posX + 5.0f), (double)(posY + 4.0f), -1);
            SmartScissor.push();
            SmartScissor.setFromComponentCoordinates(posX, posY, this.Schedules.getWidth(), this.Schedules.getHeight());
            int index = 0;
            RenderUtil.Render2D.drawRoundedCorner(posX + (float)padding - 5.0f, posY - 6.0f + (float)headerHeight + (float)padding + (float)index * this.offset, this.Schedules.getWidth(), 10.0f, 4.0f, new Color(30, 30, 30, 210).getRGB());
            Fonts.msSemiBold[12].drawString(stack, scheduleText, (double)(posX + (float)padding), (double)(posY - 1.8f + (float)headerHeight + (float)padding + (float)index * this.offset), -1);
            float lineX = posX + this.Schedules.getWidth() - (float)padding - 8.0f;
            RenderUtil.Render2D.drawRect(lineX, posY + (float)headerHeight + (float)padding + (float)index * this.offset - 4.0f, 0.3f, 5.5f, new Color(200, 200, 200, 100).getRGB());
            ++index;
            SmartScissor.unset();
            SmartScissor.pop();
        }
    }

    private void onArmorRender(MatrixStack matrixStack) {
        float x = this.Armor.getX();
        float y = this.Armor.getY();
        int width2 = 100;
        int height2 = 79;
        RenderUtil.Render2D.drawRoundedRect(x, y + 45.0f, width2 - 30, height2 - 40, 3.0f, ColorUtil.rgba(30, 21, 39, 90));
        int posY = (int)y + 63;
        int posX = (int)x + 3;
        for (ItemStack itemStack : Minecraft.player.getArmorInventoryList()) {
            if (!itemStack.isEmpty()) {
                mc.getItemRenderer().renderItemAndEffectIntoGUI(itemStack, posX, posY);
                int maxDamage = itemStack.getMaxDamage();
                if (maxDamage > 0) {
                    float damagePercentage = (float)itemStack.getDamage() * 100.0f / (float)maxDamage;
                    int red = (int)(255.0f * (damagePercentage / 100.0f));
                    int green = 255 - red;
                    int roundedPercentage = Math.round(100.0f - damagePercentage);
                    Fonts.gilroyBold[14].drawCenteredString(matrixStack, "" + roundedPercentage, (double)(posX + width2 - 92), (double)(posY - 11), ColorUtil.rgba(red, green, 0, 210));
                    RenderUtil.Render2D.drawRect(posX + width2 - 98, posY - 3, 12.0f, 0.5f, ColorUtil.rgba(200, 200, 200, 100));
                } else {
                    Fonts.gilroyBold[14].drawCenteredString(matrixStack, "null", (double)(posX + width2 - 92), (double)(posY - 11), -1);
                    RenderUtil.Render2D.drawRect(posX + width2 - 98, posY - 3, 12.0f, 0.5f, ColorUtil.rgba(200, 200, 200, 100));
                }
                posX += 16;
            }
            this.Armor.setWidth(width2);
            this.Armor.setHeight(height2);
        }
    }

    private void onPotionElementsRender(MatrixStack matrixStack) {
        float posX = this.potionStatus.getX();
        float posY = this.potionStatus.getY();
        int width2 = Minecraft.player.getActivePotionEffects().isEmpty() ? 80 : 98;

        System.out.println("Central square position: X=" + posX + ", Y=" + (posY - 20.0f));
        System.out.println("Left square position: X=" + (posX - 15.0f) + ", Y=" + posY);
        System.out.println("Right square position: X=" + (posX + width2 + 5.0f) + ", Y=" + posY);

        try {
            // Отображаем центральную полосу
            RenderUtil.Render2D.drawRoundedCorner(posX, posY - 20.0f, width2, 15.0f, 3.5f, new Color(50, 100, 255, 200).getRGB());

            // Отображаем левый квадрат
            RenderUtil.Render2D.drawRect(posX - 15.0f, posY, 10.0f, 10.0f, new Color(255, 0, 0, 255).getRGB());

            // Отображаем правый квадрат
            RenderUtil.Render2D.drawRect(posX + width2 + 5.0f, posY, 10.0f, 10.0f, new Color(0, 255, 0, 255).getRGB());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }



    private void onRenderTargetHUD(MatrixStack matrixStack) {
        float posX = this.targetHUD.getX();
        float posY = this.targetHUD.getY();
        this.targetHUD.setWidth(120.0f);
        this.targetHUD.setHeight(36.0f);
        this.target = this.getTarget(this.target);
        this.scale1 = this.targetHudAnimation.getOutput();
        if (this.scale1 == 0.0) {
            this.target = null;
        }
        if (this.target == null) {
            return;
        }
        int hp = (int) target.getHealth();
        if (mc.getCurrentServerData() != null && mc.world != null && mc.world.getScoreboard() != null) {
            Score score = mc.world.getScoreboard().getOrCreateScore(target.getScoreboardName(), mc.world.getScoreboard().getObjectiveInDisplaySlot(2));
            String serverIP = mc.getCurrentServerData().serverIP;
            if ((serverIP.contains("funtime") && target instanceof PlayerEntity) ||
                    serverIP.contains("reallyworld") ||
                    serverIP.contains("skytime") ||
                    serverIP.contains("local") ||
                    serverIP.contains("space-times"))
            {
                int scorePoints = score.getScorePoints();
                hp = scorePoints;
            }
        }
        String targetName = this.target.getName().getString();
        String substring = targetName.substring(0, Math.min(targetName.length(), 10));
        this.health = AnimationMath.fast(this.health, hp / this.target.getMaxHealth(), 5.0f);
        float round_degree = 7.0f;
        GlStateManager.pushMatrix();
        AnimationMath.sizeAnimation(posX + 50.0f, posY + 19.0f, this.scale1);
        int backgroundColor = ColorUtil.rgba(20, 20, 20, 255);
        RenderUtil.Render2D.drawShadow(posX, posY - 4.0f, 100.0f, this.targetHUD.getHeight(), (int)round_degree, ColorUtil.rgba(20, 20, 20, 150), ColorUtil.rgba(20, 20, 0, 190));
        RenderUtil.Render2D.drawRoundedCorner(posX, posY - 4.0f, 100.0f, this.targetHUD.getHeight(), round_degree, backgroundColor);
        SmartScissor.push();
        SmartScissor.setFromComponentCoordinates(posX, posY, 100.0, this.targetHUD.getHeight());
        RenderUtil.Render2D.drawRoundedRect(posX + 4.0f, posY, 28.0f, 28.0f, 6.0f, Color.BLACK.getRGB());
        if (target instanceof AbstractClientPlayerEntity) {
            StencilUtil.initStencilToWrite();
            RenderUtil.Render2D.drawRoundedRect(posX + 4.0f, posY, 28, 28, 3.0F, -1);
            StencilUtil.readStencilBuffer(1);
            RenderUtil.Render2D.drawFace(posX + 4.0f, posY, 8.0F, 8.0F, 8.0F, 8.0F, 28, 28, 64.0F, 64.0F, (AbstractClientPlayerEntity) this.target);
            StencilUtil.uninitStencilBuffer();
        }
        StyledFont medium = Fonts.msMedium[17];
        medium.drawString(matrixStack, substring, posX + 32.0f + 4.0f, posY + 2.0f, -1);
        Fonts.msSemiBold[12].drawString(matrixStack, "HP: " + hp * 5 + "%", posX + 32.0f + 4.0f, posY + 19.0f - 5.0f, -1);
        SmartScissor.unset();
        SmartScissor.pop();
        float currentHP = hp;
        if (currentHP >= 10.0f) {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(0, 128, 0, 255), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(0, 204, 0, 250), ColorUtil.rgba(0, 153, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(0, 128, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(0, 204, 0, 60), ColorUtil.rgba(0, 153, 0, 60));
        } else if (currentHP >= 5.0f) {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(62, 71, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(255, 255, 0, 250), ColorUtil.rgba(153, 153, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(62, 71, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(255, 255, 0, 60), ColorUtil.rgba(153, 153, 0, 60));
        } else {
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f * this.health, 8.0f, 3, ColorUtil.rgba(71, 0, 0, 250), ColorUtil.rgba(32, 32, 32, 250), ColorUtil.rgba(102, 0, 0, 250), ColorUtil.rgba(204, 0, 0, 250));
            RenderUtil.Render2D.drawGradientRound(posX + 4.0f + 24.0f + 4.0f + 4.0f, posY + 38.0f - 17.0f, 60.0f, 8.0f, 3, ColorUtil.rgba(71, 0, 0, 60), ColorUtil.rgba(32, 32, 32, 60), ColorUtil.rgba(102, 0, 0, 60), ColorUtil.rgba(204, 0, 0, 60));
        }
        this.drawItemStack(posX + 3.0F, posY - 8.0F - 5.5F, 10.0F);

        GlStateManager.popMatrix();
    }
1734108132511.png
...
 
Назад
Сверху Снизу