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

Причина смерти игрока

Discussion in 'Разработка плагинов для новичков' started by парниша, Oct 7, 2013.

  1. Автор темы
    парниша

    парниша Участник

    Trophy Points:
    33
    Можно ли узнать причину смерти игрока? Если он был убит другим игроком, можно ли получить название кита, которым он был убит?
     
    Wiste and Goldenix like this.
  2. Хостинг MineCraft
    <
  3. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Южный кит
     
    skynetxxx, serega6531 and ImAlive like this.
  4. ImAlive

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

    Trophy Points:
    123
    Skype:
    makcvsdog
    В OnPlayerDeathEvent есть getKiller(), хотя я не уверен что это именно то, что нужно. (Хотя по логике это то что нужно.)
     
    EndEclipse likes this.
  5. WCRAFT

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

    Trophy Points:
    173
    Skype:
    worldplaytv
    Имя в Minecraft:
    World
    В новых версиях уже есть такая фича, только выкопать и сделать как надо осталось. А вообще попробуй порытся в переменах в файле локализации.
     
  6. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Можно читать строку, которую вернёт getDeathMessage(), но это как то.. :confused:
     
  7. Автор темы
    парниша

    парниша Участник

    Trophy Points:
    33
    Спасибо за столь быстрые ответы, есть над чем подумать)
     
  8. _Rufu5_

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

    Trophy Points:
    48
    Имя в Minecraft:
    _Rufu5_

    Code:
    public class gg {
    public void death (EntityDamageByEntityEvent e){
    double h = e.getDamage();
    Player p = (Player)e.getDamager();
    Player pd = (Player)e.getEntity();
    if(h >= pd.getMaxHealth()){
    String name =p.getItemInHand().getItemMeta().getDisplayName();
    НАЗВАНИЕ ПРЕДМЕТА КОТОРЫМ БЫЛ УБИТ ИГРОК
    }
    }
    }
     
  9. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    @_Rufu5_, очень рачинский способ, до такого я даже не додумался[DOUBLEPOST=1381153258,1381153002][/DOUBLEPOST]
    Code:
        public void onPlayerDeath(PlayerDeathEvent e) {
            Player p = e.getEntity();
            if(!(e.getEntity().getKiller() instanceof Player))
                return;
            Player k = p.getKiller();
            ItemStack is = k.getItemInHand(); // предмет в руке у убийцы
        }
     
  10. _Rufu5_

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

    Trophy Points:
    48
    Имя в Minecraft:
    _Rufu5_
    Норм ответ или нет мой?
     
  11. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Не очень
     
  12. ROBOCOP

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

    Trophy Points:
    63
    Имя в Minecraft:
    ROBOCOP95
    Хм, странно, убивал лопатами, топорами, кирками, всем короче, и всегда одно и тоже пишет: Player was slain by Player2. Хотя по идеи в 1.5.2+ должно писать что типа убил чем то... даже хз, просветите меня. Извините что здесь написал.
     
  13. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    В 1.5 такого не имеется(за исключением помощи других игроков). В версиях свежее тоже не встречал, разве что за счёт сторонних плагинов
     
  14. ROBOCOP

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

    Trophy Points:
    63
    Имя в Minecraft:
    ROBOCOP95
    Странно, в 1.5.2 нашел такое, должно же пахать:
    ланг файл:
    death.fell.accident.ladder=%1$s fell off a ladder
    death.fell.accident.vines=%1$s fell off some vines
    death.fell.accident.water=%1$s fell out of the water
    death.fell.accident.generic=%1$s fell from a high place
    death.fell.killer=%1$s was doomed to fall
    death.fell.assist=%1$s was doomed to fall by %2$s
    death.fell.assist.item=%1$s was doomed to fall by %2$s using %3$s
    death.fell.finish=%1$s was fell too far and was finished by %2$s
    death.fell.finish.item=%1$s was fell too far and was finished by %2$s using %3$s

    death.attack.inFire=%1$s went up in flames
    death.attack.inFire.player=%1$s walked into fire whilst fighting %2$s
    death.attack.onFire=%1$s burned to death
    death.attack.onFire.player=%1$s was burnt to a crisp whilst fighting %2$s
    death.attack.lava=%1$s tried to swim in lava
    death.attack.lava.player=%1$s tried to swim in lava to escape %2$s
    death.attack.inWall=%1$s suffocated in a wall
    death.attack.drown=%1$s drowned
    death.attack.drown.player=%1$s drowned whilst trying to escape %2$s
    death.attack.starve=%1$s starved to death
    death.attack.cactus=%1$s was pricked to death
    death.attack.cactus.player=%1$s walked into a cactus whilst trying to escape %2$s
    death.attack.generic=%1$s died
    death.attack.explosion=%1$s blew up
    death.attack.explosion.player=%1$s was blown up by %2$s
    death.attack.magic=%1$s was killed by magic
    death.attack.wither=%1$s withered away
    death.attack.anvil=%1$s was squashed by a falling anvil
    death.attack.fallingBlock=%1$s was squashed by a falling block
    death.attack.player.item=%1$s was slain by %2$s using %3$s
    death.attack.arrow=%1$s was shot by %2$s
    death.attack.arrow.item=%1$s was shot by %2$s using %3$s
    death.attack.fireball=%1$s was fireballed by %2$s
    death.attack.fireball.item=%1$s was fireballed by %2$s using %3$s
    death.attack.thrown=%1$s was pummeled by %2$s
    death.attack.thrown.item=%1$s was pummeled by %2$s using %3$s
    death.attack.indirectMagic=%1$s was killed by %2$s using magic
    death.attack.indirectMagic.item=%1$s was killed by %2$s using %3$s
    death.attack.thorns=%1$s was killed trying to hurt %2$s
    death.attack.fall=%1$s hit the ground too hard
    death.attack.outOfWorld=%1$s fell out of the world
    Кусок кода EntityDamageSourceIndirect:
    Code:
    public String getDeathMessage(EntityLiving par1EntityLiving)
      {
      String s = this.indirectEntity == null ? this.damageSourceEntity.getTranslatedEntityName() : this.indirectEntity.getTranslatedEntityName();
      ItemStack itemstack = this.indirectEntity instanceof EntityLiving ? ((EntityLiving)this.indirectEntity).getHeldItem() : null;
      String s1 = "death.attack." + this.damageType;
      String s2 = s1 + ".item";
      return itemstack != null && itemstack.hasDisplayName() && StatCollector.func_94522_b(s2) ? StatCollector.translateToLocalFormatted(s2, new Object[] {par1EntityLiving.getTranslatedEntityName(), s, itemstack.getDisplayName()}): StatCollector.translateToLocalFormatted(s1, new Object[] {par1EntityLiving.getTranslatedEntityName(), s});
      }
    
     

Share This Page