-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Хз, мб пастерам нужны какие-то треугольники на людей:
ss:
Render:
Функция рендера треугольников:
getRot:
Ротации:
ss:
Render:
Render:
@Override
public void onEvent(Event event) {
if (event instanceof EventRenderHud hud) {
for (Entity entity : mc.world.getPlayers()) {
if (entity == mc.player)
continue;
float angle = rotation.getAngle(entity) % 360;
float x = getRot(angle, entity)[0];
float y = getRot(angle, entity)[1];
render.drawTriangle(x, y, 5, 10, angle, new Color(0x2DE5D9).getRGB(), new Color(0x1212).getRGB());
mc.fontRenderer.drawStringWithShadow(hud.getMatrixStack(), entity.getName().getString(), x - 15, y + 5, -1);
mc.fontRenderer.drawStringWithShadow(hud.getMatrixStack(), (int) entity.getDistance(mc.player) + "m", x - 15, y + 15, -1);
}
}
super.onEvent(event);
}
draw:
public void drawTriangle(float x, float y, float width, float height, float angle, int firstColor, int secondColor) {
GL11.glPushMatrix();
GL11.glDisable(GL11.GL_TEXTURE_2D);
enableSmoothLine(1F);
GL11.glTranslated(x, y, 0);
GL11.glRotatef(180 + angle, 0 ,0, 1);
GL11.glTranslatef(-x, -y, 0.0F);
GL11.glBegin(9);
glColor(firstColor, 1.0F);
GL11.glVertex2f(x, y - 2);
GL11.glVertex2f(x + width, y + height);
GL11.glVertex2f(x + width, y);
GL11.glVertex2f(x, y - 2);
GL11.glEnd();
GL11.glBegin(9);
glColor(secondColor, 1.0F);
GL11.glVertex2f(x + width, y);
GL11.glVertex2f(x + width, y + height);
GL11.glVertex2f(x + width * 2, y - 2);
GL11.glVertex2f(x + width, y);
GL11.glEnd();
GL11.glBegin(3);
glColor(firstColor, 1.0F);
GL11.glVertex2f(x, y - 2);
GL11.glVertex2f(x + width, y + height);
GL11.glVertex2f(x + width, y);
GL11.glVertex2f(x, y - 2);
GL11.glEnd();
GL11.glBegin(3);
glColor(secondColor, 1.0F);
GL11.glVertex2f(x + width, y);
GL11.glVertex2f(x + width, y + height);
GL11.glVertex2f(x + width * 2, y - 2);
GL11.glVertex2f(x + width, y);
GL11.glEnd();
disableSmoothLine();
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glPopMatrix();
}
getRot:
getRot:
private float[] getRot(float angle, Entity entity) {
float x = 50;
float y = 70;
float xAn = rotation.getAngle(entity) % 360;
float yAn = rotation.getAngle(entity) % 180;
if (angle <= 90 && angle >= 0) {
x = xAn + 340;
y = 80 + yAn;
} else if (angle <= 180 && angle > 90) {
x = -xAn + 520;
y = 80 + yAn;
} else if (angle <= 280 && angle > 180) {
x = -xAn + 520;
y = -yAn + 260;
} else if (angle <= 360 && angle > 280) {
x = xAn - 36;
y = -yAn + 260;
} else if (angle >= -90 && angle <= 0) {
x = xAn + 340;
y = 80 + -yAn;
} else if (angle >= -180 && angle < -90) {
x = -xAn + 160;
y = 80 + -yAn;
} else if (angle >= -280 && angle < -180) {
x = -xAn + 160;
y = yAn + 260;
} else if (angle >= -360 && angle < -280) {
x = xAn + 700;
y = yAn + 260;
}
return new float[]{x, y};
}
Rotations:
public float getAngle(Entity entity) {
double x = entity.lastTickPosX + (entity.getPosX() - entity.lastTickPosX) * Minecraft.getInstance().getRenderPartialTicks() - Minecraft.getInstance().getRenderManager().info.getProjectedView().x;
double z = entity.lastTickPosZ + (entity.getPosZ() - entity.lastTickPosZ) * Minecraft.getInstance().getRenderPartialTicks() - Minecraft.getInstance().getRenderManager().info.getProjectedView().z;
float yaw = (float) -Math.toDegrees(Math.atan2(x, z));
return (float) (yaw - interpolate(Minecraft.getInstance().player.rotationYaw, Minecraft.getInstance().player.prevRotationYaw, 1.0D));
}
public double interpolate(double current, double old, double scale) {
return old + (current - old) * scale;
}