Исходник Hud Nursultan Alpha ! Слив худа Nursultan Alpha на Exp 2.0

Начинающий
Статус
Оффлайн
Регистрация
26 Янв 2023
Сообщения
298
Реакции[?]
1
Поинты[?]
1K
Увидел то что никто не может спастить этот вырвеглазный 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:


Код:
    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();
    }
Что это . бля :roflanPominki:
 
Начинающий
Статус
Оффлайн
Регистрация
29 Май 2024
Сообщения
558
Реакции[?]
2
Поинты[?]
1K
единственное что норм это песенки какие играют
хотя тут нету этого плеера, так что кака
 
Начинающий
Статус
Онлайн
Регистрация
26 Дек 2023
Сообщения
778
Реакции[?]
10
Поинты[?]
4K
Увидел то что никто не может спастить этот вырвеглазный 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:


Код:
    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();
    }
не каждое говно нурсултан, но каждый нурсултан говно
 
Начинающий
Статус
Оффлайн
Регистрация
2 Окт 2024
Сообщения
15
Реакции[?]
0
Поинты[?]
0
Увидел то что никто не может спастить этот вырвеглазный 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:


Код:
    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();
    }
uppppppppppppp
 
Начинающий
Статус
Оффлайн
Регистрация
2 Окт 2024
Сообщения
15
Реакции[?]
0
Поинты[?]
0
Увидел то что никто не может спастить этот вырвеглазный 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:


Код:
    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();
    }
но уж лучше слить SRC с этим худецким, некоторые не смогут запастить
 
Сверху Снизу