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

Помогите Увеличение силы лука

Тема в разделе "Разработка плагинов для новичков", создана пользователем Studenikin, 20 май 2015.

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

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

    Баллы:
    123
    Skype:
    vanya.studenikin
    Имя в Minecraft:
    stuvanya
    Возникла такая проблема: нужно чтобы игрок убивался из лука с одного попадания, здоровье у него должно быть стандартным, а если принудительно убивать entyti из EntityShootBowEvent, то в PlayerDeathEvent event.getEntity().getKiller() будет null
     
  2. Code

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

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    попробуй ее не убивать, а наносить много дамага с помощью damage, указывая убийцу
     
  3. baksovic111

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

    Баллы:
    88
    int value = 50;
    event.getDamage(event.getDamage() + value);

    Не пойдет?)
     
  4. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Помимо тех вариантов, что предложили, можно перед убийством собственноручно создавать и вызывать событие PlayerDeathEvent и самому там прописывать убийцу. В этом случае, кстати, Вы получите полноценное взаимодействие с другими плагинами. В том плане, что если событие отменили, Вы об этом узнаете.
    Т.е., к примеру, если у Вас есть на сервере зона защищенная от PVP, то Вы увидев, что событие было отменено не убьете игрока и не нарушите "правила сервера" ;)
     
  5. Автор темы
    Studenikin

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

    Баллы:
    123
    Skype:
    vanya.studenikin
    Имя в Minecraft:
    stuvanya
    Спасибо всем, нашел самое оптимальное решение
    Код:
        @EventHandler
        public void onBowShot(EntityDamageByEntityEvent e){
            if(e.getDamager() instanceof Arrow){
                e.setDamage(200);
            }
        }

    у меня тут еще одна проблема была, как все-таки правильно сделать шедулер, который 5 раз каждую секунду что-то сделает, а потом остановится?
     
  6. kirill2011s

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

    Баллы:
    103
    Смерть отменить нельзя.
     
  7. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Логично ;)
    В любом случае описанное мной можно использовать для событий нанесения урона, да и для смерти, если нужно "передать" убийцу.
     

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