Вопрос Помогите с Predictions exp 3.1

Начинающий
Статус
Оффлайн
Регистрация
26 Мар 2023
Сообщения
22
Реакции[?]
0
Поинты[?]
0

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

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

Спасибо!

Когда я кидаю жемчуг, то картинка показывается только с одной стороны, а с другой - нет. Не могу понять, почему так -
Пожалуйста, авторизуйтесь для просмотра ссылки.


package im.GAGARIN.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import im.GAGARIN.events.WorldEvent;
import im.GAGARIN.functions.api.Category;
import im.GAGARIN.functions.api.Function;
import im.GAGARIN.functions.api.FunctionRegister;
import im.GAGARIN.utils.render.ColorUtils;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EnderPearlEntity;
import net.minecraft.entity.projectile.ThrowableEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.RayTraceContext;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.math.vector.Vector3d;

import static org.lwjgl.opengl.GL11.*;

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

private static final ResourceLocation ENDER_PEARL_ICON = new ResourceLocation("minecraft:textures/item/ender_pearl.png");

@Subscribe
public void onRender(WorldEvent event) {
glPushMatrix();

glDisable(GL_TEXTURE_2D);
glDisable(GL_DEPTH_TEST);

glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);

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

glTranslated(-renderOffset.x, -renderOffset.y, -renderOffset.z);

glLineWidth(3);

buffer.begin(1, DefaultVertexFormats.POSITION);

for (Entity entity : mc.world.getAllEntities()) {
if (entity instanceof EnderPearlEntity throwable) {
Vector3d motion = throwable.getMotion();
Vector3d pos = throwable.getPositionVec();
Vector3d prevPos;

for (int i = 0; i < 150; i++) {
prevPos = pos;
pos = pos.add(motion);
motion = getNextMotion(throwable, motion);

ColorUtils.setColor(HUD.getColor(i));

buffer.pos(prevPos.x, prevPos.y, prevPos.z).endVertex();

RayTraceContext rayTraceContext = new RayTraceContext(
prevPos,
pos,
RayTraceContext.BlockMode.COLLIDER,
RayTraceContext.FluidMode.NONE,
throwable
);

BlockRayTraceResult blockHitResult = mc.world.rayTraceBlocks(rayTraceContext);

boolean isLast = blockHitResult.getType() == RayTraceResult.Type.BLOCK;

if (isLast) {
pos = blockHitResult.getHitVec();
}

buffer.pos(pos.x, pos.y, pos.z).endVertex();

if (isLast || pos.y < 0) {
renderEnderPearlIcon(pos);
break;
}
}
}
}

tessellator.draw();

glDisable(GL_BLEND);
glDisable(GL_LINE_SMOOTH);

glEnable(GL_TEXTURE_2D);
glEnable(GL_DEPTH_TEST);

glPopMatrix();
}

private void renderEnderPearlIcon(Vector3d pos) {
glPushMatrix();


Vector3d playerPos = new Vector3d(mc.player.getPosX(), mc.player.getPosY(), mc.player.getPosZ());
double distance = playerPos.distanceTo(pos);


float scale = (float) Math.min(Math.max(0.5, distance / 10.0), 2.0);

glTranslated(pos.x, pos.y, pos.z);
glScalef(scale, scale, scale);

mc.getTextureManager().bindTexture(ENDER_PEARL_ICON);

glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex2f(-0.5f, -0.5f);
glTexCoord2f(1, 0); glVertex2f(0.5f, -0.5f);
glTexCoord2f(1, 1); glVertex2f(0.5f, 0.5f);
glTexCoord2f(0, 1); glVertex2f(-0.5f, 0.5f);
glEnd();

glDisable(GL_BLEND);
glDisable(GL_TEXTURE_2D);

glPopMatrix();
}

private Vector3d getNextMotion(ThrowableEntity throwable, Vector3d motion) {
if (throwable.isInWater()) {
motion = motion.scale(0.8);
} else {
motion = motion.scale(0.99);
}

if (!throwable.hasNoGravity()) {
motion.y -= throwable.getGravityVelocity();
}

return motion;
}
}
 
Начинающий
Статус
Онлайн
Регистрация
8 Мар 2024
Сообщения
639
Реакции[?]
2
Поинты[?]
2K
Когда я кидаю жемчуг, то картинка показывается только с одной стороны, а с другой - нет. Не могу понять, почему так -
Пожалуйста, авторизуйтесь для просмотра ссылки.


package im.GAGARIN.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import im.GAGARIN.events.WorldEvent;
import im.GAGARIN.functions.api.Category;
import im.GAGARIN.functions.api.Function;
import im.GAGARIN.functions.api.FunctionRegister;
import im.GAGARIN.utils.render.ColorUtils;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EnderPearlEntity;
import net.minecraft.entity.projectile.ThrowableEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.RayTraceContext;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.math.vector.Vector3d;

import static org.lwjgl.opengl.GL11.*;

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

private static final ResourceLocation ENDER_PEARL_ICON = new ResourceLocation("minecraft:textures/item/ender_pearl.png");

@Subscribe
public void onRender(WorldEvent event) {
glPushMatrix();

glDisable(GL_TEXTURE_2D);
glDisable(GL_DEPTH_TEST);

glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);

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

glTranslated(-renderOffset.x, -renderOffset.y, -renderOffset.z);

glLineWidth(3);

buffer.begin(1, DefaultVertexFormats.POSITION);
c
for (Entity entity : mc.world.getAllEntities()) {
if (entity instanceof EnderPearlEntity throwable) {
Vector3d motion = throwable.getMotion();
Vector3d pos = throwable.getPositionVec();
Vector3d prevPos;

for (int i = 0; i < 150; i++) {
prevPos = pos;
pos = pos.add(motion);
motion = getNextMotion(throwable, motion);

ColorUtils.setColor(HUD.getColor(i));

buffer.pos(prevPos.x, prevPos.y, prevPos.z).endVertex();

RayTraceContext rayTraceContext = new RayTraceContext(
prevPos,
pos,
RayTraceContext.BlockMode.COLLIDER,
RayTraceContext.FluidMode.NONE,
throwable
);

BlockRayTraceResult blockHitResult = mc.world.rayTraceBlocks(rayTraceContext);

boolean isLast = blockHitResult.getType() == RayTraceResult.Type.BLOCK;

if (isLast) {
pos = blockHitResult.getHitVec();
}

buffer.pos(pos.x, pos.y, pos.z).endVertex();

if (isLast || pos.y < 0) {
renderEnderPearlIcon(pos);
break;
}
}
}
}

tessellator.draw();

glDisable(GL_BLEND);
glDisable(GL_LINE_SMOOTH);

glEnable(GL_TEXTURE_2D);
glEnable(GL_DEPTH_TEST);

glPopMatrix();
}

private void renderEnderPearlIcon(Vector3d pos) {
glPushMatrix();


Vector3d playerPos = new Vector3d(mc.player.getPosX(), mc.player.getPosY(), mc.player.getPosZ());
double distance = playerPos.distanceTo(pos);


float scale = (float) Math.min(Math.max(0.5, distance / 10.0), 2.0);

glTranslated(pos.x, pos.y, pos.z);
glScalef(scale, scale, scale);

mc.getTextureManager().bindTexture(ENDER_PEARL_ICON);

glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex2f(-0.5f, -0.5f);
glTexCoord2f(1, 0); glVertex2f(0.5f, -0.5f);
glTexCoord2f(1, 1); glVertex2f(0.5f, 0.5f);
glTexCoord2f(0, 1); glVertex2f(-0.5f, 0.5f);
glEnd();

glDisable(GL_BLEND);
glDisable(GL_TEXTURE_2D);

glPopMatrix();
}

private Vector3d getNextMotion(ThrowableEntity throwable, Vector3d motion) {
if (throwable.isInWater()) {
motion = motion.scale(0.8);
} else {
motion = motion.scale(0.99);
}

if (!throwable.hasNoGravity()) {
motion.y -= throwable.getGravityVelocity();
}

return motion;
}
}
сделай вместо своей текстуры: mc.getItemRenderer().renderItemAndEffectIntoGUI(Items.ENDER_PEARL.getDefaultInstance(), (int) posX, (int) posY + 2);
 
Начинающий
Статус
Оффлайн
Регистрация
30 Июн 2024
Сообщения
33
Реакции[?]
0
Поинты[?]
0
private void renderEnderPearlIcon(Vector3d pos, double timeToLand) {
glPushMatrix();

Vector3d playerPos = new Vector3d(mc.player.getPosX(), mc.player.getPosY(), mc.player.getPosZ());
double distance = playerPos.distanceTo(pos);

float scale = (float) Math.min(Math.max(0.5, distance / 10.0), 2.0);

glTranslated(pos.x, pos.y, pos.z);
glScalef(scale, scale, scale);

// Поворот значка так, чтобы он был виден со всех сторон
glRotatef(mc.player.rotationYaw, 0, 1, 0);
glRotatef(-mc.player.rotationPitch, 1, 0, 0);

mc.getTextureManager().bindTexture(ENDER_PEARL_ICON);

glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex2f(-0.5f, -0.5f);
glTexCoord2f(1, 0); glVertex2f(0.5f, -0.5f);
glTexCoord2f(1, 1); glVertex2f(0.5f, 0.5f);
glTexCoord2f(0, 1); glVertex2f(-0.5f, 0.5f);
glEnd();

glDisable(GL_BLEND);
glDisable(GL_TEXTURE_2D);

glPopMatrix();

// Отображение времени до приземления
String timeText = String.format("%.1f s", timeToLand);
drawText(pos, timeText);
}

private void drawText(Vector3d pos, String text) {
Vector3d renderPos = pos.add(0, 0.5, 0); // Смещение текста над значком
mc.fontRenderer.drawString(text, (float) renderPos.x, (float) renderPos.y, (float) renderPos.z, ColorUtils.rgb(255, 255, 255));
}
 
Начинающий
Статус
Оффлайн
Регистрация
25 Фев 2024
Сообщения
222
Реакции[?]
4
Поинты[?]
1K
Когда я кидаю жемчуг, то картинка показывается только с одной стороны, а с другой - нет. Не могу понять, почему так -
Пожалуйста, авторизуйтесь для просмотра ссылки.


package im.GAGARIN.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import im.GAGARIN.events.WorldEvent;
import im.GAGARIN.functions.api.Category;
import im.GAGARIN.functions.api.Function;
import im.GAGARIN.functions.api.FunctionRegister;
import im.GAGARIN.utils.render.ColorUtils;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EnderPearlEntity;
import net.minecraft.entity.projectile.ThrowableEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.RayTraceContext;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.math.vector.Vector3d;

import static org.lwjgl.opengl.GL11.*;

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

private static final ResourceLocation ENDER_PEARL_ICON = new ResourceLocation("minecraft:textures/item/ender_pearl.png");

@Subscribe
public void onRender(WorldEvent event) {
glPushMatrix();

glDisable(GL_TEXTURE_2D);
glDisable(GL_DEPTH_TEST);

glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);

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

glTranslated(-renderOffset.x, -renderOffset.y, -renderOffset.z);

glLineWidth(3);

buffer.begin(1, DefaultVertexFormats.POSITION);

for (Entity entity : mc.world.getAllEntities()) {
if (entity instanceof EnderPearlEntity throwable) {
Vector3d motion = throwable.getMotion();
Vector3d pos = throwable.getPositionVec();
Vector3d prevPos;

for (int i = 0; i < 150; i++) {
prevPos = pos;
pos = pos.add(motion);
motion = getNextMotion(throwable, motion);

ColorUtils.setColor(HUD.getColor(i));

buffer.pos(prevPos.x, prevPos.y, prevPos.z).endVertex();

RayTraceContext rayTraceContext = new RayTraceContext(
prevPos,
pos,
RayTraceContext.BlockMode.COLLIDER,
RayTraceContext.FluidMode.NONE,
throwable
);

BlockRayTraceResult blockHitResult = mc.world.rayTraceBlocks(rayTraceContext);

boolean isLast = blockHitResult.getType() == RayTraceResult.Type.BLOCK;

if (isLast) {
pos = blockHitResult.getHitVec();
}

buffer.pos(pos.x, pos.y, pos.z).endVertex();

if (isLast || pos.y < 0) {
renderEnderPearlIcon(pos);
break;
}
}
}
}

tessellator.draw();

glDisable(GL_BLEND);
glDisable(GL_LINE_SMOOTH);

glEnable(GL_TEXTURE_2D);
glEnable(GL_DEPTH_TEST);

glPopMatrix();
}

private void renderEnderPearlIcon(Vector3d pos) {
glPushMatrix();


Vector3d playerPos = new Vector3d(mc.player.getPosX(), mc.player.getPosY(), mc.player.getPosZ());
double distance = playerPos.distanceTo(pos);


float scale = (float) Math.min(Math.max(0.5, distance / 10.0), 2.0);

glTranslated(pos.x, pos.y, pos.z);
glScalef(scale, scale, scale);

mc.getTextureManager().bindTexture(ENDER_PEARL_ICON);

glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex2f(-0.5f, -0.5f);
glTexCoord2f(1, 0); glVertex2f(0.5f, -0.5f);
glTexCoord2f(1, 1); glVertex2f(0.5f, 0.5f);
glTexCoord2f(0, 1); glVertex2f(-0.5f, 0.5f);
glEnd();

glDisable(GL_BLEND);
glDisable(GL_TEXTURE_2D);

glPopMatrix();
}

private Vector3d getNextMotion(ThrowableEntity throwable, Vector3d motion) {
if (throwable.isInWater()) {
motion = motion.scale(0.8);
} else {
motion = motion.scale(0.99);
}

if (!throwable.hasNoGravity()) {
motion.y -= throwable.getGravityVelocity();
}

return motion;
}
}
уйти с экспенсива
 
Начинающий
Статус
Оффлайн
Регистрация
20 Ноя 2021
Сообщения
39
Реакции[?]
0
Поинты[?]
0
Когда я кидаю жемчуг, то картинка показывается только с одной стороны, а с другой - нет. Не могу понять, почему так -
Пожалуйста, авторизуйтесь для просмотра ссылки.


package im.GAGARIN.functions.impl.render;

import com.google.common.eventbus.Subscribe;
import im.GAGARIN.events.WorldEvent;
import im.GAGARIN.functions.api.Category;
import im.GAGARIN.functions.api.Function;
import im.GAGARIN.functions.api.FunctionRegister;
import im.GAGARIN.utils.render.ColorUtils;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EnderPearlEntity;
import net.minecraft.entity.projectile.ThrowableEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.RayTraceContext;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.math.vector.Vector3d;

import static org.lwjgl.opengl.GL11.*;

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

private static final ResourceLocation ENDER_PEARL_ICON = new ResourceLocation("minecraft:textures/item/ender_pearl.png");

@Subscribe
public void onRender(WorldEvent event) {
glPushMatrix();

glDisable(GL_TEXTURE_2D);
glDisable(GL_DEPTH_TEST);

glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);

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

glTranslated(-renderOffset.x, -renderOffset.y, -renderOffset.z);

glLineWidth(3);

buffer.begin(1, DefaultVertexFormats.POSITION);

for (Entity entity : mc.world.getAllEntities()) {
if (entity instanceof EnderPearlEntity throwable) {
Vector3d motion = throwable.getMotion();
Vector3d pos = throwable.getPositionVec();
Vector3d prevPos;

for (int i = 0; i < 150; i++) {
prevPos = pos;
pos = pos.add(motion);
motion = getNextMotion(throwable, motion);

ColorUtils.setColor(HUD.getColor(i));

buffer.pos(prevPos.x, prevPos.y, prevPos.z).endVertex();

RayTraceContext rayTraceContext = new RayTraceContext(
prevPos,
pos,
RayTraceContext.BlockMode.COLLIDER,
RayTraceContext.FluidMode.NONE,
throwable
);

BlockRayTraceResult blockHitResult = mc.world.rayTraceBlocks(rayTraceContext);

boolean isLast = blockHitResult.getType() == RayTraceResult.Type.BLOCK;

if (isLast) {
pos = blockHitResult.getHitVec();
}

buffer.pos(pos.x, pos.y, pos.z).endVertex();

if (isLast || pos.y < 0) {
renderEnderPearlIcon(pos);
break;
}
}
}
}

tessellator.draw();

glDisable(GL_BLEND);
glDisable(GL_LINE_SMOOTH);

glEnable(GL_TEXTURE_2D);
glEnable(GL_DEPTH_TEST);

glPopMatrix();
}

private void renderEnderPearlIcon(Vector3d pos) {
glPushMatrix();


Vector3d playerPos = new Vector3d(mc.player.getPosX(), mc.player.getPosY(), mc.player.getPosZ());
double distance = playerPos.distanceTo(pos);


float scale = (float) Math.min(Math.max(0.5, distance / 10.0), 2.0);

glTranslated(pos.x, pos.y, pos.z);
glScalef(scale, scale, scale);

mc.getTextureManager().bindTexture(ENDER_PEARL_ICON);

glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex2f(-0.5f, -0.5f);
glTexCoord2f(1, 0); glVertex2f(0.5f, -0.5f);
glTexCoord2f(1, 1); glVertex2f(0.5f, 0.5f);
glTexCoord2f(0, 1); glVertex2f(-0.5f, 0.5f);
glEnd();

glDisable(GL_BLEND);
glDisable(GL_TEXTURE_2D);

glPopMatrix();
}

private Vector3d getNextMotion(ThrowableEntity throwable, Vector3d motion) {
if (throwable.isInWater()) {
motion = motion.scale(0.8);
} else {
motion = motion.scale(0.99);
}

if (!throwable.hasNoGravity()) {
motion.y -= throwable.getGravityVelocity();
}

return motion;
}
}
нужно через projection util что то сделать, но я не знаю что
 
Сверху Снизу