Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Визуальная часть Targethud / MCP/Evaware

  • Автор темы Автор темы javist
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
12 Июн 2025
Сообщения
32
Реакции
0
Выберите загрузчик игры
  1. Прочие моды
Попытался сделать чето нормальное, вышло вроде неплохо если довести до ума думаю пойдет.

SS
1762844172690.png


targethud:
Expand Collapse Copy
if (lastTarget != null || animation.getValue() > 0) {
            Hud hud = Evaware.getInstance().getModuleManager().getHud();
            if (hud.thMode.is("New")) {
                LivingEntity renderTarget = lastTarget != null ? lastTarget : mc.player;
                if (renderTarget == null) {
                    return;
                }

                float padding = 4.0f;
                float innerPadding = 4.0f;
                float avatarSize = 14.0f;
                float nameSize = 6.25f;
                float hpSize = 5.0f;
                float spacing = 2.5f;
                float healthBarHeight = 3.0f;

                String nameText = renderTarget.getNameString();
                float nameWidth = Fonts.robotomedium.getWidth(nameText, nameSize);
                float nameHeight = Fonts.robotomedium.getHeight(nameSize);

                float multiplier = (float) Math.pow(10, 1);
                float currentHealth = renderTarget.getHealth();
                float maxHealth = Math.max(renderTarget.getMaxHealth(), 1.0f);
                float absorptionAmount = renderTarget.getAbsorptionAmount();
                float finalHealth = Math.round(currentHealth * multiplier) / multiplier;
                float finalAbsorption = Math.round(absorptionAmount * multiplier) / multiplier;

                String hpText = "HP: " + finalHealth;
                float hpWidth = Fonts.robotomedium.getWidth(hpText, hpSize);
                float hpHeight = Fonts.robotomedium.getHeight(hpSize);

                boolean hasAbsorption = absorptionAmount > 0;
                String absorptionText = hasAbsorption ? "" + finalAbsorption : "";
                float absorptionTextWidth = hasAbsorption ? Fonts.robotomedium.getWidth(absorptionText, hpSize) : 0.0f;
                float combinedHpWidth = hasAbsorption ? hpWidth + absorptionTextWidth + 12.0f : hpWidth;

                float contentWidth = Math.max(nameWidth, combinedHpWidth);
                float healthBarWidth = Math.max(contentWidth, 55.0f);

                float totalWidth = padding + avatarSize + innerPadding + healthBarWidth + padding;
                float totalHeight = padding + nameHeight + spacing + hpHeight + spacing + healthBarHeight + padding;

                draggable.setWidth(totalWidth);
                draggable.setHeight(totalHeight);

                GlStateManager.pushMatrix();
                GLUtil.sizeAnimation(draggable.getX() + draggable.getWidth() / 2.0f, draggable.getY() + draggable.getHeight() / 2.0f, animation.getValue());

                float healthRatio = MathHelper.clamp(currentHealth / maxHealth, 0.0f, 1.0f);
                float absorptionRatio = MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);

                healthBackAnim.run(healthBarWidth * healthRatio);
                healthBackAnim.setDuration(1750);
                healthAnim.run(healthBarWidth * healthRatio);

                absorptionAnim.run(healthBarWidth * MathHelper.clamp(healthRatio + absorptionRatio, 0.0f, 1.0f));
                absorptionAnim.setDuration(450);
                absorptionXAnim.run(hasAbsorption ? 1 : 0);
                absorptionXAnim.setDuration(450);
                
                int bgAlpha = (int) (140 * MathHelper.clamp((float) animation.getValue(), 0.0f, 1.0f));
                DrawUtil.drawRoundedRect(draggable.getX(), draggable.getY(), draggable.getWidth(), draggable.getHeight(), 3.0f, ColorUtil.rgba(0, 0, 0, bgAlpha));

                float avatarX = draggable.getX() + padding;
                float avatarY = draggable.getY() + (draggable.getHeight() - avatarSize) / 2.0f;
                drawRoundFace(stack, avatarX, avatarY, (int) avatarSize, 1.0f, 2.0f, renderTarget);

                float textX = avatarX + avatarSize + innerPadding;
                float nameY = draggable.getY() + padding;
                Fonts.robotomedium.drawText(stack, nameText, textX, nameY, -1, nameSize);

                float hpY = nameY + nameHeight + spacing;
                Fonts.robotomedium.drawText(stack, hpText, textX, hpY, -1, hpSize);

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionDrawX = draggable.getX() + draggable.getWidth() - padding - absorptionTextWidth;
                    int goldColor = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                    Fonts.robotomedium.drawText(stack, absorptionText, absorptionDrawX, hpY, goldColor, hpSize);
                }

                float healthBarX = textX;
                float healthBarY = hpY + hpHeight + spacing;
                DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthBarWidth, healthBarHeight, 1.0f, ColorUtil.rgba(0, 0, 0, 150));

                float healthFill = MathHelper.clamp((float) healthAnim.getValue(), 0.0f, healthBarWidth);
                if (healthFill > 0) {
                    int themeColor = ColorUtil.getCurrentThemeWithFirstColor();
                    int colorStart = ColorUtil.setAlpha(themeColor, 210);
                    int colorEnd = ColorUtil.setAlpha(ColorUtil.rgba(255, 255, 255, 255), 255);
                    DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthFill, healthBarHeight, 1.0f, 1.0f,
                            new Vector4i(colorStart, colorStart, colorEnd, colorEnd));
                }

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionOverlay = healthBarWidth * MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);
                    if (absorptionOverlay > 0) {
                        int goldStart = ColorUtil.rgba(57, 34, 4, (int) (absorptionXAnim.getValue() * 200));
                        int goldEnd = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                        DrawUtil.drawRoundedRect(healthBarX, healthBarY, Math.min(absorptionOverlay, healthBarWidth), healthBarHeight, 1.0f, 1.0f,
                                new Vector4i(goldStart, goldStart, goldEnd, goldEnd));
                    }
                }
 
Попытался сделать чето нормальное, вышло вроде неплохо если довести до ума думаю пойдет.

SSПосмотреть вложение 319655

targethud:
Expand Collapse Copy
if (lastTarget != null || animation.getValue() > 0) {
            Hud hud = Evaware.getInstance().getModuleManager().getHud();
            if (hud.thMode.is("New")) {
                LivingEntity renderTarget = lastTarget != null ? lastTarget : mc.player;
                if (renderTarget == null) {
                    return;
                }

                float padding = 4.0f;
                float innerPadding = 4.0f;
                float avatarSize = 14.0f;
                float nameSize = 6.25f;
                float hpSize = 5.0f;
                float spacing = 2.5f;
                float healthBarHeight = 3.0f;

                String nameText = renderTarget.getNameString();
                float nameWidth = Fonts.robotomedium.getWidth(nameText, nameSize);
                float nameHeight = Fonts.robotomedium.getHeight(nameSize);

                float multiplier = (float) Math.pow(10, 1);
                float currentHealth = renderTarget.getHealth();
                float maxHealth = Math.max(renderTarget.getMaxHealth(), 1.0f);
                float absorptionAmount = renderTarget.getAbsorptionAmount();
                float finalHealth = Math.round(currentHealth * multiplier) / multiplier;
                float finalAbsorption = Math.round(absorptionAmount * multiplier) / multiplier;

                String hpText = "HP: " + finalHealth;
                float hpWidth = Fonts.robotomedium.getWidth(hpText, hpSize);
                float hpHeight = Fonts.robotomedium.getHeight(hpSize);

                boolean hasAbsorption = absorptionAmount > 0;
                String absorptionText = hasAbsorption ? "" + finalAbsorption : "";
                float absorptionTextWidth = hasAbsorption ? Fonts.robotomedium.getWidth(absorptionText, hpSize) : 0.0f;
                float combinedHpWidth = hasAbsorption ? hpWidth + absorptionTextWidth + 12.0f : hpWidth;

                float contentWidth = Math.max(nameWidth, combinedHpWidth);
                float healthBarWidth = Math.max(contentWidth, 55.0f);

                float totalWidth = padding + avatarSize + innerPadding + healthBarWidth + padding;
                float totalHeight = padding + nameHeight + spacing + hpHeight + spacing + healthBarHeight + padding;

                draggable.setWidth(totalWidth);
                draggable.setHeight(totalHeight);

                GlStateManager.pushMatrix();
                GLUtil.sizeAnimation(draggable.getX() + draggable.getWidth() / 2.0f, draggable.getY() + draggable.getHeight() / 2.0f, animation.getValue());

                float healthRatio = MathHelper.clamp(currentHealth / maxHealth, 0.0f, 1.0f);
                float absorptionRatio = MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);

                healthBackAnim.run(healthBarWidth * healthRatio);
                healthBackAnim.setDuration(1750);
                healthAnim.run(healthBarWidth * healthRatio);

                absorptionAnim.run(healthBarWidth * MathHelper.clamp(healthRatio + absorptionRatio, 0.0f, 1.0f));
                absorptionAnim.setDuration(450);
                absorptionXAnim.run(hasAbsorption ? 1 : 0);
                absorptionXAnim.setDuration(450);
               
                int bgAlpha = (int) (140 * MathHelper.clamp((float) animation.getValue(), 0.0f, 1.0f));
                DrawUtil.drawRoundedRect(draggable.getX(), draggable.getY(), draggable.getWidth(), draggable.getHeight(), 3.0f, ColorUtil.rgba(0, 0, 0, bgAlpha));

                float avatarX = draggable.getX() + padding;
                float avatarY = draggable.getY() + (draggable.getHeight() - avatarSize) / 2.0f;
                drawRoundFace(stack, avatarX, avatarY, (int) avatarSize, 1.0f, 2.0f, renderTarget);

                float textX = avatarX + avatarSize + innerPadding;
                float nameY = draggable.getY() + padding;
                Fonts.robotomedium.drawText(stack, nameText, textX, nameY, -1, nameSize);

                float hpY = nameY + nameHeight + spacing;
                Fonts.robotomedium.drawText(stack, hpText, textX, hpY, -1, hpSize);

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionDrawX = draggable.getX() + draggable.getWidth() - padding - absorptionTextWidth;
                    int goldColor = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                    Fonts.robotomedium.drawText(stack, absorptionText, absorptionDrawX, hpY, goldColor, hpSize);
                }

                float healthBarX = textX;
                float healthBarY = hpY + hpHeight + spacing;
                DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthBarWidth, healthBarHeight, 1.0f, ColorUtil.rgba(0, 0, 0, 150));

                float healthFill = MathHelper.clamp((float) healthAnim.getValue(), 0.0f, healthBarWidth);
                if (healthFill > 0) {
                    int themeColor = ColorUtil.getCurrentThemeWithFirstColor();
                    int colorStart = ColorUtil.setAlpha(themeColor, 210);
                    int colorEnd = ColorUtil.setAlpha(ColorUtil.rgba(255, 255, 255, 255), 255);
                    DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthFill, healthBarHeight, 1.0f, 1.0f,
                            new Vector4i(colorStart, colorStart, colorEnd, colorEnd));
                }

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionOverlay = healthBarWidth * MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);
                    if (absorptionOverlay > 0) {
                        int goldStart = ColorUtil.rgba(57, 34, 4, (int) (absorptionXAnim.getValue() * 200));
                        int goldEnd = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                        DrawUtil.drawRoundedRect(healthBarX, healthBarY, Math.min(absorptionOverlay, healthBarWidth), healthBarHeight, 1.0f, 1.0f,
                                new Vector4i(goldStart, goldStart, goldEnd, goldEnd));
                    }
                }
Нормально если подровнять то ахуенно будет
 
Попытался сделать чето нормальное, вышло вроде неплохо если довести до ума думаю пойдет.

SSПосмотреть вложение 319655

targethud:
Expand Collapse Copy
if (lastTarget != null || animation.getValue() > 0) {
            Hud hud = Evaware.getInstance().getModuleManager().getHud();
            if (hud.thMode.is("New")) {
                LivingEntity renderTarget = lastTarget != null ? lastTarget : mc.player;
                if (renderTarget == null) {
                    return;
                }

                float padding = 4.0f;
                float innerPadding = 4.0f;
                float avatarSize = 14.0f;
                float nameSize = 6.25f;
                float hpSize = 5.0f;
                float spacing = 2.5f;
                float healthBarHeight = 3.0f;

                String nameText = renderTarget.getNameString();
                float nameWidth = Fonts.robotomedium.getWidth(nameText, nameSize);
                float nameHeight = Fonts.robotomedium.getHeight(nameSize);

                float multiplier = (float) Math.pow(10, 1);
                float currentHealth = renderTarget.getHealth();
                float maxHealth = Math.max(renderTarget.getMaxHealth(), 1.0f);
                float absorptionAmount = renderTarget.getAbsorptionAmount();
                float finalHealth = Math.round(currentHealth * multiplier) / multiplier;
                float finalAbsorption = Math.round(absorptionAmount * multiplier) / multiplier;

                String hpText = "HP: " + finalHealth;
                float hpWidth = Fonts.robotomedium.getWidth(hpText, hpSize);
                float hpHeight = Fonts.robotomedium.getHeight(hpSize);

                boolean hasAbsorption = absorptionAmount > 0;
                String absorptionText = hasAbsorption ? "" + finalAbsorption : "";
                float absorptionTextWidth = hasAbsorption ? Fonts.robotomedium.getWidth(absorptionText, hpSize) : 0.0f;
                float combinedHpWidth = hasAbsorption ? hpWidth + absorptionTextWidth + 12.0f : hpWidth;

                float contentWidth = Math.max(nameWidth, combinedHpWidth);
                float healthBarWidth = Math.max(contentWidth, 55.0f);

                float totalWidth = padding + avatarSize + innerPadding + healthBarWidth + padding;
                float totalHeight = padding + nameHeight + spacing + hpHeight + spacing + healthBarHeight + padding;

                draggable.setWidth(totalWidth);
                draggable.setHeight(totalHeight);

                GlStateManager.pushMatrix();
                GLUtil.sizeAnimation(draggable.getX() + draggable.getWidth() / 2.0f, draggable.getY() + draggable.getHeight() / 2.0f, animation.getValue());

                float healthRatio = MathHelper.clamp(currentHealth / maxHealth, 0.0f, 1.0f);
                float absorptionRatio = MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);

                healthBackAnim.run(healthBarWidth * healthRatio);
                healthBackAnim.setDuration(1750);
                healthAnim.run(healthBarWidth * healthRatio);

                absorptionAnim.run(healthBarWidth * MathHelper.clamp(healthRatio + absorptionRatio, 0.0f, 1.0f));
                absorptionAnim.setDuration(450);
                absorptionXAnim.run(hasAbsorption ? 1 : 0);
                absorptionXAnim.setDuration(450);
               
                int bgAlpha = (int) (140 * MathHelper.clamp((float) animation.getValue(), 0.0f, 1.0f));
                DrawUtil.drawRoundedRect(draggable.getX(), draggable.getY(), draggable.getWidth(), draggable.getHeight(), 3.0f, ColorUtil.rgba(0, 0, 0, bgAlpha));

                float avatarX = draggable.getX() + padding;
                float avatarY = draggable.getY() + (draggable.getHeight() - avatarSize) / 2.0f;
                drawRoundFace(stack, avatarX, avatarY, (int) avatarSize, 1.0f, 2.0f, renderTarget);

                float textX = avatarX + avatarSize + innerPadding;
                float nameY = draggable.getY() + padding;
                Fonts.robotomedium.drawText(stack, nameText, textX, nameY, -1, nameSize);

                float hpY = nameY + nameHeight + spacing;
                Fonts.robotomedium.drawText(stack, hpText, textX, hpY, -1, hpSize);

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionDrawX = draggable.getX() + draggable.getWidth() - padding - absorptionTextWidth;
                    int goldColor = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                    Fonts.robotomedium.drawText(stack, absorptionText, absorptionDrawX, hpY, goldColor, hpSize);
                }

                float healthBarX = textX;
                float healthBarY = hpY + hpHeight + spacing;
                DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthBarWidth, healthBarHeight, 1.0f, ColorUtil.rgba(0, 0, 0, 150));

                float healthFill = MathHelper.clamp((float) healthAnim.getValue(), 0.0f, healthBarWidth);
                if (healthFill > 0) {
                    int themeColor = ColorUtil.getCurrentThemeWithFirstColor();
                    int colorStart = ColorUtil.setAlpha(themeColor, 210);
                    int colorEnd = ColorUtil.setAlpha(ColorUtil.rgba(255, 255, 255, 255), 255);
                    DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthFill, healthBarHeight, 1.0f, 1.0f,
                            new Vector4i(colorStart, colorStart, colorEnd, colorEnd));
                }

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionOverlay = healthBarWidth * MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);
                    if (absorptionOverlay > 0) {
                        int goldStart = ColorUtil.rgba(57, 34, 4, (int) (absorptionXAnim.getValue() * 200));
                        int goldEnd = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                        DrawUtil.drawRoundedRect(healthBarX, healthBarY, Math.min(absorptionOverlay, healthBarWidth), healthBarHeight, 1.0f, 1.0f,
                                new Vector4i(goldStart, goldStart, goldEnd, goldEnd));
                    }
                }
выглядит зачётно
 
Попытался сделать чето нормальное, вышло вроде неплохо если довести до ума думаю пойдет.

SSПосмотреть вложение 319655

targethud:
Expand Collapse Copy
if (lastTarget != null || animation.getValue() > 0) {
            Hud hud = Evaware.getInstance().getModuleManager().getHud();
            if (hud.thMode.is("New")) {
                LivingEntity renderTarget = lastTarget != null ? lastTarget : mc.player;
                if (renderTarget == null) {
                    return;
                }

                float padding = 4.0f;
                float innerPadding = 4.0f;
                float avatarSize = 14.0f;
                float nameSize = 6.25f;
                float hpSize = 5.0f;
                float spacing = 2.5f;
                float healthBarHeight = 3.0f;

                String nameText = renderTarget.getNameString();
                float nameWidth = Fonts.robotomedium.getWidth(nameText, nameSize);
                float nameHeight = Fonts.robotomedium.getHeight(nameSize);

                float multiplier = (float) Math.pow(10, 1);
                float currentHealth = renderTarget.getHealth();
                float maxHealth = Math.max(renderTarget.getMaxHealth(), 1.0f);
                float absorptionAmount = renderTarget.getAbsorptionAmount();
                float finalHealth = Math.round(currentHealth * multiplier) / multiplier;
                float finalAbsorption = Math.round(absorptionAmount * multiplier) / multiplier;

                String hpText = "HP: " + finalHealth;
                float hpWidth = Fonts.robotomedium.getWidth(hpText, hpSize);
                float hpHeight = Fonts.robotomedium.getHeight(hpSize);

                boolean hasAbsorption = absorptionAmount > 0;
                String absorptionText = hasAbsorption ? "" + finalAbsorption : "";
                float absorptionTextWidth = hasAbsorption ? Fonts.robotomedium.getWidth(absorptionText, hpSize) : 0.0f;
                float combinedHpWidth = hasAbsorption ? hpWidth + absorptionTextWidth + 12.0f : hpWidth;

                float contentWidth = Math.max(nameWidth, combinedHpWidth);
                float healthBarWidth = Math.max(contentWidth, 55.0f);

                float totalWidth = padding + avatarSize + innerPadding + healthBarWidth + padding;
                float totalHeight = padding + nameHeight + spacing + hpHeight + spacing + healthBarHeight + padding;

                draggable.setWidth(totalWidth);
                draggable.setHeight(totalHeight);

                GlStateManager.pushMatrix();
                GLUtil.sizeAnimation(draggable.getX() + draggable.getWidth() / 2.0f, draggable.getY() + draggable.getHeight() / 2.0f, animation.getValue());

                float healthRatio = MathHelper.clamp(currentHealth / maxHealth, 0.0f, 1.0f);
                float absorptionRatio = MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);

                healthBackAnim.run(healthBarWidth * healthRatio);
                healthBackAnim.setDuration(1750);
                healthAnim.run(healthBarWidth * healthRatio);

                absorptionAnim.run(healthBarWidth * MathHelper.clamp(healthRatio + absorptionRatio, 0.0f, 1.0f));
                absorptionAnim.setDuration(450);
                absorptionXAnim.run(hasAbsorption ? 1 : 0);
                absorptionXAnim.setDuration(450);
               
                int bgAlpha = (int) (140 * MathHelper.clamp((float) animation.getValue(), 0.0f, 1.0f));
                DrawUtil.drawRoundedRect(draggable.getX(), draggable.getY(), draggable.getWidth(), draggable.getHeight(), 3.0f, ColorUtil.rgba(0, 0, 0, bgAlpha));

                float avatarX = draggable.getX() + padding;
                float avatarY = draggable.getY() + (draggable.getHeight() - avatarSize) / 2.0f;
                drawRoundFace(stack, avatarX, avatarY, (int) avatarSize, 1.0f, 2.0f, renderTarget);

                float textX = avatarX + avatarSize + innerPadding;
                float nameY = draggable.getY() + padding;
                Fonts.robotomedium.drawText(stack, nameText, textX, nameY, -1, nameSize);

                float hpY = nameY + nameHeight + spacing;
                Fonts.robotomedium.drawText(stack, hpText, textX, hpY, -1, hpSize);

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionDrawX = draggable.getX() + draggable.getWidth() - padding - absorptionTextWidth;
                    int goldColor = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                    Fonts.robotomedium.drawText(stack, absorptionText, absorptionDrawX, hpY, goldColor, hpSize);
                }

                float healthBarX = textX;
                float healthBarY = hpY + hpHeight + spacing;
                DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthBarWidth, healthBarHeight, 1.0f, ColorUtil.rgba(0, 0, 0, 150));

                float healthFill = MathHelper.clamp((float) healthAnim.getValue(), 0.0f, healthBarWidth);
                if (healthFill > 0) {
                    int themeColor = ColorUtil.getCurrentThemeWithFirstColor();
                    int colorStart = ColorUtil.setAlpha(themeColor, 210);
                    int colorEnd = ColorUtil.setAlpha(ColorUtil.rgba(255, 255, 255, 255), 255);
                    DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthFill, healthBarHeight, 1.0f, 1.0f,
                            new Vector4i(colorStart, colorStart, colorEnd, colorEnd));
                }

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionOverlay = healthBarWidth * MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);
                    if (absorptionOverlay > 0) {
                        int goldStart = ColorUtil.rgba(57, 34, 4, (int) (absorptionXAnim.getValue() * 200));
                        int goldEnd = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                        DrawUtil.drawRoundedRect(healthBarX, healthBarY, Math.min(absorptionOverlay, healthBarWidth), healthBarHeight, 1.0f, 1.0f,
                                new Vector4i(goldStart, goldStart, goldEnd, goldEnd));
                    }
                }
подровнять и норм /rep
 
Попытался сделать чето нормальное, вышло вроде неплохо если довести до ума думаю пойдет.

SSПосмотреть вложение 319655

targethud:
Expand Collapse Copy
if (lastTarget != null || animation.getValue() > 0) {
            Hud hud = Evaware.getInstance().getModuleManager().getHud();
            if (hud.thMode.is("New")) {
                LivingEntity renderTarget = lastTarget != null ? lastTarget : mc.player;
                if (renderTarget == null) {
                    return;
                }

                float padding = 4.0f;
                float innerPadding = 4.0f;
                float avatarSize = 14.0f;
                float nameSize = 6.25f;
                float hpSize = 5.0f;
                float spacing = 2.5f;
                float healthBarHeight = 3.0f;

                String nameText = renderTarget.getNameString();
                float nameWidth = Fonts.robotomedium.getWidth(nameText, nameSize);
                float nameHeight = Fonts.robotomedium.getHeight(nameSize);

                float multiplier = (float) Math.pow(10, 1);
                float currentHealth = renderTarget.getHealth();
                float maxHealth = Math.max(renderTarget.getMaxHealth(), 1.0f);
                float absorptionAmount = renderTarget.getAbsorptionAmount();
                float finalHealth = Math.round(currentHealth * multiplier) / multiplier;
                float finalAbsorption = Math.round(absorptionAmount * multiplier) / multiplier;

                String hpText = "HP: " + finalHealth;
                float hpWidth = Fonts.robotomedium.getWidth(hpText, hpSize);
                float hpHeight = Fonts.robotomedium.getHeight(hpSize);

                boolean hasAbsorption = absorptionAmount > 0;
                String absorptionText = hasAbsorption ? "" + finalAbsorption : "";
                float absorptionTextWidth = hasAbsorption ? Fonts.robotomedium.getWidth(absorptionText, hpSize) : 0.0f;
                float combinedHpWidth = hasAbsorption ? hpWidth + absorptionTextWidth + 12.0f : hpWidth;

                float contentWidth = Math.max(nameWidth, combinedHpWidth);
                float healthBarWidth = Math.max(contentWidth, 55.0f);

                float totalWidth = padding + avatarSize + innerPadding + healthBarWidth + padding;
                float totalHeight = padding + nameHeight + spacing + hpHeight + spacing + healthBarHeight + padding;

                draggable.setWidth(totalWidth);
                draggable.setHeight(totalHeight);

                GlStateManager.pushMatrix();
                GLUtil.sizeAnimation(draggable.getX() + draggable.getWidth() / 2.0f, draggable.getY() + draggable.getHeight() / 2.0f, animation.getValue());

                float healthRatio = MathHelper.clamp(currentHealth / maxHealth, 0.0f, 1.0f);
                float absorptionRatio = MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);

                healthBackAnim.run(healthBarWidth * healthRatio);
                healthBackAnim.setDuration(1750);
                healthAnim.run(healthBarWidth * healthRatio);

                absorptionAnim.run(healthBarWidth * MathHelper.clamp(healthRatio + absorptionRatio, 0.0f, 1.0f));
                absorptionAnim.setDuration(450);
                absorptionXAnim.run(hasAbsorption ? 1 : 0);
                absorptionXAnim.setDuration(450);
               
                int bgAlpha = (int) (140 * MathHelper.clamp((float) animation.getValue(), 0.0f, 1.0f));
                DrawUtil.drawRoundedRect(draggable.getX(), draggable.getY(), draggable.getWidth(), draggable.getHeight(), 3.0f, ColorUtil.rgba(0, 0, 0, bgAlpha));

                float avatarX = draggable.getX() + padding;
                float avatarY = draggable.getY() + (draggable.getHeight() - avatarSize) / 2.0f;
                drawRoundFace(stack, avatarX, avatarY, (int) avatarSize, 1.0f, 2.0f, renderTarget);

                float textX = avatarX + avatarSize + innerPadding;
                float nameY = draggable.getY() + padding;
                Fonts.robotomedium.drawText(stack, nameText, textX, nameY, -1, nameSize);

                float hpY = nameY + nameHeight + spacing;
                Fonts.robotomedium.drawText(stack, hpText, textX, hpY, -1, hpSize);

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionDrawX = draggable.getX() + draggable.getWidth() - padding - absorptionTextWidth;
                    int goldColor = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                    Fonts.robotomedium.drawText(stack, absorptionText, absorptionDrawX, hpY, goldColor, hpSize);
                }

                float healthBarX = textX;
                float healthBarY = hpY + hpHeight + spacing;
                DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthBarWidth, healthBarHeight, 1.0f, ColorUtil.rgba(0, 0, 0, 150));

                float healthFill = MathHelper.clamp((float) healthAnim.getValue(), 0.0f, healthBarWidth);
                if (healthFill > 0) {
                    int themeColor = ColorUtil.getCurrentThemeWithFirstColor();
                    int colorStart = ColorUtil.setAlpha(themeColor, 210);
                    int colorEnd = ColorUtil.setAlpha(ColorUtil.rgba(255, 255, 255, 255), 255);
                    DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthFill, healthBarHeight, 1.0f, 1.0f,
                            new Vector4i(colorStart, colorStart, colorEnd, colorEnd));
                }

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionOverlay = healthBarWidth * MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);
                    if (absorptionOverlay > 0) {
                        int goldStart = ColorUtil.rgba(57, 34, 4, (int) (absorptionXAnim.getValue() * 200));
                        int goldEnd = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                        DrawUtil.drawRoundedRect(healthBarX, healthBarY, Math.min(absorptionOverlay, healthBarWidth), healthBarHeight, 1.0f, 1.0f,
                                new Vector4i(goldStart, goldStart, goldEnd, goldEnd));
                    }
                }
иба чотко
 
Попытался сделать чето нормальное, вышло вроде неплохо если довести до ума думаю пойдет.

SSПосмотреть вложение 319655

targethud:
Expand Collapse Copy
if (lastTarget != null || animation.getValue() > 0) {
            Hud hud = Evaware.getInstance().getModuleManager().getHud();
            if (hud.thMode.is("New")) {
                LivingEntity renderTarget = lastTarget != null ? lastTarget : mc.player;
                if (renderTarget == null) {
                    return;
                }

                float padding = 4.0f;
                float innerPadding = 4.0f;
                float avatarSize = 14.0f;
                float nameSize = 6.25f;
                float hpSize = 5.0f;
                float spacing = 2.5f;
                float healthBarHeight = 3.0f;

                String nameText = renderTarget.getNameString();
                float nameWidth = Fonts.robotomedium.getWidth(nameText, nameSize);
                float nameHeight = Fonts.robotomedium.getHeight(nameSize);

                float multiplier = (float) Math.pow(10, 1);
                float currentHealth = renderTarget.getHealth();
                float maxHealth = Math.max(renderTarget.getMaxHealth(), 1.0f);
                float absorptionAmount = renderTarget.getAbsorptionAmount();
                float finalHealth = Math.round(currentHealth * multiplier) / multiplier;
                float finalAbsorption = Math.round(absorptionAmount * multiplier) / multiplier;

                String hpText = "HP: " + finalHealth;
                float hpWidth = Fonts.robotomedium.getWidth(hpText, hpSize);
                float hpHeight = Fonts.robotomedium.getHeight(hpSize);

                boolean hasAbsorption = absorptionAmount > 0;
                String absorptionText = hasAbsorption ? "" + finalAbsorption : "";
                float absorptionTextWidth = hasAbsorption ? Fonts.robotomedium.getWidth(absorptionText, hpSize) : 0.0f;
                float combinedHpWidth = hasAbsorption ? hpWidth + absorptionTextWidth + 12.0f : hpWidth;

                float contentWidth = Math.max(nameWidth, combinedHpWidth);
                float healthBarWidth = Math.max(contentWidth, 55.0f);

                float totalWidth = padding + avatarSize + innerPadding + healthBarWidth + padding;
                float totalHeight = padding + nameHeight + spacing + hpHeight + spacing + healthBarHeight + padding;

                draggable.setWidth(totalWidth);
                draggable.setHeight(totalHeight);

                GlStateManager.pushMatrix();
                GLUtil.sizeAnimation(draggable.getX() + draggable.getWidth() / 2.0f, draggable.getY() + draggable.getHeight() / 2.0f, animation.getValue());

                float healthRatio = MathHelper.clamp(currentHealth / maxHealth, 0.0f, 1.0f);
                float absorptionRatio = MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);

                healthBackAnim.run(healthBarWidth * healthRatio);
                healthBackAnim.setDuration(1750);
                healthAnim.run(healthBarWidth * healthRatio);

                absorptionAnim.run(healthBarWidth * MathHelper.clamp(healthRatio + absorptionRatio, 0.0f, 1.0f));
                absorptionAnim.setDuration(450);
                absorptionXAnim.run(hasAbsorption ? 1 : 0);
                absorptionXAnim.setDuration(450);
               
                int bgAlpha = (int) (140 * MathHelper.clamp((float) animation.getValue(), 0.0f, 1.0f));
                DrawUtil.drawRoundedRect(draggable.getX(), draggable.getY(), draggable.getWidth(), draggable.getHeight(), 3.0f, ColorUtil.rgba(0, 0, 0, bgAlpha));

                float avatarX = draggable.getX() + padding;
                float avatarY = draggable.getY() + (draggable.getHeight() - avatarSize) / 2.0f;
                drawRoundFace(stack, avatarX, avatarY, (int) avatarSize, 1.0f, 2.0f, renderTarget);

                float textX = avatarX + avatarSize + innerPadding;
                float nameY = draggable.getY() + padding;
                Fonts.robotomedium.drawText(stack, nameText, textX, nameY, -1, nameSize);

                float hpY = nameY + nameHeight + spacing;
                Fonts.robotomedium.drawText(stack, hpText, textX, hpY, -1, hpSize);

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionDrawX = draggable.getX() + draggable.getWidth() - padding - absorptionTextWidth;
                    int goldColor = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                    Fonts.robotomedium.drawText(stack, absorptionText, absorptionDrawX, hpY, goldColor, hpSize);
                }

                float healthBarX = textX;
                float healthBarY = hpY + hpHeight + spacing;
                DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthBarWidth, healthBarHeight, 1.0f, ColorUtil.rgba(0, 0, 0, 150));

                float healthFill = MathHelper.clamp((float) healthAnim.getValue(), 0.0f, healthBarWidth);
                if (healthFill > 0) {
                    int themeColor = ColorUtil.getCurrentThemeWithFirstColor();
                    int colorStart = ColorUtil.setAlpha(themeColor, 210);
                    int colorEnd = ColorUtil.setAlpha(ColorUtil.rgba(255, 255, 255, 255), 255);
                    DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthFill, healthBarHeight, 1.0f, 1.0f,
                            new Vector4i(colorStart, colorStart, colorEnd, colorEnd));
                }

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionOverlay = healthBarWidth * MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);
                    if (absorptionOverlay > 0) {
                        int goldStart = ColorUtil.rgba(57, 34, 4, (int) (absorptionXAnim.getValue() * 200));
                        int goldEnd = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                        DrawUtil.drawRoundedRect(healthBarX, healthBarY, Math.min(absorptionOverlay, healthBarWidth), healthBarHeight, 1.0f, 1.0f,
                                new Vector4i(goldStart, goldStart, goldEnd, goldEnd));
                    }
                }
мне нрав ! /up
 
Попытался сделать чето нормальное, вышло вроде неплохо если довести до ума думаю пойдет.

SSПосмотреть вложение 319655

targethud:
Expand Collapse Copy
if (lastTarget != null || animation.getValue() > 0) {
            Hud hud = Evaware.getInstance().getModuleManager().getHud();
            if (hud.thMode.is("New")) {
                LivingEntity renderTarget = lastTarget != null ? lastTarget : mc.player;
                if (renderTarget == null) {
                    return;
                }

                float padding = 4.0f;
                float innerPadding = 4.0f;
                float avatarSize = 14.0f;
                float nameSize = 6.25f;
                float hpSize = 5.0f;
                float spacing = 2.5f;
                float healthBarHeight = 3.0f;

                String nameText = renderTarget.getNameString();
                float nameWidth = Fonts.robotomedium.getWidth(nameText, nameSize);
                float nameHeight = Fonts.robotomedium.getHeight(nameSize);

                float multiplier = (float) Math.pow(10, 1);
                float currentHealth = renderTarget.getHealth();
                float maxHealth = Math.max(renderTarget.getMaxHealth(), 1.0f);
                float absorptionAmount = renderTarget.getAbsorptionAmount();
                float finalHealth = Math.round(currentHealth * multiplier) / multiplier;
                float finalAbsorption = Math.round(absorptionAmount * multiplier) / multiplier;

                String hpText = "HP: " + finalHealth;
                float hpWidth = Fonts.robotomedium.getWidth(hpText, hpSize);
                float hpHeight = Fonts.robotomedium.getHeight(hpSize);

                boolean hasAbsorption = absorptionAmount > 0;
                String absorptionText = hasAbsorption ? "" + finalAbsorption : "";
                float absorptionTextWidth = hasAbsorption ? Fonts.robotomedium.getWidth(absorptionText, hpSize) : 0.0f;
                float combinedHpWidth = hasAbsorption ? hpWidth + absorptionTextWidth + 12.0f : hpWidth;

                float contentWidth = Math.max(nameWidth, combinedHpWidth);
                float healthBarWidth = Math.max(contentWidth, 55.0f);

                float totalWidth = padding + avatarSize + innerPadding + healthBarWidth + padding;
                float totalHeight = padding + nameHeight + spacing + hpHeight + spacing + healthBarHeight + padding;

                draggable.setWidth(totalWidth);
                draggable.setHeight(totalHeight);

                GlStateManager.pushMatrix();
                GLUtil.sizeAnimation(draggable.getX() + draggable.getWidth() / 2.0f, draggable.getY() + draggable.getHeight() / 2.0f, animation.getValue());

                float healthRatio = MathHelper.clamp(currentHealth / maxHealth, 0.0f, 1.0f);
                float absorptionRatio = MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);

                healthBackAnim.run(healthBarWidth * healthRatio);
                healthBackAnim.setDuration(1750);
                healthAnim.run(healthBarWidth * healthRatio);

                absorptionAnim.run(healthBarWidth * MathHelper.clamp(healthRatio + absorptionRatio, 0.0f, 1.0f));
                absorptionAnim.setDuration(450);
                absorptionXAnim.run(hasAbsorption ? 1 : 0);
                absorptionXAnim.setDuration(450);
               
                int bgAlpha = (int) (140 * MathHelper.clamp((float) animation.getValue(), 0.0f, 1.0f));
                DrawUtil.drawRoundedRect(draggable.getX(), draggable.getY(), draggable.getWidth(), draggable.getHeight(), 3.0f, ColorUtil.rgba(0, 0, 0, bgAlpha));

                float avatarX = draggable.getX() + padding;
                float avatarY = draggable.getY() + (draggable.getHeight() - avatarSize) / 2.0f;
                drawRoundFace(stack, avatarX, avatarY, (int) avatarSize, 1.0f, 2.0f, renderTarget);

                float textX = avatarX + avatarSize + innerPadding;
                float nameY = draggable.getY() + padding;
                Fonts.robotomedium.drawText(stack, nameText, textX, nameY, -1, nameSize);

                float hpY = nameY + nameHeight + spacing;
                Fonts.robotomedium.drawText(stack, hpText, textX, hpY, -1, hpSize);

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionDrawX = draggable.getX() + draggable.getWidth() - padding - absorptionTextWidth;
                    int goldColor = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                    Fonts.robotomedium.drawText(stack, absorptionText, absorptionDrawX, hpY, goldColor, hpSize);
                }

                float healthBarX = textX;
                float healthBarY = hpY + hpHeight + spacing;
                DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthBarWidth, healthBarHeight, 1.0f, ColorUtil.rgba(0, 0, 0, 150));

                float healthFill = MathHelper.clamp((float) healthAnim.getValue(), 0.0f, healthBarWidth);
                if (healthFill > 0) {
                    int themeColor = ColorUtil.getCurrentThemeWithFirstColor();
                    int colorStart = ColorUtil.setAlpha(themeColor, 210);
                    int colorEnd = ColorUtil.setAlpha(ColorUtil.rgba(255, 255, 255, 255), 255);
                    DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthFill, healthBarHeight, 1.0f, 1.0f,
                            new Vector4i(colorStart, colorStart, colorEnd, colorEnd));
                }

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionOverlay = healthBarWidth * MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);
                    if (absorptionOverlay > 0) {
                        int goldStart = ColorUtil.rgba(57, 34, 4, (int) (absorptionXAnim.getValue() * 200));
                        int goldEnd = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                        DrawUtil.drawRoundedRect(healthBarX, healthBarY, Math.min(absorptionOverlay, healthBarWidth), healthBarHeight, 1.0f, 1.0f,
                                new Vector4i(goldStart, goldStart, goldEnd, goldEnd));
                    }
                }
выглядит не плохо
 
Попытался сделать чето нормальное, вышло вроде неплохо если довести до ума думаю пойдет.

SSПосмотреть вложение 319655

targethud:
Expand Collapse Copy
if (lastTarget != null || animation.getValue() > 0) {
            Hud hud = Evaware.getInstance().getModuleManager().getHud();
            if (hud.thMode.is("New")) {
                LivingEntity renderTarget = lastTarget != null ? lastTarget : mc.player;
                if (renderTarget == null) {
                    return;
                }

                float padding = 4.0f;
                float innerPadding = 4.0f;
                float avatarSize = 14.0f;
                float nameSize = 6.25f;
                float hpSize = 5.0f;
                float spacing = 2.5f;
                float healthBarHeight = 3.0f;

                String nameText = renderTarget.getNameString();
                float nameWidth = Fonts.robotomedium.getWidth(nameText, nameSize);
                float nameHeight = Fonts.robotomedium.getHeight(nameSize);

                float multiplier = (float) Math.pow(10, 1);
                float currentHealth = renderTarget.getHealth();
                float maxHealth = Math.max(renderTarget.getMaxHealth(), 1.0f);
                float absorptionAmount = renderTarget.getAbsorptionAmount();
                float finalHealth = Math.round(currentHealth * multiplier) / multiplier;
                float finalAbsorption = Math.round(absorptionAmount * multiplier) / multiplier;

                String hpText = "HP: " + finalHealth;
                float hpWidth = Fonts.robotomedium.getWidth(hpText, hpSize);
                float hpHeight = Fonts.robotomedium.getHeight(hpSize);

                boolean hasAbsorption = absorptionAmount > 0;
                String absorptionText = hasAbsorption ? "" + finalAbsorption : "";
                float absorptionTextWidth = hasAbsorption ? Fonts.robotomedium.getWidth(absorptionText, hpSize) : 0.0f;
                float combinedHpWidth = hasAbsorption ? hpWidth + absorptionTextWidth + 12.0f : hpWidth;

                float contentWidth = Math.max(nameWidth, combinedHpWidth);
                float healthBarWidth = Math.max(contentWidth, 55.0f);

                float totalWidth = padding + avatarSize + innerPadding + healthBarWidth + padding;
                float totalHeight = padding + nameHeight + spacing + hpHeight + spacing + healthBarHeight + padding;

                draggable.setWidth(totalWidth);
                draggable.setHeight(totalHeight);

                GlStateManager.pushMatrix();
                GLUtil.sizeAnimation(draggable.getX() + draggable.getWidth() / 2.0f, draggable.getY() + draggable.getHeight() / 2.0f, animation.getValue());

                float healthRatio = MathHelper.clamp(currentHealth / maxHealth, 0.0f, 1.0f);
                float absorptionRatio = MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);

                healthBackAnim.run(healthBarWidth * healthRatio);
                healthBackAnim.setDuration(1750);
                healthAnim.run(healthBarWidth * healthRatio);

                absorptionAnim.run(healthBarWidth * MathHelper.clamp(healthRatio + absorptionRatio, 0.0f, 1.0f));
                absorptionAnim.setDuration(450);
                absorptionXAnim.run(hasAbsorption ? 1 : 0);
                absorptionXAnim.setDuration(450);
               
                int bgAlpha = (int) (140 * MathHelper.clamp((float) animation.getValue(), 0.0f, 1.0f));
                DrawUtil.drawRoundedRect(draggable.getX(), draggable.getY(), draggable.getWidth(), draggable.getHeight(), 3.0f, ColorUtil.rgba(0, 0, 0, bgAlpha));

                float avatarX = draggable.getX() + padding;
                float avatarY = draggable.getY() + (draggable.getHeight() - avatarSize) / 2.0f;
                drawRoundFace(stack, avatarX, avatarY, (int) avatarSize, 1.0f, 2.0f, renderTarget);

                float textX = avatarX + avatarSize + innerPadding;
                float nameY = draggable.getY() + padding;
                Fonts.robotomedium.drawText(stack, nameText, textX, nameY, -1, nameSize);

                float hpY = nameY + nameHeight + spacing;
                Fonts.robotomedium.drawText(stack, hpText, textX, hpY, -1, hpSize);

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionDrawX = draggable.getX() + draggable.getWidth() - padding - absorptionTextWidth;
                    int goldColor = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                    Fonts.robotomedium.drawText(stack, absorptionText, absorptionDrawX, hpY, goldColor, hpSize);
                }

                float healthBarX = textX;
                float healthBarY = hpY + hpHeight + spacing;
                DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthBarWidth, healthBarHeight, 1.0f, ColorUtil.rgba(0, 0, 0, 150));

                float healthFill = MathHelper.clamp((float) healthAnim.getValue(), 0.0f, healthBarWidth);
                if (healthFill > 0) {
                    int themeColor = ColorUtil.getCurrentThemeWithFirstColor();
                    int colorStart = ColorUtil.setAlpha(themeColor, 210);
                    int colorEnd = ColorUtil.setAlpha(ColorUtil.rgba(255, 255, 255, 255), 255);
                    DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthFill, healthBarHeight, 1.0f, 1.0f,
                            new Vector4i(colorStart, colorStart, colorEnd, colorEnd));
                }

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionOverlay = healthBarWidth * MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);
                    if (absorptionOverlay > 0) {
                        int goldStart = ColorUtil.rgba(57, 34, 4, (int) (absorptionXAnim.getValue() * 200));
                        int goldEnd = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                        DrawUtil.drawRoundedRect(healthBarX, healthBarY, Math.min(absorptionOverlay, healthBarWidth), healthBarHeight, 1.0f, 1.0f,
                                new Vector4i(goldStart, goldStart, goldEnd, goldEnd));
                    }
                }
Голова маленькая слишком
 
Попытался сделать чето нормальное, вышло вроде неплохо если довести до ума думаю пойдет.

SSПосмотреть вложение 319655

targethud:
Expand Collapse Copy
if (lastTarget != null || animation.getValue() > 0) {
            Hud hud = Evaware.getInstance().getModuleManager().getHud();
            if (hud.thMode.is("New")) {
                LivingEntity renderTarget = lastTarget != null ? lastTarget : mc.player;
                if (renderTarget == null) {
                    return;
                }

                float padding = 4.0f;
                float innerPadding = 4.0f;
                float avatarSize = 14.0f;
                float nameSize = 6.25f;
                float hpSize = 5.0f;
                float spacing = 2.5f;
                float healthBarHeight = 3.0f;

                String nameText = renderTarget.getNameString();
                float nameWidth = Fonts.robotomedium.getWidth(nameText, nameSize);
                float nameHeight = Fonts.robotomedium.getHeight(nameSize);

                float multiplier = (float) Math.pow(10, 1);
                float currentHealth = renderTarget.getHealth();
                float maxHealth = Math.max(renderTarget.getMaxHealth(), 1.0f);
                float absorptionAmount = renderTarget.getAbsorptionAmount();
                float finalHealth = Math.round(currentHealth * multiplier) / multiplier;
                float finalAbsorption = Math.round(absorptionAmount * multiplier) / multiplier;

                String hpText = "HP: " + finalHealth;
                float hpWidth = Fonts.robotomedium.getWidth(hpText, hpSize);
                float hpHeight = Fonts.robotomedium.getHeight(hpSize);

                boolean hasAbsorption = absorptionAmount > 0;
                String absorptionText = hasAbsorption ? "" + finalAbsorption : "";
                float absorptionTextWidth = hasAbsorption ? Fonts.robotomedium.getWidth(absorptionText, hpSize) : 0.0f;
                float combinedHpWidth = hasAbsorption ? hpWidth + absorptionTextWidth + 12.0f : hpWidth;

                float contentWidth = Math.max(nameWidth, combinedHpWidth);
                float healthBarWidth = Math.max(contentWidth, 55.0f);

                float totalWidth = padding + avatarSize + innerPadding + healthBarWidth + padding;
                float totalHeight = padding + nameHeight + spacing + hpHeight + spacing + healthBarHeight + padding;

                draggable.setWidth(totalWidth);
                draggable.setHeight(totalHeight);

                GlStateManager.pushMatrix();
                GLUtil.sizeAnimation(draggable.getX() + draggable.getWidth() / 2.0f, draggable.getY() + draggable.getHeight() / 2.0f, animation.getValue());

                float healthRatio = MathHelper.clamp(currentHealth / maxHealth, 0.0f, 1.0f);
                float absorptionRatio = MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);

                healthBackAnim.run(healthBarWidth * healthRatio);
                healthBackAnim.setDuration(1750);
                healthAnim.run(healthBarWidth * healthRatio);

                absorptionAnim.run(healthBarWidth * MathHelper.clamp(healthRatio + absorptionRatio, 0.0f, 1.0f));
                absorptionAnim.setDuration(450);
                absorptionXAnim.run(hasAbsorption ? 1 : 0);
                absorptionXAnim.setDuration(450);
               
                int bgAlpha = (int) (140 * MathHelper.clamp((float) animation.getValue(), 0.0f, 1.0f));
                DrawUtil.drawRoundedRect(draggable.getX(), draggable.getY(), draggable.getWidth(), draggable.getHeight(), 3.0f, ColorUtil.rgba(0, 0, 0, bgAlpha));

                float avatarX = draggable.getX() + padding;
                float avatarY = draggable.getY() + (draggable.getHeight() - avatarSize) / 2.0f;
                drawRoundFace(stack, avatarX, avatarY, (int) avatarSize, 1.0f, 2.0f, renderTarget);

                float textX = avatarX + avatarSize + innerPadding;
                float nameY = draggable.getY() + padding;
                Fonts.robotomedium.drawText(stack, nameText, textX, nameY, -1, nameSize);

                float hpY = nameY + nameHeight + spacing;
                Fonts.robotomedium.drawText(stack, hpText, textX, hpY, -1, hpSize);

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionDrawX = draggable.getX() + draggable.getWidth() - padding - absorptionTextWidth;
                    int goldColor = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                    Fonts.robotomedium.drawText(stack, absorptionText, absorptionDrawX, hpY, goldColor, hpSize);
                }

                float healthBarX = textX;
                float healthBarY = hpY + hpHeight + spacing;
                DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthBarWidth, healthBarHeight, 1.0f, ColorUtil.rgba(0, 0, 0, 150));

                float healthFill = MathHelper.clamp((float) healthAnim.getValue(), 0.0f, healthBarWidth);
                if (healthFill > 0) {
                    int themeColor = ColorUtil.getCurrentThemeWithFirstColor();
                    int colorStart = ColorUtil.setAlpha(themeColor, 210);
                    int colorEnd = ColorUtil.setAlpha(ColorUtil.rgba(255, 255, 255, 255), 255);
                    DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthFill, healthBarHeight, 1.0f, 1.0f,
                            new Vector4i(colorStart, colorStart, colorEnd, colorEnd));
                }

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionOverlay = healthBarWidth * MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);
                    if (absorptionOverlay > 0) {
                        int goldStart = ColorUtil.rgba(57, 34, 4, (int) (absorptionXAnim.getValue() * 200));
                        int goldEnd = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                        DrawUtil.drawRoundedRect(healthBarX, healthBarY, Math.min(absorptionOverlay, healthBarWidth), healthBarHeight, 1.0f, 1.0f,
                                new Vector4i(goldStart, goldStart, goldEnd, goldEnd));
                    }
                }
голову сделать чуть больш и ваще топчек
 
Попытался сделать чето нормальное, вышло вроде неплохо если довести до ума думаю пойдет.

SSПосмотреть вложение 319655

targethud:
Expand Collapse Copy
if (lastTarget != null || animation.getValue() > 0) {
            Hud hud = Evaware.getInstance().getModuleManager().getHud();
            if (hud.thMode.is("New")) {
                LivingEntity renderTarget = lastTarget != null ? lastTarget : mc.player;
                if (renderTarget == null) {
                    return;
                }

                float padding = 4.0f;
                float innerPadding = 4.0f;
                float avatarSize = 14.0f;
                float nameSize = 6.25f;
                float hpSize = 5.0f;
                float spacing = 2.5f;
                float healthBarHeight = 3.0f;

                String nameText = renderTarget.getNameString();
                float nameWidth = Fonts.robotomedium.getWidth(nameText, nameSize);
                float nameHeight = Fonts.robotomedium.getHeight(nameSize);

                float multiplier = (float) Math.pow(10, 1);
                float currentHealth = renderTarget.getHealth();
                float maxHealth = Math.max(renderTarget.getMaxHealth(), 1.0f);
                float absorptionAmount = renderTarget.getAbsorptionAmount();
                float finalHealth = Math.round(currentHealth * multiplier) / multiplier;
                float finalAbsorption = Math.round(absorptionAmount * multiplier) / multiplier;

                String hpText = "HP: " + finalHealth;
                float hpWidth = Fonts.robotomedium.getWidth(hpText, hpSize);
                float hpHeight = Fonts.robotomedium.getHeight(hpSize);

                boolean hasAbsorption = absorptionAmount > 0;
                String absorptionText = hasAbsorption ? "" + finalAbsorption : "";
                float absorptionTextWidth = hasAbsorption ? Fonts.robotomedium.getWidth(absorptionText, hpSize) : 0.0f;
                float combinedHpWidth = hasAbsorption ? hpWidth + absorptionTextWidth + 12.0f : hpWidth;

                float contentWidth = Math.max(nameWidth, combinedHpWidth);
                float healthBarWidth = Math.max(contentWidth, 55.0f);

                float totalWidth = padding + avatarSize + innerPadding + healthBarWidth + padding;
                float totalHeight = padding + nameHeight + spacing + hpHeight + spacing + healthBarHeight + padding;

                draggable.setWidth(totalWidth);
                draggable.setHeight(totalHeight);

                GlStateManager.pushMatrix();
                GLUtil.sizeAnimation(draggable.getX() + draggable.getWidth() / 2.0f, draggable.getY() + draggable.getHeight() / 2.0f, animation.getValue());

                float healthRatio = MathHelper.clamp(currentHealth / maxHealth, 0.0f, 1.0f);
                float absorptionRatio = MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);

                healthBackAnim.run(healthBarWidth * healthRatio);
                healthBackAnim.setDuration(1750);
                healthAnim.run(healthBarWidth * healthRatio);

                absorptionAnim.run(healthBarWidth * MathHelper.clamp(healthRatio + absorptionRatio, 0.0f, 1.0f));
                absorptionAnim.setDuration(450);
                absorptionXAnim.run(hasAbsorption ? 1 : 0);
                absorptionXAnim.setDuration(450);
               
                int bgAlpha = (int) (140 * MathHelper.clamp((float) animation.getValue(), 0.0f, 1.0f));
                DrawUtil.drawRoundedRect(draggable.getX(), draggable.getY(), draggable.getWidth(), draggable.getHeight(), 3.0f, ColorUtil.rgba(0, 0, 0, bgAlpha));

                float avatarX = draggable.getX() + padding;
                float avatarY = draggable.getY() + (draggable.getHeight() - avatarSize) / 2.0f;
                drawRoundFace(stack, avatarX, avatarY, (int) avatarSize, 1.0f, 2.0f, renderTarget);

                float textX = avatarX + avatarSize + innerPadding;
                float nameY = draggable.getY() + padding;
                Fonts.robotomedium.drawText(stack, nameText, textX, nameY, -1, nameSize);

                float hpY = nameY + nameHeight + spacing;
                Fonts.robotomedium.drawText(stack, hpText, textX, hpY, -1, hpSize);

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionDrawX = draggable.getX() + draggable.getWidth() - padding - absorptionTextWidth;
                    int goldColor = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                    Fonts.robotomedium.drawText(stack, absorptionText, absorptionDrawX, hpY, goldColor, hpSize);
                }

                float healthBarX = textX;
                float healthBarY = hpY + hpHeight + spacing;
                DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthBarWidth, healthBarHeight, 1.0f, ColorUtil.rgba(0, 0, 0, 150));

                float healthFill = MathHelper.clamp((float) healthAnim.getValue(), 0.0f, healthBarWidth);
                if (healthFill > 0) {
                    int themeColor = ColorUtil.getCurrentThemeWithFirstColor();
                    int colorStart = ColorUtil.setAlpha(themeColor, 210);
                    int colorEnd = ColorUtil.setAlpha(ColorUtil.rgba(255, 255, 255, 255), 255);
                    DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthFill, healthBarHeight, 1.0f, 1.0f,
                            new Vector4i(colorStart, colorStart, colorEnd, colorEnd));
                }

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionOverlay = healthBarWidth * MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);
                    if (absorptionOverlay > 0) {
                        int goldStart = ColorUtil.rgba(57, 34, 4, (int) (absorptionXAnim.getValue() * 200));
                        int goldEnd = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                        DrawUtil.drawRoundedRect(healthBarX, healthBarY, Math.min(absorptionOverlay, healthBarWidth), healthBarHeight, 1.0f, 1.0f,
                                new Vector4i(goldStart, goldStart, goldEnd, goldEnd));
                    }
                }
зач такое сливать если пишется легко... ну выглядит норм
 
Попытался сделать чето нормальное, вышло вроде неплохо если довести до ума думаю пойдет.

SSПосмотреть вложение 319655

targethud:
Expand Collapse Copy
if (lastTarget != null || animation.getValue() > 0) {
            Hud hud = Evaware.getInstance().getModuleManager().getHud();
            if (hud.thMode.is("New")) {
                LivingEntity renderTarget = lastTarget != null ? lastTarget : mc.player;
                if (renderTarget == null) {
                    return;
                }

                float padding = 4.0f;
                float innerPadding = 4.0f;
                float avatarSize = 14.0f;
                float nameSize = 6.25f;
                float hpSize = 5.0f;
                float spacing = 2.5f;
                float healthBarHeight = 3.0f;

                String nameText = renderTarget.getNameString();
                float nameWidth = Fonts.robotomedium.getWidth(nameText, nameSize);
                float nameHeight = Fonts.robotomedium.getHeight(nameSize);

                float multiplier = (float) Math.pow(10, 1);
                float currentHealth = renderTarget.getHealth();
                float maxHealth = Math.max(renderTarget.getMaxHealth(), 1.0f);
                float absorptionAmount = renderTarget.getAbsorptionAmount();
                float finalHealth = Math.round(currentHealth * multiplier) / multiplier;
                float finalAbsorption = Math.round(absorptionAmount * multiplier) / multiplier;

                String hpText = "HP: " + finalHealth;
                float hpWidth = Fonts.robotomedium.getWidth(hpText, hpSize);
                float hpHeight = Fonts.robotomedium.getHeight(hpSize);

                boolean hasAbsorption = absorptionAmount > 0;
                String absorptionText = hasAbsorption ? "" + finalAbsorption : "";
                float absorptionTextWidth = hasAbsorption ? Fonts.robotomedium.getWidth(absorptionText, hpSize) : 0.0f;
                float combinedHpWidth = hasAbsorption ? hpWidth + absorptionTextWidth + 12.0f : hpWidth;

                float contentWidth = Math.max(nameWidth, combinedHpWidth);
                float healthBarWidth = Math.max(contentWidth, 55.0f);

                float totalWidth = padding + avatarSize + innerPadding + healthBarWidth + padding;
                float totalHeight = padding + nameHeight + spacing + hpHeight + spacing + healthBarHeight + padding;

                draggable.setWidth(totalWidth);
                draggable.setHeight(totalHeight);

                GlStateManager.pushMatrix();
                GLUtil.sizeAnimation(draggable.getX() + draggable.getWidth() / 2.0f, draggable.getY() + draggable.getHeight() / 2.0f, animation.getValue());

                float healthRatio = MathHelper.clamp(currentHealth / maxHealth, 0.0f, 1.0f);
                float absorptionRatio = MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);

                healthBackAnim.run(healthBarWidth * healthRatio);
                healthBackAnim.setDuration(1750);
                healthAnim.run(healthBarWidth * healthRatio);

                absorptionAnim.run(healthBarWidth * MathHelper.clamp(healthRatio + absorptionRatio, 0.0f, 1.0f));
                absorptionAnim.setDuration(450);
                absorptionXAnim.run(hasAbsorption ? 1 : 0);
                absorptionXAnim.setDuration(450);
               
                int bgAlpha = (int) (140 * MathHelper.clamp((float) animation.getValue(), 0.0f, 1.0f));
                DrawUtil.drawRoundedRect(draggable.getX(), draggable.getY(), draggable.getWidth(), draggable.getHeight(), 3.0f, ColorUtil.rgba(0, 0, 0, bgAlpha));

                float avatarX = draggable.getX() + padding;
                float avatarY = draggable.getY() + (draggable.getHeight() - avatarSize) / 2.0f;
                drawRoundFace(stack, avatarX, avatarY, (int) avatarSize, 1.0f, 2.0f, renderTarget);

                float textX = avatarX + avatarSize + innerPadding;
                float nameY = draggable.getY() + padding;
                Fonts.robotomedium.drawText(stack, nameText, textX, nameY, -1, nameSize);

                float hpY = nameY + nameHeight + spacing;
                Fonts.robotomedium.drawText(stack, hpText, textX, hpY, -1, hpSize);

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionDrawX = draggable.getX() + draggable.getWidth() - padding - absorptionTextWidth;
                    int goldColor = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                    Fonts.robotomedium.drawText(stack, absorptionText, absorptionDrawX, hpY, goldColor, hpSize);
                }

                float healthBarX = textX;
                float healthBarY = hpY + hpHeight + spacing;
                DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthBarWidth, healthBarHeight, 1.0f, ColorUtil.rgba(0, 0, 0, 150));

                float healthFill = MathHelper.clamp((float) healthAnim.getValue(), 0.0f, healthBarWidth);
                if (healthFill > 0) {
                    int themeColor = ColorUtil.getCurrentThemeWithFirstColor();
                    int colorStart = ColorUtil.setAlpha(themeColor, 210);
                    int colorEnd = ColorUtil.setAlpha(ColorUtil.rgba(255, 255, 255, 255), 255);
                    DrawUtil.drawRoundedRect(healthBarX, healthBarY, healthFill, healthBarHeight, 1.0f, 1.0f,
                            new Vector4i(colorStart, colorStart, colorEnd, colorEnd));
                }

                if (hasAbsorption && absorptionXAnim.getValue() > 0) {
                    float absorptionOverlay = healthBarWidth * MathHelper.clamp(absorptionAmount / maxHealth, 0.0f, 1.0f);
                    if (absorptionOverlay > 0) {
                        int goldStart = ColorUtil.rgba(57, 34, 4, (int) (absorptionXAnim.getValue() * 200));
                        int goldEnd = ColorUtil.rgba(255, 217, 13, (int) (absorptionXAnim.getValue() * 255));
                        DrawUtil.drawRoundedRect(healthBarX, healthBarY, Math.min(absorptionOverlay, healthBarWidth), healthBarHeight, 1.0f, 1.0f,
                                new Vector4i(goldStart, goldStart, goldEnd, goldEnd));
                    }
                }
Ну норм
 

Похожие темы

Назад
Сверху Снизу