Aides et trois Questions
-
@‘robin4002’:
Ça ne fonctionne pas surement car il faut mettre ça dans la classe principale, dans la fonction init et non n’importe où dans la classe de ton item.
Oui mais du coup comment le jeu sais que c’est mon épée qui faut enchante?
Envoyé de mon 6039Y en utilisant Tapatalk
-
Tu crées un nouvel ItemStack qui contient ton épée à enchanter dedans. Puis en second lieu tu ajoutes un enchantement fire aspect à cet itemstack. Et enfin tu dis que ce craft te donne cet itemstack. Donc le jeu saura très bien que c’est cet itemstack à craft, avec cet enchantement dessus, et pas n’importe quel autre.
-
Re bonjour j’ai eu un problème avec le pré-enchantement… sa crash quand je créer l’item ^^
le code l’item:ItemStack swordEnchant = new ItemStack(ItemMod.lava_sword, 1); swordEnchant.addEnchantment(Enchantment.fireAspect, 10);Et celui du craft:
GameRegistry.addRecipe(new ItemStack(ItemMod.swordEnchant, 1), new Object []{" F ", " F ", " S ", Character.valueOf('F'), ItemMod.fire_ingot, Character.valueOf('S'), ItemMod.stick_iron});merci de votre aide
-
Donne le code de l’item
avant essaye sa dans le craft
GameRegistry.addRecipe(new ItemStack(ItemMod.swordEnchante, 1), new Object[] { "XSX", "XSX", "XFX", Character.valueOf('F'), ItemsMod.fire_ingot, Character.valueOf('S'), new ItemStack(ItemMod.stick_iron)}); -
@‘amigo127’:
Donne le code de l’item
avant essaye sa dans le craft
GameRegistry.addRecipe(new ItemStack(ItemMod.swordEnchante, 1), new Object[] { "XSX", "XSX", "XFX", Character.valueOf('F'), ItemsMod.fire_ingot, Character.valueOf('S'), new ItemStack(ItemMod.stick_iron)});l’item marche très bien car avant que je créer l’item stack sa marchais
-
envoi tes sources via médiafire
-
@‘amigo127’:
envoi tes sources via médiafire
Mes sources ? Ta ce qui te faut là
Envoyé de mon 6039Y en utilisant Tapatalk
-
Tu crées un stack que tu enchantes, mais le problème est que tu utilises un autre stack dans le GameRegistry, il faut que tu prenne le même. Et ça crash ? Enléves les \ devant les ".
Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk
-
@‘AymericRed’:
Tu crées un stack que tu enchantes, mais le problème est que tu utilises un autre stack dans le GameRegistry, il faut que tu prenne le même. Et ça crash ? Enléves les \ devant les ".
Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk
J’utilise le même et les \ sont des () dans mon code alors où est le problème ?
Envoyé de mon 6039Y en utilisant Tapatalk
-
Non tu fais new ItemStack à chaque fois.
Et pourquoi t’a des () autour de tes lettres pour le craft ?Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk
-
alors j’ai pas suivie le sujet mais moi de mon coté j’ai fais sa
public void onUpdate(ItemStack stack, World world, Entity entity, int par4, boolean par5) { super.onUpdate(stack, world, entity, par4, par5); if (stack.isItemEnchanted() == false) { stack.addEnchantment(enderdeath.StarsPower, 1); super.onUpdate(stack, world, entity, par4, par5); } }elle vérifie si l’item est enchant et si l’item est pas enchant il l’enchant
Edit:faut méttre sa dans la classe de l’item -
Ou sinon avec un event déclenché lors du craft (je sais plus son nom), je pense que c’est plus propre.
-
A la limite, tu pourrais procéder avec cet event :
@SubscribeEvent public void onItemCrafted(PlayerEvent.ItemCraftedEvent e) { if(e.crafting != null && e.crafting.getItem().equals(Items.wooden_sword))//Change par ton item { e.crafting.addEnchantment(Enchantment.fireAspect, 5); } }A enregistrer sur le bus FML, mais l’enchantement n’apparaîtra qu’au moment où tu as sélectionné ton item crafté.
-
@‘AymericRed’:
Ou sinon avec un event déclenché lors du craft (je sais plus son nom), je pense que c’est plus propre.
Oui c’est plus propre que le code que j’ai fait il va faire plus lag que l’évent
-
@‘Plaigon’:
A la limite, tu pourrais procéder avec cet event :
@SubscribeEvent public void onItemCrafted(PlayerEvent.ItemCraftedEvent e) { if(e.crafting != null && e.crafting.getItem().equals(Items.wooden_sword))//Change par ton item { e.crafting.addEnchantment(Enchantment.fireAspect, 5); } }A enregistrer sur le bus FML, mais l’enchantement n’apparaîtra qu’au moment où tu as sélectionné ton item crafté.
C’est où le bus FML (peut-être évident pour vs mais pas pour moi…)
Envoyé de mon 6039Y en utilisant Tapatalk
-
FMLCommonHandler.instance.bus()
-
@‘purplewarrior65’:
(peut-être évident pour vs mais pas pour moi…)
Lol, j’aime bien la remarque suivi des trois petits points xD
Tkt t’y arriveras une fois que tu accumuleras suffisamment d’expérience autant en doc forge, qu’en java
En gros chaque event a besoin d’être enregistré. Tu regardes le package de l’import de l’event si il contient un début comme cpw.fm.blabla, c’est qu’il doit être enregistré dans la méthode init de ta Main class avec la méthode suivante : [font=monospaceFMLCommonHandler][font=monospace.][font=monospaceinstance]font=monospace.[font=monospacebus]font=monospace.[font=monospaceregister][font=monospace(][font=monospacenew] [font=monospaceClasseAvecTousVosEvent]font=monospace);
Sinon si l’import de l’event contient un minecraftforge dedans, c’est à enregistrer avec l’autre bus. Donc avec une méthode qui ressemble à ça :
[font=monospaceMinecraftForge][font=monospace.][font=monospaceEVENT_BUS][font=monospace.][font=monospaceregister][font=monospace(][font=monospacenew] [font=monospaceClasseAvecTousVosEvent]font=monospace);[font=ArialVoilli voilou pour l’explication ^^. Si tu ne comprends toujours pas, regarde ce tuto sur les events en 1.7x]
-
@‘SCAREX’:
FMLCommonHandler.instance.bus()
Euuuh désolé je comprend pas trop c’est dans quelle package et quelle class?svp
Envoyé de mon 6039Y en utilisant Tapatalk
-
Plaigon t’as indirectement donné la réponse :
@‘Plaigon’:Voilli voilou pour l’explication ^^. Si tu ne comprends toujours pas, regarde ce tuto sur les events en 1.7x
-
C’est vrai, j’ai fait les deux : explication et réponse.
Après je pense qu’il comprendra …
Les events, c’est loin d’être compliqué :3 et puis ça serait pas mal que ce sujet ne s’étende pas non plus sur 4 pages x)