Un item mangeable !
-
Oui, reprend la fonction onFoodEat et modifier les valeurs par ce que tu veux.
-
Je ne sais pas de fonction onFoodEat
-
essai ceci par exemple :
public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) { –stack.stackSize; player.addPotionEffect(new PotionEffect(Potion.moveSlowdown.getId(), 200, 0, true)); player.addPotionEffect(new PotionEffect(Potion.damageBoost.getId(), 200, 0, true)); return stack; } -
Il faut l’ajouter :
protected void onFoodEaten(ItemStack stack, World world, EntityPlayer player) { if (!world.isRemote) { player.addPotionEffect(new PotionEffect(id de la potion, durée en seconde * 20, amplifier)); player.addPotionEffect(new PotionEffect(deuxième id de la potion, durée en seconde * 20, amplifier)); } } -
Fonctionne très bien merci à vous !!!
Bizarre, je met la durée a 500 mais sa ne dure que 25s, il y a egalement le bruit qui ne s’active pas des le debut que l’on commence a manger.
-
Moi y a quand même quelque chose que je ne comprends pas avec forge (désolé du HS mais ca ne durera qu un message) pourquoi doit on mettre la condition du world. isRemote car là on dit si il n est pas en multi donc en solo alors il aura ses effets si il la mange mais quel intérêt quand on sera en multi ?
-
@‘Julot10085’:
Moi y a quand même quelque chose que je ne comprends pas avec forge (désolé du HS mais ca ne durera qu un message) pourquoi doit on mettre la condition du world. isRemote car là on dit si il n est pas en multi donc en solo alors il aura ses effets si il la mange mais quel intérêt quand on sera en multi ?
De toute facon mon mod est destinée a un serveur multijoueur …
Sinon problème regler pour le son mais par pour le temps de l’effet.
-
@‘Julot10085’:
Moi y a quand même quelque chose que je ne comprends pas avec forge (désolé du HS mais ca ne durera qu un message) pourquoi doit on mettre la condition du world. isRemote car là on dit si il n est pas en multi donc en solo alors il aura ses effets si il la mange mais quel intérêt quand on sera en multi ?
Voici la réponse de robin sur l’explication de “if (!world.isRemote)” :
@robin4002:world.isRemote -> monde client, il est sensé faire que le rendu, si tu fais des autres actions ça cause de problème de mauvaise valeur en client
!world.isRemote -> monde serveur, tout le reste. -
Je t’ai mit : durée en seconde * 20
Car le temps est exprimé en tick, il faut le multiplier par 20 si tu veux des secondes.@‘Julot10085’:
Moi y a quand même quelque chose que je ne comprends pas avec forge (désolé du HS mais ca ne durera qu un message) pourquoi doit on mettre la condition du world. isRemote car là on dit si il n est pas en multi donc en solo alors il aura ses effets si il la mange mais quel intérêt quand on sera en multi ?
Quand tu joue, tu as toujours deux mondes. world.isRemote, le monde de rendu et !world.isRemote, le monde qui gère le reste.
Quand tu joue sur un serveur, le serveur dédié s’occupe de !world.isRemote et ton client de world.isRemote. Quand tu joue en solo, ton jeu fait les deux (plus exactement le serveur intégré gère !world.isRemote). C’est pour ça que jouer sur un serveur demande moins de ressource. -
D accord et juste une dernière question :
-Est ce que cette condition est vraiment nécessaire le jeu ne détecte pas lui même que c est du code et non du rendu ? Je veux dire si on ignore cette ligne la nouvelle fonction OnFoodEaten marchera quand même ?Sinon quand on cree une nouvelle methode / fonction comme ci dessus par exemple on doit toujours mettre cette condition ou on peut s en passer ? Desolé pour ces questions que j aurais pu résoudre moi même mais etant donne que je n ai pas d ordinateur dispo chez moi ….
-
Si tu ne mets pas cette ligne ça va ajouter l’effet des deux côtés, dans ce cas là ce n’est pas très grave, par contre dans le cas d’un message de tchat par exemple, il s’affichera deux fois.
@‘Julot10085’:
Sinon quand on cree une nouvelle methode / fonction comme ci dessus par exemple on doit toujours mettre cette condition ou on peut s en passer ? Desolé pour ces questions que j aurais pu résoudre moi même mais etant donne que je n ai pas d ordinateur dispo chez moi ….
Ça dépend de ce que tu veux faire. Si c’est des méthodes qui agissent sur le rendu, non.
-
Bonjour, j’ai voulu ajouté le bruit de liquide sauf que cela ne marche pas et je ne sais pas pourquoi:
EDIT: problème résolu
-
Bonjour ! J’ai une erreur sur cette ligne sur .setPotionEffect :
fish = new ItemFish(7, 0.7F, false).setUnlocalizedName("fish").setTextureName(HSMOD.MODID + ":fish").setCreativeTab(HSMOD.HSCreativeTabs).setPotionEffect(Potion.moveSpeed.getId(), 30, 2, 1.0F);Pourtant, j’ai fais comme dit dans les commentaires et le tuto …
EDIT : L’erreur d’eclipse est :
The method setPotionEffect(String) in the type Item is not applicable for the arguments (int, int, int, float)Merci d’avance !
-
Ton Item n’est pas extends ItemFood ou il faut le cast à ItemFood
-
A la base j’allais demander de l’aide mais c’est bon.
Alors je dis juste Merci =D pour ce tuto!
-
Comme fait-on pour changer l’id d’un itemFood ? pareil que avec un item basique ou autrement ?
-
En 1.7 les id sont géré en interne. Pas besoin de s’en occuper.
-
d’acc.
-
Bonjour, j’ai deux items mangeables, et j’aimerai savoir si quelqu’un sait comment faire pour que l’un puisse être cuit dans un four et donne l’autre au bout. Je sais pas si vous m’avez suivi. Parce que j’ai cherché mais je n’ai trouvé aucun tutoriel là dessus :/…
-
