Item utilisation Unique



  • Bonjour, heee  oui encore moi ^^

    j'ai crée un item qui quand on l'utilise nous donne un effet de nausée, mais j'aimerais que cet item se détruise quand on l'utilise et je ne vois pas comment faire si quelqu'un pourrait m'aider ^^


  • Correcteurs

    TonItemStack.stackSize–; dans ton Right Click de ton item (ou item use)



  • ItemFood, ItemBucketMilk, ItemEgg et tous les autres items qui contiennent la fonction onItemRightClick

    C'est pourtant pas compliqué de regarder ce qu'a déjà fait Mojang, tout ce passe dans onItemRightClick

    :::

    package net.minecraft.item;
    
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.init.Items;
    import net.minecraft.stats.StatList;
    import net.minecraft.world.World;
    
    public class ItemBucketMilk extends Item
    {
    private static final String __OBFID = "CL_00000048";
    
    public ItemBucketMilk()
    {
    this.setMaxStackSize(1);
    this.setCreativeTab(CreativeTabs.tabMisc);
    }
    
    /**
    * Called when the player finishes using this Item (E.g. finishes eating.). Not called when the player stops using
    * the Item before the action is complete.
    */
    public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityPlayer playerIn)
    {
    if (!playerIn.capabilities.isCreativeMode)
    {
    –stack.stackSize;
    }
    
    if (!worldIn.isRemote)
    {
    playerIn.curePotionEffects(stack);
    }
    
    playerIn.triggerAchievement(StatList.objectUseStats[Item.getIdFromItem(this)]);
    return stack.stackSize <= 0 ? new ItemStack(Items.bucket) : stack;
    }
    
    /**
    * How long it takes to use or consume an item
    */
    public int getMaxItemUseDuration(ItemStack stack)
    {
    return 32;
    }
    
    /**
    * returns the action that specifies what animation to play when the items is being used
    */
    public EnumAction getItemUseAction(ItemStack stack)
    {
    return EnumAction.DRINK;
    }
    
    /**
    * 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)
    {
    playerIn.setItemInUse(itemStackIn, this.getMaxItemUseDuration(itemStackIn));
    return itemStackIn;
    }
    }
    

    :::



  • @'DiabolicaTrix':

    TonItemStack.stackSize–; dans ton Right Click de ton item (ou item use)

    Merci, mais je comprend pas pourquoi sa ne marchait pas car je l'avais déjà mis dans mon right click je pense que mon jeu c'est taper un bug o_O


  • Correcteurs

    Regarde donc le message de ZeAmateis. Au pire aussi avec onItemUse.

    ÉDIT: je n'avais pas vu la balise. Je supprime le message ^^