MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Event OnLivingDrops

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    15 Messages 3 Publieurs 3.0k Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • DragonBotD Hors-ligne
      DragonBot
      dernière édition par

      Salut 🙂
      Juste une petite question:
      Ajouter un drop à une entity vanilla, ok, mais comment faire pour rajouter un drop seulement si le joueur tue cette entity avec un certain item?
      Je pense qu’il faut utiliser .getHeldItem().getItem() mais je ne trouve pas quelle condition il faut rajouter à l’event pour le rajouter.
      Merci d’avance!

      1 réponse Dernière réponse Répondre Citer 0
      • P Hors-ligne
        PlagueZ
        dernière édition par

        Bonjour,
        En 1.7.10 ceci fonctionne

        
        if(event.source.getEntity() != null && event.source.getEntity() instanceof EntityPlayer)
        {
        EntityPlayer player = (EntityPlayer)event.source.getEntity();
        if(player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() == Items.diamond_sword)
        {
        System.out.println("Fatality!!!!");
        }
        }
        

        Edit:c’est ce code pas l’ancien 😉

        “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

        1 réponse Dernière réponse Répondre Citer 0
        • DragonBotD Hors-ligne
          DragonBot
          dernière édition par

          Merci, mais ça n’a pas l’air de fonctionner, ou alors je m’y prend mal, j’ai essayer en mettant ceci:

          if(event.entity instanceof EntityPig)
          {
          if(event.entity instanceof EntityPlayer)
          {
          if(event.entityLiving.getHeldItem().getItem() == Items.apple)
          {
          ItemStack itemStackToDropa2 = new ItemStack(Items.apple, rand.nextInt(2) + 1);
          event.drops.add(new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ, itemStackToDropa2));
          }
          }
          }

          1 réponse Dernière réponse Répondre Citer 0
          • P Hors-ligne
            PlagueZ
            dernière édition par

            essaye ca:

                if(event.source.getEntity() != null && event.source.getEntity() instanceof EntityPlayer)
                {
                   EntityPlayer player = (EntityPlayer)event.source.getEntity();
                   if(player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() == Items.diamond_sword && event.entity instanceof EntityPig)
                   {
                      EntityItem newdropMuttonRaw = new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ,
                new ItemStack(Items.apple, 1));
            
                event.drops.add(newdropMuttonRaw);
                   }
                }
            

            “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

            1 réponse Dernière réponse Répondre Citer 0
            • DragonBotD Hors-ligne
              DragonBot
              dernière édition par

              Merci ça marche!
              Mais si je veux que l’action se déclenche quand le joueur n’as pas d’item dans la main (je met == null au getItem) le jeu crash quand je tue l’entitée…

              1 réponse Dernière réponse Répondre Citer 0
              • P Hors-ligne
                PlagueZ
                dernière édition par

                if(player.getCurrentEquippedItem().getItem() == null && event.entity instanceof EntityPig)

                c’est normale que ca plante on verifie si c est pas null avant

                if(player.getCurrentEquippedItem() != null)

                “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

                1 réponse Dernière réponse Répondre Citer 0
                • robin4002R Hors-ligne
                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                  dernière édition par

                  Pour aucun item la bonne condition c’est player.getCurrentEquippedItem() == null.

                  1 réponse Dernière réponse Répondre Citer 0
                  • P Hors-ligne
                    PlagueZ
                    dernière édition par

                    ha oui désolé j’ai pas fait gaffe 😉

                    “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

                    1 réponse Dernière réponse Répondre Citer 0
                    • DragonBotD Hors-ligne
                      DragonBot
                      dernière édition par

                      Merci, problème réglé!
                      Dernière petite question, est-ce possible de placer un bloc quand l’entité est tuée? Je sais que c’est possible de placer pour les blocs mais pour les entités, je n’ai pas trouvé

                      1 réponse Dernière réponse Répondre Citer 0
                      • robin4002R Hors-ligne
                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                        dernière édition par

                        Oui.  Il faut faire un world.setBlock, c’est la même chose.

                        1 réponse Dernière réponse Répondre Citer 0
                        • P Hors-ligne
                          PlagueZ
                          dernière édition par

                          essaye ca:

                          
                          int x = (int) event.entity.posX;
                          int y = (int) event.entity.posY;
                          int z = (int) event.entity.posZ;
                          event.entity.worldObj.setBlock(x, y, z, Blocks.anvil);
                          

                          “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

                          1 réponse Dernière réponse Répondre Citer 0
                          • robin4002R Hors-ligne
                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                            dernière édition par

                            J’utiliserai plutôt MathHelper.floor_double(event.entity.posX) au lieu de cast int.

                            1 réponse Dernière réponse Répondre Citer 0
                            • P Hors-ligne
                              PlagueZ
                              dernière édition par

                              @‘robin4002’:

                              J’utiliserai plutôt MathHelper.floor_double(event.entity.posX) au lieu de cast int.

                              je connaissait pas cette alternative ça change beaucoup du cast?
                              ou c est juste plus propre?

                              edit: Désoler pour le Hors sujet

                              “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

                              1 réponse Dernière réponse Répondre Citer 0
                              • robin4002R Hors-ligne
                                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                dernière édition par

                                cast en int = arrondir pas défaut.
                                MathHelper.floor_double = méthode de Minecraft, arrondi par défaut si la partie non entière est < .5 et par accès si ≥ .5

                                1 réponse Dernière réponse Répondre Citer 0
                                • DragonBotD Hors-ligne
                                  DragonBot
                                  dernière édition par

                                  Merci à vous deux! Je pense que je n’ai plus de questions à propos de ça alors je passe le sujet en résolu, encore merci 🙂

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • 1 / 1
                                  • Premier message
                                    Dernier message
                                  Design by Woryk
                                  ContactMentions Légales

                                  MINECRAFT FORGE FRANCE © 2024

                                  Powered by NodeBB