1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

(Решено)Сделать "Кислотный дождь"

Тема в разделе "Разработка плагинов для новичков", создана пользователем reZero, 23 июн 2019.

Статус темы:
Закрыта.
  1. Автор темы
    reZero

    reZero Активный участник Пользователь

    Баллы:
    76
    Всем привет.
    Хочу сделать плагин на кислотный дождь..
    Суть плагина, думаю, все понимают - идет дождь, если на игрока попадает этот самый дождь -> его дамажит..
    Вопрос заключается в следующем. Как можно ловить момент, когда игрок находится под дождем?
     
  2. Ission

    Ission Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    lokivava
    Работать по таймеру. Проверять самый верхний блок в чанке, если у игрока соответсвует/превышает, то наносить урон.
     
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Никак. Этот эффект онли клиент.
     
  4. dimkaS

    dimkaS Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    dimkaS
    Решение, тему закрывай.
     
  5. TheSkiffSailor

    TheSkiffSailor Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    TheSkiffSailor
    Если у игрока во время ДОЖДЯ, над головой (вообще) нет блоков, (так что дождь сможет дотронутся до игрока), то наносить дамаг. Ранейбл или банальный Timer
     
  6. LuckyZeeRo

    LuckyZeeRo Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    1. Юзаешь таск от BukkitScheduler (Bukkit.getScheduler().runTaskTimer(...)) каждые N тиков (как часто тебе нужно проверять и дамажить)
    2. В таске проходишь по каждому миру, чекаешь погоду. Если дождливая, на пункт 3.
    3. Проходишь по каждому игроку в данном мире. Получаешь найвысший блок по его локации. "player.getWorld().getHighestBlockAt(player.getLocation())". Чекаешь условия: блок ниже-равно позиции игрока + 1 ИЛИ блок выше, но не солид (block.getType().isSolid()). Если условия проходят, на пункт 4.
    4. Дамажишь игрока
     
  7. Автор темы
    reZero

    reZero Активный участник Пользователь

    Баллы:
    76
    Спасибо!
     
Статус темы:
Закрыта.

Поделиться этой страницей