Navigation

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    SOLVED Marteau qui repousse les entités

    1.7.x
    1.7.10
    3
    7
    926
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • LavaPower
      LavaPower last edited by

      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 ?

      1 Reply Last reply Reply Quote 0
      • Deleted
        Deleted last edited by

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

        1 Reply Last reply Reply Quote 0
        • LavaPower
          LavaPower last edited by

          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()
          1 Reply Last reply Reply Quote 0
          • Deleted
            Deleted last edited by

            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 Reply Last reply Reply Quote 0
            • LavaPower
              LavaPower last edited by

              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 😕

              1 Reply Last reply Reply Quote 0
              • robin4002
                robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

                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 Reply Last reply Reply Quote 0
                • LavaPower
                  LavaPower last edited by

                  Merci beaucoup robin !

                  1 Reply Last reply Reply Quote 0
                  • 1 / 1
                  • First post
                    Last post
                  Design by Woryk
                  Contact / Mentions Légales / Faire un don

                  MINECRAFT FORGE FRANCE © 2018

                  Powered by NodeBB