[Event Drop] Drop si tuée par un couteau



  • Bonjour !
    Je cherche a faire en sorte que si l’entité est tuée par un couteau par exemple, là elle lâche ses drop, mais si elle est tuée autre que par un couteau elle ne drope rien. Quel est ce bout de code ?

    J'ai ça pour le moment:

    @ForgeSubscribe(priority = EventPriority.NORMAL)
    public void onLivingDrops(LivingDropsEvent event)
    {
    if(event.entity instanceof EntitySheep)
    {
    for(int i = 0; i < event.drops.size(); i++)
    {
    event.drops.remove(i);
    }
    /*
    * Si l'entité est tuée par un couteau alors…
    * EntityItem newdrop = new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ,
    * new ItemStack(ItemsManager.rawMutton));
    * event.drops.add(newdrop);
    */
    }
    }
    

    Merci de votre aide (encore)
                                            -ZeAmateis-


  • Administrateurs

    Solution 1 : Tu check avec le damage source si le personne qui l'a tué est un joueur, et si c'est le cas tu regardes si le joueur à un couteau un main.
    Solution 2 : Tu créé un nouveau damage source pour ton couteau, et tu check si le damage source qui à causé la mort est celui-ci.



  • Ok je vais test !



  • Je n'arrive pas a faire le solution deux, et elle me semble compliquée pour pas grand chose, donc comment faire pour la solution 1 ?


  • Administrateurs

    if(event.source.getEntity() != null && event.source.getEntity() instanceof EntityPlayer)
    {
    EntityPlayer player = (EntityPlayer)event.source.getEntity();
    if(player.getCurrentItem() != null && player.getCurrentItem().itemID == ClassePrincipale.tonCouteau.itemID)
    {
    […]
    
    


  • Merci je teste ça !


    Résolu ! Merci !


Log in to reply