-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для 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) {
}
}