Résolu Ajouter des effets d'enchantement
-
Bonjour,
je voulais savoir s’il était possible de rajouter des effets d’enchantement directement sur un item :
Par exemple qu’une épée ait le pouvoir d’enflammer les ennemis par défaut, ou qu’une pioche ait
le pouvoir fortune I par défaut (sans avoir l’aura).
J’ai trouvé la fonction pour ajouter des effets de potions, mais pas d’enchantement.Merci d’avance.
-
Regarde le code de l’enchantement et regarde la méthode pour le fortune et tu l’ajoute sur ton item. Je regarde ça quand je rentre
-
Regarde le tutoriel sur les outils de la 1.7. Tu as la méthode pour faire une épée qui aurais Fire Aspect.
-
@‘Superloup10’:
Regarde le tutoriel sur les outils de la 1.7. Tu as la méthode pour faire une épée qui aurais Fire Aspect.
J’ai trop d’erreur avec ce tutoriel malgré les imports, Eclipse ne reconnait pas les NBTTags et quelques autres trucs…
Mais sinon il n’y a pas un moyen pour dire directement à l’épée : “tu auras les effets de tel enchantement” ?
Parce que re-coder les effets des enchantements existant, c’est loin loin d’être à mon niveau. -
-
En effet il n’y a pas d’erreur avec ces codes, mais ça n’influe absolument pas l’item que j’ai remplacé ingame.
-
ça marche que pour le craft. Si tu veux aussi le faire quand on prend dans un onglet créatif :
@SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tabs, List list) { ItemStack itemenchante = new ItemStack(this, 1, 0); itemenchante.addEnchantment(Enchantment.fireAspect, 5); list.add(itemenchante); }
À mettre dans la classe de l’item en question.
-
Merci pour toutes ces aides, malheureusement, toujours pas.
Je comprends pas où j’aurai pu faire une erreur :La classe de mon item :
:::package wwrp.Items; import java.util.List; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.enchantment.Enchantment; import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; public class ItemEtincellimeSword extends ItemSword { public ItemEtincellimeSword(ToolMaterial material) { super(material); } @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tabs, List list) { ItemStack etincellimeswordenchant = new ItemStack(this, 1, 0); etincellimeswordenchant.addEnchantment(Enchantment.fireAspect, 5); list.add(etincellimeswordenchant); } }
:::
L’initialisation : :::
etincellimeSword = new ItemEtincellimeSword(etincellimeMaterial).setUnlocalizedName("etincellimeSword").setCreativeTab(wwrpTab2).setTextureName(modid + ":" + "swordEtincellime"); GameRegistry.registerItem(etincellimeSword, "etincellimeSword");
:::
En jeu l’épée ne porte ni le nom ni l’effet de l’enchantement.
**EDIT : ** J’ai trouvé une méthode quasi-similaire qui me permet d’enflammer les mobs :
public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase par2EntityLiving, EntityLivingBase par3EntityLiving) { par2EntityLiving.setFire(2); par1ItemStack.damageItem(1, par3EntityLiving); return true; }
%(#FF4500)[ Problème semi-résolu étant donné qu’il ne s’agit pas réellement de la question, et qu’il me reste encore à trouver pour ma pioche fortune I par défaut. ]
-
Étrange ça, je vais regardé de mon côté peut être que la méthode ne fonctionne plus en 1.7.
ÉDIT : ça fonctionne très bien :
-
Ca ne fonctionne pas chez moi, je sais pas pourquoi.
Tant pis, merci quand même ! -
Tu as give l’item avec /give ou tu l’as prit depuis l’inventaire créatif ?
-
Depuis l’inventaire créatif
-
ça c’est pas normal, tu peux m’envoyer ton code ?
-
Je l’ai envoyé en page une ^^
http://www.minecraftforgefrance.fr/showthread.php?tid=807&pid=8923#pid8923 -
Ha oui j’avais oublié. C’est vraiment étrange
Essaye avec ça sinon :public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isCurrent) { if(!stack.isItemEnchanted()) { stack.addEnchantment(Enchantment.fortune, 1); } }
Dès que tu aura l’item dans l’inventaire il va s’enchanter.
-
Ca marche merci !