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

Помогите Свои смерти и damage...

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

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

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

    Баллы:
    76
    В общем, нужно сделать дамаг особенным (хорошо настраиваемым), нужны такие вещи, как:
    1) Сколько дамага;
    2) Кто дамажил;
    3) Отдача будет/нет;
    4) Кастомное сообщение при убийстве этим дамагом.
    Да, я понял, что нужно создать метод, это не проблема. А проблема в отмене отдачи от удара и в кастомном deathmessage. Понятия не имею, на сколько сложно будет это сделать, хоть и копался в яндексе минут 30. (Да, я не умею нормально пользоваться поиском. Там качество результата может зависить от расположения слова, или лишнего предлога, или от недописанного предлога, короче, я не умею гуглить!!!)
    Как я понял, первые 2 можно сетнуть через p.damage(), а потом как-то отменить отдачу. Но как сообщение о смерти изменить?
     
  2. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Давай я тебе его напишу за мани?
     
  3. Автор темы
    pro100koder

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

    Баллы:
    76
    Неужели это и в правду так сложно?
     
  4. Автор темы
    pro100koder

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

    Баллы:
    76
    Код:
    public void damage(Player target, int damage, Player damager, boolean noknockback, String customMessage){
            target.damage(damage, damager);
            if(noknockback==true)target.getLocation().setDirection(null);//Это вроде как отменит отдачу... Не уверен.
            //А как кастом сообщение-то сделать?
        }
    В общем, окей, от вопроса осталось только кастомное сообщение.
     
  5. Автор темы
    pro100koder

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

    Баллы:
    76
    Отдачу не отменяет...
     
  6. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Попробуй
    Код:
    Bukkit.getScheduler().runTask(plugin, () -> p.setVelocity(new Vector()));
     
  7. Автор темы
    pro100koder

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

    Баллы:
    76
    За чем шедулер? Нужно отменить только отдачу от конкретного удара
     
  8. Автор темы
    pro100koder

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

    Баллы:
    76
    Сработало просто target.setVelocity(new org.bukkit.util.Vector());
     
  9. Автор темы
    pro100koder

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

    Баллы:
    76
    Спасибо. Осталась только проблема с сообщением в случае смерти... Хотя я уже придумал решение! Только как там определить, не был ли damage смертельным, не подскажите?
     
  10. Автор темы
    pro100koder

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

    Баллы:
    76
    Так. Почти всё уже сделал, даже это сообщение, но как отменить старое? Дефолтное (У меня в DeathEvent в другом месте вообще вместо смерти gm-3 ставится, но почему-то сообщение проходит :/)
     
  11. Автор темы
    pro100koder

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

    Баллы:
    76
    Решил, тупо запретив отправлять сообщения о смерти через gamerule. Всё, тема закрыта)
     
Статус темы:
Закрыта.

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