Résolu Ajouter effet à un item
-
Bonjour,
J’ai crée mon item et j’aimerais savoir comment serait-il possible de faire lorsque l’on effectue un clic de souris sur l’item on ai un effet de potion.
J’aimerais également savoir comment définir la durabilité de l’item.Merci d’avance.
-
Plusieurs possibilités s’offre à toi selon comment tu veux le faire:
/** * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return * True if something happen and false if it don't. This is for ITEMS, not BLOCKS */ public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { return false; } /** * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer */ public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { return stack; } public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) { return stack; }
-
Pour la durabilité, il faut que tu mettes ça dans ton constructeur :
this.setMaxDamage(int);
-
Merci parfait pour l’effet de soin.
Par contre le “setMaxDamage” ne semble pas fonctionner. J’ai beau l’utilisé il ne se casse pas.
Avez vous une solution ? -
Il faut faire un stack.damageItem(entity, 1) lorsque tu l’utilises.
-
@‘robin4002’:
Il faut faire un stack.damageItem(entity, 1) lorsque tu l’utilises.
Stack et entity ne semblent pas être reconnu : stack cannot be resolved or is not a field
-
Non mais il faut le mettre au même endroit que là où tu fais l’effet …
Donc soit dans la fonction onItemUse soit onItemRightClick soit onEaten. Et après si besoin faut remplacer entity par player. -
@‘robin4002’:
Non mais il faut le mettre au même endroit que là où tu fais l’effet …
Donc soit dans la fonction onItemUse soit onItemRightClick soit onEaten. Et après si besoin faut remplacer entity par player.JJ’ai mis ça : stack.damageItem(3, player);
Mais l’item ne s’use pas. (j’ai inversé la valeur int et player car sinon ça affiche une erreur). -
Possible, je ne connais par cœur toutes les fonctions.
Par contre ça devrait fonctionner, les items de Minecraft utilise la même chose, c’est étrange.
Tu as bien mit la fonction this.setMaxDamage(int); dans le constructeur ? -
@‘robin4002’:
Possible, je ne connais par cœur toutes les fonctions.
Par contre ça devrait fonctionner, les items de Minecraft utilise la même chose, c’est étrange.
Tu as bien mit la fonction this.setMaxDamage(int); dans le constructeur ?J’avais oublié merci bien