Résolu Masquer la barre d'expérience, mais en afficher le total
-
Bonjour à tous !
Je rencontre un problème suite à ma tentative d’affichage du level d’expérience que nous avons,
Je m’explique !
J’ai masqué la barre d’Expérience mais le problème c’est que je voudrais afficher le total de niveau d’expérience que j’ai vous savez le petit chiffre au dessus de la barre ?
Le problème c’est que quand je cancel l’event de la barre d’XP elle masque aussi mon petit chiffre que j’ai affiché indépendament !
Voici la classe de l’évent
package fr.zeamateis.supermario64.events; import net.minecraft.client.gui.Gui; import net.minecraft.util.MathHelper; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; public class GameOverlayEvent extends Gui { @SubscribeEvent(priority = EventPriority.NORMAL) public void drawCoinOnTopScreen(RenderGameOverlayEvent.Post event) { String money = "" + FMLClientHandler.instance().getClient().thePlayer.experience; if(event.isCancelable() || event.type != ElementType.EXPERIENCE) { return; } // CODE ICI int x = MathHelper.floor_double(FMLClientHandler.instance().getClient().thePlayer.posX); int z = MathHelper.floor_double(FMLClientHandler.instance().getClient().thePlayer.posZ); // GuiIngame FMLClientHandler.instance().getClient().fontRenderer.drawStringWithShadow(money, 5, 15, 0xffffff); } @SubscribeEvent public void maskXpBar(RenderGameOverlayEvent.Pre event) { if(event.type == ElementType.EXPERIENCE) { event.setCanceled(true); } } }
Si il n’est pas possible de faire comme ça je comprends, mais il y aurais une autre solution dans ce cas ?
Du genre superposer un Gui sur le GuiIngame ? Pour que j’affiche mon chiffre ?Je prends tout les réponses et aides que vous me tendrez !
-
renseigne toi au niveau du créatif, si tu fais /xp en étant en créatif tu vois tout de même les levels mais pas la barre je crois
-
Non ça c’est juste pour give de l’XP
-
Enlève la fonction ?
if(event.isCancelable() || event.type != ElementType.EXPERIENCE) { return; }
-
ça pourrait marcher mais j’ai un bug d’affichage au niveau de la barre de faim
Code:
:::
package fr.zeamateis.supermario64.events; import net.minecraft.client.gui.Gui; import net.minecraft.util.MathHelper; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; public class GameOverlayEvent extends Gui { @SubscribeEvent(priority = EventPriority.NORMAL) public void drawCoinOnTopScreen(RenderGameOverlayEvent.Post event) { String money = "" + FMLClientHandler.instance().getClient().thePlayer.experienceLevel; //CODE ICI int x = MathHelper.floor_double(FMLClientHandler.instance().getClient().thePlayer.posX); int z = MathHelper.floor_double(FMLClientHandler.instance().getClient().thePlayer.posZ); //GuiIngame FMLClientHandler.instance().getClient().fontRenderer.drawStringWithShadow(money, 5, 15, 0xffffff); } @SubscribeEvent public void maskXpBar(RenderGameOverlayEvent.Pre event) { if(event.type == ElementType.EXPERIENCE) { event.setCanceled(true); } } }
:::
Screen du bug:
:::
::: -
RenderGameOverlayEvent.Post
->
RenderGameOverlayEvent.Text
? -
Ahhh ! Nickel c’est bon !
Mais pour savoir que fait ce “sous-event” Text ? Histoire que je me couche moins con ?
-
Il permet de draw plus simplement du texte, d’ailleurs tu pourrai l’utiliser :
https://github.com/FFMT/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotechmod/ultimategravisuite/client/UGSClientEventHandler.java#L97 -
Ah oui ! Pour mes blocs avec les petits personnages !