-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
ss
не судите строго,моя первая робота!
Full code:
не судите строго,моя первая робота!
Пожалуйста, авторизуйтесь для просмотра ссылки.
Full code:
idk:
package eva.ware.ui.display.impl;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.platform.GlStateManager;
import eva.ware.Evaware;
import eva.ware.events.EventDisplay;
import eva.ware.modules.api.ModuleManager;
import eva.ware.modules.impl.render.HUD;
import eva.ware.ui.display.ElementRenderer;
import eva.ware.ui.themes.Theme;
import eva.ware.utils.animations.Animation;
import eva.ware.utils.animations.Direction;
import eva.ware.utils.animations.impl.EaseBackIn;
import eva.ware.utils.client.ClientUtil;
import eva.ware.utils.drag.Dragging;
import eva.ware.utils.math.MathUtil;
import eva.ware.utils.math.StopWatch;
import eva.ware.utils.math.Vector4i;
import eva.ware.utils.render.color.ColorUtils;
import eva.ware.utils.render.font.Fonts;
import eva.ware.utils.render.gl.Scissor;
import eva.ware.utils.render.gl.Stencil;
import eva.ware.utils.render.rect.DisplayUtils;
import eva.ware.utils.render.rect.RectUtil;
import eva.ware.utils.text.GradientUtil;
import eva.ware.utils.text.font.ClientFonts;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.entity.player.AbstractClientPlayerEntity;
import net.minecraft.client.gui.AbstractGui;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.scoreboard.Score;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector4f;
import org.lwjgl.opengl.GL11;
// BY PSYHODNYSKII
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
@FieldDefaults(level = AccessLevel.PRIVATE)
@RequiredArgsConstructor
public class TargetInfoRenderer implements ElementRenderer {
final StopWatch stopWatch = new StopWatch();
final Dragging drag;
LivingEntity entity = null;
boolean allow;
final Animation animation = new EaseBackIn(400, 1, 1);
float healthAnimation = 0.0f;
float absorptionAnimation = 0.0f;
float width = 138 / 1.5f;
float height = 54 / 1.5f;
// BY PSYHODNYSKII
@Override
public void render(EventDisplay eventDisplay) {
entity = getTarget(entity);
float rounding = 6;
boolean out = !allow || stopWatch.isReached(1000);
animation.setDuration(out ? 600 : 500);
animation.setDirection(out ? Direction.BACKWARDS : Direction.FORWARDS);
FloatFormatter formatter = new FloatFormatter();
if (animation.getOutput() == 0.0f) {
entity = null;
}
if (entity != null) {
String name = entity.getName().getString();
float posX = drag.getX();
float posY = drag.getY();
int headSize = 28;
float spacing = 5;
drag.setWidth(width);
drag.setHeight(height);
Score score = mc.world.getScoreboard().getOrCreateScore(entity.getScoreboardName(), mc.world.getScoreboard().getObjectiveInDisplaySlot(2));
float hp = entity.getHealth();
float maxHp = entity.getMaxHealth();
float healthPercent = (hp / maxHp) * 100;
String healthText = String.format(" %.1f%%", healthPercent);
healthAnimation = MathUtil.fast(healthAnimation, MathHelper.clamp(hp / maxHp, 0, 1), 10);
absorptionAnimation = MathUtil.fast(absorptionAnimation, MathHelper.clamp(entity.getAbsorptionAmount() / maxHp, 0, 1), 10);
float animationValue = (float) animation.getOutput();
float halfAnimationValueRest = (1 - animationValue) / 2f;
float testX = posX + (width * halfAnimationValueRest);
float testY = posY + (height * halfAnimationValueRest);
float testW = width * animationValue;
float testH = height * animationValue;
float finalHp;
String header = mc.ingameGUI.getTabList().header == null ? " " : mc.ingameGUI.getTabList().header.getString().toLowerCase();
if (mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP.contains("funsky")) {
finalHp = formatter.format(hp);
} else {
finalHp = formatter.format((hp + entity.getAbsorptionAmount()));
}
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);
if (mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP.contains("funtime") && (header.contains("анархия") || header.contains("гриферский")) && this.entity instanceof PlayerEntity) {
hp = (float)score.getScorePoints();
maxHp = 20.0F;
}
// BY PSYHODNYSKII
GlStateManager.pushMatrix();
sizeAnimation(posX + (width / 0.5f), posY + (height / 1), animation.getOutput());
DisplayUtils.drawRoundedRect(posX, posY, width, height, 5, ColorUtils.rgba(19, 29, 35, 229)); // Adjust color and opacity
if (Evaware.getInstance().getModuleManager().getHud().tHudMode.is("Обычный")) {
float shadowX = posX + 3 + 2; // Смещение по X
float shadowY = posY + 3 + 2; // Смещение по Y
int shadowWidth = 26; // Ширина тени
int shadowHeight = 29; // Высота тени
int shadowColor = ColorUtils.setAlpha(Theme.rectColor, 80); // Цвет тени
// Рисуем тень
DisplayUtils.drawShadow(shadowX, shadowY, shadowWidth, shadowHeight, 8, shadowColor, shadowColor);
DisplayUtils.drawImage(new ResourceLocation("eva/images/health.png"), posX + 53 / 1.5f, posY + 17, 7, 7, ColorUtils.rgba(255, 255, 255, 255));
DisplayUtils.drawImage(new ResourceLocation("eva/images/steve.png"), posX + 5, posY + 5, 25, 26, ColorUtils.rgba(255, 255, 255, 255));
// Завися от хп типа текст
if (hp <= 3) {
Fonts.sfbold.drawCenteredText(eventDisplay.getMatrixStack(), "[ EZ ]", posX + 53, posY + height / 1.3f - 0+ Fonts.sfbold.getHeight(15.4f) + 1, ColorUtils.rgb(255, 255, 255), 6F);
}
if (hp == mc.player.getHealth() && !(hp <= 3)) {
Fonts.sfbold.drawCenteredText(eventDisplay.getMatrixStack(), "[ Losing ]", posX + 53, posY + height / 1.3f - 0+ Fonts.sfbold.getHeight(15.4f) + 1, ColorUtils.rgb(255, 255, 255), 6F);
}
if (hp > mc.player.getHealth() && !(hp <= 3)) {
Fonts.sfbold.drawCenteredText(eventDisplay.getMatrixStack(), "[ Losing ]",posX + 53, posY + height / 1.3f - 0+ Fonts.sfbold.getHeight(15.4f) + 1, ColorUtils.rgb(255, 255, 255), 6F);
} else if (hp < mc.player.getHealth() && !(hp <= 3)) {
Fonts.sfbold.drawCenteredText(eventDisplay.getMatrixStack(), "[ Winning ]", posX + 53, posY + height / 1.3f - 0+ Fonts.sfbold.getHeight(15.4f) + 1, ColorUtils.rgb(255, 255, 255), 6F);
}
// Рисуем контуры здоровья
DisplayUtils.drawRoundedRect(posX + 5 + headSize + spacing + spacing - 9, posY + 6 + height - spacing * 2 - 4f, (width - 40), 3, new Vector4f(3, 3, 3, 3), ColorUtils.rgb(32, 32, 32));
DisplayUtils.drawRoundedRect(posX + 5 + headSize + spacing + spacing - 9, posY + 6 + height - spacing * 2 - 4f, (width - 40) * healthAnimation, 3, new Vector4f(3, 3, 3, 3), ColorUtils.getColor(1));
DisplayUtils.drawShadow(posX + 5 + headSize + spacing + spacing - 9, posY + 6 + height - spacing * 2 - 4f, (width - 40) * healthAnimation, 3, 8, ColorUtils.setAlpha(Theme.rectColor, 80), ColorUtils.setAlpha(Theme.mainRectColor, 80));
// Подсчет ширины текста имени
float maxTextWidth = (width - (headSize + spacing * 2)) - 10;
float nameWidth = Fonts.exp4.getWidth(name, 8, 0.07f);
// Если текст выходит за пределы, обрезаем его
if (nameWidth > maxTextWidth) {
while (nameWidth > maxTextWidth && name.length() > 0) {
name = name.substring(0, name.length() - 1);
nameWidth = Fonts.exp4.getWidth(name, 8, 0.07f);
}
name += "...";
}
Scissor.push();
Scissor.setFromComponentCoordinates(testX, testY, testW, testH);
float fixedHeadSize = 28;
Fonts.exp4.drawText(eventDisplay.getMatrixStack(), name, posX - 4.3f + fixedHeadSize + spacing + spacing, posY + 1 + spacing, Theme.textColor, 8, .07f);
Fonts.sfui.drawText(
eventDisplay.getMatrixStack(),
healthText,
posX + 5 + headSize + spacing + spacing - 9,
posY + height - spacing * 1.8f - 10,
Theme.textColor,
6.5f,
0.05f
);
Scissor.unset();
Scissor.pop();
Vector4i vector4i = new Vector4i(Theme.rectColor, Theme.rectColor, Theme.mainRectColor, Theme.mainRectColor);
}
// BY PSYHODNYSKII
if (Evaware.getInstance().getModuleManager().getHud().tHudMode.is("Неон")) {
width = 160 / 1.5f;
headSize = 35;
DisplayUtils.drawShadow(posX, posY, width, height, 5, ColorUtils.setAlpha(Theme.darkMainRectColor, 70), ColorUtils.setAlpha(Theme.rectColor, 70));
DisplayUtils.drawRoundedRect(posX, posY, width, height, 0, ColorUtils.rgba(20, 20, 20, 170));
// Добавляем отрисовку тени
float shadowX = posX + 3; // Смещение по X
float shadowY = posY + 3; // Смещение по Y
int shadowWidth = (int) width; // Ширина тени
int shadowHeight = (int) height; // Высота тени
int shadowColor = ColorUtils.setAlpha(Theme.rectColor, 80); // Цвет тени
// Рисуем тень
DisplayUtils.drawShadow(shadowX, shadowY, shadowWidth, shadowHeight, 5, shadowColor, shadowColor);
sizeAnimation(posX + (width / 2), posY + (height / 2), animation.getOutput());
DisplayUtils.drawRoundedRect(posX, posY, width, height, 5, ColorUtils.rgba(19, 29, 35, 229)); // Основной фон
Stencil.initStencilToWrite();
DisplayUtils.drawRoundedRect(posX, posY, headSize, headSize, 5,-1);
Stencil.readStencilBuffer(1);
drawHead(eventDisplay.getMatrixStack(), entity, posX, posY, headSize);
Stencil.uninitStencilBuffer();
Vector4i vector4i = new Vector4i(Theme.rectColor, Theme.rectColor, Theme.mainRectColor, Theme.mainRectColor);
DisplayUtils.drawRoundedRect(posX, posY + 3 + height - spacing, (width), 5, new Vector4f(0,0,0,0), ColorUtils.rgb(32, 32, 32));
DisplayUtils.drawRoundedRect(posX, posY + 3 + height - spacing, (width) * healthAnimation, 5, new Vector4f(0,0,0,0), vector4i);
DisplayUtils.drawShadow(posX, posY + 3 + height - spacing, (width) * healthAnimation, 5, 8, ColorUtils.setAlpha(Theme.rectColor, ColorUtils.setAlpha(Theme.mainRectColor, 80)));
float x = posX + headSize + spacing - 2.5f, y = posY + spacing;
Scissor.push();
Scissor.setFromComponentCoordinates(testX, testY, testW - 1, testH);
Fonts.montserrat.drawText(eventDisplay.getMatrixStack(), name, x, y, -1, 8, 0.05f);
Fonts.montserrat.drawText(eventDisplay.getMatrixStack(), "Health: ", x , y + (spacing * 2), ColorUtils.rgb(200, 200, 200), 8, 0.02f);
Fonts.montserrat.drawText(eventDisplay.getMatrixStack(), GradientUtil.gradient(finalHp + ""), x + Fonts.montserrat.getWidth("Health: ", 8, 0.02f), y + (spacing * 2), 8, 255);
Scissor.unset();
Scissor.pop();
drawItemStack(posX + headSize + spacing - 2.5f, posY - 1 + spacing * 5, 9, 0.6f);
}
GlStateManager.popMatrix();
}
}
private LivingEntity getTarget(LivingEntity nullTarget) {
LivingEntity auraTarget = Evaware.getInstance().getModuleManager().getHitAura().getTarget();
LivingEntity target = nullTarget;
if (auraTarget != null) {
stopWatch.reset();
allow = true;
target = auraTarget;
} else if (mc.currentScreen instanceof ChatScreen) {
stopWatch.reset();
allow = true;
target = mc.player;
} else {
allow = false;
}
return target;
}
// BY PSYHODNYSKII
private void drawHead(MatrixStack matrix, final Entity entity, final double x, final double y, final int size) {
if (entity instanceof AbstractClientPlayerEntity player) {
RenderSystem.enableBlend();
RenderSystem.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
RenderSystem.alphaFunc(GL11.GL_GREATER, 0);
RenderSystem.enableTexture();
mc.getTextureManager().bindTexture(player.getLocationSkin());
float hurtPercent = (((AbstractClientPlayerEntity) entity).hurtTime - (((AbstractClientPlayerEntity) entity).hurtTime != 0 ? mc.timer.renderPartialTicks : 0.0f)) / 10.0f;
RenderSystem.color4f(1, 1 - hurtPercent, 1 - hurtPercent, 1);
AbstractGui.blit(matrix, (float) x, (float) y, size, size, 4F, 4F, 4F, 4F, 32F, 32F);
DisplayUtils.scaleStart((float) (x + size / 2F), (float) (y + size / 2F), 1.1F);
AbstractGui.blit(matrix, (float) x, (float) y, size, size, 20, 4, 4, 4, 32, 32);
DisplayUtils.scaleEnd();
RenderSystem.disableBlend();
} else {
int color = ColorUtils.getColor(20, 128);
RectUtil.getInstance().drawRoundedRectShadowed(matrix, (float) x, (float) y, (float) (x + size), (float) (y + size), 2F, 1, color, color, color, color, false, false, true, true);
ClientFonts.interRegular[size * 2].drawCenteredString(matrix, "?", x + (size / 2F), y + 3 + (size / 2F) - (ClientFonts.interRegular[size * 2].getFontHeight() / 2F), -1);
}
}
private void drawItemStack(float x, float y, float offset, float scale) { // BY PSYHODNYSKII
ArrayList<ItemStack> stackList = new ArrayList(Arrays.asList(this.entity.getHeldItemMainhand(), this.entity.getHeldItemOffhand()));
stackList.addAll((Collection)this.entity.getArmorInventoryList());
AtomicReference<Float> posX = new AtomicReference(x);
stackList.stream().filter((stack) -> {
return !stack.isEmpty();
}).forEach((stack) -> {
drawItemStack(stack, (Float)posX.getAndAccumulate(offset, Float::sum), y, true, true, scale);
});
}
public void drawItemStack(ItemStack stack, float x, float y, boolean withoutOverlay, boolean scale, float scaleValue) {
RenderSystem.pushMatrix();
RenderSystem.translatef(x, y, 0.0F);
if (scale) {
GL11.glScaled((double)scaleValue, (double)scaleValue, (double)scaleValue);
}
mc.getItemRenderer().renderItemAndEffectIntoGUI(stack, 0, 0);
if (withoutOverlay) {
mc.getItemRenderer().renderItemOverlays(mc.fontRenderer, stack, 0, 0);
}
// BY PSYHODNYSKII
RenderSystem.popMatrix();
}
public static void sizeAnimation(double width, double height, double scale) {
GlStateManager.translated(width, height, 0);
GlStateManager.scaled(scale, scale, scale);
GlStateManager.translated(-width, -height, 0);
}
public class FloatFormatter {
public float format(float value) {
return Math.round(value * 2) / 2.0f;
}
}
}
// BY PSYHODNYSKII
Последнее редактирование: