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

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

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

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

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

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

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Южный кит
     
    skynetxxx, serega6531 и ImAlive нравится это.
  4. ImAlive

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

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

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

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

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Можно читать строку, которую вернёт getDeathMessage(), но это как то.. :confused:
     
    zuma2, Сникерсни, Hephest и ещё 1-му нравится это.
  7. Автор темы
    парниша

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

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

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

    Баллы:
    48
    Имя в Minecraft:
    _Rufu5_

    Код:
    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();
    НАЗВАНИЕ ПРЕДМЕТА КОТОРЫМ БЫЛ УБИТ ИГРОК
    }
    }
    }
     
    Сникерсни и GloomyFolken нравится это.
  9. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    @_Rufu5_, очень рачинский способ, до такого я даже не додумался[DOUBLEPOST=1381153258,1381153002][/DOUBLEPOST]
    Код:
        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_ Активный участник Пользователь

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

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Не очень
     
  12. ROBOCOP

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

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

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

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

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

    Баллы:
    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:
    Код:
    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});
      }
    
     

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