NBTTagCompound qui ne s'enregistre pas dans un ItemStack



  • Bonjour tout le monde
    Hé oui, il est vrai que désormais 99 % de mes post concernent les NBTTagCompound ^^
    Aujourd'hui j'ai tenté de créer un pistolet qui doit se recharger au bout d'un certain nombre de munitions tirée (ici 3). Une fois cette limite atteinte, je passe un boolean à false enregistré dans les tags de l'ItemStack, le seul problème c'est que si vous prenez après cela un autre même item, et que vous faites clic droit (juste une fois), ce-dernier aura aussi le même tag passé aussi à false.
    Je ne sais pas trop si j'ai été précis ^^'
    Le code en tout cas lui, devrait l'être

    Le code de mon item

    Merci d'avance =D


  • Administrateurs

    Car tu utilises private boolean isReloading; comme variable local à la classe. Cette variable ne devrait pas exister.
    if(!isReloading) -> tu remplaces par !stack.hasTagCompound() || !stack.getTagCompound().getBoolean("isReloading")



  • J'ai remplacé toutes mes variables isReloading par ce que tu m'as dit dans la méthode. Voici d'ailleurs ce à quoi elle ressemble désormais ^^

    Mais le problème persiste…


  • Administrateurs

    Pourtant ça ne devrait pas. Le second item contient-il le tag isReloading avec la valeur true ?



  • Je t'explique la scène :

    Je prend 3 pistolets après avoir généré une nouvelle map.
    Ensuite je clique droit 3 fois il me fait bien spawn 3 moutons, le 4ème clique ne fait rien car c'est le rechargement.
    Je m'empare ensuite de mon deuxième item qui est toujours sans le moindre tag, seulement je fais juste 1 seule fois clic droit il me consomme juste 1 munition, me fait rien spawn et puis à ce moment là son tag devient true, et ainsi de suite pour le troisième item….

    Tiens au cas où je te refile la classe de l'item 🙂


  • Administrateurs

    Faut ajouter des System.out.println(différent truc ici, mets les aussi à différent endroit, print la valeur du tag aussi …);



  • Ok je vais faire ça
    Mais c'est tout de même bizarre que ça marche nikel pour le premier item mais pas pour les autres.
    Mon code ne semblait pas faux pourtant o_O

    Voici ma version avec plus de logs

    Par-contre ça ne m'a pas du tout + aidé. Je ne comprends rien du tout c'est à croire que mon ItemStack ne retient pas la variable compound. Pourtant je la set bien , à plusieurs reprises même. Tu as sûrement déjà des items avec des NBTTagCompound en +.
    Y'en aurait-il sur le github de MFF ?