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

Помогите АНИМАЦИЯ РАЗРУШЕНИЕ БЛОКА (УРОН БЛОКУ)

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

  1. Автор темы
    almohax

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

    Баллы:
    68
    Имя в Minecraft:
    almohax
    ПЛИЗЗЗ помогите я пишу плагин надо запретить анимацию определенного блока как это сделать
    @EventHandler
    public void onBlockDamage(BlockDamageEvent e){ // От мусора

    int x=e.getBlock().getX();
    int y=e.getBlock().getY();
    int z=e.getBlock().getZ();
    String user=e.getPlayer().getName();

    try {
    if (DB.ReadDB(user,x, y, z))
    {e.getPlayer().sendMessage("Твой блок");}
    else
    {
    e.getPlayer().sendMessage("Это не твой блок");

    // [ ОТМЕНИТЬ АНИМАЦИЮ БЛОКА]

    }
    } catch (ClassNotFoundException | SQLException e1) {}


    }
     
  2. unlimited

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

    Баллы:
    123
    Имя в Minecraft:
    infinity
    e.SetCanceled(true);
     
  3. Автор темы
    almohax

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

    Баллы:
    68
    Имя в Minecraft:
    almohax
    сам то пробовал, это не катит
    вообще на нее не реагирует и продолжает разрушать блок
     
  4. unlimited

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

    Баллы:
    123
    Имя в Minecraft:
    infinity
    Вроде этот эвент работает на все блоки, кроме не solid'ных(стекло, полублоки, глоустоун и т.д.)
     
  5. Автор темы
    almohax

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

    Баллы:
    68
    Имя в Minecraft:
    almohax
    от этого анимация не пропадет, я хочу избавится от гр****ных промежутков между сломанным блоком и восстановленном, игроки поставить кровать или открыть сундук или в чужой прибор зайти , от этого спасает только избавление анимации , или на игрока какой то эффект повесить чтоб он не мог блоки ломать
    или может сменить параметры блока , есть идеи?
    кароче я нашел решение эфект вешать

    PotionEffect weak = PotionEffectType.SLOW_DIGGING.createEffect(999999999, 10);
    p.addPotionEffect(weak, true);
    ну я считаю все равно это не правильно
     
  6. makssof

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

    Баллы:
    103
    Как вариант - менять гм на адвенчур, а потом обратно.
     
  7. Автор темы
    almohax

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

    Баллы:
    68
    Имя в Minecraft:
    almohax
    хм неплохой вариант возникает другой вопрос какое событие отвечает за обжатие кнопки мыши
    не катит некоторые блоки все токи ломаются
     
  8. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    2 единственных варианта - эффект зелья и мод клиента
     
  9. Автор темы
    almohax

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

    Баллы:
    68
    Имя в Minecraft:
    almohax
    есть еще вариант преоброзовывать блок в бедрок когда ломают, но есть одно но когда игрок перестает бить надо блок восстановить , какое событие отвечает за отжатие левой кнопки мыши , я уже все перерысскал .
    И еще вопрос , я понимаю анимация это только мод но вообще реально как то передать данные моду чтоб анимация прекращалась? это было бы идеальным решением , кто то может помочь в этом вопросе.
     
  10. BeYkeR

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

    Баллы:
    173
    Может пакеты ?
     
  11. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Мод общается с сервером и в случае отрицательного ответа на вопрос "можно ли ломать?" отменять поломку блока(модом).
     
  12. Автор темы
    almohax

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

    Баллы:
    68
    Имя в Minecraft:
    almohax
    это и ежу понятно, но к чему мод обращаться должен чтобы проверку делать
    надо переменную отмены куда то запихивать в самого игрока
    я просто пишу плагин типа LWC (так как LWC работает не корректно иногда пропадают приваты) но чтобы блоки нельзя были рушить с анимацией + самое главное авто чистка мира от блоков игрока если игрок не играет в течение 15 дней
    регестрируются все установленные блоки но те которые указаны в конфиге будут защищены от разрушения.
    и самая недостающая деталь это именно убирать анимации блока разрушение
    Кто может помочь с частью мода на проверку и отмены разрушения
     
  13. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    А как тогда по вашему узнать, можно ли ломать или нет? Хотите этого или нет, но моду получить информацию понадобится с сервера, неважно какую, но понадобится.
     
  14. Автор темы
    almohax

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

    Баллы:
    68
    Имя в Minecraft:
    almohax
    это понимаю кто помочь может? именно с момом а плагинную часть я навояю
     
  15. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    пакетом отправить игроку этот блок как падающий песок без движения с тайлом блока.
    Костыльно, муторно, убожественно, с кучей говнокода, но это всё же более привлекательное решение, чем вешать эффект/писать мод/стоять за спиной игрока.
     
  16. Автор темы
    almohax

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

    Баллы:
    68
    Имя в Minecraft:
    almohax
    А пример можеш дать как это реализовать
     
  17. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Я только догадываюсь, поскольку под ведро мало кодил. Но чую, соплей много будет :D
     
  18. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Все блоки сразу так будем отправлять? Клиенту от этого будет очень плохо - он же сразу анимацию начнет просчитывать. А если отправлять в момент удара, то в теории помочь может. Только вылезет ещё целая куча нюансов, начиная с того, что мы усугубим то, что хотим предотвратить: сквозь падающий блок при желании можно и пробежать.
    Так что на практике, достаточно на несколько тиков (возможно даже одного хватит) вешать эффект замедления рытья. Вот это и есть "привлекательное" решение - и сервер и клиент знают что такое есть этот эффект и как его лечить.
    Я это всё проходил, когда писал MonsterFix, там пока в майнкрафте не было зелий, то я столько всего перепробовал чтобы предотвратить залезание игроков в заприваченные области пробегая через запертые двери, запрыгивая сквозь разбитое стекло на кровати и т.п. Так что эффекты - это очень хорошо.

    Кстати, как альтернатива - можно попытаться обмануть клиент конкретного игрока сообщив ему, что на игрока наложен эффект. Но особого смысла в этом не вижу.
     
  19. Автор темы
    almohax

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

    Баллы:
    68
    Имя в Minecraft:
    almohax
    эффект я уже сделал , а то что на 1 тик это как то не очень прокатывает я просто снимаю эффект когда он клацает в другом месте.

    в общем что сделано
    1)все установленные блоки игроком регистрируются в базе - готовность 100%
    2)приватные блоки считаются только те которые указанны в конфиге (в любой момент можно добавить id блока и он автоматом станет заприваченным) - готовность 100%
    3)нет пустых приватных блоков как в LWC - готовность 100%
    4)при попытки сломать чужой блок или открыть его накладывается эффект - готовность 100%
    5)авто чистка мира от блоков игрока если он отсутствует более 15 дней либо закончился срок действия випа
    работает с базой как на сервере так и привязка к сайту - готовность 50%
    6)если заприваченный блок падает он ригестрируется в месте падения - готовность 00%
    7)подвязка к CreeperHeal - нельзя установить блок на месте взрыва

    8) хочу переделать 4 пункт чтоб не эффект было а не посредственно блочило удары игрока ПОМОГИТЕ С ЭТИМ ПУНКТОМ
     
  20. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Мысль свою не закончил, но имел в виду именно при ударе. А чтобы нельзя было пройти через падающий блок, мы... оставим оригинальный блок, или же поставим другой. А падающий блок поставим так, чтобы нельзя было достучаться до оригинального блока.
     

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