всем привiт с вами вiт сливаю серклики :roflanEbalo: если что там анимация по кругу и затухание, все настраиваемое слайдер сеттинги кто хочет уберет ss = также жду эти серклы в невернайте невербелсе ну и всех энэн пастах:D code = package ya.sosalpenis.modules.impl.render; import com.google.common.eventbus.Subscribe; import com.mojang.blaze3d.platform.GlStateManager; import net.minecraft.client.renderer.BufferBuilder; import ya.sosalpenis.events.JumpEvent; import ya.sosalpenis.events.WorldEvent; import ya.sosalpenis.modules.api.Category; import ya.sosalpenis.modules.api.Module; import ya.sosalpenis.modules.api.ModuleRegister; import ya.sosalpenis.modules.settings.impl.ModeSetting; import ya.sosalpenis.modules.settings.impl.SliderSetting; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.vector.Vector3d; import ru.hogoshi.Animation; import ru.hogoshi.util.Easings; import ya.sosalpenis.ui.themes.Theme; import ya.sosalpenis.utils.render.color.ColorUtils; import java.util.concurrent.CopyOnWriteArrayList; // byZ1dd3r (bst coder soon) // хайке крутой менбро дотер ебаный фунахуй @ModuleRegister(name = "JumpCircles", category = Category.Visual) public class JumpCircle extends Module { public static final ModeSetting setting = new ModeSetting("Вид", "Галактика", "Галактика", "Клиент", "Клиент Old"); private final SliderSetting radik = new SliderSetting("Размер (def-2.5)", 2.5f, 0.5f, 5f, 0.5f); public SliderSetting speed = new SliderSetting("Начало (def-5) ", 5f, 0.1f, 10.0f, 0.1f); public SliderSetting speed2 = new SliderSetting("Середина (def-2)", 2f, 0.1f, 10.0f, 0.1f); public SliderSetting speed3 = new SliderSetting("Поворот % (def-360)", 360f, 1f, 1000.0f, 10f); private final CopyOnWriteArrayList<Circle> circles = new CopyOnWriteArrayList<>(); public JumpCircle() { addSettings(radik, speed, speed2, speed3, setting); } @Subscribe private void onJump(JumpEvent e) { circles.add(new Circle(mc.player.getPositon(mc.getRenderPartialTicks()).add(0, 0.07, 0))); } private final ResourceLocation circle1 = new ResourceLocation("deqware/images/circle3.png"); @Subscribe private void onRender(WorldEvent e) { GlStateManager.pushMatrix(); GlStateManager.shadeModel(7425); GlStateManager.blendFunc(770, 1); GlStateManager.depthMask(false); GlStateManager.enableBlend(); GlStateManager.disableAlphaTest(); GlStateManager.disableCull(); GlStateManager.translated(-mc.getRenderManager().info.getProjectedView().x, -mc.getRenderManager().info.getProjectedView().y, -mc.getRenderManager().info.getProjectedView().z); for (Circle c : circles) { if (setting.is("Клиент")) { mc.getTextureManager().bindTexture(new ResourceLocation("deqware/images/circle2.png")); } else if (setting.is("Галактика")) { mc.getTextureManager().bindTexture(new ResourceLocation("deqware/images/circle3.png")); } else if (setting.is("Клиент Old")) { mc.getTextureManager().bindTexture(new ResourceLocation("deqware/images/circle.png")); } if (System.currentTimeMillis() - c.time > 20000) circles.remove(c); if (System.currentTimeMillis() - c.time > 3500 && !c.isBack) { c.animation.animate(0.000001f, 0, Easings.BACK_IN); c.isBack = true; } c.animation.update(); float rad = (float) (radik.get() * (float) c.animation.getValue()); float spidproc = (float) (speed3.get() * (float) c.animation.getValue()); Vector3d vector3d = c.vector3d; float angle = (float) ((System.currentTimeMillis() - c.time) / 3000.0 * spidproc); GlStateManager.pushMatrix(); GlStateManager.translatef((float) vector3d.x, (float) vector3d.y, (float) vector3d.z); GlStateManager.rotatef(angle, 0, 0.0001f, 0); GlStateManager.translatef((float) -vector3d.x, (float) -vector3d.y, (float) -vector3d.z); vector3d = vector3d.add(-rad / 2f, 0, -rad / 2f); buffer.begin(6, DefaultVertexFormats.POSITION_COLOR_TEX); int alpha; if (System.currentTimeMillis() - c.time <= 1500) { alpha = 255; } else { float alphaTime = (System.currentTimeMillis() - c.time - 1500) / 2000f; alpha = (int) (255 * (1 - alphaTime)); } buffer.pos(vector3d.x, vector3d.y, vector3d.z).color(ColorUtils.setAlpha(Theme.arrowsColor, alpha)).tex(0, 0).endVertex(); buffer.pos(vector3d.x + rad, vector3d.y, vector3d.z).color(ColorUtils.setAlpha(Theme.targetEspColor, alpha)).tex(1, 0).endVertex(); buffer.pos(vector3d.x + rad, vector3d.y, vector3d.z + rad).color(ColorUtils.setAlpha(Theme.darkMainRectColor, alpha)).tex(1, 1).endVertex(); buffer.pos(vector3d.x, vector3d.y, vector3d.z + rad).color(ColorUtils.setAlpha(Theme.mainRectColor, alpha)).tex(0, 1).endVertex(); tessellator.draw(); GlStateManager.popMatrix(); } GlStateManager.disableBlend(); GlStateManager.shadeModel(7424); GlStateManager.depthMask(true); GlStateManager.enableAlphaTest(); GlStateManager.enableCull(); GlStateManager.popMatrix(); } private class Circle { private final Vector3d vector3d; private final long time; private final Animation animation = new Animation(); private boolean isBack; public Circle(Vector3d vector3d) { this.vector3d = vector3d; time = System.currentTimeMillis(); float spid = (float) (speed.get()); float spid2 = (float) (speed2.get()); animation.animate(spid2, spid, Easings.SINE_OUT); } } } ассетс - тык по етому ковнуу буду рад любой критике вроде что то по типу тандерхака или етернити, могу ошибаться