Исходник JumpCircle | Forge 1.16.5

Начинающий
Статус
Оффлайн
Регистрация
3 Авг 2021
Сообщения
25
Реакции[?]
0
Поинты[?]
0

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Сливчик JumpCircle с анимацией появления и прочим
все кайф но нету анимации исчезновения! 👎
из плюсов - не требует каких-то дополнительный утилит в проекте кроме базы модуля так-что спастить подобное изи.

Пожалуйста, авторизуйтесь для просмотра ссылки.

Код:

Java:
package com.xiksam.nullclient.Hacks;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.systems.RenderSystem;
import com.xiksam.nullclient.MCModule.MCModule;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.vector.Quaternion;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.math.vector.Vector3f;
import net.minecraftforge.client.event.RenderWorldLastEvent;
import net.minecraftforge.event.entity.living.LivingEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import org.lwjgl.opengl.GL11;
import java.awt.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import static com.xiksam.nullclient.Utils.ColorUtils3.lerp;
import static com.xiksam.nullclient.Utils.ColorUtils3.rgba;
import static net.minecraft.client.renderer.vertex.DefaultVertexFormats.POSITION_TEX_COLOR;
import static org.lwjgl.opengl.GL11.GL_QUADS;

public class Jumpcircle extends MCModule {

    public Jumpcircle() {
        super("JumpCircle", 0, Category.RENDER);
    }
    //Слив джамп кружка на 1.16.5 фордж не MCP
    //из минусов нету анимации пропадения

    private List<Circle> circleList = new ArrayList<>();
    public ResourceLocation textureCircle = new ResourceLocation("minecraft", "textures/glow.png");// замените на свой путь к текстуре
    public Color circleColor = new Color(0xA8FF0000, true); //замените на фалс если цвет непрозрачный
    public int lifeTime = 2500;
    public float speedRotation = 260f;
    public float circleSize = 1.2f;

    @Override
    public void onDisable() {
        circleList.clear();
        super.onDisable();
    }

    @SubscribeEvent
    public void onJump(LivingEvent.LivingJumpEvent event) {
        if (event.getEntityLiving() instanceof ClientPlayerEntity) {
            ClientPlayerEntity clientPlayer = (ClientPlayerEntity) event.getEntityLiving();
            if (clientPlayer.isOnGround()) {
                circleList.add(new Circle(new Vector3d(clientPlayer.getX(), clientPlayer.getY(), clientPlayer.getZ()), 0f, System.currentTimeMillis(), true));
            }
        }
    }

    @SubscribeEvent
    public void worldRender(RenderWorldLastEvent event) {
        MatrixStack matrixStack = event.getMatrixStack();
        double ix = -mc.gameRenderer.getMainCamera().getPosition().x();
        double iy = -mc.gameRenderer.getMainCamera().getPosition().y();
        double iz = -mc.gameRenderer.getMainCamera().getPosition().z();
        long currentTime = System.currentTimeMillis();
        Collections.reverse(circleList);
        for (Circle circle : circleList) {
            double x = circle.vector3d.x();
            double y = circle.vector3d.y();
            double z = circle.vector3d.z();
            long age = currentTime - circle.getCreationTime();
            float size;
            if (circle.isGrowing()) {
                size = lerp(0, circleSize, Math.min(age / 1000f, 1));
            } else {
                size = lerp(circleSize, 0, Math.min((age - 3000) / 1000f, 1));
            }
            if (age < lifeTime) {
                Tessellator tessellator = Tessellator.getInstance();
                BufferBuilder buffer = tessellator.getBuilder();
                matrixStack.pushPose();
                matrixStack.translate(ix, iy, iz);
                matrixStack.translate(x, y + 0.1F, z);
                float rotation = (age / 2000f) * speedRotation;
                matrixStack.mulPose(new Quaternion(new Vector3f(0, 1, 0), rotation, true));
                RenderSystem.enableBlend();
                RenderSystem.disableAlphaTest();
                RenderSystem.depthMask(false);
                GL11.glAlphaFunc(GL11.GL_GREATER, .02F);
                GL11.glDisable(GL11.GL_POINT_SMOOTH);
                int[] c = rgba(circleColor.getRGB());
                float alpha = 1.0f;
                RenderSystem.blendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ZERO);
                RenderSystem.enableDepthTest();
                buffer.begin(GL_QUADS, POSITION_TEX_COLOR);
                mc.getTextureManager().bind(textureCircle);
                buffer.vertex(matrixStack.last().pose(), -size / 2, 0, -size / 2).uv(0, 0).color(c[0], c[1], c[2], (int) (c[3] * alpha)).endVertex();
                buffer.vertex(matrixStack.last().pose(), -size / 2, 0, size / 2).uv(0, 1).color(c[0], c[1], c[2], (int) (c[3] * alpha)).endVertex();
                buffer.vertex(matrixStack.last().pose(), size / 2, 0, size / 2).uv(1, 1).color(c[0], c[1], c[2], (int) (c[3] * alpha)).endVertex();
                buffer.vertex(matrixStack.last().pose(), size / 2, 0, -size / 2).uv(1, 0).color(c[0], c[1], c[2], (int) (c[3] * alpha)).endVertex();

                tessellator.end();

                RenderSystem.enableBlend();
                RenderSystem.disableBlend();
                RenderSystem.depthMask(true);

                matrixStack.popPose();
            }
        }

        Collections.reverse(circleList);
    }
  
    public static class Circle {
        private Vector3d vector3d;
        private float factor;
        private long creationTime;
        private boolean growing;

        public Circle(Vector3d vector3d, float factor, long creationTime, boolean growing) {
            this.vector3d = vector3d;
            this.factor = factor;
            this.creationTime = creationTime;
            this.growing = growing;
        }

        public Vector3d getVector3d() {
            return vector3d;
        }

        public float getFactor() {
            return factor;
        }

        public void setFactor(float factor) {
            this.factor = factor;
        }

        public long getCreationTime() {
            return creationTime;
        }

        public boolean isGrowing() {
            return growing;
        }
    }
}
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
30 Май 2024
Сообщения
106
Реакции[?]
1
Поинты[?]
1K
Сливчик JumpCircle с анимацией появления и прочим
все кайф но нету анимации исчезновения! 👎
из плюсов - не требует каких-то дополнительный утилит в проекте кроме базы модуля так-что спастить подобное изи.

Код:

Java:
package com.xiksam.nullclient.Hacks;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.systems.RenderSystem;
import com.xiksam.nullclient.MCModule.MCModule;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.vector.Quaternion;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.math.vector.Vector3f;
import net.minecraftforge.client.event.RenderWorldLastEvent;
import net.minecraftforge.event.entity.living.LivingEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import org.lwjgl.opengl.GL11;
import java.awt.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import static com.xiksam.nullclient.Utils.ColorUtils3.lerp;
import static com.xiksam.nullclient.Utils.ColorUtils3.rgba;
import static net.minecraft.client.renderer.vertex.DefaultVertexFormats.POSITION_TEX_COLOR;
import static org.lwjgl.opengl.GL11.GL_QUADS;

public class Jumpcircle extends MCModule {

    public Jumpcircle() {
        super("JumpCircle", 0, Category.RENDER);
    }
    //Слив джамп кружка на 1.16.5 фордж не MCP
    //из минусов нету анимации пропадения

    private List<Circle> circleList = new ArrayList<>();
    public ResourceLocation textureCircle = new ResourceLocation("minecraft", "textures/glow.png");// замените на свой путь к текстуре
    public Color circleColor = new Color(0xA8FF0000, true); //замените на фалс если цвет непрозрачный
    public int lifeTime = 2500;
    public float speedRotation = 260f;
    public float circleSize = 1.2f;

    @Override
    public void onDisable() {
        circleList.clear();
        super.onDisable();
    }

    @SubscribeEvent
    public void onJump(LivingEvent.LivingJumpEvent event) {
        if (event.getEntityLiving() instanceof ClientPlayerEntity) {
            ClientPlayerEntity clientPlayer = (ClientPlayerEntity) event.getEntityLiving();
            if (clientPlayer.isOnGround()) {
                circleList.add(new Circle(new Vector3d(clientPlayer.getX(), clientPlayer.getY(), clientPlayer.getZ()), 0f, System.currentTimeMillis(), true));
            }
        }
    }

    @SubscribeEvent
    public void worldRender(RenderWorldLastEvent event) {
        MatrixStack matrixStack = event.getMatrixStack();
        double ix = -mc.gameRenderer.getMainCamera().getPosition().x();
        double iy = -mc.gameRenderer.getMainCamera().getPosition().y();
        double iz = -mc.gameRenderer.getMainCamera().getPosition().z();
        long currentTime = System.currentTimeMillis();
        Collections.reverse(circleList);
        for (Circle circle : circleList) {
            double x = circle.vector3d.x();
            double y = circle.vector3d.y();
            double z = circle.vector3d.z();
            long age = currentTime - circle.getCreationTime();
            float size;
            if (circle.isGrowing()) {
                size = lerp(0, circleSize, Math.min(age / 1000f, 1));
            } else {
                size = lerp(circleSize, 0, Math.min((age - 3000) / 1000f, 1));
            }
            if (age < lifeTime) {
                Tessellator tessellator = Tessellator.getInstance();
                BufferBuilder buffer = tessellator.getBuilder();
                matrixStack.pushPose();
                matrixStack.translate(ix, iy, iz);
                matrixStack.translate(x, y + 0.1F, z);
                float rotation = (age / 2000f) * speedRotation;
                matrixStack.mulPose(new Quaternion(new Vector3f(0, 1, 0), rotation, true));
                RenderSystem.enableBlend();
                RenderSystem.disableAlphaTest();
                RenderSystem.depthMask(false);
                GL11.glAlphaFunc(GL11.GL_GREATER, .02F);
                GL11.glDisable(GL11.GL_POINT_SMOOTH);
                int[] c = rgba(circleColor.getRGB());
                float alpha = 1.0f;
                RenderSystem.blendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ZERO);
                RenderSystem.enableDepthTest();
                buffer.begin(GL_QUADS, POSITION_TEX_COLOR);
                mc.getTextureManager().bind(textureCircle);
                buffer.vertex(matrixStack.last().pose(), -size / 2, 0, -size / 2).uv(0, 0).color(c[0], c[1], c[2], (int) (c[3] * alpha)).endVertex();
                buffer.vertex(matrixStack.last().pose(), -size / 2, 0, size / 2).uv(0, 1).color(c[0], c[1], c[2], (int) (c[3] * alpha)).endVertex();
                buffer.vertex(matrixStack.last().pose(), size / 2, 0, size / 2).uv(1, 1).color(c[0], c[1], c[2], (int) (c[3] * alpha)).endVertex();
                buffer.vertex(matrixStack.last().pose(), size / 2, 0, -size / 2).uv(1, 0).color(c[0], c[1], c[2], (int) (c[3] * alpha)).endVertex();

                tessellator.end();

                RenderSystem.enableBlend();
                RenderSystem.disableBlend();
                RenderSystem.depthMask(true);

                matrixStack.popPose();
            }
        }

        Collections.reverse(circleList);
    }
   
    public static class Circle {
        private Vector3d vector3d;
        private float factor;
        private long creationTime;
        private boolean growing;

        public Circle(Vector3d vector3d, float factor, long creationTime, boolean growing) {
            this.vector3d = vector3d;
            this.factor = factor;
            this.creationTime = creationTime;
            this.growing = growing;
        }

        public Vector3d getVector3d() {
            return vector3d;
        }

        public float getFactor() {
            return factor;
        }

        public void setFactor(float factor) {
            this.factor = factor;
        }

        public long getCreationTime() {
            return creationTime;
        }

        public boolean isGrowing() {
            return growing;
        }
    }
}
ss?
 
Сверху Снизу