Начинающий
- Статус
- Оффлайн
- Регистрация
- 10 Июл 2025
- Сообщения
- 18
- Реакции
- 0
- Выберите загрузчик игры
- Vanilla
- Прочие моды
Показывает оповещение о низком хп над прицелом
HpAlert.java:
package im.expensive.functions.impl.render;
import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventDisplay;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.functions.settings.impl.StringSetting;
import im.expensive.utils.render.DisplayUtils;
import im.expensive.utils.render.font.Fonts;
import net.minecraft.util.ResourceLocation;
@FunctionRegister(name = "HpAlert", type = Category.Render)
public class HpAlert extends Function {
SliderSetting HP = new SliderSetting("Хп для срабатывания", 8.0F, 1.0F, 20.0F, 1.0F);
public StringSetting Message = new StringSetting("Текст сообщения", "Нужен отхил!", "Текст для оповещения");
public ModeSetting FontYopta = new ModeSetting("Шрифт", "SFUI", "SFUI", "Montserrat");
public ModeSetting Photoshop = new ModeSetting("Стиль", "brokenIOS", "brokenIOS", "fireIOS", "3D", "Alert");
private float Animki1 = 0.0F;
private boolean Animki2 = true;
private long Animki3 = 0L;
private final int FontSize = 20;
private static final float Photo1 = 120.0F;
private static final float Photo2 = 95.0F;
private static final int Place1 = 50;
private static final int Place2 = 15;
public HpAlert() {
addSettings(HP, Message, FontYopta, Photoshop);
}
@Subscribe
public void onRender(EventDisplay event) {
if (event.getType() != EventDisplay.Type.HIGH) return;
if (mc.player == null) return;
if (mc.player.getHealth() < HP.get()) {
long timeNow = System.currentTimeMillis();
if (timeNow - Animki3 > 50L) {
Animki3 = timeNow;
if (Animki2) {
Animki1 += 0.07F;
if (Animki1 >= 1.0F) {
Animki1 = 1.0F;Animki2 = false;
}
} else {
Animki1 -= 0.07F;
if (Animki1 <= 0.0F) {
Animki1 = 0.0F;Animki2 = true;
}
}
}
int Screen = mc.getMainWindow().getScaledWidth();int Color = (int)(Animki1 * 255.0F) << 24 | 0xFFFFFF;
float Photo3 = (Screen - Photo1) / 2;float Photo4 = Place1;
String Text1 = Message.get();float Text2 = Fonts.sfui.getWidth(Text1, FontSize);
float Text3 = (Screen - Text2) / 2;float Text4 = Photo4 + Photo2 + Place2;
if (Animki1 > 0.0F) {
com.mojang.blaze3d.matrix.MatrixStack MS = event.getMatrixStack();
switch (FontYopta.get()) {
case "SFUI":
Fonts.sfui.drawText(MS, Text1, Text3, Text4, Color, FontSize);
break;
case "Montserrat":
Fonts.montserrat.drawText(MS, Text1, Text3, Text4, Color, FontSize);
break;
}
}
ResourceLocation brokenIOS = new ResourceLocation("expensive/images/lowhp1.png");
ResourceLocation alert = new ResourceLocation("expensive/images/lowhp4.png");
ResourceLocation fireIOS = new ResourceLocation("expensive/images/lowhp2.png");
ResourceLocation ЗD = new ResourceLocation("expensive/images/lowhp3.png");
switch (Photoshop.get()) {
case "brokenIOS":
DisplayUtils.drawImage(brokenIOS, Photo3, Photo4, Photo1, Photo2, -2);
break;
case "fireIOS":
DisplayUtils.drawImage(fireIOS, Photo3, Photo4, Photo1, Photo2, -2);
break;
case "3D":
DisplayUtils.drawImage(ЗD, Photo3, Photo4, Photo1, Photo2, -2);
break;
case "Alert":
DisplayUtils.drawImage(alert, Photo3, Photo4, Photo1, Photo2, -2);
break;
}
}
}
}
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
