Визуальная часть TargetHUD с индикаторами win/lose | exp 3.1 ready

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
5 Июл 2025
Сообщения
17
Реакции
0
Выберите загрузчик игры
  1. Vanilla
  2. Прочие моды

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

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

Спасибо!

Васап югейм, написал таргет худ с индикаторами win / lose которые чекают хп
SS:
1753867269171.png
1753867303329.png

CODE:
package im.expensive.ui.display.impl;import com.mojang.blaze3d.platform.GlStateManager;
import im.expensive.Expensive;import im.expensive.events.EventDisplay;
import im.expensive.events.EventUpdate;import im.expensive.ui.display.ElementRenderer;
import im.expensive.ui.styles.Style;import im.expensive.utils.animations.Animation;
import im.expensive.utils.animations.Direction;import im.expensive.utils.animations.impl.EaseBackIn;
import im.expensive.utils.drag.Dragging;import im.expensive.utils.math.MathUtil;
import im.expensive.utils.math.StopWatch;import im.expensive.utils.math.Vector4i;
import im.expensive.utils.render.*;import im.expensive.utils.render.font.Fonts;
import lombok.AccessLevel;import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;import net.minecraft.client.gui.AbstractGui;
import net.minecraft.client.gui.screen.ChatScreen;import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.entity.LivingEntity;import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.scoreboard.Score;import net.minecraft.scoreboard.Scoreboard;
import net.minecraft.util.ResourceLocation;import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;import org.lwjgl.opengl.GL11;
import java.awt.*;
@FieldDefaults(level = AccessLevel.PRIVATE) public class TargetInfoRenderer implements ElementRenderer {
private final StopWatch stopWatch = new StopWatch();
private final Dragging drag;private LivingEntity entity = null;
private boolean allow;private final Animation animation = new EaseBackIn(400, 1.0, 1.0F);
private float healthAnimation = 0.0F;private float absorptionAnimation = 0.0F;
@Override public void update(EventUpdate e) {}
public void render(EventDisplay eventDisplay) {this.entity = this.getTarget(this.entity);
boolean out = !this.allow || this.stopWatch.isReached(1000L);this.animation.setDuration(out ? 400 : 300);
this.animation.setDirection(out ? Direction.BACKWARDS : Direction.FORWARDS);if (this.animation.getOutput() == 0.0) {this.entity = null;}
if (this.entity != null) {String name = this.entity.getName().getString();
float t66ax = this.drag.getX();float I16MD = this.drag.getY();
float CYqfG = 31.0F;float s4Haf = 5.0F;
float rfL31 = 117.66F;float iKs0r = 39.33f;
this.drag.setWidth(rfL31);this.drag.setHeight(iKs0r);
Minecraft mc = Minecraft.getInstance();Scoreboard scoreboard = mc.world.getScoreboard();
String scoreboardName = this.entity.getScoreboardName();Score score = scoreboard.getOrCreateScore(scoreboardName, scoreboard.getObjectiveInDisplaySlot(2));
float hp = this.entity.getHealth();float maxHp = this.entity.getMaxHealth();
String header = mc.ingameGUI.getTabList().header == null ? " " : mc.ingameGUI.getTabList().header.getString().toLowerCase();
if (mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP.contains("funtime") &&
(header.contains("анархия") || header.contains("гриферский")) && this.entity instanceof PlayerEntity) {
hp = (float) score.getScorePoints();maxHp = 20.0F;}
this.healthAnimation = MathUtil.fast(this.healthAnimation, MathHelper.clamp(hp / maxHp, 0.0F, 1.0F), 10.0F);
this.absorptionAnimation = MathUtil.fast(this.absorptionAnimation, MathHelper.clamp(this.entity.getAbsorptionAmount() / maxHp, 0.0F, 1.0F), 10.0F);
float animationValue = (float) this.animation.getOutput();float halfAnimationValueRest = (1.0F - animationValue) / 2.0F;
float testX = t66ax + rfL31 * halfAnimationValueRest;float testY = I16MD + iKs0r * halfAnimationValueRest;
float testW = rfL31 * animationValue;float testH = iKs0r * animationValue;
GlStateManager.pushMatrix();Style style = Expensive.getInstance().getStyleManager().getCurrentStyle();
sizeAnimation(t66ax + rfL31 / 2.0F, I16MD + iKs0r / 2.0F, this.animation.getOutput());
int backgroundColor = ColorUtils.rgba(10, 15, 13, 200);
DisplayUtils.drawRoundedRect(t66ax + 5.0F, I16MD - 0.5F, rfL31 - 15.0F, iKs0r - 1.5F, 6, backgroundColor);
Stencil.initStencilToWrite();
DisplayUtils.drawRoundedRect(t66ax + 2.5F + 5.5F, I16MD + 2.5F, CYqfG + 0.5F, CYqfG + 0.5F, 6.0F, style.getSecondColor().getRGB());Stencil.readStencilBuffer(1);
this.drawTargetHead(this.entity, t66ax + 2.5F + 5.5F, I16MD + 2.5F, CYqfG + 0.5F, CYqfG + 0.5F);
Stencil.uninitStencilBuffer();double scale = Math.pow(10.0, 1.0);double result = Math.ceil(hp * scale) / scale;
String qW8FP3 = String.valueOf(result);if (result > 45.0) {qW8FP3 = "Неизвестно";}
Scissor.push();Scissor.setFromComponentCoordinates(testX, testY, testW - 18.85F, testH);
Fonts.sfui.drawText(eventDisplay.getMatrixStack(), name, t66ax + 42, I16MD + 5, ColorUtils.rgb(255, 255, 255), 8.3f);
Fonts.sfui.drawText(eventDisplay.getMatrixStack(), "HP: " + qW8FP3, t66ax + 43, I16MD + 16, ColorUtils.rgb(255, 255, 255), 6.3f);
PlayerEntity player = mc.player;if (player != null) {String POef25 = hp < player.getHealth() ? "< win" : "< lose";Color lDZYD4 = style.getFirstColor();
float statusX = t66ax + 36 + Minecraft.getInstance().fontRenderer.getStringWidth("HP: " + qW8FP3);
float statusY = I16MD + 16;Fonts.sfui.drawText(eventDisplay.getMatrixStack(), POef25, statusX, statusY,
ColorUtils.rgb(lDZYD4.getRed(), lDZYD4.getGreen(), lDZYD4.getBlue()), 6.3f);}
Scissor.unset();Scissor.pop();
Vector4i vector4i = new Vector4i(style.getSecondColor().getRGB(), style.getSecondColor().getRGB(), style.getFirstColor().getRGB(), style.getFirstColor().getRGB());
DisplayUtils.drawRoundedRect(t66ax + 30.0F + s4Haf + s4Haf + 2.5F, I16MD + iKs0r - s4Haf * 2.0F - 4.0F,
(rfL31 - 58.0F) * this.healthAnimation, 7.0F, new Vector4f(4.0F, 4.0F, 4.0F, 4.0F), vector4i);GlStateManager.popMatrix();}}
private LivingEntity getTarget(LivingEntity nullTarget) {
LivingEntity auraTarget = Expensive.getInstance().getFunctionRegistry().getKillAura().getTarget();LivingEntity target = nullTarget;if (auraTarget != null) {
this.stopWatch.reset();this.allow = true;target = auraTarget;} else if (Minecraft.getInstance().currentScreen instanceof ChatScreen) {
this.stopWatch.reset();this.allow = true;target = Minecraft.getInstance().player;}else {this.allow = false;}return target;}
public void drawTargetHead(LivingEntity entity, float x, float y, float width, float height) {if (entity != null) {
EntityRenderer<? super LivingEntity> rendererManager = Minecraft.getInstance().getRenderManager().getRenderer(entity);
this.drawFace(rendererManager.getEntityTexture(entity), x, y, 8.0F, 8.0F, 8.0F, 8.0F, width, height, 64.0F, 64.0F, entity);
this.drawFace(rendererManager.getEntityTexture(entity), x, y, 104.0F, 8.0F, 8.0F, 8.0F, width, height, 64.0F, 64.0F, entity);}}
public static void sizeAnimation(double width, double height, double scale) {
GlStateManager.translated(width, height, 0.0);GlStateManager.scaled(scale, scale, scale);GlStateManager.translated(-width, -height, 0.0);}
public void drawFace(ResourceLocation res, float d, float y, float u, float v, float uWidth, float vHeight, float width, float height, float tileWidth, float tileHeight, LivingEntity target) {
GL11.glPushMatrix();GL11.glEnable(3042);
Minecraft.getInstance().getTextureManager().bindTexture(res);float hurtPercent = ((float) target.hurtTime - (target.hurtTime != 0 ? Minecraft.getInstance().timer.renderPartialTicks : 0.0F)) / 10.0F;
GL11.glColor4f(1.0F, 1.0F - hurtPercent, 1.0F - hurtPercent, 1.0F);
AbstractGui.drawScaledCustomSizeModalRect(d, y, u, v, uWidth, vHeight, width, height, tileWidth, tileHeight);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);GL11.glPopMatrix();}
public TargetInfoRenderer(Dragging drag) {this.drag = drag;}}

Не бейте :roflanEbalo:
 
в 2 строки делается
 
очень хорошо брат тему ты отформатировал
 
да ну нахуй новая тема и не каличная
 
очень хорошо брат тему ты отформатировал
если ты имеешь в виду цвет худа то он с разными темами клиента работает просто скрины с двумя разными цветовыми темами
 
если ты имеешь в виду цвет худа то он с разными темами клиента работает просто скрины с двумя разными цветовыми темами
я про то, как код выглядит в теме самой, он не читаем
 
я про то, как код выглядит в теме самой, он не читаема
а ну мне удобно так, если надо в читаемом виде - чат гпт в помощь он там может нормально расписать вроде
 

Вложения

  • Screenshot_20250731_000750.jpg
    Screenshot_20250731_000750.jpg
    340.5 KB · Просмотры: 39
1753909768315.png

мне так удобно писать (я мазохист?)
 
заебись оформление
 
Это защита. Только вместо var1000
 
ты хоть мог в чат жпт код закинуть чтоб улучшил
 
Назад
Сверху Снизу