Визуальная часть ЗАВОЗ емае Box3D как в нурике и вексайде exp 2.0

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
19 Дек 2024
Сообщения
27
Реакции
0
Выберите загрузчик игры
  1. Forge
  2. OptiFine
  3. ForgeOptiFine

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

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

Спасибо!

кароче боксы как в нурике и вексайде понимаю что код можно было сделать намного меньше и еще понимаю что функция не нужная, но для визуалов самое то
без дип сика не обошлось извиняюсь сразу помогал мне исправлять код ss -
Пожалуйста, авторизуйтесь для просмотра ссылки.

не бейте только плиз, если че все ошибки чинятся через шифт таб так что не надо говорить что у вас что то не работает

Java:
Expand Collapse Copy
package jiraf.cc.modules.impl.render;

import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import jiraf.cc.events.Event;
import jiraf.cc.events.impl.render.EventRender;
import jiraf.cc.modules.Function;
import jiraf.cc.modules.FunctionAnnotation;
import jiraf.cc.modules.Type;
import jiraf.cc.util.IMinecraft;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.*;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.command.CommandSource;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector3d;
import org.lwjgl.opengl.GL11;

@FunctionAnnotation(
        name = "Box 3D",
        type = Type.Render
)
public class Box3D extends Function {

    private static final double WIDTH = 0.6;
    private static final double HEIGHT = 1.8;

    // 50% прозрачная белая заливка
    private static final float[] FILL_COLOR = {1.0f, 1.0f, 1.0f, 0.5f};

    // Полностью непрозрачный белый контур
    private static final float[] LINE_COLOR = {1.0f, 1.0f, 1.0f, 1.0f};

    @Override
    public void onEvent(Event event) {
        if (!(event instanceof EventRender)) return;

        Minecraft mc = IMinecraft.mc;
        if (mc.world == null || mc.player == null || mc.getRenderManager() == null) return;

        try {
            if (mc.gameSettings.fov == 0) return;

            renderHitboxes(mc, ((EventRender)event).partialTicks);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onRenderLevelStage(Box3D.RenderLevelStageEvent event) {
       
    }

    private void renderHitboxes(Minecraft mc, float partialTicks) {
        RenderSystem.pushMatrix();
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();
        RenderSystem.disableTexture();
        RenderSystem.disableDepthTest();
        RenderSystem.disableCull(); // Важно для отображения со всех сторон

        Vector3d view = mc.getRenderManager().info.getProjectedView();

        for (PlayerEntity player : mc.world.getPlayers()) {
            if (player == mc.player) continue;

            renderPlayerHitbox(player, view, partialTicks);
        }

        RenderSystem.enableCull();
        RenderSystem.enableDepthTest();
        RenderSystem.enableTexture();
        RenderSystem.disableBlend();
        RenderSystem.popMatrix();
    }

    private void renderPlayerHitbox(PlayerEntity player, Vector3d view, float partialTicks) {
        double x = lerp(player.lastTickPosX, player.getPosX(), partialTicks) - view.x;
        double y = lerp(player.lastTickPosY, player.getPosY(), partialTicks) - view.y;
        double z = lerp(player.lastTickPosZ, player.getPosZ(), partialTicks) - view.z;

        AxisAlignedBB box = new AxisAlignedBB(
                x - WIDTH/2, y, z - WIDTH/2,
                x + WIDTH/2, y + HEIGHT, z + WIDTH/2
        );

        // 1. Рисуем заливку со всех сторон
        renderBoxFill(box);

        // 2. Рисуем контур со всех сторон
        renderBoxOutline(box);
    }

    private void renderBoxFill(AxisAlignedBB box) {
        BufferBuilder buffer = Tessellator.getInstance().getBuffer();
        buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_COLOR);

        // Все 6 граней куба (обе стороны)

        // Нижняя грань
        addQuad(buffer, box.minX, box.minY, box.minZ, box.maxX, box.minY, box.minZ, box.maxX, box.minY, box.maxZ, box.minX, box.minY, box.maxZ);

        // Верхняя грань
        addQuad(buffer, box.minX, box.maxY, box.minZ, box.minX, box.maxY, box.maxZ, box.maxX, box.maxY, box.maxZ, box.maxX, box.maxY, box.minZ);

        // Северная грань (Z-)
        addQuad(buffer, box.minX, box.minY, box.minZ, box.minX, box.maxY, box.minZ, box.maxX, box.maxY, box.minZ, box.maxX, box.minY, box.minZ);

        // Южная грань (Z+)
        addQuad(buffer, box.minX, box.minY, box.maxZ, box.maxX, box.minY, box.maxZ, box.maxX, box.maxY, box.maxZ, box.minX, box.maxY, box.maxZ);

        // Западная грань (X-)
        addQuad(buffer, box.minX, box.minY, box.minZ, box.minX, box.minY, box.maxZ, box.minX, box.maxY, box.maxZ, box.minX, box.maxY, box.minZ);

        // Восточная грань (X+)
        addQuad(buffer, box.maxX, box.minY, box.minZ, box.maxX, box.maxY, box.minZ, box.maxX, box.maxY, box.maxZ, box.maxX, box.minY, box.maxZ);

        Tessellator.getInstance().draw();
    }

    private void renderBoxOutline(AxisAlignedBB box) {
        BufferBuilder buffer = Tessellator.getInstance().getBuffer();
        buffer.begin(GL11.GL_LINES, DefaultVertexFormats.POSITION_COLOR);

        // 12 линий куба (все ребра)

        // Нижние линии
        addLine(buffer, box.minX, box.minY, box.minZ, box.maxX, box.minY, box.minZ);
        addLine(buffer, box.maxX, box.minY, box.minZ, box.maxX, box.minY, box.maxZ);
        addLine(buffer, box.maxX, box.minY, box.maxZ, box.minX, box.minY, box.maxZ);
        addLine(buffer, box.minX, box.minY, box.maxZ, box.minX, box.minY, box.minZ);

        // Верхние линии
        addLine(buffer, box.minX, box.maxY, box.minZ, box.maxX, box.maxY, box.minZ);
        addLine(buffer, box.maxX, box.maxY, box.minZ, box.maxX, box.maxY, box.maxZ);
        addLine(buffer, box.maxX, box.maxY, box.maxZ, box.minX, box.maxY, box.maxZ);
        addLine(buffer, box.minX, box.maxY, box.maxZ, box.minX, box.maxY, box.minZ);

        // Вертикальные линии
        addLine(buffer, box.minX, box.minY, box.minZ, box.minX, box.maxY, box.minZ);
        addLine(buffer, box.maxX, box.minY, box.minZ, box.maxX, box.maxY, box.minZ);
        addLine(buffer, box.maxX, box.minY, box.maxZ, box.maxX, box.maxY, box.maxZ);
        addLine(buffer, box.minX, box.minY, box.maxZ, box.minX, box.maxY, box.maxZ);

        Tessellator.getInstance().draw();
    }

    private void addQuad(BufferBuilder buffer,
                         double x1, double y1, double z1,
                         double x2, double y2, double z2,
                         double x3, double y3, double z3,
                         double x4, double y4, double z4) {
        buffer.pos(x1, y1, z1).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
        buffer.pos(x2, y2, z2).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
        buffer.pos(x3, y3, z3).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
        buffer.pos(x4, y4, z4).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
    }

    private void addLine(BufferBuilder buffer,
                         double x1, double y1, double z1,
                         double x2, double y2, double z2) {
        buffer.pos(x1, y1, z1).color(LINE_COLOR[0], LINE_COLOR[1], LINE_COLOR[2], LINE_COLOR[3]).endVertex();
        buffer.pos(x2, y2, z2).color(LINE_COLOR[0], LINE_COLOR[1], LINE_COLOR[2], LINE_COLOR[3]).endVertex();
    }

    private double lerp(double start, double end, float progress) {
        return start + (end - start) * progress;
    }

    public void onEventModule(Event event) {}

    public void register(LiteralArgumentBuilder<CommandSource> then) {
    }

    public class RenderLevelStageEvent {
    }
}
 
кароче боксы как в нурике и вексайде понимаю что код можно было сделать намного меньше и еще понимаю что функция не нужная, но для визуалов самое то
без дип сика не обошлось извиняюсь сразу помогал мне исправлять код ss -
Пожалуйста, авторизуйтесь для просмотра ссылки.

не бейте только плиз, если че все ошибки чинятся через шифт таб так что не надо говорить что у вас что то не работает

Java:
Expand Collapse Copy
package jiraf.cc.modules.impl.render;

import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import jiraf.cc.events.Event;
import jiraf.cc.events.impl.render.EventRender;
import jiraf.cc.modules.Function;
import jiraf.cc.modules.FunctionAnnotation;
import jiraf.cc.modules.Type;
import jiraf.cc.util.IMinecraft;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.*;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.command.CommandSource;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector3d;
import org.lwjgl.opengl.GL11;

@FunctionAnnotation(
        name = "Box 3D",
        type = Type.Render
)
public class Box3D extends Function {

    private static final double WIDTH = 0.6;
    private static final double HEIGHT = 1.8;

    // 50% прозрачная белая заливка
    private static final float[] FILL_COLOR = {1.0f, 1.0f, 1.0f, 0.5f};

    // Полностью непрозрачный белый контур
    private static final float[] LINE_COLOR = {1.0f, 1.0f, 1.0f, 1.0f};

    @Override
    public void onEvent(Event event) {
        if (!(event instanceof EventRender)) return;

        Minecraft mc = IMinecraft.mc;
        if (mc.world == null || mc.player == null || mc.getRenderManager() == null) return;

        try {
            if (mc.gameSettings.fov == 0) return;

            renderHitboxes(mc, ((EventRender)event).partialTicks);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onRenderLevelStage(Box3D.RenderLevelStageEvent event) {
      
    }

    private void renderHitboxes(Minecraft mc, float partialTicks) {
        RenderSystem.pushMatrix();
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();
        RenderSystem.disableTexture();
        RenderSystem.disableDepthTest();
        RenderSystem.disableCull(); // Важно для отображения со всех сторон

        Vector3d view = mc.getRenderManager().info.getProjectedView();

        for (PlayerEntity player : mc.world.getPlayers()) {
            if (player == mc.player) continue;

            renderPlayerHitbox(player, view, partialTicks);
        }

        RenderSystem.enableCull();
        RenderSystem.enableDepthTest();
        RenderSystem.enableTexture();
        RenderSystem.disableBlend();
        RenderSystem.popMatrix();
    }

    private void renderPlayerHitbox(PlayerEntity player, Vector3d view, float partialTicks) {
        double x = lerp(player.lastTickPosX, player.getPosX(), partialTicks) - view.x;
        double y = lerp(player.lastTickPosY, player.getPosY(), partialTicks) - view.y;
        double z = lerp(player.lastTickPosZ, player.getPosZ(), partialTicks) - view.z;

        AxisAlignedBB box = new AxisAlignedBB(
                x - WIDTH/2, y, z - WIDTH/2,
                x + WIDTH/2, y + HEIGHT, z + WIDTH/2
        );

        // 1. Рисуем заливку со всех сторон
        renderBoxFill(box);

        // 2. Рисуем контур со всех сторон
        renderBoxOutline(box);
    }

    private void renderBoxFill(AxisAlignedBB box) {
        BufferBuilder buffer = Tessellator.getInstance().getBuffer();
        buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_COLOR);

        // Все 6 граней куба (обе стороны)

        // Нижняя грань
        addQuad(buffer, box.minX, box.minY, box.minZ, box.maxX, box.minY, box.minZ, box.maxX, box.minY, box.maxZ, box.minX, box.minY, box.maxZ);

        // Верхняя грань
        addQuad(buffer, box.minX, box.maxY, box.minZ, box.minX, box.maxY, box.maxZ, box.maxX, box.maxY, box.maxZ, box.maxX, box.maxY, box.minZ);

        // Северная грань (Z-)
        addQuad(buffer, box.minX, box.minY, box.minZ, box.minX, box.maxY, box.minZ, box.maxX, box.maxY, box.minZ, box.maxX, box.minY, box.minZ);

        // Южная грань (Z+)
        addQuad(buffer, box.minX, box.minY, box.maxZ, box.maxX, box.minY, box.maxZ, box.maxX, box.maxY, box.maxZ, box.minX, box.maxY, box.maxZ);

        // Западная грань (X-)
        addQuad(buffer, box.minX, box.minY, box.minZ, box.minX, box.minY, box.maxZ, box.minX, box.maxY, box.maxZ, box.minX, box.maxY, box.minZ);

        // Восточная грань (X+)
        addQuad(buffer, box.maxX, box.minY, box.minZ, box.maxX, box.maxY, box.minZ, box.maxX, box.maxY, box.maxZ, box.maxX, box.minY, box.maxZ);

        Tessellator.getInstance().draw();
    }

    private void renderBoxOutline(AxisAlignedBB box) {
        BufferBuilder buffer = Tessellator.getInstance().getBuffer();
        buffer.begin(GL11.GL_LINES, DefaultVertexFormats.POSITION_COLOR);

        // 12 линий куба (все ребра)

        // Нижние линии
        addLine(buffer, box.minX, box.minY, box.minZ, box.maxX, box.minY, box.minZ);
        addLine(buffer, box.maxX, box.minY, box.minZ, box.maxX, box.minY, box.maxZ);
        addLine(buffer, box.maxX, box.minY, box.maxZ, box.minX, box.minY, box.maxZ);
        addLine(buffer, box.minX, box.minY, box.maxZ, box.minX, box.minY, box.minZ);

        // Верхние линии
        addLine(buffer, box.minX, box.maxY, box.minZ, box.maxX, box.maxY, box.minZ);
        addLine(buffer, box.maxX, box.maxY, box.minZ, box.maxX, box.maxY, box.maxZ);
        addLine(buffer, box.maxX, box.maxY, box.maxZ, box.minX, box.maxY, box.maxZ);
        addLine(buffer, box.minX, box.maxY, box.maxZ, box.minX, box.maxY, box.minZ);

        // Вертикальные линии
        addLine(buffer, box.minX, box.minY, box.minZ, box.minX, box.maxY, box.minZ);
        addLine(buffer, box.maxX, box.minY, box.minZ, box.maxX, box.maxY, box.minZ);
        addLine(buffer, box.maxX, box.minY, box.maxZ, box.maxX, box.maxY, box.maxZ);
        addLine(buffer, box.minX, box.minY, box.maxZ, box.minX, box.maxY, box.maxZ);

        Tessellator.getInstance().draw();
    }

    private void addQuad(BufferBuilder buffer,
                         double x1, double y1, double z1,
                         double x2, double y2, double z2,
                         double x3, double y3, double z3,
                         double x4, double y4, double z4) {
        buffer.pos(x1, y1, z1).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
        buffer.pos(x2, y2, z2).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
        buffer.pos(x3, y3, z3).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
        buffer.pos(x4, y4, z4).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
    }

    private void addLine(BufferBuilder buffer,
                         double x1, double y1, double z1,
                         double x2, double y2, double z2) {
        buffer.pos(x1, y1, z1).color(LINE_COLOR[0], LINE_COLOR[1], LINE_COLOR[2], LINE_COLOR[3]).endVertex();
        buffer.pos(x2, y2, z2).color(LINE_COLOR[0], LINE_COLOR[1], LINE_COLOR[2], LINE_COLOR[3]).endVertex();
    }

    private double lerp(double start, double end, float progress) {
        return start + (end - start) * progress;
    }

    public void onEventModule(Event event) {}

    public void register(LiteralArgumentBuilder<CommandSource> then) {
    }

    public class RenderLevelStageEvent {
    }
}
Я честно ещё такой хуйни не видел
Я честно ещё такой хуйни не видел
Без нигативчика
 
кароче боксы как в нурике и вексайде понимаю что код можно было сделать намного меньше и еще понимаю что функция не нужная, но для визуалов самое то
без дип сика не обошлось извиняюсь сразу помогал мне исправлять код ss -
Пожалуйста, авторизуйтесь для просмотра ссылки.

не бейте только плиз, если че все ошибки чинятся через шифт таб так что не надо говорить что у вас что то не работает

Java:
Expand Collapse Copy
package jiraf.cc.modules.impl.render;

import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import jiraf.cc.events.Event;
import jiraf.cc.events.impl.render.EventRender;
import jiraf.cc.modules.Function;
import jiraf.cc.modules.FunctionAnnotation;
import jiraf.cc.modules.Type;
import jiraf.cc.util.IMinecraft;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.*;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.command.CommandSource;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector3d;
import org.lwjgl.opengl.GL11;

@FunctionAnnotation(
        name = "Box 3D",
        type = Type.Render
)
public class Box3D extends Function {

    private static final double WIDTH = 0.6;
    private static final double HEIGHT = 1.8;

    // 50% прозрачная белая заливка
    private static final float[] FILL_COLOR = {1.0f, 1.0f, 1.0f, 0.5f};

    // Полностью непрозрачный белый контур
    private static final float[] LINE_COLOR = {1.0f, 1.0f, 1.0f, 1.0f};

    @Override
    public void onEvent(Event event) {
        if (!(event instanceof EventRender)) return;

        Minecraft mc = IMinecraft.mc;
        if (mc.world == null || mc.player == null || mc.getRenderManager() == null) return;

        try {
            if (mc.gameSettings.fov == 0) return;

            renderHitboxes(mc, ((EventRender)event).partialTicks);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onRenderLevelStage(Box3D.RenderLevelStageEvent event) {
      
    }

    private void renderHitboxes(Minecraft mc, float partialTicks) {
        RenderSystem.pushMatrix();
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();
        RenderSystem.disableTexture();
        RenderSystem.disableDepthTest();
        RenderSystem.disableCull(); // Важно для отображения со всех сторон

        Vector3d view = mc.getRenderManager().info.getProjectedView();

        for (PlayerEntity player : mc.world.getPlayers()) {
            if (player == mc.player) continue;

            renderPlayerHitbox(player, view, partialTicks);
        }

        RenderSystem.enableCull();
        RenderSystem.enableDepthTest();
        RenderSystem.enableTexture();
        RenderSystem.disableBlend();
        RenderSystem.popMatrix();
    }

    private void renderPlayerHitbox(PlayerEntity player, Vector3d view, float partialTicks) {
        double x = lerp(player.lastTickPosX, player.getPosX(), partialTicks) - view.x;
        double y = lerp(player.lastTickPosY, player.getPosY(), partialTicks) - view.y;
        double z = lerp(player.lastTickPosZ, player.getPosZ(), partialTicks) - view.z;

        AxisAlignedBB box = new AxisAlignedBB(
                x - WIDTH/2, y, z - WIDTH/2,
                x + WIDTH/2, y + HEIGHT, z + WIDTH/2
        );

        // 1. Рисуем заливку со всех сторон
        renderBoxFill(box);

        // 2. Рисуем контур со всех сторон
        renderBoxOutline(box);
    }

    private void renderBoxFill(AxisAlignedBB box) {
        BufferBuilder buffer = Tessellator.getInstance().getBuffer();
        buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_COLOR);

        // Все 6 граней куба (обе стороны)

        // Нижняя грань
        addQuad(buffer, box.minX, box.minY, box.minZ, box.maxX, box.minY, box.minZ, box.maxX, box.minY, box.maxZ, box.minX, box.minY, box.maxZ);

        // Верхняя грань
        addQuad(buffer, box.minX, box.maxY, box.minZ, box.minX, box.maxY, box.maxZ, box.maxX, box.maxY, box.maxZ, box.maxX, box.maxY, box.minZ);

        // Северная грань (Z-)
        addQuad(buffer, box.minX, box.minY, box.minZ, box.minX, box.maxY, box.minZ, box.maxX, box.maxY, box.minZ, box.maxX, box.minY, box.minZ);

        // Южная грань (Z+)
        addQuad(buffer, box.minX, box.minY, box.maxZ, box.maxX, box.minY, box.maxZ, box.maxX, box.maxY, box.maxZ, box.minX, box.maxY, box.maxZ);

        // Западная грань (X-)
        addQuad(buffer, box.minX, box.minY, box.minZ, box.minX, box.minY, box.maxZ, box.minX, box.maxY, box.maxZ, box.minX, box.maxY, box.minZ);

        // Восточная грань (X+)
        addQuad(buffer, box.maxX, box.minY, box.minZ, box.maxX, box.maxY, box.minZ, box.maxX, box.maxY, box.maxZ, box.maxX, box.minY, box.maxZ);

        Tessellator.getInstance().draw();
    }

    private void renderBoxOutline(AxisAlignedBB box) {
        BufferBuilder buffer = Tessellator.getInstance().getBuffer();
        buffer.begin(GL11.GL_LINES, DefaultVertexFormats.POSITION_COLOR);

        // 12 линий куба (все ребра)

        // Нижние линии
        addLine(buffer, box.minX, box.minY, box.minZ, box.maxX, box.minY, box.minZ);
        addLine(buffer, box.maxX, box.minY, box.minZ, box.maxX, box.minY, box.maxZ);
        addLine(buffer, box.maxX, box.minY, box.maxZ, box.minX, box.minY, box.maxZ);
        addLine(buffer, box.minX, box.minY, box.maxZ, box.minX, box.minY, box.minZ);

        // Верхние линии
        addLine(buffer, box.minX, box.maxY, box.minZ, box.maxX, box.maxY, box.minZ);
        addLine(buffer, box.maxX, box.maxY, box.minZ, box.maxX, box.maxY, box.maxZ);
        addLine(buffer, box.maxX, box.maxY, box.maxZ, box.minX, box.maxY, box.maxZ);
        addLine(buffer, box.minX, box.maxY, box.maxZ, box.minX, box.maxY, box.minZ);

        // Вертикальные линии
        addLine(buffer, box.minX, box.minY, box.minZ, box.minX, box.maxY, box.minZ);
        addLine(buffer, box.maxX, box.minY, box.minZ, box.maxX, box.maxY, box.minZ);
        addLine(buffer, box.maxX, box.minY, box.maxZ, box.maxX, box.maxY, box.maxZ);
        addLine(buffer, box.minX, box.minY, box.maxZ, box.minX, box.maxY, box.maxZ);

        Tessellator.getInstance().draw();
    }

    private void addQuad(BufferBuilder buffer,
                         double x1, double y1, double z1,
                         double x2, double y2, double z2,
                         double x3, double y3, double z3,
                         double x4, double y4, double z4) {
        buffer.pos(x1, y1, z1).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
        buffer.pos(x2, y2, z2).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
        buffer.pos(x3, y3, z3).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
        buffer.pos(x4, y4, z4).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
    }

    private void addLine(BufferBuilder buffer,
                         double x1, double y1, double z1,
                         double x2, double y2, double z2) {
        buffer.pos(x1, y1, z1).color(LINE_COLOR[0], LINE_COLOR[1], LINE_COLOR[2], LINE_COLOR[3]).endVertex();
        buffer.pos(x2, y2, z2).color(LINE_COLOR[0], LINE_COLOR[1], LINE_COLOR[2], LINE_COLOR[3]).endVertex();
    }

    private double lerp(double start, double end, float progress) {
        return start + (end - start) * progress;
    }

    public void onEventModule(Event event) {}

    public void register(LiteralArgumentBuilder<CommandSource> then) {
    }

    public class RenderLevelStageEvent {
    }
}
браааааатишка это делается +- в 6 раз меньше
 
+rep жду корнеры
 
Ghat gpt moment
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ДЕЛЬТА УЖЕ СПАСТИЛА GG WP
 
браааааатишка это делается +- в 6 раз меньше
блять я знаю
Я честно ещё такой хуйни не видел

Без нигативчика
без негативчика двигается типок
ДЕЛЬТА УЖЕ СПАСТИЛА GG WP
рил?
пиздец, сам то много написал?
Я честно ещё такой хуйни не видел
ну работает же
 
хуйня полная, иди поспи лучше
 
кароче боксы как в нурике и вексайде понимаю что код можно было сделать намного меньше и еще понимаю что функция не нужная, но для визуалов самое то
без дип сика не обошлось извиняюсь сразу помогал мне исправлять код ss -
Пожалуйста, авторизуйтесь для просмотра ссылки.

не бейте только плиз, если че все ошибки чинятся через шифт таб так что не надо говорить что у вас что то не работает

Java:
Expand Collapse Copy
package jiraf.cc.modules.impl.render;

import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import jiraf.cc.events.Event;
import jiraf.cc.events.impl.render.EventRender;
import jiraf.cc.modules.Function;
import jiraf.cc.modules.FunctionAnnotation;
import jiraf.cc.modules.Type;
import jiraf.cc.util.IMinecraft;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.*;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.command.CommandSource;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector3d;
import org.lwjgl.opengl.GL11;

@FunctionAnnotation(
        name = "Box 3D",
        type = Type.Render
)
public class Box3D extends Function {

    private static final double WIDTH = 0.6;
    private static final double HEIGHT = 1.8;

    // 50% прозрачная белая заливка
    private static final float[] FILL_COLOR = {1.0f, 1.0f, 1.0f, 0.5f};

    // Полностью непрозрачный белый контур
    private static final float[] LINE_COLOR = {1.0f, 1.0f, 1.0f, 1.0f};

    @Override
    public void onEvent(Event event) {
        if (!(event instanceof EventRender)) return;

        Minecraft mc = IMinecraft.mc;
        if (mc.world == null || mc.player == null || mc.getRenderManager() == null) return;

        try {
            if (mc.gameSettings.fov == 0) return;

            renderHitboxes(mc, ((EventRender)event).partialTicks);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onRenderLevelStage(Box3D.RenderLevelStageEvent event) {
      
    }

    private void renderHitboxes(Minecraft mc, float partialTicks) {
        RenderSystem.pushMatrix();
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();
        RenderSystem.disableTexture();
        RenderSystem.disableDepthTest();
        RenderSystem.disableCull(); // Важно для отображения со всех сторон

        Vector3d view = mc.getRenderManager().info.getProjectedView();

        for (PlayerEntity player : mc.world.getPlayers()) {
            if (player == mc.player) continue;

            renderPlayerHitbox(player, view, partialTicks);
        }

        RenderSystem.enableCull();
        RenderSystem.enableDepthTest();
        RenderSystem.enableTexture();
        RenderSystem.disableBlend();
        RenderSystem.popMatrix();
    }

    private void renderPlayerHitbox(PlayerEntity player, Vector3d view, float partialTicks) {
        double x = lerp(player.lastTickPosX, player.getPosX(), partialTicks) - view.x;
        double y = lerp(player.lastTickPosY, player.getPosY(), partialTicks) - view.y;
        double z = lerp(player.lastTickPosZ, player.getPosZ(), partialTicks) - view.z;

        AxisAlignedBB box = new AxisAlignedBB(
                x - WIDTH/2, y, z - WIDTH/2,
                x + WIDTH/2, y + HEIGHT, z + WIDTH/2
        );

        // 1. Рисуем заливку со всех сторон
        renderBoxFill(box);

        // 2. Рисуем контур со всех сторон
        renderBoxOutline(box);
    }

    private void renderBoxFill(AxisAlignedBB box) {
        BufferBuilder buffer = Tessellator.getInstance().getBuffer();
        buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_COLOR);

        // Все 6 граней куба (обе стороны)

        // Нижняя грань
        addQuad(buffer, box.minX, box.minY, box.minZ, box.maxX, box.minY, box.minZ, box.maxX, box.minY, box.maxZ, box.minX, box.minY, box.maxZ);

        // Верхняя грань
        addQuad(buffer, box.minX, box.maxY, box.minZ, box.minX, box.maxY, box.maxZ, box.maxX, box.maxY, box.maxZ, box.maxX, box.maxY, box.minZ);

        // Северная грань (Z-)
        addQuad(buffer, box.minX, box.minY, box.minZ, box.minX, box.maxY, box.minZ, box.maxX, box.maxY, box.minZ, box.maxX, box.minY, box.minZ);

        // Южная грань (Z+)
        addQuad(buffer, box.minX, box.minY, box.maxZ, box.maxX, box.minY, box.maxZ, box.maxX, box.maxY, box.maxZ, box.minX, box.maxY, box.maxZ);

        // Западная грань (X-)
        addQuad(buffer, box.minX, box.minY, box.minZ, box.minX, box.minY, box.maxZ, box.minX, box.maxY, box.maxZ, box.minX, box.maxY, box.minZ);

        // Восточная грань (X+)
        addQuad(buffer, box.maxX, box.minY, box.minZ, box.maxX, box.maxY, box.minZ, box.maxX, box.maxY, box.maxZ, box.maxX, box.minY, box.maxZ);

        Tessellator.getInstance().draw();
    }

    private void renderBoxOutline(AxisAlignedBB box) {
        BufferBuilder buffer = Tessellator.getInstance().getBuffer();
        buffer.begin(GL11.GL_LINES, DefaultVertexFormats.POSITION_COLOR);

        // 12 линий куба (все ребра)

        // Нижние линии
        addLine(buffer, box.minX, box.minY, box.minZ, box.maxX, box.minY, box.minZ);
        addLine(buffer, box.maxX, box.minY, box.minZ, box.maxX, box.minY, box.maxZ);
        addLine(buffer, box.maxX, box.minY, box.maxZ, box.minX, box.minY, box.maxZ);
        addLine(buffer, box.minX, box.minY, box.maxZ, box.minX, box.minY, box.minZ);

        // Верхние линии
        addLine(buffer, box.minX, box.maxY, box.minZ, box.maxX, box.maxY, box.minZ);
        addLine(buffer, box.maxX, box.maxY, box.minZ, box.maxX, box.maxY, box.maxZ);
        addLine(buffer, box.maxX, box.maxY, box.maxZ, box.minX, box.maxY, box.maxZ);
        addLine(buffer, box.minX, box.maxY, box.maxZ, box.minX, box.maxY, box.minZ);

        // Вертикальные линии
        addLine(buffer, box.minX, box.minY, box.minZ, box.minX, box.maxY, box.minZ);
        addLine(buffer, box.maxX, box.minY, box.minZ, box.maxX, box.maxY, box.minZ);
        addLine(buffer, box.maxX, box.minY, box.maxZ, box.maxX, box.maxY, box.maxZ);
        addLine(buffer, box.minX, box.minY, box.maxZ, box.minX, box.maxY, box.maxZ);

        Tessellator.getInstance().draw();
    }

    private void addQuad(BufferBuilder buffer,
                         double x1, double y1, double z1,
                         double x2, double y2, double z2,
                         double x3, double y3, double z3,
                         double x4, double y4, double z4) {
        buffer.pos(x1, y1, z1).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
        buffer.pos(x2, y2, z2).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
        buffer.pos(x3, y3, z3).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
        buffer.pos(x4, y4, z4).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
    }

    private void addLine(BufferBuilder buffer,
                         double x1, double y1, double z1,
                         double x2, double y2, double z2) {
        buffer.pos(x1, y1, z1).color(LINE_COLOR[0], LINE_COLOR[1], LINE_COLOR[2], LINE_COLOR[3]).endVertex();
        buffer.pos(x2, y2, z2).color(LINE_COLOR[0], LINE_COLOR[1], LINE_COLOR[2], LINE_COLOR[3]).endVertex();
    }

    private double lerp(double start, double end, float progress) {
        return start + (end - start) * progress;
    }

    public void onEventModule(Event event) {}

    public void register(LiteralArgumentBuilder<CommandSource> then) {
    }

    public class RenderLevelStageEvent {
    }
}
Ну функция для ебанутых хвх реков как визуал топчек, кстати на любую базу ??
 
Ну функция для ебанутых хвх реков как визуал топчек, кстати на любую базу ??
Спасибо, блять всем пишу что новичок но некоторые настолько обижены что пишут всякую поеботу а тебе спасибо
 
?? Какой же ужасный код
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
кароче боксы как в нурике и вексайде понимаю что код можно было сделать намного меньше и еще понимаю что функция не нужная, но для визуалов самое то
без дип сика не обошлось извиняюсь сразу помогал мне исправлять код ss -
Пожалуйста, авторизуйтесь для просмотра ссылки.

не бейте только плиз, если че все ошибки чинятся через шифт таб так что не надо говорить что у вас что то не работает

Java:
Expand Collapse Copy
package jiraf.cc.modules.impl.render;

import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import jiraf.cc.events.Event;
import jiraf.cc.events.impl.render.EventRender;
import jiraf.cc.modules.Function;
import jiraf.cc.modules.FunctionAnnotation;
import jiraf.cc.modules.Type;
import jiraf.cc.util.IMinecraft;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.*;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.command.CommandSource;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.vector.Vector3d;
import org.lwjgl.opengl.GL11;

@FunctionAnnotation(
        name = "Box 3D",
        type = Type.Render
)
public class Box3D extends Function {

    private static final double WIDTH = 0.6;
    private static final double HEIGHT = 1.8;

    // 50% прозрачная белая заливка
    private static final float[] FILL_COLOR = {1.0f, 1.0f, 1.0f, 0.5f};

    // Полностью непрозрачный белый контур
    private static final float[] LINE_COLOR = {1.0f, 1.0f, 1.0f, 1.0f};

    @Override
    public void onEvent(Event event) {
        if (!(event instanceof EventRender)) return;

        Minecraft mc = IMinecraft.mc;
        if (mc.world == null || mc.player == null || mc.getRenderManager() == null) return;

        try {
            if (mc.gameSettings.fov == 0) return;

            renderHitboxes(mc, ((EventRender)event).partialTicks);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onRenderLevelStage(Box3D.RenderLevelStageEvent event) {
      
    }

    private void renderHitboxes(Minecraft mc, float partialTicks) {
        RenderSystem.pushMatrix();
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();
        RenderSystem.disableTexture();
        RenderSystem.disableDepthTest();
        RenderSystem.disableCull(); // Важно для отображения со всех сторон

        Vector3d view = mc.getRenderManager().info.getProjectedView();

        for (PlayerEntity player : mc.world.getPlayers()) {
            if (player == mc.player) continue;

            renderPlayerHitbox(player, view, partialTicks);
        }

        RenderSystem.enableCull();
        RenderSystem.enableDepthTest();
        RenderSystem.enableTexture();
        RenderSystem.disableBlend();
        RenderSystem.popMatrix();
    }

    private void renderPlayerHitbox(PlayerEntity player, Vector3d view, float partialTicks) {
        double x = lerp(player.lastTickPosX, player.getPosX(), partialTicks) - view.x;
        double y = lerp(player.lastTickPosY, player.getPosY(), partialTicks) - view.y;
        double z = lerp(player.lastTickPosZ, player.getPosZ(), partialTicks) - view.z;

        AxisAlignedBB box = new AxisAlignedBB(
                x - WIDTH/2, y, z - WIDTH/2,
                x + WIDTH/2, y + HEIGHT, z + WIDTH/2
        );

        // 1. Рисуем заливку со всех сторон
        renderBoxFill(box);

        // 2. Рисуем контур со всех сторон
        renderBoxOutline(box);
    }

    private void renderBoxFill(AxisAlignedBB box) {
        BufferBuilder buffer = Tessellator.getInstance().getBuffer();
        buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_COLOR);

        // Все 6 граней куба (обе стороны)

        // Нижняя грань
        addQuad(buffer, box.minX, box.minY, box.minZ, box.maxX, box.minY, box.minZ, box.maxX, box.minY, box.maxZ, box.minX, box.minY, box.maxZ);

        // Верхняя грань
        addQuad(buffer, box.minX, box.maxY, box.minZ, box.minX, box.maxY, box.maxZ, box.maxX, box.maxY, box.maxZ, box.maxX, box.maxY, box.minZ);

        // Северная грань (Z-)
        addQuad(buffer, box.minX, box.minY, box.minZ, box.minX, box.maxY, box.minZ, box.maxX, box.maxY, box.minZ, box.maxX, box.minY, box.minZ);

        // Южная грань (Z+)
        addQuad(buffer, box.minX, box.minY, box.maxZ, box.maxX, box.minY, box.maxZ, box.maxX, box.maxY, box.maxZ, box.minX, box.maxY, box.maxZ);

        // Западная грань (X-)
        addQuad(buffer, box.minX, box.minY, box.minZ, box.minX, box.minY, box.maxZ, box.minX, box.maxY, box.maxZ, box.minX, box.maxY, box.minZ);

        // Восточная грань (X+)
        addQuad(buffer, box.maxX, box.minY, box.minZ, box.maxX, box.maxY, box.minZ, box.maxX, box.maxY, box.maxZ, box.maxX, box.minY, box.maxZ);

        Tessellator.getInstance().draw();
    }

    private void renderBoxOutline(AxisAlignedBB box) {
        BufferBuilder buffer = Tessellator.getInstance().getBuffer();
        buffer.begin(GL11.GL_LINES, DefaultVertexFormats.POSITION_COLOR);

        // 12 линий куба (все ребра)

        // Нижние линии
        addLine(buffer, box.minX, box.minY, box.minZ, box.maxX, box.minY, box.minZ);
        addLine(buffer, box.maxX, box.minY, box.minZ, box.maxX, box.minY, box.maxZ);
        addLine(buffer, box.maxX, box.minY, box.maxZ, box.minX, box.minY, box.maxZ);
        addLine(buffer, box.minX, box.minY, box.maxZ, box.minX, box.minY, box.minZ);

        // Верхние линии
        addLine(buffer, box.minX, box.maxY, box.minZ, box.maxX, box.maxY, box.minZ);
        addLine(buffer, box.maxX, box.maxY, box.minZ, box.maxX, box.maxY, box.maxZ);
        addLine(buffer, box.maxX, box.maxY, box.maxZ, box.minX, box.maxY, box.maxZ);
        addLine(buffer, box.minX, box.maxY, box.maxZ, box.minX, box.maxY, box.minZ);

        // Вертикальные линии
        addLine(buffer, box.minX, box.minY, box.minZ, box.minX, box.maxY, box.minZ);
        addLine(buffer, box.maxX, box.minY, box.minZ, box.maxX, box.maxY, box.minZ);
        addLine(buffer, box.maxX, box.minY, box.maxZ, box.maxX, box.maxY, box.maxZ);
        addLine(buffer, box.minX, box.minY, box.maxZ, box.minX, box.maxY, box.maxZ);

        Tessellator.getInstance().draw();
    }

    private void addQuad(BufferBuilder buffer,
                         double x1, double y1, double z1,
                         double x2, double y2, double z2,
                         double x3, double y3, double z3,
                         double x4, double y4, double z4) {
        buffer.pos(x1, y1, z1).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
        buffer.pos(x2, y2, z2).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
        buffer.pos(x3, y3, z3).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
        buffer.pos(x4, y4, z4).color(FILL_COLOR[0], FILL_COLOR[1], FILL_COLOR[2], FILL_COLOR[3]).endVertex();
    }

    private void addLine(BufferBuilder buffer,
                         double x1, double y1, double z1,
                         double x2, double y2, double z2) {
        buffer.pos(x1, y1, z1).color(LINE_COLOR[0], LINE_COLOR[1], LINE_COLOR[2], LINE_COLOR[3]).endVertex();
        buffer.pos(x2, y2, z2).color(LINE_COLOR[0], LINE_COLOR[1], LINE_COLOR[2], LINE_COLOR[3]).endVertex();
    }

    private double lerp(double start, double end, float progress) {
        return start + (end - start) * progress;
    }

    public void onEventModule(Event event) {}

    public void register(LiteralArgumentBuilder<CommandSource> then) {
    }

    public class RenderLevelStageEvent {
    }
}
этот бро даже коменты от нейро не убрал.. позор(
 
спасибо,уже в спастил в gay solution client:kissingheart::kissingheart::kissingheart::kissingheart:
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
спасибо,уже в спастил в gay solution client:kissingheart::kissingheart::kissingheart::kissingheart:
не за что ?????
этот бро, пишет с нейронкой и сливает на юг
ебать пастеры докатились
блять функция прикольная тебе какая разница как она написана, этого не кто не делал я сделал. за что доеб?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
не за что ?????

блять функция прикольная тебе какая разница как она написана, этого не кто не делал я сделал. за что доеб?
я бы добавил еще чтобы можно было цвет менять и + регулирование цвета хитбокса
 
я бы добавил еще чтобы можно было цвет менять и + регулирование цвета хитбокса
я пытаюсь еще хочу попытатся чтобы при добе в друзья он зеленым ставал
на кой хуй нам эта чат гпт хуета, которая еще и рвотные позывы своим видом вызывает /del

:FailFish:
блять я не знаю на кой она тебе лично, я если что не тебе делал а типам которым это нужно вы блять уже привыкли за всех говорить дауны блять я не говорю что я топ кодер да мне помогал гпт я не отрицаю
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
не за что ?????

блять функция прикольная тебе какая разница как она написана, этого не кто не делал я сделал. за что доеб?
В чем она прикольная?
я пытаюсь еще хочу попытатся чтобы при добе в друзья он зеленым ставал
АХАХХАХАХХА ты не смог даже такое сделать
 
Назад
Сверху Снизу