-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Я как пастер, искал нотифки, пытался взять у моутена, не ворк, пытался взять у пионера - не ворк, ну так вот скачав рандом базу, я увидел эти самые нотифки, и обрадовался, спастив их, я сразу же(нет) лечу заливать гайд для братьев по моему разуму, ну чтож
1.В любой рандомный путь мы закижываем это
2. В класс Function заменяем public static void toggle и setState на это
3. В классе худ мы добавляем
new BooleanSetting("Уведомления", true),
final NotifRenderer notifRenderer;
if (elements.getValueByName("Уведомления").get()) notifRenderer.render(e);
notifRenderer = new NotifRenderer();
ss -
1.В любой рандомный путь мы закижываем это
Код:
public class NotifRenderer implements ElementRenderer {
static final List notifications = new ArrayList();
public static void addNotification(String text, ITextComponent content, int time) {
notifications.add(new Notification(text, content, time));
}
@Override
public void render(EventDisplay eventDisplay) {
MatrixStack stack = eventDisplay.getMatrixStack();
if (mc.player.world != null) {
Iterator iterator2 = notifications.iterator();
float yOffset = 0.0f;
while (iterator2.hasNext()) {
Notification notification = (Notification) iterator2.next();
if (System.currentTimeMillis() - notification.startTime > (long) notification.time * 1000L - 300L) {
notification.fadeAnimation.setDirection(Direction.BACKWARDS);
notification.slideAnimation.setDirection(Direction.BACKWARDS);
} else {
notification.fadeAnimation.setDirection(Direction.FORWARDS);
notification.slideAnimation.setDirection(Direction.FORWARDS);
}
if (notification.fadeAnimation.finished(Direction.BACKWARDS) &&
notification.slideAnimation.finished(Direction.BACKWARDS)) {
iterator2.remove();
continue;
}
float x = (float) mc.getMainWindow().getScaledWidth() - (Fonts.sfbold.getWidth(notification.text, 6.0f) + 8.0f) - 15.0f;
float y = (float) (mc.getMainWindow().getScaledHeight() - 30) - yOffset * 24.0f;
notification.draw(stack, x, y);
yOffset += 1.0f;
yOffset += 0.15f;
}
}
}
private static class Notification {
private String text;
private ITextComponent content;
private int time;
private long startTime;
private Animation slideAnimation = new DecelerateAnimation(500, 1.0, Direction.FORWARDS);
private Animation fadeAnimation = new DecelerateAnimation(500, 1.0, Direction.FORWARDS);
public Notification(String text, ITextComponent content, int time) {
this.text = text;
this.content = content;
this.time = time;
this.startTime = System.currentTimeMillis();
}
public float draw(MatrixStack stack, float x, float y) {
float width = Fonts.sfbold.getWidth(this.text, 6.5f) + 12.0f;
float slideOffset = (float) (width * (1.0 - slideAnimation.getOutput()));
float alpha = (float) fadeAnimation.getOutput();
DisplayUtils.drawRoundedRect(x + slideOffset, y, width, 23.0f, new Vector4f(4.0f,4.0f,4.0f,4.0f), ColorUtils.rgba(15, 11, 20,215));
Fonts.sfbold.drawText(stack, this.content, x + slideOffset + 6.0f, y + 5.0f, 6.5f, (int) (255 * alpha));
Fonts.sfbold.drawText(stack, this.text, x + slideOffset + 6.0f, y + 13.0f, -1, 6.5f);
return 24.0f;
}
}
}
2. В класс Function заменяем public static void toggle и setState на это
Код:
public final void toggle() {
setState(!state, false);
}
public final void setState(boolean newState, boolean config) {
if (state == newState) {
return;
}
state = newState;
try {
if (state) {
onEnable();
} else {
onDisable();
}
if (!config) {
FunctionRegistry moduleRegistry = Divini4ev.getInstance().getFunctionRegistry();
ClientSounds clientSounds = moduleRegistry.getClientSounds();
if (clientSounds != null && clientSounds.isState()) {
String fileName = clientSounds.getFileName(state);
float volume = clientSounds.volume.get();
ClientUtil.playSound(fileName, volume, false);
}
}
StringTextComponent text = GradientUtil.gradient("Функция");
String var10000 = this.name;
NotifRenderer.addNotification(var10000 + " была " + (this.state ? "включена" : "выключена"), text, 3);
} catch (Exception e) {
handleException(state ? "onEnable" : "onDisable", e);
}
}
3. В классе худ мы добавляем
new BooleanSetting("Уведомления", true),
final NotifRenderer notifRenderer;
if (elements.getValueByName("Уведомления").get()) notifRenderer.render(e);
notifRenderer = new NotifRenderer();
ss -
