Помогите Игроки в радиусе...

Статус
Закрыто для дальнейших ответов.

Mukiroku

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Kukuroku
Здравствуйте форумчане!!!

Решил написать плагин в в процессе возникла проблема что я не знаю как получить игроков в раусе к примеру 3 блока...

Пример: хочу сделать когда игрок пишет команду /kill10 в радиусе 10 блоков убило игроков. Как это можно реализовать.
 
Как вариант - перебрать онлнайн-игроков и сравнивать радиус.
player - твой игрок; rad - твой радиус; TODO - твой код
Код:
    World wor=player.getWorld(); Location loc=player.getLocation();
    for (Player pl: Bukkit.getOnlinePlayers()) {
        if (wor.equals(pl.getWorld()) && pl.distance(loc)<=rad){
            // TODO
        }
    }
Надеюсь, разберешься.
 
Как вариант - перебрать онлнайн-игроков и сравнивать радиус.
player - твой игрок; rad - твой радиус; TODO - твой код
Код:
    World wor=player.getWorld(); Location loc=player.getLocation();
    for (Player pl: Bukkit.getOnlinePlayers()) {
        if (wor.equals(pl.getWorld()) && pl.distance(loc)<=rad){
            // TODO
        }
    }
Надеюсь, разберешься.
В его случае не так.
 
Как вариант - перебрать онлнайн-игроков и сравнивать радиус.
player - твой игрок; rad - твой радиус; TODO - твой код
Код:
    World wor=player.getWorld(); Location loc=player.getLocation();
    for (Player pl: Bukkit.getOnlinePlayers()) {
        if (wor.equals(pl.getWorld()) && pl.distance(loc)<=rad){
            // TODO
        }
    }
Надеюсь, разберешься.
Говнокод, у бакита есть сразу есть метод getNearbyEntities(x,y,z)
 
Написать плагин это, конечно, хорошо. Но не проще ли использовать стандартные команды майна?
/kill @p[r=10]
 
А как это можно реализовать?
Получаешь сущности (Entity) методом выше в радиусе 10 блоков.
Бегаешь по листу и проверяешь весь список entity.getType() == EntityType.Player
Убиваешь, если игрок. Надеюсь убить ты и сам сможешь.
 
for (Entity entity : Player.getNearbyEntities(3, 3, 3)){
if (!(entity instanceof Player)) continue;
}
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх