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

Помогите Невозможность сломать блок

Тема в разделе "Разработка плагинов для новичков", создана пользователем Nicolas_Nicolay, 6 дек 2018.

Метки:
  1. Автор темы
    Nicolas_Nicolay

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

    Баллы:
    61
    Всем привет!Вопрос достаточно глупый, ведь еще новичок, извините...Вообщем, допустим, у меня есть список блоков, которые я могу сломать, а те блоки, которые в этот список не входят - не могу.
    Я хочу, чтобы как только игрок нажал на блок, который не входит в список, процесс "разрушения" блока отменялся.
    Я пробовал через три ивента - BlockBreak,BlockDamage,PlayerInteract.В принципе, они все работали и не позволяли игроку сломать блок, но, блок не дает себя сломать, уже после своего "разрушения".Работает примерно так же, как и с территорией в привате(WG).Мне же нужно, чтобы блок не давал себя сломать сразу, как только игрок нажал на него мышкой и процесс "разрушения" пошел, плагин должен отменить этот же процесс.Главный вопрос - каким способом это сделать, если события, приведенные выше - работают не так, как мне нужно?
     
  2. alexandrage

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

    Баллы:
    173
    интеракт отменяет сам клик. Его юзай.
     
  3. Автор темы
    Nicolas_Nicolay

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

    Баллы:
    61
    в том то и дело, что я его и юзаю, но в итоге он делает тоже самое, что и предыдущие ивенты.
     
  4. alexandrage

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

    Баллы:
    173
    Нет не то же самое.
     
  5. alexandrage

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

    Баллы:
    173
  6. alexandrage

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

    Баллы:
    173
    Собстно тебе лучше BlockDamageEvent юзать.
     
  7. Автор темы
    Nicolas_Nicolay

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

    Баллы:
    61
    Та блин.Я понимаю, что это совсем разные ивенты.Я говорю про то, что сам м
    Я же писал, я пробовал все три юзать(И да, я тоже сначало решил, что это самый лучший варик).Но в итоге все три ивента, хоть и имеют разные условия, делали они одно и тоже.
    Да, я понимаю это.Но повторюсь, я пробовал реализовать данную вещь с помощью всех трех инветов.И не смотря на то, что ни все разные, как итог происходило одно и тоже.Блок нельзя уничтожить, но при этом он ломается.Для примера, так же само НЕ ломаются блоки в приватной территории в WorldGuard.
    Данную программу выполняю примерно так:
    -Объявляю событие
    -Получаю блок от события
    -Перебираю через цикл входит ли этот блок в список исключений
    -Если входит - ничего не делаю __ Не входит - отменяю событие

    Так я пробовал и с BlockDamage и с PlayerInteract.Разницы нет в происходящем...
     
  8. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Можно использовать несколько костылей:
    Эффект утомления
    Приключенческий игровой режим
    Переотправа блока игроку при начале разрушения
    Модификатор предмета "Может ломать такой-то материал"
    Кажется, забыл что-то ещё. Вспомню - дополню.
    P.S. В бедрок Майнкрафте с этим попроще, в джаве, к сожалению, приходится костылить
     
    Последнее редактирование: 7 дек 2018
  9. Автор темы
    Nicolas_Nicolay

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

    Баллы:
    61
    Можно немного поподробнее, пожалуйста? Я попытался найти эту информацию, но, в связи со своей неопытности гуглить, не смог найти её.
    Иммею ввиду, что это за методы, как и в чем вызываются и т.п
     
  10. Автор темы
    Nicolas_Nicolay

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

    Баллы:
    61
    С эффектами у меня что-то не получается,(эффект утомления WEAKNESS?).
    А с изменением игрового режима, мне показалось уж прям сильно костыльно)
    А на счет остальных вариантов прям полный ноль у меня информации, можешь поподробнее?
     
  11. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Нет, это слабость.
    Усталость - то, что на тебя накладывают в подводных крепостях.
    Пепел правка блока - player.sendBlockChange(...)
    Модификатор разрушаемых материалов - штука из карт на прохождение. Когда ты определенным предметом можешь разрушать только определенные блоки. Смотри ванильные атрибуты
     
  12. HauserGrim

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

    Баллы:
    96
    Разве это работает не только на приключенческий режим? (гм 2)
     
  13. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Возможно и только на него
     
  14. Автор темы
    Nicolas_Nicolay

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

    Баллы:
    61
    Окей, спасибо.Буду изучать.
     

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