MFF

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

    Marteau qui repousse les entités

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    7 Messages 3 Publieurs 1.2k 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.
    • LavaPowerL Hors-ligne
      LavaPower
      dernière édition par

      Salut,

      j’aimerai faire un Marteau qui repousse les entités dans un rayon de 3 blocs autour de l’endroit ou le joueur fait un click droit au sol.
      J’ai donc créé mon item ainsi que ma fonction onItemRightClick mais je ne sais pas quoi mettre dans celle-ci.

      Pouvez vous m’aider ?

      Github : http://github.com/LavaPower

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

        Salut,
        Plutôt onItemUse, ensuite AxisAlignedBB, et pour finir un appel de EntityLivingBase#knockback sur toutes les entités environnantes 😉

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

          J’ai fait ça à partir d’un autre code :

          
          @Override
          public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World world, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_)
          {
          AxisAlignedBB axisalignedbb = this.boundingBox.expand(4.0D, 2.0D, 4.0D);
          List list1 = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb);
          if(list1 != null && !list1.isEmpty())
          {
          Iterator iterator = list1.iterator();
          
          while(iterator.hasNext())
          {
          EntityLivingBase entitylivingbase = (EntityLivingBase)iterator.next();
          entitylivingbase.knockBack(p_70653_1_, p_70653_2_, p_70653_3_, p_70653_5_);
          }
          }
          return false;
          }
          
          

          Mais j’ai encore deux problèmes :

          • this.boundingBox n’existe pas pour les items
          • Je ne connais pas les arguments pour la fonction knockback()

          Github : http://github.com/LavaPower

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

            Les items n’ont pas de boîte de collision, tu ne savais pas ??
            Les arguments, l’entité attaquant, les dégâts du coup en int, et pour les deux derniers double, voici vite fait une petite explication trouvée sur internet:

            [font=Helvetica, Arial,The doubles d and d1 are basically just used the calculate the ratio between x and z axis movement proportional to the direction you hit it from. Notice the part where both x and z motion are reduced. You can just change the f1 value which multiples the value that is being subtracted from both motions. Smaller f1 = bigger movement. You can also change the y if you want.]

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

              Je le sais, je ne savais pas quoi mettre.
              J’ai donc modifié et fait ceci :

              
              @Override
              public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World world, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_)
              {
              AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox(-2d, 0d, -2d, 2d, 2d, 2d);
              
              List list1 = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb);
              if(list1 != null && !list1.isEmpty())
              {
              Iterator iterator = list1.iterator();
              
              while(iterator.hasNext())
              {
              EntityLivingBase entitylivingbase = (EntityLivingBase)iterator.next();
              entitylivingbase.knockBack(Minecraft.getMinecraft().thePlayer, 0, 1d, 1d);
              }
              return true;
              }
              return false;
              }
              
              

              Mais Mr.Mouton ne bouge pas d’un poil 😕

              Github : http://github.com/LavaPower

              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

                this.boundingBox.expand(4.0D, 2.0D, 4.0D);
                ->
                p_77648_2_.boundingBox.expand(4.0D, 2.0D, 4.0D);

                Le mieux serait de renommer l’argument p_77648_2_ en player pour une question de clarté du code.

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

                  Merci beaucoup robin !

                  Github : http://github.com/LavaPower

                  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