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

Помогите отследить смерть

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

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

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

    Баллы:
    78
    Skype:
    vlad_street
    Привет, пробовал искать но ничего не нашел, так же хотел в других плагинах посмотреть исходный код, но не получилось :(

    Нужно отловить от чего умер плеер, если от игрока, то имя игркоа, если от моба, то тип моба.

    Подскажите в каком евенте можно сделать?
    Хотел через playerDeathEvent, но там нету)
     
  2. Rider3217

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

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    EntityDamageByEntityEvent
     
  3. Bleach

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

    Баллы:
    68
    PlayerDeathEvent

    EntityDamageEvent damevent = player.getLastDamageCause();
    DamageCause = damevent.getCause();

    Ответ на КАЖДЫЙ из созданных Вами тредов можно найти после пяти минут гугла/чтения доков.
    В следующий раз, создавая подобные треды, убедитесь, что приложили хоть какие-то усилия для поиска ответа самостоятельно.
    http://www.javaminecraft.com/bukkitapi/
     
  4. Автор темы
    energy455

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

    Баллы:
    78
    Skype:
    vlad_street
    лучше расскажите, можно ли открыть чужой плагин и посомтреть исходный код?
     
  5. Bleach

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

    Баллы:
    68
     
  6. Автор темы
    energy455

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

    Баллы:
    78
    Skype:
    vlad_street
     
  7. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Конечно можно. Поищите декомпиляторы Java. Они не всегда хорошо работают, но код показывают )
     
  8. Автор темы
    energy455

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

    Баллы:
    78
    Skype:
    vlad_street
    во, спасибо!)
     
  9. Rider3217

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

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Jd-Gui вам в помощь.
     
  10. Автор темы
    energy455

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

    Баллы:
    78
    Skype:
    vlad_street
    допусти я отследил удар игрока ENTITY DAMAGE
    как отследить удар моба? то что я умер от руки моба
     
  11. Rider3217

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

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Сделай проверку, если игрока убил не плеер то получай тип убийци.
     
  12. Автор темы
    energy455

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

    Баллы:
    78
    Skype:
    vlad_street
    ентити дамаг - это же если только плеер бьет?
     
  13. Rider3217

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

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    if(damager.getType().equals(EntityType.Player)){
    System.out.println(damager.getType().toString());
    }
    EntityDamageEvent этт дамаг вообще всего.
     
  14. Автор темы
    energy455

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

    Баллы:
    78
    Skype:
    vlad_street
    с этим понятно, спасибо. Как понять умер игрок или нет?
    if health <= 0
    ?
     
  15. Bleach

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

    Баллы:
    68
    Код:
    @EventHandler
        public void onPlayerDeath(PlayerDeathEvent e){
            Player p = e.getEntity();
            EntityDamageEvent damevent = p.getLastDamageCause();
            DamageCause cause = damevent.getCause();
           
            if (cause == DamageCause.ENTITY_ATTACK){
                LivingEntity killer = p.getKiller();
                if (killer instanceof Player){
                    Player pkiller = (Player) killer;
                    e.setDeathMessage("Игрок " + p.getName() + " был убит игроком " + pkiller.getName());
                }else{
                    e.setDeathMessage("Игрок " + p.getName() + " был убит " + killer.getType().toString());
                }
            }
        }
     
  16. Автор темы
    energy455

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

    Баллы:
    78
    Skype:
    vlad_street
    спасибо)
     
Статус темы:
Закрыта.

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