-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Увидел то что никто не может спастить этот вырвеглазный HUD Nursultan на EXP 2.0 | Если худ на SS Говно - смотрите у себя потому что у меня другие шрифты!
Вот сливаю вам такой HUD Nursultan под базу Expensive 2.0:
На самом деле сложнее всего было написать код на музыку, а так нет.
Иконки не с нурика потому что нужно установить шрифт (Я использовал другой потому что я буду переделывать HUD под свой чит)
Чтобы были те иконки установите nyrik.ttf по кнопке
На 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:
Вот сливаю вам такой HUD Nursultan под базу Expensive 2.0:
На самом деле сложнее всего было написать код на музыку, а так нет.
Иконки не с нурика потому что нужно установить шрифт (Я использовал другой потому что я буду переделывать 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("#", 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();
}