lomaloglav
Активный участник
- Баллы
- 61
- Имя в Minecraft
- Lomaloglav
Нужна проверка на видимость игрока(типо raytrace)!
Уже есть что-то типо такого
Уже нашел более нормальный вариант!
Вот кому надо:
Тему закрывать не буду, может дадут вариант лучше этого.
Уже есть что-то типо такого
Код:
private Player getTargetEntity(Player player) {
List nearby = player.getNearbyEntities(30.0D, 30.0D, 30.0D);
Player target = null;
BlockIterator bit = new BlockIterator(player, 30);
while (bit.hasNext()) {
Block b = bit.next();
Iterator var7 = nearby.iterator();
while (var7.hasNext()) {
Entity e = (Entity) var7.next();
if (e instanceof Player && this.nearBlock(b, (Player) e)) {
target = (Player) e;
}
}
}
return target;
}
private boolean nearBlock(Block b, Player e) {
Location bLoc = b.getLocation();
Location eLoc = e.getLocation();
double bx = bLoc.getX();
double by = bLoc.getY();
double bz = bLoc.getZ();
double ex = eLoc.getX();
double ey = eLoc.getY();
double ez = eLoc.getZ();
return Math.abs(bx - ex) < 0.525D && by - ey < e.getEyeHeight() && by - ey > -0.525D
&& Math.abs(bz - ez) < 0.525D;
}
Уже нашел более нормальный вариант!
Вот кому надо:
Код:
player.hasLineOfSight(target);
Последнее редактирование: