Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Установка сообщения о смерти игрока

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

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

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

    Баллы:
    103
    Имя в Minecraft:
    Gate
    Убрал @EventHandler перед public boolean onCommand()
     
    Оригинало_о нравится это.
  2. Хостинг MineCraft
    <
  3. limito

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

    Баллы:
    103
    Попробовал запустить Ваш код, выдает ошибку. Буду разбираться.
     
  4. Автор темы
    Gate

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

    Баллы:
    103
    Имя в Minecraft:
    Gate
    Эх:( Ну что же, удачи Вам. Спасибо, что помогаете мне
     
  5. limito

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

    Баллы:
    103
    Вместо s.setHealth(0), напишите s.damage(1000).
     
    Оригинало_о нравится это.
  6. limito

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

    Баллы:
    103
    Вроде ошибка была из-за неизвестной причины смерти - внезапно стало 0 здоровья, но урон не наносился.
    Сейчас тот код, который у меня работал раньше, перестал работать. Причину, по которой он работал раньше, я не понимаю.
     
  7. Автор темы
    Gate

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

    Баллы:
    103
    Имя в Minecraft:
    Gate
    Нет изменений...
     
  8. limito

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

    Баллы:
    103
    А если s.damage(1000) и nick = s поменять местами?
    Сначала запишется ник самоубийцы, а только потом он умрет.
    А то он умирал до того, как был записан его ник, и из-за того, что nick - null, выкидывалось исключение.
     
    I-Am-Black-Overlord и Gate нравится это.
  9. limito

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

    Баллы:
    103
    Ясно, [SEVERE] Could not pass event PlayerDeathEvent, возникает, когда при обработке ивента возникает ошибка. Ниже этой ошибки был Exception, выкинутый при обработки ивента, а я его раньше и не заметил.
     
  10. Автор темы
    Gate

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

    Баллы:
    103
    Имя в Minecraft:
    Gate
    Ура, вот это помогло! Спасибо огромное:)
     
  11. Автор темы
    Gate

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

    Баллы:
    103
    Имя в Minecraft:
    Gate
    Вот ещё 1 момент. У меня теперь при любой смерти игрока будет писать сообщение, которое я поставил в этом плагине. Как сделать, чтобы это сообщение относилось только к событию, когда игрок вводит определённую команду (onCommand())?
     
  12. limito

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

    Баллы:
    103
    В onDeathEvent:
    Код:
    // Меняем сообщение о смерти, только если умер именно тот игрок, который запустил команду
    if (event.getEntity() == nick)
      event.setDeathMessage(...);
     
  13. Автор темы
    Gate

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

    Баллы:
    103
    Имя в Minecraft:
    Gate
    Окей, сейчас попробуем
     
  14. Автор темы
    Gate

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

    Баллы:
    103
    Имя в Minecraft:
    Gate
    Код:
    @EventHandler
    public void onPlayerDeath(PlayerDeathEvent event) {
        if(event.getEntity() == nick){
        event.setDeathMessage(ChatColor.RED + "" + nick.getName() + "не смог больше жить в этом ужасном мире и совершил самоубийство.");}
        }
    Так? Всё равно при любой смерти это сообщение пишет
     
  15. limito

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

    Баллы:
    103
    Не при любой - а при смерти игрока, который раньше вводил эту команду.
    Код:
        if(event.getEntity() == nick){
          event.setDeathMessage(ChatColor.RED + "" + nick.getName() + "не смог больше жить в этом ужасном мире и совершил самоубийство.");
          nick = null; // Мы поменяли один раз сообщение смерти у этого игрока, теперь, пока он не введет команду, менять сообщение смерти не надо
        }
     
    Сникерсни и Gate нравится это.
  16. Автор темы
    Gate

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

    Баллы:
    103
    Имя в Minecraft:
    Gate
    Всё, понял, спасибо
     

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