KillPlayerEvent



  • Bonjour,

    je reviens mais avec un question plutôt simple je cherche a faire un killPlayerEvent mais j'ai quelques soucis je suis en train de coder un système de "karma" et je voudrait que le joueur qui tue un joueurs voit son karma diminuer le probleme c est que avec ce code:

    
    package virusz.event;
    
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraftforge.event.entity.living.LivingDeathEvent;
    import virusz.core.ExtendedPlayer;
    import cpw.mods.fml.common.eventhandler.SubscribeEvent;
    
    public class PlayerKilledEvent {
       @SubscribeEvent
       public void whenDeath(LivingDeathEvent e)
       {
           if(e.source.getSourceOfDamage() instanceof EntityPlayer)
           {
               EntityPlayer player = (EntityPlayer)e.entity;
    ExtendedPlayer.get(player).consumeKarma(100);
    System.out.println("test");
           }
       }
    }
    
    

    il ne se passe absolument rien et j ai essayer comme ca:

    
       @SubscribeEvent
       public void whenDeath(LivingDeathEvent e)
       {
           if(e.entity instanceof EntityPlayer && !(e.source.getEntity() instanceof EntityPlayer))
           {
               EntityPlayer player = (EntityPlayer)e.entity;
    ExtendedPlayer.get(player).consumeKarma(100);
           }
       }
    
    

    c'est le joueur que je tue qui perd le karma pas moi

    merci d'avance pour votre aide



  • e.entity = L'entity qui est morte
    e.source.getEntity = l'entity qui tue

    Le bon code :

    
     @SubscribeEvent
        public void whenDeath(LivingDeathEvent e)
        {
            if(e.entity instanceof EntityPlayer && !(e.source.getEntity() instanceof EntityPlayer))
            {
                EntityPlayer player = (EntityPlayer)e.source.getEntity();
    ExtendedPlayer.get(player).consumeKarma(100);
            }
        }
    
    


  • ça ne fonctionne pas le karma des 2 joueur ne descend pas

    (j'utilise déjà la fonction consumeKarma avec un item et ça fonctionne parfaitement)

    Edit: ça peut venir du fait que je test en utilisant 2 instance de minecraft sur un seul pc?


  • Administrateurs

    Pas de !

    @SubscribeEvent
       public void whenDeath(LivingDeathEvent e)
       {
           if(e.entity instanceof EntityPlayer && e.source.getEntity() instanceof EntityPlayer)
           {
               EntityPlayer player = (EntityPlayer)e.source.getEntity();
               ExtendedPlayer.get(player).consumeKarma(100);
           }
       }
    


  • Bon j'ai trouvé le probleme avec ce code ca fonctionne:

    @SubscribeEvent
       public void whenDeath(LivingDeathEvent e)
       {
           if(e.entity instanceof EntityPlayer && (e.source.getEntity() instanceof EntityPlayer))
           {
               EntityPlayer player = (EntityPlayer)e.source.getEntity();
    ExtendedPlayer.get(player).consumeKarma(100);
           }
       }
    


  • Bon bha on a trouver le probleme en même temps x) je passe en résolut merci du coup de main