• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Un item jettable

    1.8.x
    1.8
    3
    11
    2150
    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.
    • Eryah
      Eryah dernière édition par

      Salut, c’est moi, Eryah, de retour pour faire chier le monde ^^’
      J’ai codé un item, et j’aimmerai qu’on puisse le jeter pour occasioner des dégats dans un faible rayon, et enflammer les ennemis dans un plus gros rayon ( 3-4 blocs)
      J’ai essayer, mais dès le début, je n’arrive pas a faire spawn l’entité

      Classe de l’item

      ​package eryah.usefulthings.init;
      
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.resources.model.ModelResourceLocation;
      import net.minecraft.creativetab.CreativeTabs;
      import net.minecraft.entity.item.EntityExpBottle;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.stats.StatList;
      import net.minecraft.world.World;
      import net.minecraftforge.fml.common.registry.GameRegistry;
      import net.minecraftforge.fml.relauncher.Side;
      import net.minecraftforge.fml.relauncher.SideOnly;
      import eryah.usefulthings.Reference;
      import eryah.usefulthings.UsefulthingsMod;
      
      public class LavaBottle extends Item {
      
      public static Item lava_bottle;
      
      public static void init(){
      lava_bottle = new Item().setUnlocalizedName("lava_bottle").setCreativeTab(UsefulthingsMod.UTTab);
      }
      
      public static void register()
      {
      GameRegistry.registerItem(lava_bottle, lava_bottle.getUnlocalizedName().substring(5));
      }
      
      public static void registerRenders()
      {
      registerRender(lava_bottle);
      }
      
      public static void registerRender(Item item)
      {
      Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
      }
      
      public LavaBottle()
          {
      
          }
      
          @SideOnly(Side.CLIENT)
          public boolean hasEffect(ItemStack stack)
          {
              return true;
          }
      
          /**
           * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
           */
          public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn)
          {
              if (!playerIn.capabilities.isCreativeMode)
              {
                  –itemStackIn.stackSize;
              }
      
              worldIn.playSoundAtEntity(playerIn, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
      
              if (!worldIn.isRemote)
              {
                  worldIn.spawnEntityInWorld(new EntityExpBottle(worldIn, playerIn));
              }
      
              playerIn.triggerAchievement(StatList.objectUseStats[Item.getIdFromItem(this)]);
              return itemStackIn;
          }
      
      }
      

      Classe de l’entité

      ​package eryah.usefulthings.entity.item;
      
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.entity.item.EntityXPOrb;
      import net.minecraft.entity.projectile.EntityThrowable;
      import net.minecraft.util.BlockPos;
      import net.minecraft.util.MovingObjectPosition;
      import net.minecraft.world.World;
      
      public class ELavaBottle extends EntityThrowable {
      
          public ELavaBottle(World worldIn)
          {
              super(worldIn);
          }
      
          public ELavaBottle(World worldIn, EntityLivingBase p_i1786_2_)
          {
              super(worldIn, p_i1786_2_);
          }
      
          public ELavaBottle(World worldIn, double p_i1787_2_, double p_i1787_4_, double p_i1787_6_)
          {
              super(worldIn, p_i1787_2_, p_i1787_4_, p_i1787_6_);
          }
      
          public ELavaBottle(World worldObj, double posX, double posY, double posZ, int j) {
          super(worldObj);
      }
      
      /**
           * Gets the amount of gravity to apply to the thrown entity with each tick.
           */
          protected float getGravityVelocity()
          {
              return 0.07F;
          }
      
          protected float getVelocity()
          {
              return 0.7F;
          }
      
          protected float getInaccuracy()
          {
              return -20.0F;
          }
      
          /**
           * Called when this EntityThrowable hits a block or entity.
           */
          protected void onImpact(MovingObjectPosition p_70184_1_)
          {
              if (!this.worldObj.isRemote)
              {
                  this.worldObj.playAuxSFX(2002, new BlockPos(this), 0);
                  int i = 3 + this.worldObj.rand.nextInt(5) + this.worldObj.rand.nextInt(5);
      
                  while (i > 0)
                  {
                      int j = EntityXPOrb.getXPSplit(i);
                      i -= j;
                      this.worldObj.spawnEntityInWorld(new EntityXPOrb(this.worldObj, this.posX, this.posY, this.posZ, j));
                  }
      
                  this.setDead();
              }
          }
      }
      

      Partie Init (Entity)  de la MainClass

      ​EntityRegistry.registerModEntity(ELavaBottle.class, "lavaBottle", 420, this.instance, 40, 1, true);
      

      Partie Entity du ClientProxy

      ​ RenderingRegistry.registerEntityRenderingHandler(ELavaBlock.class, new RenderItem(Minecraft.getMinecraft().getRenderManager(), new ***Model???***(), 0));
      

      Membre fantôme
      Je développe maintenant un jeu sur UnrealEngine4


      Contact :…

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

        Je crois que pour récupérer les entity dans un rayon, c’est ce code là ensuite c’est à toi de modifier les arguments

        
        List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(Entity entity, AxisAlignedBB.getBoundingBox(double d0, double d1, double d2, double d3, double d4, double d5));
        Entity entity = (Entity)list.get(l);
        
        

        Ensuite pour infliger des dégâts c’est ce code là

        
        p_70184_1_.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), degat en demie coeur);
        
        

        Exemple pour 2 coeurs enlevés, il faut mettre 4

        Et la méthode pour mettre en feu un ennemie est la suivante

        
        entity.setFire(nbre de secondes * 20);
        
        

        J’espère que je t’aurai aidé 😉

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

          RenderingRegistry.registerEntityRenderingHandler(ELavaBlock.class, new RenderItem(Minecraft.getMinecraft().getRenderManager()));
          Rien de plus il me semble.

          1 réponse Dernière réponse Répondre Citer 0
          • Eryah
            Eryah dernière édition par

            ​RenderingRegistry.%(#3333ff)[*registerEntityRenderingHandler*](ELavaBottle.class, new %(#33cc33)[*RenderItem(Minecraft.getMinecraft().getRenderManager*]()));
            

            The method registerEntityRenderingHandler(Class, Render) in the type RenderingRegistry is not applicable for the arguments (Class<elavabottle>, RenderItem)

            The constructor RenderItem(RenderManager) is undefined</elavabottle>

            Membre fantôme
            Je développe maintenant un jeu sur UnrealEngine4


            Contact :…

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

              RenderingRegistry.registerEntityRenderingHandler(ELavaBottle.class, new RenderSnowball(Minecraft.getMinecraft().getRenderManager(), LavaBottle.lava_bottle, Minecraft.getMinecraft().getRenderItem()));

              1 réponse Dernière réponse Répondre Citer 0
              • Eryah
                Eryah dernière édition par

                Je ne sais pas si çela fontione, car toujours imposible de jetter l’item

                Membre fantôme
                Je développe maintenant un jeu sur UnrealEngine4


                Contact :…

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

                  worldIn.spawnEntityInWorld(new EntityExpBottle(worldIn, playerIn));
                  Faudrait peut-être remplacer par ton item ici non ?

                  Et encore même problème que la dernière fois –’
                  lava_bottle = new %(#ff3333)Item.setUnlocalizedName(“lava_bottle”).setCreativeTab(UsefulthingsMod.UTTab);

                  Tu le fait exprès ou quoi ? Je t’ai pourtant déjà expliqué ça. Franchement je vais finir par croire que tu es juste un troll qui me fait perdre mon temps …
                  Je passe presque 30 min par jour à répondre à tes milliards de demande d’aide, je vais finir par t’exclure de cette section car tu donne l’air de faire aucun effort …

                  1 réponse Dernière réponse Répondre Citer 0
                  • Eryah
                    Eryah dernière édition par

                    Ah oui… désolé.
                    Je lance mon client


                    Je n’ai pas encore change cela sur les item, et vu que mes items sont justes de copiés collés modifiés eh bien…
                    Je vais changer cela maintenant afin d’eviter ce problème a nouveau


                    Je lance quelques chose d’invisible, ce qui est assez invisible ( Je pense savoir pourquoi )

                    Membre fantôme
                    Je développe maintenant un jeu sur UnrealEngine4


                    Contact :…

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

                      Et à l’impact il se passe quelque chose ?

                      1 réponse Dernière réponse Répondre Citer 0
                      • Eryah
                        Eryah dernière édition par

                        Oui, vu que je n’est toujours pas modifié le code de l’entité ( CopiéCollé de l’XPBottle ), des gerbes d’xp saute quand je RightClick


                        C’ets bon, tous mes items sont Extends Item

                        Membre fantôme
                        Je développe maintenant un jeu sur UnrealEngine4


                        Contact :…

                        1 réponse Dernière réponse Répondre Citer 0
                        • Eryah
                          Eryah dernière édition par

                          C’est bon je me suis démerdé
                          Pour ceux qui sont dans le même cas que moi (Entity invisible ), qu’il sachent qu’il faut modifier l’id des entités, sinon il y aura conflit avec ceux déjà existant

                          l’id du mod ce trouve dans la classe principale

                          ​EntityRegistry.registerModEntity(ELavaBottle.class, "lavaBottle", **21051**, this.instance, 40, 1, true);
                          

                          ( PS : Sa marche uniquement pour ma potion, mon poulet et mon bateau sont toujours invisible )

                          Membre fantôme
                          Je développe maintenant un jeu sur UnrealEngine4


                          Contact :…

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

                          MINECRAFT FORGE FRANCE © 2018

                          Powered by NodeBB