Sceptre de creeper



  • Bonjours , j'ai besoin d'aide , j'aimerais créer un sceptre de creeper , c'est a dire quand on fait clique droit sa fait spawn 1 creeper et le baton a que 2 utilisation , j'ai déjà fait un code mais pour un baton de soin , je doit changer quoi pour qu'il fait spawn un creeper ? et je doit mettre quoi ? Merci ^^

    package com.mod.voltonia.items;
    
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.potion.Potion;
    import net.minecraft.potion.PotionEffect;
    import net.minecraft.world.World;
    
    public class BatonDeSoin extends Item {
    public BatonDeSoin()
    {
    this.maxStackSize = 1;
    this.setMaxDamage(2);
    }
    
        public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
        {
            par1ItemStack.damageItem(1, par3EntityPlayer);
            par3EntityPlayer.addPotionEffect(new PotionEffect(Potion.heal.id, 2, 0));
    return par1ItemStack;
    
        }
    
    }
    

  • Administrateurs

    Salut,
    Ce n'est pas compliqué à faire :

    if(!par2World.isRemote)
    {
       EntityCreeper creeper = new EntityCreeper();
       creeper.setPosition(par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ):
       par2World.spawnEntityInWorld(creeper);
    }
    


  • @'robin4002':

    Salut,
    Ce n'est pas compliqué à faire :

    if(!par2World.isRemote)
    {
       EntityCreeper creeper = new EntityCreeper(par2World.isRemote);
       creeper.setPosition(par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ):
       par2World.spawnEntityInWorld(creeper);
    }
    

    je doit supprimer quoi de mon code au dessus pour mettre ton code ? ^^



  • @'ZarTeK':

    @'robin4002':

    Salut,
    Ce n'est pas compliqué à faire :

    if(!par2World.isRemote)
    {
       EntityCreeper creeper = new EntityCreeper(par2World.isRemote);
       creeper.setPosition(par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ):
       par2World.spawnEntityInWorld(creeper);
    }
    

    je doit supprimer quoi de mon code au dessus pour mettre ton code ? ^^

    Tu fais ça:

    package com.mod.voltonia.items;
    
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.potion.Potion;
    import net.minecraft.potion.PotionEffect;
    import net.minecraft.world.World;
    
    public class BatonDeSoin extends Item {
    
       public BatonDeSoin()
       {
       this.maxStackSize = 1;
       this.setMaxDamage(2);
    
       }
    
       public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
       {
    
           if(!par2World.isRemote)
           {
    
               EntityCreeper creeper = new EntityCreeper(par2World.isRemote);
    
               creeper.setPosition(par3EntityPlayer.posX, par3EntityPlayer.posY, par3EntityPlayer.posZ):
    
               par2World.spawnEntityInWorld(creeper);
           }
       }
    }
    


  • C'est bien beau de mettre un setMaxDamage mais si tu ne damage pas l'item il sert à rien ^^



  • @'Plaigon':

    C'est bien beau de mettre un setMaxDamage mais si tu ne damage pas l'item il sert à rien ^^

    Comment sa ?



  • Au lieu de te précipiter pour répondre, tu ferais mieux de regarder des classes vanilla dans le même genre, tel que l'ItemBow ou encore l'ItemTool.



  • J'ai une erreur dans le code ,screen : http://prntscr.com/d49xac


  • Administrateurs

    oups, retires le .isRemote.



  • perso j'avais fait ça :: histoir que le creeper ne spawn pas dans un bloc

     public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_)
       {
           if (world.isRemote)
           {
               return true;
           }
           else
           {
               Block block = world.getBlock(x, y, z);
               x += Facing.offsetsXForSide[p_77648_7_];
               y += Facing.offsetsYForSide[p_77648_7_];
               z += Facing.offsetsZForSide[p_77648_7_];
               double d0 = 0.0D;
    
               if (p_77648_7_ == 1 && block.getRenderType() == 11)
               {
                   d0 = 0.5D;
               }
    
    EntityCreeper e = new EntityCreeper(world);
    e.setLocationAndAngles((double)x + 0.5D, (double)y + d0, (double)z + 0.5D, MathHelper.wrapAngleTo180_float(world.rand.nextFloat() * 360.0F), 0.0F);
    world.spawnEntityInWorld(e);
    
    stack.damageItem(1, player);
    System.out.println(stack.getItemDamage());
    
    }
    return true;
    }
    


  • je croit que c'est résolut 🙂 !!