-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
ss:
Жду в ваших клиентах
Java:
@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;
@Override
public void render(EventDisplay eventDisplay) {
MatrixStack ms = eventDisplay.getMatrixStack();
entity = getTarget(entity);
boolean out = !allow || stopWatch.isReached(1000);
animation.setDuration(out ? 400 : 300);
animation.setDirection(out ? Direction.BACKWARDS : Direction.FORWARDS);
if (animation.getOutput() == 0.0f) {
entity = null;
}
if (entity != null) {
float posX = drag.getX();
float posY = drag.getY();
float headSize = 20;
float spacing = 5;
float width = 172 / 1.5f;
float height = 59 / 1.5f;
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();
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("гриферский")) && entity instanceof PlayerEntity) {
hp = score.getScorePoints();
maxHp = 20;
}
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;
GlStateManager.pushMatrix();
sizeAnimation(posX + (width / 2), posY + (height / 2), animation.getOutput());
Scissor.push();
Scissor.setFromComponentCoordinates(testX, testY, testW - 6, testH);
Scissor.unset();
Scissor.pop();
Fonts.moon.drawCenteredText(ms, entity.getName().getString(), posX + headSize + spacing + spacing + 46.8f, posY + spacing + 1 - 3, ColorUtils.rgb(0, 0, 0), 12.5f);
Fonts.moon.drawCenteredText(eventDisplay.getMatrixStack(), entity.getName().getString(), posX + headSize + spacing + spacing + 46.5f, posY + spacing + 1 - 3, -1, 12.5f);
DisplayUtils.drawShadow(posX + headSize + spacing + spacing, posY - spacing * 2 - 3 + 35, (width - 20), 7, 5, ColorUtils.rgba(0,0,0, 50));
DisplayUtils.drawRoundedRect(posX + headSize + spacing + spacing, posY - spacing * 2 - 3 + 35, (width - 20), 7, 1, ColorUtils.rgba(0,0,0, 150));
RenderUtils.renderClientBloom(eventDisplay.getMatrixStack(), posX + headSize + spacing + spacing, posY + - spacing * 2 - 3 + 34, (width - 20) * healthAnimation, 8.5f, 1);
Fonts.tenacity.drawText(eventDisplay.getMatrixStack(), "" + ((int) hp + (int) mc.player.getAbsorptionAmount()) + ".0 / 20.0", posX + headSize + spacing + spacing + 30,
posY + spacing + 1 + spacing + spacing + 4.8f, ColorUtils.rgb(255, 255, 255), 7.5f);
GlStateManager.popMatrix();
}
}
private LivingEntity getTarget(LivingEntity nullTarget) {
LivingEntity auraTarget = Hysteria.getInstance().getFunctionRegistry().getKillAura().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;
}
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);
}
}