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

Помогите Выполнить действие при убийстве и воскресить

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

  1. Автор темы
    Феня

    Феня Старожил Пользователь

    Баллы:
    123
    Skype:
    vasilev_max
    Имя в Minecraft:
    eblan_tupoj
    Тогда как получить игрока, который нанес ей урон?
     
  2. Хостинг MineCraft
    <
  3. CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Код:
    if (event instanceof EntityDamageByEntityEvent)
            {
            EntityDamageByEntityEvent eventEE = (EntityDamageByEntityEvent) event;
            if ((eventEE.getDamager() instanceof LivingEntity))
            {
               LivingEntity damager = (LivingEntity)eventEE.getDamager();
            }
            }
    
    Полный метод определения дамагера.
    Код:
        public static LivingEntity getDamagerEntity(EntityDamageEvent event)
        {
            if (!(event instanceof EntityDamageByEntityEvent)) 
            {
                return null;
            }
            EntityDamageByEntityEvent eventEE = (EntityDamageByEntityEvent) event;
            if ((eventEE.getDamager() instanceof LivingEntity)) 
            {
                return (LivingEntity)eventEE.getDamager();
            }
            if (!(eventEE.getDamager() instanceof Projectile)) 
            {
                return null;
            }
            Projectile projectile = (Projectile) eventEE.getDamager();
            if (projectile.getShooter() == null) 
            {
                return null;
            }
            if (!(projectile.getShooter() instanceof LivingEntity)) 
            {
                return null;
            }
            return (LivingEntity) projectile.getShooter();
        }
    
     
  4. Code

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

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    лол, странно, как это помогло? если корова наследует livingentity, в ней и так должен быть метод из него.
     
  5. CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Как бы тут в другую сторону наследование идет.
    livingentity наследует entity, а событие возвращает как раз entity, которое может и не быть livingentity.
     
  6. Code

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

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    так он сначала в корову скастовал, а потом от нее пытался взять getHealth. а корова всяко livingentity
     
  7. CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Действительно странно.
     

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