Forcée l'item stack d'une seul classe d'item



  • Bonjour j'ai crée un item pour forcée l'item stack des potion par 6 mais je ne vois pas comment faire avec un itemrightclick mais en suite je vois pas il faut faire un truc avec l'item stack

    Mes recherche:MFF,IronCraft, autre forum et dans la classe ItemStack



  • Rien compris, sois plus clair. Tu souhaites en gros que tes potions soient toujours par stack de 6 ? Si oui, pourquoi passer par l'intermédiaire d'un item, à la place de te servir d'un tick handler ?



  • @'Plaigon':

    Rien compris, sois plus clair. Tu souhaites en gros que tes potions soient toujours par stack de 6 ? Si oui, pourquoi passer par l'intermédiaire d'un item, à la place de te servir d'un tick handler ?

    Non je parle d'un item que quand tu fais click droit sur l'item sa stack toute sorte de potion en 6



  • En gros un rangeur de popo ? Ok je regarde et j'édite quand j'ai du nouveau à te proposer 😃



  • J'ai absolument rien compris, tu veux faire une sorte de sac à dos où tu peux ranger plusieurs potions ?



  • xD j'avoue que je esplique trés mal ce que je voudrais faire c'est que quand tu fait un clique droit avec un item tout les potion dans l'inventaire se stack par 6



  • J'ai toujours pas compris, tu veux que lorsqu'on lance une potion, ça en envoi 6 ?


  • Moddeurs confirmés Rédacteurs Administrateurs

    De ce que j'ai compris il veut un item, qui lorsqu'on fait un clic droit avec, les potions présentent dans l'inventaire de stack par 6.
    Ça doit être faisable avec une petite boucle for qui passe sur tous les items de l'inventaire.



  • @'robin4002':

    De ce que j'ai compris il veut un item, qui lorsqu'on fait un clic droit avec, les potions présentent dans l'inventaire de stack par 6.
    Ça doit être faisable avec une petite boucle for qui passe sur tous les items de l'inventaire.

    Voilà enfin quelqu'un qui me comprend
    je vais essaie sa



  • Le problème c'est que les potions ne se stackent pas, donc je crois que tu dois utiliser un ItemStackHolder



  • Et si dans la méthode init, on fait un Items.potion.setMaxStackSize(6);
    Sa ne pourrait pas marcher ?



  • A ce moment là ce sera pas déclenché lorsqu'on fait clique droit avec un item et ça peut poser des problèmes de compatibilité



  • Beh sinon on get toutes les instances d'itemstack de popo de l'inventaires du joueur, afin de tous les setMaxStackSize(6)….Je pense que ça marchera comme ça =)___--> Après test à l'instant, rajouter simplement ceci :
    Items.potionitem.setMaxStackSize(6);

    Dans ta méthode init de ta classe principale, fonctionne très bien, et te permet donc d'avoir n'importe quelle potions stackables par 6.

    Mais je n'ai toujours pas trop compris ton but, tu souhaites que les popo soit stackables de base par 6, ou lorsqu'un joueur fait clic droit ? Si c'est clic droit alors, onItemRightClick, boucle for de la taille du nombre de slots, et pour chaque slot tu check si il s'agit d'un itemstack de popo, si c'est le cas tu l'ajoutes à une arraylist d'itemstack ayant toutes tes instances d'itemstack de popo d'enregistrés dedans. Une fois la boucle for entièrement parcourue tu crées une petite fonction que t'appelles à la suite, qui contiendrait en argument ton arraylist <itemstack>tu la reparcours, et à chaque tour, tu fais un petit .getItem().setMaxStackSize(6), et tu t'arranges en calculant le nombre de popo dans l'inventaire du joueur pour tous les stacker à la suite par 6, dans l'inventaire du joueur. Si tu ne vois pas très bien, je te filerai un code demain ;)</itemstack>



  • Si tu veux faire cette technique, tu as juste à faire Items.potion.setMaaxStackSize(6) mais tu risques d'avoir des problèmes de compatibilité et ce ne sera pas quand tu feras clique droit

    PS : attention aux double posts


  • Moddeurs confirmés Rédacteurs Administrateurs

    Même pas besoin de faire un setMaxStackSize(6).

    Tu fais une boucle for sur tous les items de l'inventaire. à chaque fois que tu trouves une potion tu la retires et montes un compteur de 1. Si tu arrives à 6 au lieu de retirer l'item tu mets son stackSize sur 6. Les 6 potions seront alors stacké, le setMaxStackSize(1) de Minecraft n’empêche que l'utilisateur de les stacker manuellement, il n'empêche pas de faire stack.stackSize = 6;
    Dans le cas où on arrive pas à 6 il faut juste remettre la potion dans l'inventaire avec comme stackSize là où le compteur s'est arrêté.

    Le but c'est de créer un item qui permet de stacker par 6 les potions déjà présentes dans l'inventaire pour prendre moins de place, pas de les stacker tous le temps par 6. (en tout cas c'est ce que j'ai compris)



  • Ouais mais gare aux différents types de potion ! Si tu retires des popos de soin, ensuite de force, puis enfin de vitesse pour toutes les restacker sur une 6ème de poison, ça m'étonnerait que plaise au joueur o_O
    Après faut aussi penser au fait qu'elles peuvent être projectile ou pas….Je posterai un code demain, ou tout du moins un début, qui pourra l'aider, et si quelqu'un pourra l'optimiser ou mieux, en trouver la suite, je ne dirai pas non 😃



  • Merci à tout le monde  sa marche  🙂



  • Tu pourrais poster le code qui marche alors ? Car j'avais un bon début mais j'ai été pris de court du coup x)


Log in to reply