ППХУДЕР
-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Код:
public static double[] worldToScreen(double x, double y, double z) {
if (Minecraft.getInstance().screen != null) {
return null;
} else {
try {
Vector3d camera_pos = Minecraft.getInstance().getEntityRenderDispatcher().camera.getPosition();
Quaternion camera_rotation_conj = Minecraft.getInstance().getEntityRenderDispatcher().camera.rotation().copy();
camera_rotation_conj.conj();
Vector3f result3f = new Vector3f((float) (camera_pos.x - x), (float) (camera_pos.y - y), (float) (camera_pos.z - z));
result3f.transform(camera_rotation_conj);
GameRenderer gameRenderer = Minecraft.getInstance().gameRenderer;
Method method = null;
Method[] var11 = gameRenderer.getClass().getDeclaredMethods();
int var12 = var11.length;
for (int var13 = 0; var13 < var12; ++var13) {
Method m = var11[var13];
if (m.getParameterCount() == 3 && m.getParameterTypes()[2] == Boolean.TYPE && m.getParameterTypes()[1] == Float.TYPE && m.getParameterTypes()[0] == ActiveRenderInfo.class && m.getReturnType() == Double.TYPE) {
method = m;
}
}
method.setAccessible(true);
float fov = ((Double) method.invoke(gameRenderer, Minecraft.getInstance().getEntityRenderDispatcher().camera, 1, true)).floatValue();
lfov = fov;
float half_height = (float) Minecraft.getInstance().getWindow().getGuiScaledHeight() / 2.0F;
float scale_factor = half_height / (result3f.z() * (float) Math.tan(Math.toRadians((double) (fov / 2.0F))));
if (result3f.z() < 0.0F) {
return new double[]{(double) (-result3f.x() * scale_factor + (float) (Minecraft.getInstance().getWindow().getGuiScaledWidth() / 2)), (double) ((float) (Minecraft.getInstance().getWindow().getGuiScaledHeight() / 2) - result3f.y() * scale_factor)};
}
} catch (Exception var15) {
var15.printStackTrace();
}
return null;
}
}
изза него оч часто возвращается нул и большая часть ников не рендерится
result3f.z() должен выдавать отрицательное число когда энтити в зоне видимости(по крайней мере в обычном 1.16.5) и положительное когда не видно
у меня же часто возвращает положительное число но энтити я всеравно могу увидеьть
что делать
мб я неправильно адаптировал?