Вопрос Помогите с созданием хитбоксов

  • Автор темы Автор темы Luva1337
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
51
Реакции
0

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

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

Спасибо!

значит я не сильно знаю java и поэтому у меня небольшие трудности, моя задача это написать хитбоксы под labymod 3 1.16.5 (dll)
у меня есть код под фордж который работает и нормально инжектится и все делает

forge:
Expand Collapse Copy
package com.example.examplemod;
import com.mojang.blaze3d.matrix.MatrixStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraftforge.client.event.InputEvent;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.client.event.RenderPlayerEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

@Mod("aads")
public class AADS
{
    private static final Minecraft HYT = Minecraft.getInstance();
    private boolean AACD = true;
    private boolean DFCCG = true;
    public double si = 0.3;
    public double DHF = 0.3;
    public double YHG = 0.05;
    public double RDC = 264;
    public double RDCC = 260;
    public double RDDC = 265;
    public double RRDC = 268;
    @SubscribeEvent
    public void onUpdate(RenderPlayerEvent.Post WWS) {
        Entity TTR = WWS.getEntity();
        if (TTR != HYT.player) {
            TTR.setBoundingBox(new AxisAlignedBB(
                    TTR.getX() - si,
                    TTR.getBoundingBox().minY,
                    TTR.getZ() - si,
                    TTR.getX() + si,
                    TTR.getBoundingBox().maxY,
                    TTR.getZ() + si
            ));
        }
    }
    private static final Logger LOGGER = LogManager.getLogger();
    public void setSi(double si) {
        this.si = si;
    }
    public double getSi() {
        return this.si;
    }
    public AADS() {
        MinecraftForge.EVENT_BUS.register(this);
    }
    @SubscribeEvent
    public void GYT(InputEvent.KeyInputEvent YT) {
        int GHL = YT.getKey();
        if (!(Minecraft.getInstance().screen instanceof ChatScreen)) {
            if (YT.getAction() == 1) {
                if (GHL == RDDC) {
                    this.setSi(this.si + YHG);
                }
                if (GHL == RDC) {
                    this.setSi(Math.max(DHF, this.si - YHG));
                }
                if (GHL == RDCC) {
                    AACD = !AACD;
                }
                if (GHL == RRDC) {
                    DFCCG = !DFCCG;
                    if (!DFCCG) {
                        this.setSi(this.si = DHF);
                    }
                }
            }
        }
    }
    @SubscribeEvent
    public void AASD(RenderGameOverlayEvent.Post SRW){
        if (SRW.getType() == RenderGameOverlayEvent.ElementType.TEXT && AACD){
            double HJD = si;
            MatrixStack matrixStack = SRW.getMatrixStack();
            String sizeText = String.format("Size: %.2f", HJD);
            Minecraft.getInstance().font.drawShadow(matrixStack, sizeText, 10, 70, 0xFFFFFF);
        }
    }
}
не смотрите на то что он какой-то странный, это я для себя как для еблана
ну так вот, он работает, а на ванилу нет
вот код под ванилу (labymod):
vanilla:
Expand Collapse Copy
package com.example.examplemod;

import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.AxisAlignedBB;
import org.lwjgl.glfw.GLFW;

public class KeyInputHandler {

    private final Minecraft mc = Minecraft.getInstance();
    private float size = 0.0F;
    private static final float MAX_SIZE = 3.0F;
    private static final float MIN_SIZE = 0.0F;

    public void tick() {
        if (mc.player == null || mc.level == null) return; // Проверяем наличие игрока и мира

        // Проверяем, что текущий экран не является GUI
        if (!(mc.screen instanceof ChatScreen)) {
            // Обработка нажатий клавиш
            if (isKeyPressed(GLFW.GLFW_KEY_K)) {
                adjustSize(0.1F); // Увеличиваем размер
            }
            if (isKeyPressed(GLFW.GLFW_KEY_J)) {
                adjustSize(-0.1F); // Уменьшаем размер
            }
        }

        updatePlayerBoundingBox(mc.player); // Обновляем хитбокс
    }

    private void adjustSize(float delta) {
        size = Math.max(MIN_SIZE, Math.min(MAX_SIZE, size + delta)); // Ограничиваем размер
    }

    private void updatePlayerBoundingBox(PlayerEntity player) {
        AxisAlignedBB originalBoundingBox = player.getBoundingBox();
        AxisAlignedBB newBoundingBox = new AxisAlignedBB(
                originalBoundingBox.minX - getAdjustedSize(),
                originalBoundingBox.minY,
                originalBoundingBox.minZ - getAdjustedSize(),
                originalBoundingBox.maxX + getAdjustedSize(),
                originalBoundingBox.maxY,
                originalBoundingBox.maxZ + getAdjustedSize()
        );

        player.setBoundingBox(newBoundingBox); // Устанавливаем новую границу
    }

    private float getAdjustedSize() {
        return size; // Возвращаем размер без добавления базового значения
    }

    private boolean isKeyPressed(int key) {
        return Minecraft.getInstance().options.keyAttack.isDown() && key == GLFW.GLFW_KEY_K ||
                Minecraft.getInstance().options.keyAttack.isDown() && key == GLFW.GLFW_KEY_J; // Проверяем нажатие K и J
    }
}

подскажите чем сможете, или дайте совет
буду всему благодарен

так-же если есть желающие помочь (что на вряд-ли) вот тг-@unlucktobro
 
значит я не сильно знаю java и поэтому у меня небольшие трудности, моя задача это написать хитбоксы под labymod 3 1.16.5 (dll)
у меня есть код под фордж который работает и нормально инжектится и все делает

forge:
Expand Collapse Copy
package com.example.examplemod;
import com.mojang.blaze3d.matrix.MatrixStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraftforge.client.event.InputEvent;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.client.event.RenderPlayerEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

@Mod("aads")
public class AADS
{
    private static final Minecraft HYT = Minecraft.getInstance();
    private boolean AACD = true;
    private boolean DFCCG = true;
    public double si = 0.3;
    public double DHF = 0.3;
    public double YHG = 0.05;
    public double RDC = 264;
    public double RDCC = 260;
    public double RDDC = 265;
    public double RRDC = 268;
    @SubscribeEvent
    public void onUpdate(RenderPlayerEvent.Post WWS) {
        Entity TTR = WWS.getEntity();
        if (TTR != HYT.player) {
            TTR.setBoundingBox(new AxisAlignedBB(
                    TTR.getX() - si,
                    TTR.getBoundingBox().minY,
                    TTR.getZ() - si,
                    TTR.getX() + si,
                    TTR.getBoundingBox().maxY,
                    TTR.getZ() + si
            ));
        }
    }
    private static final Logger LOGGER = LogManager.getLogger();
    public void setSi(double si) {
        this.si = si;
    }
    public double getSi() {
        return this.si;
    }
    public AADS() {
        MinecraftForge.EVENT_BUS.register(this);
    }
    @SubscribeEvent
    public void GYT(InputEvent.KeyInputEvent YT) {
        int GHL = YT.getKey();
        if (!(Minecraft.getInstance().screen instanceof ChatScreen)) {
            if (YT.getAction() == 1) {
                if (GHL == RDDC) {
                    this.setSi(this.si + YHG);
                }
                if (GHL == RDC) {
                    this.setSi(Math.max(DHF, this.si - YHG));
                }
                if (GHL == RDCC) {
                    AACD = !AACD;
                }
                if (GHL == RRDC) {
                    DFCCG = !DFCCG;
                    if (!DFCCG) {
                        this.setSi(this.si = DHF);
                    }
                }
            }
        }
    }
    @SubscribeEvent
    public void AASD(RenderGameOverlayEvent.Post SRW){
        if (SRW.getType() == RenderGameOverlayEvent.ElementType.TEXT && AACD){
            double HJD = si;
            MatrixStack matrixStack = SRW.getMatrixStack();
            String sizeText = String.format("Size: %.2f", HJD);
            Minecraft.getInstance().font.drawShadow(matrixStack, sizeText, 10, 70, 0xFFFFFF);
        }
    }
}
не смотрите на то что он какой-то странный, это я для себя как для еблана
ну так вот, он работает, а на ванилу нет
вот код под ванилу (labymod):
vanilla:
Expand Collapse Copy
package com.example.examplemod;

import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.AxisAlignedBB;
import org.lwjgl.glfw.GLFW;

public class KeyInputHandler {

    private final Minecraft mc = Minecraft.getInstance();
    private float size = 0.0F;
    private static final float MAX_SIZE = 3.0F;
    private static final float MIN_SIZE = 0.0F;

    public void tick() {
        if (mc.player == null || mc.level == null) return; // Проверяем наличие игрока и мира

        // Проверяем, что текущий экран не является GUI
        if (!(mc.screen instanceof ChatScreen)) {
            // Обработка нажатий клавиш
            if (isKeyPressed(GLFW.GLFW_KEY_K)) {
                adjustSize(0.1F); // Увеличиваем размер
            }
            if (isKeyPressed(GLFW.GLFW_KEY_J)) {
                adjustSize(-0.1F); // Уменьшаем размер
            }
        }

        updatePlayerBoundingBox(mc.player); // Обновляем хитбокс
    }

    private void adjustSize(float delta) {
        size = Math.max(MIN_SIZE, Math.min(MAX_SIZE, size + delta)); // Ограничиваем размер
    }

    private void updatePlayerBoundingBox(PlayerEntity player) {
        AxisAlignedBB originalBoundingBox = player.getBoundingBox();
        AxisAlignedBB newBoundingBox = new AxisAlignedBB(
                originalBoundingBox.minX - getAdjustedSize(),
                originalBoundingBox.minY,
                originalBoundingBox.minZ - getAdjustedSize(),
                originalBoundingBox.maxX + getAdjustedSize(),
                originalBoundingBox.maxY,
                originalBoundingBox.maxZ + getAdjustedSize()
        );

        player.setBoundingBox(newBoundingBox); // Устанавливаем новую границу
    }

    private float getAdjustedSize() {
        return size; // Возвращаем размер без добавления базового значения
    }

    private boolean isKeyPressed(int key) {
        return Minecraft.getInstance().options.keyAttack.isDown() && key == GLFW.GLFW_KEY_K ||
                Minecraft.getInstance().options.keyAttack.isDown() && key == GLFW.GLFW_KEY_J; // Проверяем нажатие K и J
    }
}

подскажите чем сможете, или дайте совет
буду всему благодарен

так-же если есть желающие помочь (что на вряд-ли) вот тг-@unlucktobro
up
значит я не сильно знаю java и поэтому у меня небольшие трудности, моя задача это написать хитбоксы под labymod 3 1.16.5 (dll)
у меня есть код под фордж который работает и нормально инжектится и все делает

forge:
Expand Collapse Copy
package com.example.examplemod;
import com.mojang.blaze3d.matrix.MatrixStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraftforge.client.event.InputEvent;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.client.event.RenderPlayerEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

@Mod("aads")
public class AADS
{
    private static final Minecraft HYT = Minecraft.getInstance();
    private boolean AACD = true;
    private boolean DFCCG = true;
    public double si = 0.3;
    public double DHF = 0.3;
    public double YHG = 0.05;
    public double RDC = 264;
    public double RDCC = 260;
    public double RDDC = 265;
    public double RRDC = 268;
    @SubscribeEvent
    public void onUpdate(RenderPlayerEvent.Post WWS) {
        Entity TTR = WWS.getEntity();
        if (TTR != HYT.player) {
            TTR.setBoundingBox(new AxisAlignedBB(
                    TTR.getX() - si,
                    TTR.getBoundingBox().minY,
                    TTR.getZ() - si,
                    TTR.getX() + si,
                    TTR.getBoundingBox().maxY,
                    TTR.getZ() + si
            ));
        }
    }
    private static final Logger LOGGER = LogManager.getLogger();
    public void setSi(double si) {
        this.si = si;
    }
    public double getSi() {
        return this.si;
    }
    public AADS() {
        MinecraftForge.EVENT_BUS.register(this);
    }
    @SubscribeEvent
    public void GYT(InputEvent.KeyInputEvent YT) {
        int GHL = YT.getKey();
        if (!(Minecraft.getInstance().screen instanceof ChatScreen)) {
            if (YT.getAction() == 1) {
                if (GHL == RDDC) {
                    this.setSi(this.si + YHG);
                }
                if (GHL == RDC) {
                    this.setSi(Math.max(DHF, this.si - YHG));
                }
                if (GHL == RDCC) {
                    AACD = !AACD;
                }
                if (GHL == RRDC) {
                    DFCCG = !DFCCG;
                    if (!DFCCG) {
                        this.setSi(this.si = DHF);
                    }
                }
            }
        }
    }
    @SubscribeEvent
    public void AASD(RenderGameOverlayEvent.Post SRW){
        if (SRW.getType() == RenderGameOverlayEvent.ElementType.TEXT && AACD){
            double HJD = si;
            MatrixStack matrixStack = SRW.getMatrixStack();
            String sizeText = String.format("Size: %.2f", HJD);
            Minecraft.getInstance().font.drawShadow(matrixStack, sizeText, 10, 70, 0xFFFFFF);
        }
    }
}
не смотрите на то что он какой-то странный, это я для себя как для еблана
ну так вот, он работает, а на ванилу нет
вот код под ванилу (labymod):
vanilla:
Expand Collapse Copy
package com.example.examplemod;

import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.AxisAlignedBB;
import org.lwjgl.glfw.GLFW;

public class KeyInputHandler {

    private final Minecraft mc = Minecraft.getInstance();
    private float size = 0.0F;
    private static final float MAX_SIZE = 3.0F;
    private static final float MIN_SIZE = 0.0F;

    public void tick() {
        if (mc.player == null || mc.level == null) return; // Проверяем наличие игрока и мира

        // Проверяем, что текущий экран не является GUI
        if (!(mc.screen instanceof ChatScreen)) {
            // Обработка нажатий клавиш
            if (isKeyPressed(GLFW.GLFW_KEY_K)) {
                adjustSize(0.1F); // Увеличиваем размер
            }
            if (isKeyPressed(GLFW.GLFW_KEY_J)) {
                adjustSize(-0.1F); // Уменьшаем размер
            }
        }

        updatePlayerBoundingBox(mc.player); // Обновляем хитбокс
    }

    private void adjustSize(float delta) {
        size = Math.max(MIN_SIZE, Math.min(MAX_SIZE, size + delta)); // Ограничиваем размер
    }

    private void updatePlayerBoundingBox(PlayerEntity player) {
        AxisAlignedBB originalBoundingBox = player.getBoundingBox();
        AxisAlignedBB newBoundingBox = new AxisAlignedBB(
                originalBoundingBox.minX - getAdjustedSize(),
                originalBoundingBox.minY,
                originalBoundingBox.minZ - getAdjustedSize(),
                originalBoundingBox.maxX + getAdjustedSize(),
                originalBoundingBox.maxY,
                originalBoundingBox.maxZ + getAdjustedSize()
        );

        player.setBoundingBox(newBoundingBox); // Устанавливаем новую границу
    }

    private float getAdjustedSize() {
        return size; // Возвращаем размер без добавления базового значения
    }

    private boolean isKeyPressed(int key) {
        return Minecraft.getInstance().options.keyAttack.isDown() && key == GLFW.GLFW_KEY_K ||
                Minecraft.getInstance().options.keyAttack.isDown() && key == GLFW.GLFW_KEY_J; // Проверяем нажатие K и J
    }
}

подскажите чем сможете, или дайте совет
буду всему благодарен

так-же если есть желающие помочь (что на вряд-ли) вот тг-@unlucktobro
под ванилу я делал с помощью чат гпт
 
Назад
Сверху Снизу