Исходник Делаем CustomInventory на expensive 2.0

Начинающий
Статус
Оффлайн
Регистрация
7 Мар 2024
Сообщения
294
Реакции[?]
6
Поинты[?]
4K

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

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

Спасибо!

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


Сообственно всё действует по трем методам.
1. Находим класс
2. Создаем в нем рендер
3. Подключаем рендер к функции.

В нашем случае рендер инвентаря находится в классе ContainerScreen

Находим метод render и изменяем

Java:
 public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
        boolean customInv = Managment.FUNCTION_MANAGER.customInventory.state; // создаем болеан customInv = модуль.state значит включен

        if (customInv) {
            effect();
        } //применяем метод effect если получаем болеан customInv
        
        int i = this.guiLeft;
        int j = this.guiTop;
        this.drawGuiContainerBackgroundLayer(matrixStack, partialTicks, mouseX, mouseY);
        RenderSystem.disableRescaleNormal();
        RenderSystem.disableDepthTest();
        super.render(matrixStack, mouseX, mouseY, partialTicks);
        RenderSystem.pushMatrix();
        RenderSystem.translatef((float) i, (float) j, 0.0F);
        RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
        RenderSystem.enableRescaleNormal();
        this.hoveredSlot = null;
        int k = 240;
        int l = 240;
        RenderSystem.glMultiTexCoord2f(33986, 240.0F, 240.0F);
        RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);

        for (int i1 = 0; i1 < this.container.inventorySlots.size(); ++i1) {
            Slot slot = this.container.inventorySlots.get(i1);

            if (slot.isEnabled()) {
                this.moveItems(matrixStack, slot);
            }

            if (this.isSlotSelected(slot, (double) mouseX, (double) mouseY) && slot.isEnabled()) {
                ItemScroller itemScroller = Managment.FUNCTION_MANAGER.itemScroller;
                if (itemScroller != null && itemScroller.state) {
                    if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getMainWindow().getHandle(), GLFW.GLFW_MOUSE_BUTTON_LEFT) == GLFW.GLFW_PRESS
                            && GLFW.glfwGetKey(Minecraft.getInstance().getMainWindow().getHandle(), GLFW.GLFW_KEY_LEFT_SHIFT) == GLFW.GLFW_PRESS
                            && Minecraft.getInstance().currentScreen != null) {
                        if (timerUtil.hasTimeElapsed(itemScroller.delay.getValue().longValue()) && slot.getHasStack()) {
                            handleMouseClick(slot, slot.slotNumber, 1, ClickType.QUICK_MOVE);
                            timerUtil.reset();
                        }
                    }
                }
                this.hoveredSlot = slot;
                RenderSystem.disableDepthTest();
                int j1 = slot.xPos;
                int k1 = slot.yPos;
                RenderSystem.colorMask(true, true, true, false);
                this.fillGradient(matrixStack, j1, k1, j1 + 16, k1 + 16, -2130706433, -2130706433);
                RenderSystem.colorMask(true, true, true, true);
                RenderSystem.enableDepthTest();
            }
        }

        this.drawGuiContainerForegroundLayer(matrixStack, mouseX, mouseY);
        PlayerInventory playerinventory = this.minecraft.player.inventory;
        ItemStack itemstack = this.draggedStack.isEmpty() ? playerinventory.getItemStack() : this.draggedStack;

        if (!itemstack.isEmpty()) {
            int j2 = 8;
            int k2 = this.draggedStack.isEmpty() ? 8 : 16;
            String s = null;

            if (!this.draggedStack.isEmpty() && this.isRightMouseClick) {
                itemstack = itemstack.copy();
                itemstack.setCount(MathHelper.ceil((float) itemstack.getCount() / 2.0F));
            } else if (this.dragSplitting && this.dragSplittingSlots.size() > 1) {
                itemstack = itemstack.copy();
                itemstack.setCount(this.dragSplittingRemnant);

                if (itemstack.isEmpty()) {
                    s = "" + TextFormatting.YELLOW + "0";
                }
            }

            this.drawItemStack(itemstack, mouseX - i - 8, mouseY - j - k2, s);
        }

        if (!this.returningStack.isEmpty()) {
            float f = (float) (Util.milliTime() - this.returningStackTime) / 100.0F;

            if (f >= 1.0F) {
                f = 1.0F;
                this.returningStack = ItemStack.EMPTY;
            }

            int l2 = this.returningStackDestSlot.xPos - this.touchUpX;
            int i3 = this.returningStackDestSlot.yPos - this.touchUpY;
            int l1 = this.touchUpX + (int) ((float) l2 * f);
            int i2 = this.touchUpY + (int) ((float) i3 * f);
            this.drawItemStack(this.returningStack, l1, i2, (String) null);
        }

        RenderSystem.popMatrix();
        RenderSystem.enableDepthTest();
    }

// создаем метод effect

private void effect() {
        int screenWidth = mc.getMainWindow().getWidth();
        int screenHeight = mc.getMainWindow().getHeight();
        float glowX = 0;
        float glowY = 0;
        float glowWidth = screenWidth;
        float glowHeight = screenHeight;
        int alpha = Managment.FUNCTION_MANAGER.customInventory.glow.getValue().intValue();
        int baseColor = ColorUtil.getColorStyle(255);
        int glowColor = (alpha << 24) | (baseColor & 0x00FFFFFF);
        RenderUtil.Render2D.drawRect(glowX, glowY, glowWidth, glowHeight, glowColor);
    }
класс CustomInv:
   public BooleanSetting effect = new BooleanSetting("Background", false); //false если хочем чтобы по дефолту чекбокс был офнут
   public SliderSetting glow = new SliderSetting("Force Background", 200, 10, 255, 10); //сила бекграунда

    public CustomInventory() {
        super();
        addSettings(glow,effect);
    }

    @Override
    public void onEvent(Event event) {

    }
}
 
Начинающий
Статус
Оффлайн
Регистрация
7 Мар 2024
Сообщения
294
Реакции[?]
6
Поинты[?]
4K
пиздец и что тут изменено?:roflanEbalo:
Force BackGround просто существует... Если что он настраиваемый, как раз для таких. Я же говорю тут особенного ничего нету, обычный бекграунд
Если что блюр это 3-4 строки, добавьте лол... Скопируйте мой код и поменяйте на блюр, за вас уже всё сделано..
 
Начинающий
Статус
Оффлайн
Регистрация
22 Янв 2024
Сообщения
79
Реакции[?]
0
Поинты[?]
0
Пожалуйста, авторизуйтесь для просмотра ссылки.


Сообственно всё действует по трем методам.
1. Находим класс
2. Создаем в нем рендер
3. Подключаем рендер к функции.

В нашем случае рендер инвентаря находится в классе ContainerScreen

Находим метод render и изменяем

Java:
 public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
        boolean customInv = Managment.FUNCTION_MANAGER.customInventory.state; // создаем болеан customInv = модуль.state значит включен

        if (customInv) {
            effect();
        } //применяем метод effect если получаем болеан customInv
       
        int i = this.guiLeft;
        int j = this.guiTop;
        this.drawGuiContainerBackgroundLayer(matrixStack, partialTicks, mouseX, mouseY);
        RenderSystem.disableRescaleNormal();
        RenderSystem.disableDepthTest();
        super.render(matrixStack, mouseX, mouseY, partialTicks);
        RenderSystem.pushMatrix();
        RenderSystem.translatef((float) i, (float) j, 0.0F);
        RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);
        RenderSystem.enableRescaleNormal();
        this.hoveredSlot = null;
        int k = 240;
        int l = 240;
        RenderSystem.glMultiTexCoord2f(33986, 240.0F, 240.0F);
        RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F);

        for (int i1 = 0; i1 < this.container.inventorySlots.size(); ++i1) {
            Slot slot = this.container.inventorySlots.get(i1);

            if (slot.isEnabled()) {
                this.moveItems(matrixStack, slot);
            }

            if (this.isSlotSelected(slot, (double) mouseX, (double) mouseY) && slot.isEnabled()) {
                ItemScroller itemScroller = Managment.FUNCTION_MANAGER.itemScroller;
                if (itemScroller != null && itemScroller.state) {
                    if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getMainWindow().getHandle(), GLFW.GLFW_MOUSE_BUTTON_LEFT) == GLFW.GLFW_PRESS
                            && GLFW.glfwGetKey(Minecraft.getInstance().getMainWindow().getHandle(), GLFW.GLFW_KEY_LEFT_SHIFT) == GLFW.GLFW_PRESS
                            && Minecraft.getInstance().currentScreen != null) {
                        if (timerUtil.hasTimeElapsed(itemScroller.delay.getValue().longValue()) && slot.getHasStack()) {
                            handleMouseClick(slot, slot.slotNumber, 1, ClickType.QUICK_MOVE);
                            timerUtil.reset();
                        }
                    }
                }
                this.hoveredSlot = slot;
                RenderSystem.disableDepthTest();
                int j1 = slot.xPos;
                int k1 = slot.yPos;
                RenderSystem.colorMask(true, true, true, false);
                this.fillGradient(matrixStack, j1, k1, j1 + 16, k1 + 16, -2130706433, -2130706433);
                RenderSystem.colorMask(true, true, true, true);
                RenderSystem.enableDepthTest();
            }
        }

        this.drawGuiContainerForegroundLayer(matrixStack, mouseX, mouseY);
        PlayerInventory playerinventory = this.minecraft.player.inventory;
        ItemStack itemstack = this.draggedStack.isEmpty() ? playerinventory.getItemStack() : this.draggedStack;

        if (!itemstack.isEmpty()) {
            int j2 = 8;
            int k2 = this.draggedStack.isEmpty() ? 8 : 16;
            String s = null;

            if (!this.draggedStack.isEmpty() && this.isRightMouseClick) {
                itemstack = itemstack.copy();
                itemstack.setCount(MathHelper.ceil((float) itemstack.getCount() / 2.0F));
            } else if (this.dragSplitting && this.dragSplittingSlots.size() > 1) {
                itemstack = itemstack.copy();
                itemstack.setCount(this.dragSplittingRemnant);

                if (itemstack.isEmpty()) {
                    s = "" + TextFormatting.YELLOW + "0";
                }
            }

            this.drawItemStack(itemstack, mouseX - i - 8, mouseY - j - k2, s);
        }

        if (!this.returningStack.isEmpty()) {
            float f = (float) (Util.milliTime() - this.returningStackTime) / 100.0F;

            if (f >= 1.0F) {
                f = 1.0F;
                this.returningStack = ItemStack.EMPTY;
            }

            int l2 = this.returningStackDestSlot.xPos - this.touchUpX;
            int i3 = this.returningStackDestSlot.yPos - this.touchUpY;
            int l1 = this.touchUpX + (int) ((float) l2 * f);
            int i2 = this.touchUpY + (int) ((float) i3 * f);
            this.drawItemStack(this.returningStack, l1, i2, (String) null);
        }

        RenderSystem.popMatrix();
        RenderSystem.enableDepthTest();
    }

// создаем метод effect

private void effect() {
        int screenWidth = mc.getMainWindow().getWidth();
        int screenHeight = mc.getMainWindow().getHeight();
        float glowX = 0;
        float glowY = 0;
        float glowWidth = screenWidth;
        float glowHeight = screenHeight;
        int alpha = Managment.FUNCTION_MANAGER.customInventory.glow.getValue().intValue();
        int baseColor = ColorUtil.getColorStyle(255);
        int glowColor = (alpha << 24) | (baseColor & 0x00FFFFFF);
        RenderUtil.Render2D.drawRect(glowX, glowY, glowWidth, glowHeight, glowColor);
    }
класс CustomInv:
   public BooleanSetting effect = new BooleanSetting("Background", false); //false если хочем чтобы по дефолту чекбокс был офнут
   public SliderSetting glow = new SliderSetting("Force Background", 200, 10, 255, 10); //сила бекграунда

    public CustomInventory() {
        super();
        addSettings(glow,effect);
    }

    @Override
    public void onEvent(Event event) {

    }
}
Харош
 
Сверху Снизу