Résolu Problème de Barre d'énergie
-
Bonjour !,
J’ai un petit problème : j’ai créé une variable (un double) qui stocke un nombre a virgule pour l’affichage de la barre d’énergie de mon épée électrique (la barre d’énergie = barre de durabilité)@Override public double getDurabilityForDisplay(ItemStack stack) { return energybar; // il faut un nombre compris entre 0 et 1 } @Override public boolean showDurabilityBar(ItemStack stack) { return true; //Le problème étant que la barre de vie est commune (= si je prends une épée qui est pleine d'énergie ,il y aura un interférence et toutes les épées que j'ai dans mon inventaire auront la barre de vie de l'épée la plus récente }
le problème est que la variable est réinitialisé a 0 a chaque fois que je lance mon minecraft et toutes les épées que j’ai dans mon inventaire on la barre de vie de l’épée la plus récente !
HELP !
-
Salut,
Il faudrait plutôt utiliser un tag nbt pour avoir de la persistance. -
Je sais mais j’ai le problème de la barre de vie : “[font=monospace/Le problème étant que la barre de vie est commune (= si je prends une épée qui est pleine d’énergie ,il y aura un interférence et toutes les épées que j’ai dans mon inventaire auront la barre de vie de l’épée la plus récente]”
-
Je n’ai pas vraiment compris ton message. Mais je suspecte que tu ais une variable static là-dedans.
-
@Override public double getDurabilityForDisplay(ItemStack stack) { return stack.getTagCompound().getDouble("energybar1"); } @Override public boolean showDurabilityBar(ItemStack stack) { return true; }
j’ai un crash a cause “return stack.getTagCompound().getDouble(“energybar1”);”
-
stack.getTagCompound() renvoies null par défaut.
Il faut d’abord l’initialiser.if(!stack.hasTagCompound()) { stack.setTagCompound(new NBTTagCompound()); }
-
J’avais oublié ici …. Merci !