Сборки серверов

СливПлатные

Сейчас онлайн

  • Kilka21
  • Newsgeme_studio
  • NxxYasl
  • jimer
  • Gensta11142
  • _datura
  • Rimurochca
  • Lafi7
  • DDD011
  • Atbar
  • EXRTIM PLAY
  • Prokuror
  • Glockerman
  • 1enmys
  • RetTime
  • Gamesense
  • llunull
  • unfix
  • deffi51
  • nhahero123
  • narias

Помощь Зона с хиллом

G
Версия ядра сервера
1.21+
Всем привет! У меня есть сервер BoxPvP и у есть арена, нужно сделать так чтоб когда ты влетал в сейв зону этой арены, у тебя востанавливалось фул хп, но не фастонавливалась насычка!
 
GPT-4o
Привет! Для реализации этой функции на вашем сервере BoxPvP, вам нужно использовать плагин, который позволяет обрабатывать события входа игрока в определенную зону. Вот пример кода на Java, который делает то, что вам нужно:

Java:
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.entity.Player;
import org.bukkit.Location;
import org.bukkit.World;

public class ArenaListener implements Listener {
    private final World arenaWorld; // Замените на ваш мир арены
    private final int arenaX1, arenaY1, arenaZ1; // Координаты первой точки арены
    private final int arenaX2, arenaY2, arenaZ2; // Координаты второй точки арены

    public ArenaListener(World world, int x1, int y1, int z1, int x2, int y2, int z2) {
        this.arenaWorld = world;
        this.arenaX1 = x1;
        this.arenaY1 = y1;
        this.arenaZ1 = z1;
        this.arenaX2 = x2;
        this.arenaY2 = y2;
        this.arenaZ2 = z2;
    }

    @EventHandler
    public void onPlayerMove(PlayerMoveEvent event) {
        Player player = event.getPlayer();
        Location loc = player.getLocation();

        if (loc.getWorld().equals(arenaWorld) && isInArena(loc)) {
            player.setHealth(player.getAttribute(org.bukkit.attribute.Attribute.GENERIC_MAX_HEALTH).getValue()); // Восстанавливаем здоровье
        }
    }

    private boolean isInArena(Location loc) {
        return loc.getBlockX() >= arenaX1 && loc.getBlockX() <= arenaX2 &&
               loc.getBlockY() >= arenaY1 && loc.getBlockY() <= arenaY2 &&
               loc.getBlockZ() >= arenaZ1 && loc.getBlockZ() <= arenaZ2;
    }
}

Не забудьте зарегистрировать этот слушатель в вашем плагине. Этот код восстанавливает здоровье игрока, когда он входит в зону арены, но не затрагивает насыщение.
 
LiSnow
  • LiSnow
  • ᴜᴋʀᴀɪɴᴇ ✅ глᴀʙʜый мᴇʜюшᴋᴏдᴇл, дизᴀйʜ-ᴋᴏпипᴀᴄтᴇᴘ
  • 144
Если правильно помню, то:

/rg flag регион heal-delay 1
(лечение игроков в секунду)
/rg flag регион heal-amount 2
(по сколько хп восстанавливается в секунду)

А вообще для кого существует список флагов для регионов..
Задолбали! Читайте наконец-то документации!!!
Список флагов: Region Flags
(Специально для "гениальных дураков" расписаны все пункты и тд..)
 
Последнее редактирование:
ВерхНиз