Un item mangeable !
-
public static void register() { GameRegistry.registerItem(dinomeat, "dinomeat"); GameRegistry.registerItem(meatzoic, "meatzoic"); GameRegistry.addSmelting(Items.meatEpanterias, new ItemStack(Items.dinomeat), 0.1f); }error:Multiple markers at this line
- meatEpanterias cannot be resolved or is
not a field
- dinomeat cannot be resolved or is not a
fieldJe comprends rien à l’anglais, je sais même pas si c’est ça. Vu que tu dois savoir, tu veux pas vite fait m’expliquer?…
-
Bah après c’est sûr que si on ne connaît pas le Java en + de ne pas savoir traduire la simple petite phrase d’erreur en anglais, tu ne t’en sortiras jamais pour ton mod

En gros tes variables meatEpanterias et dinomeat ne sont pas définies. -
C’est à dire? Je dois les définir comment? Je te rappelle que je suis nouveau ^^'. Je sais pas tout. Parce que mes deux variables sont déjà définies pour une chose, mais je fais comment pour les définir en combustible et en résultat de combustible?…
Et le java j’apprends mais ça met du temps. Quand tu as commencé tu devais pas aller loin toi non plus. Il y a une semaine je ne savais rien du tout… -
Pas définies dans la classe Items, il faut que tu changes “Items” par la classe où tu les as définis
-
GameRegistry.addSmelting(ItemFood.meatEpanterias, new ItemStack(ItemFood.dinomeat), 0.1f);
ça ne change rien j’ai toujours les mêmes erreurs :/…
-
As-tu importé ta classe ItemFood, et les variables sont-elles vraiment dedans avec la même orthographe ?
-
Tout y est:
package organisation; import fr.minecraftforgefrance.modzoic.common.Modzoic; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.registry.GameRegistry; public class dinomeat extends ItemFood { public dinomeat(int gigot, float saturation, boolean wolf) { super(gigot, saturation, wolf); // TODO Auto-generated constructor stub this.setUnlocalizedName("dinomeat"); this.maxStackSize = 64; } public static Item dinomeat, meatzoic; public static void init() { dinomeat = new dinomeat(18, 0.8F, false).setUnlocalizedName("dinomeat").setCreativeTab(CreativeTabs.tabFood); meatzoic = new meatzoic(10, 0.5F, true).setUnlocalizedName("meatzoic").setCreativeTab(CreativeTabs.tabFood); } public static void register() { GameRegistry.registerItem(dinomeat, "dinomeat"); GameRegistry.registerItem(meatzoic, "meatzoic"); } public static void registerRenders() { } public static void registerRender() { Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(dinomeat, 0, new ModelResourceLocation("modzoic" + ":dinomeat", "inventory")); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(meatzoic, 0, new ModelResourceLocation("modzoic" + ":meatzoic", "inventory")); GameRegistry.addSmelting(ItemFood.meatEpanterias, new ItemStack(ItemFood.dinomeat), 0.1f); } }et pareil dans les autres classes. Tout marche bien sauf cette ligne depuis que je l’ai mise. Et les deux items sont comestibles en jeu et tout.
-
Tu as été le trouver où le ItemFood, c’est une classe vanilla, ça m’étonnerait que tu y trouve les déclarations de tes items. Et aussi, si tu mets cette ligne dans ta fonction de rendu (uniquement client) ça va pas marcher…
-
Tu as été le trouver où le ItemFood, c’est une classe vanilla, ça m’étonnerait que tu y trouve les déclarations de tes items. –> je comprends pas grand chose à ce que tu viens de me dire. De quoi ça t’étonnerais que j’y trouve les déclarations de mes items?
Et aussi, si tu mets cette ligne dans ta fonction de rendu (uniquement client) ça va pas marcher… --> c’est à dire? Pas compris non plus. Je suis encore tout nouveau je débute, donc je fais comme je peux et je comprends pas tout. Mais je m’améliore rapidement.
Sinon j’avais mis ça dans public static void register() mais je l’ai r’enlevé en voyant que ça marchait pas et j’ai oublié de le remettre pour le c/c:GameRegistry.addSmelting(Items.meatEpanterias, new ItemStack(Items.dinomeat), 0.1f);
Personne pour m’aider :/? Je suis vraiment coincé! J’aimerai juste au moins savoir si c’est la bonne commande!
-
Il faut que tu remplaces le “Items” par la classe où tu as “public static Item meatEpanterias;” (dans ce cas présent, Modzoic).
Et ce que je voulais dire c’est que si tu met ça avec le rendu, ça ne sera pas lu pas le serveur de Minecraft (donc la recette ne marchera pas) -
Et ce que je voulais dire c’est que si tu met ça avec le rendu, ça ne sera pas lu pas le serveur de Minecraft (donc la recette ne marchera pas) –> du coup je le mets où?
Et GameRegistry.addSmelting(Modzoic.meatEpanterias, new ItemStack(dinomeat.dinomeat), 0.1f); bug sur le mot souligné et a prit le mot précédent pour l’item alors que c’est la classe :/.
Merci sinon de m’aider
-
Du coup tu le mets dans ta fonction register, tout simplement ^^
Si tu utilise quelque chose dans la même classe que celle où il est déclaré, tu n’as pas besoin de mettre le nom de la classe, donc dinomeat.dinomeat devient dinomeat -
public static void register()
{
GameRegistry.registerItem(dinomeat, “dinomeat”);
GameRegistry.registerItem(meatzoic, “meatzoic”);
GameRegistry.addSmelting(Modzoic.meatEpanterias, new ItemStack(dinomeat), 0.1f);
}là c’est tout bon :)?
Perso sur le jeu ça marche, je cherche surtout à savoir si ça restera quand je mettrais le mod en public
-
Oui là tout est bon. Mais après je te conseille d’utiliser la manière du tuto pour enregistrer tes items, tu te mélangeras moins ^^
-
Bonjour,
J’ai créé un itemFood à l’aide des metadatas, j’ai donc douze objets sur une seule ID.
Mes douze items sont bien sur mon serveur et je peux les manger sans soucis.J’ai juste un problème avec les metadatas : je souhaite donc avoir les arguments de la méthode** ([font=monospacefaimCombl][font=monospaceé][font=monospacee][font=monospace,] [font=monospaceSaturation][font=monospace,] **[font=monospaceNourritureDesLoups) différents pour chaque metadatas de cet item : ]
[color=#000000Fruits ]= new Fruits(faimComblée, Saturation, NourritureDesLoups).setUnlocalizedName(“fruit”)
[color=#666600J’ai une classe “Fruit” avec les codes pour les metadatas et j’aimerai faire quelque chose dans le genre : ]
[color=#666600Pour mon item: avec metadata alors, je donne faimCombl]ée = 4, [color=#000000Saturation = 4, NourritureDesLoups = false; ensuite]
pour mon item: avec metadata 2 alors, je donne [color=#000000faimCombl]ée = 6, [color=#000000Saturation = 3, NourritureDesLoups = true; etc… etc … etc …]
[color=#000000pour m]on item: avec metadata 3 alors, je donne [color=#000000faimCombl]ée = 6, [color=#000000Saturation = 3, NourritureDesLoups = true;]Si besoin je peux vous donner mes classes.
Je suis novice sur Java, mais j’ai déjà utilisé d’autres langages.Merci, pour l’aide.

-
Salut,
Pour la nourriture pour les loups ça ne va pas être possible comme la méthode isWolfsFavoriteMeat() n’a ni le metadata ni l’item stack en argument.
Donc il te faut au moins deux classes.Pour la fin et la saturation il y a ces deux fonctions dans la classe ItemFood :
public int func_150905_g(ItemStack stack) { return this.healAmount; } public float func_150906_h(ItemStack stack) { return this.saturationModifier; }Donc tu as juste à les outrepasser dans ta classe en changeant la valeur en fonction du metadata :
public int func_150905_g(ItemStack stack) { switch(stack.getItemDamage()) { case 0: return 4; case 1: return 6; // etc default : return 0; } } public float func_150906_h(ItemStack stack) { switch(stack.getItemDamage()) { case 0: return 4; case 1: return 3; // etc default : return 0; } } -
@‘robin4002’:
Salut,
Pour la nourriture pour les loups ça ne va pas être possible comme la méthode isWolfsFavoriteMeat() n’a ni le metadata ni l’item stack en argument.
Donc il te faut au moins deux classes.Pour la fin et la saturation ….
Merci pour cette réponse très rapide. Je l’ai testé hier soir elle marche très bien pour moi.
j’espère que ma question et ta réponse sera utile si quelqu’un a le même problème que moiEncore merci.
-
Sinon via l’event EntityInteractEvent, il peut également check le metadata, donc faire en sorte de n’utiliser qu’une seule classe.
-
Bien le bonjour,
J’ai créer dans mon petit mod une salade de légume mais le problème c’est qu’il faut un bol pour le crafter, et quand on le mange, le bol DISPARAÎT A TOUT JAMAIS dans le pitit estomac du joueur -_-'…
Alors j’aimeras savoir : Est-il possible de faire en sorte que quand mange la délicieuse salade, le bol reviens dans la barre d’inventaire du joueur ?Voilà…
J’espère recevoir une réponse rapidement…
Au revoir :-3
-
Salut, tu peux t’inspirer du code contenu dans la délicieuse classe ItemSoup !