Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

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) {}


}
 
сам то пробовал, это не катит
вообще на нее не реагирует и продолжает разрушать блок
 
сам то пробовал, это не катит
вообще на нее не реагирует и продолжает разрушать блок
Вроде этот эвент работает на все блоки, кроме не solid'ных(стекло, полублоки, глоустоун и т.д.)
 
от этого анимация не пропадет, я хочу избавится от гр****ных промежутков между сломанным блоком и восстановленном, игроки поставить кровать или открыть сундук или в чужой прибор зайти , от этого спасает только избавление анимации , или на игрока какой то эффект повесить чтоб он не мог блоки ломать
или может сменить параметры блока , есть идеи?
кароче я нашел решение эфект вешать

PotionEffect weak = PotionEffectType.SLOW_DIGGING.createEffect(999999999, 10);
p.addPotionEffect(weak, true);
ну я считаю все равно это не правильно
 
Как вариант - менять гм на адвенчур, а потом обратно.
 
хм неплохой вариант возникает другой вопрос какое событие отвечает за обжатие кнопки мыши
не катит некоторые блоки все токи ломаются
 
хм неплохой вариант возникает другой вопрос какое событие отвечает за обжатие кнопки мыши
не катит некоторые блоки все токи ломаются
2 единственных варианта - эффект зелья и мод клиента
 
есть еще вариант преоброзовывать блок в бедрок когда ломают, но есть одно но когда игрок перестает бить надо блок восстановить , какое событие отвечает за отжатие левой кнопки мыши , я уже все перерысскал .
И еще вопрос , я понимаю анимация это только мод но вообще реально как то передать данные моду чтоб анимация прекращалась? это было бы идеальным решением , кто то может помочь в этом вопросе.
 
И еще вопрос , я понимаю анимация это только мод но вообще реально как то передать данные моду чтоб анимация прекращалась? это было бы идеальным решением , кто то может помочь в этом вопросе.
Мод общается с сервером и в случае отрицательного ответа на вопрос "можно ли ломать?" отменять поломку блока(модом).
 
это и ежу понятно, но к чему мод обращаться должен чтобы проверку делать
надо переменную отмены куда то запихивать в самого игрока
я просто пишу плагин типа LWC (так как LWC работает не корректно иногда пропадают приваты) но чтобы блоки нельзя были рушить с анимацией + самое главное авто чистка мира от блоков игрока если игрок не играет в течение 15 дней
регестрируются все установленные блоки но те которые указаны в конфиге будут защищены от разрушения.
и самая недостающая деталь это именно убирать анимации блока разрушение
Кто может помочь с частью мода на проверку и отмены разрушения
 
но к чему мод обращаться должен чтобы проверку делать
А как тогда по вашему узнать, можно ли ломать или нет? Хотите этого или нет, но моду получить информацию понадобится с сервера, неважно какую, но понадобится.
 
это понимаю кто помочь может? именно с момом а плагинную часть я навояю
 
пакетом отправить игроку этот блок как падающий песок без движения с тайлом блока.
Костыльно, муторно, убожественно, с кучей говнокода, но это всё же более привлекательное решение, чем вешать эффект/писать мод/стоять за спиной игрока.
 
пакетом отправить игроку этот блок как падающий песок без движения с тайлом блока.
Костыльно, муторно, убожественно, с кучей говнокода, но это всё же более привлекательное решение, чем вешать эффект/писать мод/стоять за спиной игрока.
А пример можеш дать как это реализовать
 
пакетом отправить игроку этот блок как падающий песок без движения с тайлом блока.
Костыльно, муторно, убожественно, с кучей говнокода, но это всё же более привлекательное решение, чем вешать эффект/писать мод/стоять за спиной игрока.

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

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

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

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

8) хочу переделать 4 пункт чтоб не эффект было а не посредственно блочило удары игрока ПОМОГИТЕ С ЭТИМ ПУНКТОМ
 
Все блоки сразу так будем отправлять? Клиенту от этого будет очень плохо - он же сразу анимацию начнет просчитывать. А если отправлять в момент удара, то в теории помочь может. Только вылезет ещё целая куча нюансов, начиная с того, что мы усугубим то, что хотим предотвратить: сквозь падающий блок при желании можно и пробежать.
Так что на практике, достаточно на несколько тиков (возможно даже одного хватит) вешать эффект замедления рытья. Вот это и есть "привлекательное" решение - и сервер и клиент знают что такое есть этот эффект и как его лечить.
Я это всё проходил, когда писал MonsterFix, там пока в майнкрафте не было зелий, то я столько всего перепробовал чтобы предотвратить залезание игроков в заприваченные области пробегая через запертые двери, запрыгивая сквозь разбитое стекло на кровати и т.п. Так что эффекты - это очень хорошо.

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

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

Назад
Верх