Вопрос Помощь с ChinaHat

  • Автор темы Автор темы ez2ex
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
19 Дек 2023
Сообщения
87
Реакции
1
EventRender3D:
Expand Collapse Copy
package omg.sticky.event.impl;

import net.minecraft.client.util.math.MatrixStack;
import omg.sticky.event.api.Event;

public class EventRender3D extends Event {
    private final MatrixStack matrices;
    private final float partialTicks;

    public EventRender3D(MatrixStack matrices, float partialTicks) {
        this.matrices = matrices;
        this.partialTicks = partialTicks;
    }

    public MatrixStack getMatrices() {
        return matrices;
    }

    public float getPartialTicks() {
        return partialTicks;
    }
}


ChinaHat:
Expand Collapse Copy
package omg.sticky.module.impl;

import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.Vec3d;
import omg.sticky.event.impl.EventRender3D;
import omg.sticky.module.api.Module;
import omg.sticky.module.api.ModuleInfo;
import org.lwjgl.opengl.GL11;

@ModuleInfo(name = "ChinaHat", desc = "Draws a square above the player's head.")
public class ChinaHat extends Module {

    @Subscribe
    public void onRender(EventRender3D event) {
        if (mc.player == null || mc.world == null) {
            System.out.println("Player or world is null");
            return;
        }

        // Выводим информацию в консоль для диагностики
        System.out.println("Rendering ChinaHat...");

        Vec3d cameraPos = mc.gameRenderer.getCamera().getPos();
        double x = mc.player.getX() - cameraPos.x;
        double y = mc.player.getY() + mc.player.getStandingEyeHeight() + 0.5 - cameraPos.y;
        double z = mc.player.getZ() - cameraPos.z;

        // Включаем OpenGL для рендеринга
        GL11.glPushMatrix();
        GL11.glDisable(GL11.GL_TEXTURE_2D);
        GL11.glDisable(GL11.GL_DEPTH_TEST);
        GL11.glEnable(GL11.GL_BLEND);
        GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

        GL11.glTranslated(x, y, z);

        // Рендерим красный квадрат (заменяем на шляпу позже)
        float size = 0.5f;
        GL11.glBegin(GL11.GL_QUADS);
        GL11.glColor4f(1.0f, 0.0f, 0.0f, 1.0f); // Красный цвет
        GL11.glVertex3f(-size, 0, -size);
        GL11.glVertex3f(size, 0, -size);
        GL11.glVertex3f(size, 0, size);
        GL11.glVertex3f(-size, 0, size);
        GL11.glEnd();

        // Восстанавливаем настройки OpenGL
        GL11.glEnable(GL11.GL_TEXTURE_2D);
        GL11.glEnable(GL11.GL_DEPTH_TEST);
        GL11.glPopMatrix();
    }
}
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
и чем помочь ?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
EventRender3D:
Expand Collapse Copy
package omg.sticky.event.impl;

import net.minecraft.client.util.math.MatrixStack;
import omg.sticky.event.api.Event;

public class EventRender3D extends Event {
    private final MatrixStack matrices;
    private final float partialTicks;

    public EventRender3D(MatrixStack matrices, float partialTicks) {
        this.matrices = matrices;
        this.partialTicks = partialTicks;
    }

    public MatrixStack getMatrices() {
        return matrices;
    }

    public float getPartialTicks() {
        return partialTicks;
    }
}


ChinaHat:
Expand Collapse Copy
package omg.sticky.module.impl;

import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.Vec3d;
import omg.sticky.event.impl.EventRender3D;
import omg.sticky.module.api.Module;
import omg.sticky.module.api.ModuleInfo;
import org.lwjgl.opengl.GL11;

@ModuleInfo(name = "ChinaHat", desc = "Draws a square above the player's head.")
public class ChinaHat extends Module {

    @Subscribe
    public void onRender(EventRender3D event) {
        if (mc.player == null || mc.world == null) {
            System.out.println("Player or world is null");
            return;
        }

        // Выводим информацию в консоль для диагностики
        System.out.println("Rendering ChinaHat...");

        Vec3d cameraPos = mc.gameRenderer.getCamera().getPos();
        double x = mc.player.getX() - cameraPos.x;
        double y = mc.player.getY() + mc.player.getStandingEyeHeight() + 0.5 - cameraPos.y;
        double z = mc.player.getZ() - cameraPos.z;

        // Включаем OpenGL для рендеринга
        GL11.glPushMatrix();
        GL11.glDisable(GL11.GL_TEXTURE_2D);
        GL11.glDisable(GL11.GL_DEPTH_TEST);
        GL11.glEnable(GL11.GL_BLEND);
        GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

        GL11.glTranslated(x, y, z);

        // Рендерим красный квадрат (заменяем на шляпу позже)
        float size = 0.5f;
        GL11.glBegin(GL11.GL_QUADS);
        GL11.glColor4f(1.0f, 0.0f, 0.0f, 1.0f); // Красный цвет
        GL11.glVertex3f(-size, 0, -size);
        GL11.glVertex3f(size, 0, -size);
        GL11.glVertex3f(size, 0, size);
        GL11.glVertex3f(-size, 0, size);
        GL11.glEnd();

        // Восстанавливаем настройки OpenGL
        GL11.glEnable(GL11.GL_TEXTURE_2D);
        GL11.glEnable(GL11.GL_DEPTH_TEST);
        GL11.glPopMatrix();
    }
}


фикс:

chatgpt soultions aka fix chinahat:
Expand Collapse Copy
package omg.sticky.module.impl;

import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.Vec3d;
import omg.sticky.event.impl.EventRender3D;
import omg.sticky.module.api.Module;
import omg.sticky.module.api.ModuleInfo;
import org.lwjgl.opengl.GL11;

@ModuleInfo(name = "ChinaHat", desc = "Draws a square above the player's head.")
public class ChinaHat extends Module {

    @Subscribe
    public void onRender(EventRender3D event) {
        if (mc.player == null || mc.world == null) {
            return;
        }

        MatrixStack matrices = event.getMatrices();

        Vec3d cameraPos = mc.gameRenderer.getCamera().getPos();
        double x = mc.player.getX() - cameraPos.x;
        double y = mc.player.getY() + mc.player.getStandingEyeHeight() + 0.5 - cameraPos.y;
        double z = mc.player.getZ() - cameraPos.z;

        matrices.push();
        matrices.translate(x, y, z);

        RenderSystem.disableTexture();
        RenderSystem.disableDepthTest();
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();

        // Используем GL11 для рисования квадрата
        GL11.glBegin(GL11.GL_QUADS);
        GL11.glColor4f(1.0f, 0.0f, 0.0f, 1.0f); // Красный цвет
        GL11.glVertex3f(-0.5f, 0, -0.5f);
        GL11.glVertex3f(0.5f, 0, -0.5f);
        GL11.glVertex3f(0.5f, 0, 0.5f);
        GL11.glVertex3f(-0.5f, 0, 0.5f);
        GL11.glEnd();

        // Восстанавливаем состояние OpenGL
        RenderSystem.enableTexture();
        RenderSystem.enableDepthTest();

        matrices.pop();
    }
}

если будут вопросы - пиши
 
фикс:

chatgpt soultions aka fix chinahat:
Expand Collapse Copy
package omg.sticky.module.impl;

import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.Vec3d;
import omg.sticky.event.impl.EventRender3D;
import omg.sticky.module.api.Module;
import omg.sticky.module.api.ModuleInfo;
import org.lwjgl.opengl.GL11;

@ModuleInfo(name = "ChinaHat", desc = "Draws a square above the player's head.")
public class ChinaHat extends Module {

    @Subscribe
    public void onRender(EventRender3D event) {
        if (mc.player == null || mc.world == null) {
            return;
        }

        MatrixStack matrices = event.getMatrices();

        Vec3d cameraPos = mc.gameRenderer.getCamera().getPos();
        double x = mc.player.getX() - cameraPos.x;
        double y = mc.player.getY() + mc.player.getStandingEyeHeight() + 0.5 - cameraPos.y;
        double z = mc.player.getZ() - cameraPos.z;

        matrices.push();
        matrices.translate(x, y, z);

        RenderSystem.disableTexture();
        RenderSystem.disableDepthTest();
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();

        // Используем GL11 для рисования квадрата
        GL11.glBegin(GL11.GL_QUADS);
        GL11.glColor4f(1.0f, 0.0f, 0.0f, 1.0f); // Красный цвет
        GL11.glVertex3f(-0.5f, 0, -0.5f);
        GL11.glVertex3f(0.5f, 0, -0.5f);
        GL11.glVertex3f(0.5f, 0, 0.5f);
        GL11.glVertex3f(-0.5f, 0, 0.5f);
        GL11.glEnd();

        // Восстанавливаем состояние OpenGL
        RenderSystem.enableTexture();
        RenderSystem.enableDepthTest();

        matrices.pop();
    }
}

если будут вопросы - пиши
всё равно не рендерит, просто ее нет
1733395777305.png
 
ну попробуй это:

Код:
Expand Collapse Copy
package im.expensive.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import im.expensive.events.WorldEvent;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.utils.math.MathUtil;
import im.expensive.utils.render.ColorUtils;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.client.settings.PointOfView;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector3d;
import org.lwjgl.opengl.GL11;

@FunctionRegister(name = "China Hat", type = Category.Render)
public class ChinaHat extends Function {

    @Subscribe
    private void onRender(WorldEvent e) {
        if (mc.gameSettings.getPointOfView() == PointOfView.FIRST_PERSON) return;

        float radius = 0.6f;
        Tessellator tessellator = Tessellator.getInstance();

        // Перебираем всех игроков в мире
        for (PlayerEntity player : mc.world.getPlayers()) {
            // Рендерим только на нас самих и на наших друзьях
            if (player == mc.player || FriendManager.isFriend(player.getName().getString())) {

                GlStateManager.pushMatrix();

                // Расчет интерполяции позиции игрока
                Vector3d interpolated = MathUtil.interpolate(player.getPositionVec(),
                    new Vector3d(player.lastTickPosX, player.lastTickPosY, player.lastTickPosZ), e.getPartialTicks());
                
                // Перемещение в позицию игрока с учетом высоты
                RenderSystem.translated(
                    interpolated.x - mc.getRenderManager().info.getProjectedView().x,
                    interpolated.y - mc.getRenderManager().info.getProjectedView().y + player.getHeight(),
                    interpolated.z - mc.getRenderManager().info.getProjectedView().z
                );

                // Поворот по углу поворота игрока
                GL11.glRotatef(-player.rotationYaw, 0f, 1f, 0f);

                // Настройки для рендеринга
                RenderSystem.enableBlend();
                RenderSystem.depthMask(false);
                RenderSystem.disableTexture();
                RenderSystem.disableCull();
                RenderSystem.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
                RenderSystem.shadeModel(GL11.GL_SMOOTH);

                GL11.glEnable(GL11.GL_LINE_SMOOTH);
                GL11.glHint(GL11.GL_LINE_SMOOTH_HINT, GL11.GL_NICEST);

                // Определяем цвет: для нас или для друзей
                int color = (player == mc.player) ? ColorUtils.setAlpha(HUD.getColor(0, 1), 220) : ColorUtils.setAlpha(0x00FF00, 220);

                // Начинаем рендеринг шляпы
                buffer.begin(GL11.GL_TRIANGLE_FAN, DefaultVertexFormats.POSITION_COLOR);
                buffer.pos(0, 0.3, 0).color(color).endVertex();
                
                for (int i = 0; i <= 360; i++) {
                    float x = MathHelper.sin((float) Math.toRadians(i)) * radius;
                    float z = MathHelper.cos((float) Math.toRadians(i)) * radius;
                    buffer.pos(x, 0, z).color(color).endVertex();
                }
                tessellator.draw();

                // Рендерим край шляпы
                buffer.begin(GL11.GL_LINE_LOOP, DefaultVertexFormats.POSITION_COLOR);
                for (int i = 0; i <= 360; i++) {
                    float x = MathHelper.sin((float) Math.toRadians(i)) * radius;
                    float z = MathHelper.cos((float) Math.toRadians(i)) * radius;
                    buffer.pos(x, 0, z).color(color).endVertex();
                }
                tessellator.draw();

                // Сброс настроек рендеринга
                GL11.glHint(GL11.GL_LINE_SMOOTH_HINT, GL11.GL_DONT_CARE);
                GL11.glDisable(GL11.GL_LINE_SMOOTH);
                RenderSystem.enableTexture();
                RenderSystem.disableBlend();
                RenderSystem.enableCull();
                RenderSystem.depthMask(true);
                RenderSystem.shadeModel(GL11.GL_FLAT);

                GlStateManager.popMatrix();
            }
        }
    }
}
 
Код:
Expand Collapse Copy
package omg.sticky.module.impl;

import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.Vec3d;
import omg.sticky.event.impl.EventRender3D;
import omg.sticky.module.api.Module;
import omg.sticky.module.api.ModuleInfo;
import org.lwjgl.opengl.GL11;

@ModuleInfo(name = "ChinaHat", desc = "Draws a square above the player's head.")
public class ChinaHat extends Module {

    @Subscribe
    public void onRender(EventRender3D event) {
        if (mc.player == null || mc.world == null) {
            return;
        }

        MatrixStack matrices = event.getMatrices();

        Vec3d cameraPos = mc.gameRenderer.getCamera().getPos();
        double x = mc.player.getX() - cameraPos.x;
        double y = mc.player.getY() + mc.player.getStandingEyeHeight() + 0.5 - cameraPos.y;
        double z = mc.player.getZ() - cameraPos.z;

        // Подготавливаем матрицу и перемещаем её в нужную позицию
        matrices.push();
        matrices.translate(x, y, z);

        // Включаем OpenGL настройки
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();
        RenderSystem.disableTexture();
        RenderSystem.disableDepthTest();
        RenderSystem.depthMask(false);

        // Начинаем рисование квадрата
        GL11.glPushMatrix(); // Сохраняем текущую матрицу
        GL11.glTranslated(x, y, z); // Перемещаем матрицу в нужное положение относительно игрока

        GL11.glBegin(GL11.GL_QUADS);
        GL11.glColor4f(1.0f, 0.0f, 0.0f, 0.8f); // Полупрозрачный красный цвет
        GL11.glVertex3f(-0.5f, 0, -0.5f);
        GL11.glVertex3f(0.5f, 0, -0.5f);
        GL11.glVertex3f(0.5f, 0, 0.5f);
        GL11.glVertex3f(-0.5f, 0, 0.5f);
        GL11.glEnd();

        // Восстанавливаем состояние
        GL11.glPopMatrix(); // Восстанавливаем матрицу
        RenderSystem.enableTexture();
        RenderSystem.enableDepthTest();
        RenderSystem.depthMask(true);

        matrices.pop();
    }
}
 
Код:
Expand Collapse Copy
package omg.sticky.module.impl;

import com.google.common.eventbus.Subscribe;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.Vec3d;
import omg.sticky.event.impl.EventRender3D;
import omg.sticky.module.api.Module;
import omg.sticky.module.api.ModuleInfo;
import org.lwjgl.opengl.GL11;

@ModuleInfo(name = "ChinaHat", desc = "Draws a square above the player's head.")
public class ChinaHat extends Module {

    @Subscribe
    public void onRender(EventRender3D event) {
        if (mc.player == null || mc.world == null) {
            return;
        }

        MatrixStack matrices = event.getMatrices();

        Vec3d cameraPos = mc.gameRenderer.getCamera().getPos();
        double x = mc.player.getX() - cameraPos.x;
        double y = mc.player.getY() + mc.player.getStandingEyeHeight() + 0.5 - cameraPos.y;
        double z = mc.player.getZ() - cameraPos.z;

        // Подготавливаем матрицу и перемещаем её в нужную позицию
        matrices.push();
        matrices.translate(x, y, z);

        // Включаем OpenGL настройки
        RenderSystem.enableBlend();
        RenderSystem.defaultBlendFunc();
        RenderSystem.disableTexture();
        RenderSystem.disableDepthTest();
        RenderSystem.depthMask(false);

        // Начинаем рисование квадрата
        GL11.glPushMatrix(); // Сохраняем текущую матрицу
        GL11.glTranslated(x, y, z); // Перемещаем матрицу в нужное положение относительно игрока

        GL11.glBegin(GL11.GL_QUADS);
        GL11.glColor4f(1.0f, 0.0f, 0.0f, 0.8f); // Полупрозрачный красный цвет
        GL11.glVertex3f(-0.5f, 0, -0.5f);
        GL11.glVertex3f(0.5f, 0, -0.5f);
        GL11.glVertex3f(0.5f, 0, 0.5f);
        GL11.glVertex3f(-0.5f, 0, 0.5f);
        GL11.glEnd();

        // Восстанавливаем состояние
        GL11.glPopMatrix(); // Восстанавливаем матрицу
        RenderSystem.enableTexture();
        RenderSystem.enableDepthTest();
        RenderSystem.depthMask(true);

        matrices.pop();
    }
}
всё также не работает, если что я на фабрике делаю
 
Назад
Сверху Снизу