MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Modifier l'overlay (HUD) du jeu

    Planifier Épinglé Verrouillé Déplacé Les interfaces (GUI) et les container
    1.11.x
    64 Messages 13 Publieurs 17.0k Vues 6 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • AmaA Hors-ligne
      Ama
      dernière édition par

      Exemple sympa pour des mods rp

      Quand tu rentre dans une zone, une ville, etc, un texte s’affiche à l’écran puis disparaît en fondu. Tu le positionnes au milieu de l’écran toussa’ toussa’.

      Si je t'ai filé un coup de main n'oublie pas le + / -
      Par contre évite les demandes d'aides en MP, tu sera sympa'

      La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

      Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

      1 réponse Dernière réponse Répondre Citer 0
      • DeletedD Hors-ligne
        Deleted
        dernière édition par

        Très bonne idée ! Y’aurait plusieurs moyens de procéder, j’ai hâte de voir comment Aymeric va s’y prendre, si il accepte la demande bien sûr 😃

        1 réponse Dernière réponse Répondre Citer 0
        • AymericRedA Hors-ligne
          AymericRed
          dernière édition par

          Oh oui sympa comme idée, ça me permettra de voir comment faire un fondu j’ai jamais fait ça ^^

          EDIT : La question étant que je fais juste le rendu (ce qui touche au tuto) en expliquant le reste ou je mets aussi le reste avec tout le code, hum…

          Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

          AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

          Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
          Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

          1 réponse Dernière réponse Répondre Citer 0
          • AymericRedA Hors-ligne
            AymericRed
            dernière édition par

            Ajout d’une explication pour dessiner du texte.

            PS : J’ai pas oublié le bonus mais il faut que je trouve le temps de le faire.

            Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

            AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

            Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
            Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

            1 réponse Dernière réponse Répondre Citer 1
            • AymericRedA Hors-ligne
              AymericRed
              dernière édition par

              Petite correction dans l’explication pour dessiner du texte.
              Le bonus arrivera normalement début Août.

              Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

              AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

              Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
              Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

              1 réponse Dernière réponse Répondre Citer 0
              • CiolgamingC Hors-ligne
                Ciolgaming
                dernière édition par robin4002

                Comment afficher une image en 1.7.10 svp ??

                1 réponse Dernière réponse Répondre Citer 0
                • DeletedD Hors-ligne
                  Deleted
                  dernière édition par

                  Gui#drawTexturedModalRect

                  1 réponse Dernière réponse Répondre Citer 0
                  • ph1823P Hors-ligne
                    ph1823
                    dernière édition par

                    Plop, je sais pas si la qestion a était posé, en tout cas je ne l’ai pas vue, mais c’est aussi possible de faire l’HUD dans une classe à part et de faire new NomeLaClasse lors de l’event RenderGameOverlayEvent ? (d’ailleur c’est oblig’ d’avoir leRenderGameOverlayEvent.Post ou ca marche juste avec RenderGameOverlayEvent??)

                    Cordialement, le membre ayant le pseudo "ph1823"

                    Ma chaîne YouTube: https://www.youtube.com/c/ph1823
                    Mon Twitter : https://twitter.com/ph1823
                    Des jeux vidéo moin chers? Alors check ici : http://bit.ly/instaceph ou ici : http://bit.ly/g2aph

                    1 réponse Dernière réponse Répondre Citer 0
                    • DeletedD Hors-ligne
                      Deleted
                      dernière édition par

                      Tout est possible en programmation. Mais après il faut éviter de réaliser l’inutile quand on en a l’idée, telle qu’instancier une classe à chaque tick…
                      L’idée serait de créer une instance dans ta classe d’event, et que si cette instance n’est pas null dans l’event, alors tu appelles TaClasse#draw, afin que quelque chose soit rendu à l’écran.

                      1 réponse Dernière réponse Répondre Citer 1
                      • AymericRedA Hors-ligne
                        AymericRed
                        dernière édition par

                        Plaigon, l’homme plus rapide que son ombre ^^
                        Sinon oui c’est possible mais comme l’a dit Plaigon, c’est pas propre du tout donc suis ses conseils.
                        Et pour ton autre question, si tu utilises RenderGameOverlay au lieu de RenderGameOverlay.Post, ta fonction sera de mémoire appelée deux fois à chaque rendu ce qui est totalement inutile (ou sinon pas appellé du tout je suis plus sur).

                        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                        1 réponse Dernière réponse Répondre Citer 2
                        • CiolgamingC Hors-ligne
                          Ciolgaming
                          dernière édition par

                          Y aurait-il moyen de charger une image du web comme par exemple cette image qui montre la tete de son skin https://minotar.net/avatar/Ciolgaming

                          Merci de votre réponse

                          Bonne journée/soirée  🙂

                          1 réponse Dernière réponse Répondre Citer 0
                          • DeletedD Hors-ligne
                            Deleted
                            dernière édition par

                            Bonsoir,
                            pour cela il te faudra déployer un objet URLConnection pour open ton url, puis download l’image et la stocker dans un objet BufferedImage, à l’aide de la fonction ImageIO.read, si je me souviens bien.
                            A partir de là, le reste est enfantin, tu instancies une DynamicTexture, pour instancier enfin le ResourceLocation associé, puis le bind comme une image locale, bref, le reste pour draw est mentionné dans des dizaines de topics sur le fofo 😉

                            1 réponse Dernière réponse Répondre Citer 1
                            • L Hors-ligne
                              Le_Vrai_GG
                              dernière édition par Le_Vrai_GG

                              comment faire pour créer une classe seulement coté client?
                              parce que @EventBusSubscriber(modid=TutorielMod.MODID, value={Side.CLIENT}) n’est pas reconnu comme annotation

                              1 réponse Dernière réponse Répondre Citer 0
                              • Superloup10S Hors-ligne
                                Superloup10 Modérateurs
                                dernière édition par

                                Sans doute car tu es dans une version antérieure au tutoriel.

                                Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                                Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

                                L 1 réponse Dernière réponse Répondre Citer 0
                                • L Hors-ligne
                                  Le_Vrai_GG @Superloup10
                                  dernière édition par

                                  @Superloup10 je suis en 1.7.10

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • Superloup10S Hors-ligne
                                    Superloup10 Modérateurs
                                    dernière édition par

                                    Si tu cherches bien, tu trouveras plein de sujets qui ajoutent des choses côté client sans avoir cette annotation.

                                    Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                                    Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

                                    L 1 réponse Dernière réponse Répondre Citer 0
                                    • L Hors-ligne
                                      Le_Vrai_GG @Superloup10
                                      dernière édition par

                                      @Superloup10 j’ai pas trouvé tu peux me donner un exemple de tuto à voir ?

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • robin4002R Hors-ligne
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                        dernière édition par robin4002

                                        Le tutoriel sur les event de la 1.7.10 explique comment enregistrer un event en 1.7.10 : https://www.minecraftforgefrance.fr/topic/636/utiliser-les-événements

                                        L 1 réponse Dernière réponse Répondre Citer 0
                                        • L Hors-ligne
                                          Le_Vrai_GG @robin4002
                                          dernière édition par

                                          @robin4002 merci du coup il faut utiliser l’annotation @sideonly

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • L Hors-ligne
                                            Le_Vrai_GG
                                            dernière édition par Le_Vrai_GG

                                            bonjour à tous,
                                            mon HUD ne s’affiche pas est je ne comprend pas pourquoi (je suis en 1.7.10) quelqu’un pourrais m’aider?

                                            ma classe principale:

                                            /**
                                             * 
                                             */
                                            package ch.gonin.guillaume.zombiecubefree.common;
                                            
                                            
                                            import ch.gonin.guillaume.zombiecubefree.proxy.CommonProxy;
                                            import ch.gonin.guillaume.zombiecubefree.proxy.ClientProxy;
                                            import ch.gonin.guillaume.zombiecubefree.common.TilesEntity.TileEntityBlockTutorielTiles;
                                            import ch.gonin.guillaume.zombiecubefree.common.TilesEntity.TileEntityTele;
                                            import ch.gonin.guillaume.zombiecubefree.common.blocks.BlockMetadata;
                                            import ch.gonin.guillaume.zombiecubefree.common.blocks.BlockTutoriel;
                                            import ch.gonin.guillaume.zombiecubefree.common.blocks.BlockTutorielTiles;
                                            import ch.gonin.guillaume.zombiecubefree.common.blocks.Cuisiniere;
                                            import ch.gonin.guillaume.zombiecubefree.common.blocks.Tele;
                                            import ch.gonin.guillaume.zombiecubefree.common.gui.ZombieCubeFreeCreativeTabs;
                                            import ch.gonin.guillaume.zombiecubefree.common.items.CocktailMolotov;
                                            import ch.gonin.guillaume.zombiecubefree.common.items.ItemFireStick;
                                            import ch.gonin.guillaume.zombiecubefree.common.items.ItemGaz;
                                            import ch.gonin.guillaume.zombiecubefree.common.items.ItemShowInfo;
                                            import ch.gonin.guillaume.zombiecubefree.common.items.ItemShowMoney;
                                            import ch.gonin.guillaume.zombiecubefree.common.items.ItemTutoriel;
                                            import ch.gonin.guillaume.zombiecubefree.common.items.ItemblockMetadata;
                                            import ch.gonin.guillaume.zombiecubefree.common.packet.Handler;
                                            import ch.gonin.guillaume.zombiecubefree.common.packet.PacketMoney;
                                            import cpw.mods.fml.common.FMLCommonHandler;
                                            import cpw.mods.fml.common.Mod;
                                            import cpw.mods.fml.common.Mod.EventHandler;
                                            import cpw.mods.fml.common.Mod.Instance;
                                            import cpw.mods.fml.common.SidedProxy;
                                            import cpw.mods.fml.common.event.FMLInitializationEvent;
                                            import cpw.mods.fml.common.event.FMLPostInitializationEvent;
                                            import cpw.mods.fml.common.event.FMLPreInitializationEvent;
                                            import cpw.mods.fml.common.network.NetworkRegistry;
                                            import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
                                            import cpw.mods.fml.common.registry.GameRegistry;
                                            import cpw.mods.fml.relauncher.Side;
                                            import net.minecraft.block.Block;
                                            import net.minecraft.block.material.Material;
                                            import net.minecraft.creativetab.CreativeTabs;
                                            import net.minecraft.item.Item;
                                            import net.minecraftforge.common.MinecraftForge;
                                            
                                            @Mod(modid = "zombiecubefree", name = "Zombie Cube Free", version = "1.0.0")
                                            /**
                                             * @author Guillaume
                                             *
                                             */
                                            public class Main {
                                            
                                            	@Instance("zombiecubefree")
                                            	public static Main instance;
                                            	public static final String MODID = "zombiecubefree";
                                            
                                            	public static SimpleNetworkWrapper network;
                                            
                                            	@EventHandler
                                            
                                            	public void preInit(FMLPreInitializationEvent event)
                                            
                                            	{
                                            		blockTutoriel = new BlockTutoriel(Material.rock).setBlockName("blockTutoriel")
                                            				.setBlockTextureName(MODID + ":block_tutoriel").setCreativeTab(CreativeTabs.tabBlock)
                                            				.setCreativeTab(ZombieCubeFreeCreativeTabs);
                                            		GameRegistry.registerBlock(blockTutoriel, "block_tutoriel");
                                            		blockTutorielTiles = new BlockTutorielTiles(Material.rock).setCreativeTab(CreativeTabs.tabBlock)
                                            				.setBlockName("tutorielTiles").setBlockTextureName(MODID + ":block_tutoriel_tiles")
                                            				.setCreativeTab(ZombieCubeFreeCreativeTabs);
                                            		GameRegistry.registerBlock(blockTutorielTiles, "block_tutoriel_tiles");
                                            		blockMetadata = new BlockMetadata().setBlockName("blockMetadata").setHardness(1.5F).setResistance(10.0F)
                                            				.setCreativeTab(CreativeTabs.tabBlock).setCreativeTab(ZombieCubeFreeCreativeTabs);
                                            		GameRegistry.registerBlock(blockMetadata, ItemblockMetadata.class, "block_metadata");
                                            
                                            		itemTutoriel = new ItemTutoriel().setUnlocalizedName("itemTutoriel")
                                            				.setTextureName(Main.MODID + ":item_tutoriel").setCreativeTab(CreativeTabs.tabBlock)
                                            				.setCreativeTab(ZombieCubeFreeCreativeTabs);
                                            		GameRegistry.registerItem(itemTutoriel, "item_tutoriel");
                                            
                                            		cuisiniere = new Cuisiniere(Material.rock).setBlockName("cuisiniere").setCreativeTab(CreativeTabs.tabBlock)
                                            				.setCreativeTab(ZombieCubeFreeCreativeTabs);
                                            		GameRegistry.registerBlock(cuisiniere, "cuisiniere");
                                            		tele = new Tele(Material.rock).setBlockName("tele").setCreativeTab(CreativeTabs.tabBlock)
                                            				.setCreativeTab(ZombieCubeFreeCreativeTabs);
                                            		GameRegistry.registerBlock(tele, "tele");
                                            
                                            		itemShowInfo = new ItemShowInfo().setUnlocalizedName("itemShowInfo")
                                            				.setTextureName(Main.MODID + ":item_show_info").setCreativeTab(CreativeTabs.tabBlock)
                                            				.setCreativeTab(ZombieCubeFreeCreativeTabs);
                                            		GameRegistry.registerItem(itemShowInfo, "item_show_info");
                                            		gaz = new ItemGaz().setUnlocalizedName("gaz").setTextureName(Main.MODID + ":gaz")
                                            				.setCreativeTab(CreativeTabs.tabBlock).setCreativeTab(ZombieCubeFreeCreativeTabs);
                                            		GameRegistry.registerItem(gaz, "gaz");
                                            		itemShowMoney = new ItemShowMoney().setUnlocalizedName("itemShowMoney")
                                            				.setTextureName(Main.MODID + ":item_show_money").setCreativeTab(CreativeTabs.tabBlock)
                                            				.setCreativeTab(ZombieCubeFreeCreativeTabs);
                                            		GameRegistry.registerItem(itemShowMoney, "item_show_money");
                                            		fireStick = new ItemFireStick().setUnlocalizedName("fireStick")
                                            				.setTextureName(Main.MODID + ":fire_stick").setCreativeTab(CreativeTabs.tabBlock)
                                            				.setCreativeTab(ZombieCubeFreeCreativeTabs);
                                            		GameRegistry.registerItem(fireStick, "fire_stick");
                                            		cocktailMolotov = new CocktailMolotov().setUnlocalizedName("cocktailMolotov")
                                            				.setTextureName(Main.MODID + ":cocktail_molotov").setCreativeTab(CreativeTabs.tabBlock)
                                            				.setCreativeTab(ZombieCubeFreeCreativeTabs);
                                            		GameRegistry.registerItem(cocktailMolotov, "cocktail_molotov");
                                            
                                            		network = NetworkRegistry.INSTANCE.newSimpleChannel(MODID);
                                            		network.registerMessage(Handler.class, PacketMoney.class, 1, Side.CLIENT);
                                            	}
                                            
                                            	@SidedProxy(clientSide = "ch.gonin.guillaume.zombiecubefree.proxy.ClientProxy", serverSide = "ch.gonin.guillaume.zombiecubefree.proxy.CommonProxy")
                                            
                                            	public static CommonProxy proxy;
                                            
                                            	@EventHandler
                                            
                                            	public void init(FMLInitializationEvent event)
                                            
                                            	{
                                            		proxy.registerRender();
                                            		GameRegistry.registerTileEntity(TileEntityBlockTutorielTiles.class, MODID + ":blockTutorielTiles");
                                            		GameRegistry.registerTileEntity(TileEntityTele.class, MODID + ":tele");
                                            
                                            		FMLCommonHandler.instance().bus().register(new ch.gonin.guillaume.zombiecubefree.even.EventHandler());
                                            		MinecraftForge.EVENT_BUS.register(new ch.gonin.guillaume.zombiecubefree.even.EventHandler());
                                            	}
                                            
                                            	@EventHandler
                                            
                                            	public void postInit(FMLPostInitializationEvent event)
                                            
                                            	{
                                            	}
                                            
                                            	public static Block blockTutoriel;
                                            	public static Block blockTutorielTiles;
                                            	public static Block blockMetadata;
                                            
                                            	public static Item itemTutoriel;
                                            
                                            	public static Block cuisiniere;
                                            	public static Block tele;
                                            
                                            	public static Item itemShowInfo;
                                            	public static Item gaz;
                                            	public static Item itemShowMoney;
                                            	public static Item fireStick;
                                            	public static Item cocktailMolotov;
                                            
                                            	public static CreativeTabs ZombieCubeFreeCreativeTabs = new ZombieCubeFreeCreativeTabs("Zombie Cube Free");
                                            
                                            }
                                            

                                            celle de mon HUD:

                                            package ch.gonin.guillaume.zombiecubefree.even;
                                            
                                            import org.lwjgl.util.Color;
                                            
                                            import ch.gonin.guillaume.zombiecubefree.common.Main;
                                            import ch.gonin.guillaume.zombiecubefree.common.autres.ExtendedProperties;
                                            import cpw.mods.fml.common.eventhandler.SubscribeEvent;
                                            import cpw.mods.fml.relauncher.Side;
                                            import cpw.mods.fml.relauncher.SideOnly;
                                            import net.minecraft.client.Minecraft;
                                            import net.minecraft.client.gui.Gui;
                                            import net.minecraft.client.gui.ScaledResolution;
                                            import net.minecraft.entity.player.EntityPlayer;
                                            import net.minecraft.util.ResourceLocation;
                                            import net.minecraftforge.client.event.RenderGameOverlayEvent;
                                            import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
                                            
                                            @SideOnly(Side.CLIENT)
                                            public class EventHUD {
                                            
                                            	private static final ResourceLocation emptyLife = new ResourceLocation(Main.MODID, "textures/gui/emptylife.png");
                                            	private static final ResourceLocation fullLife = new ResourceLocation(Main.MODID, "textures/gui/fulllife.png");
                                            
                                            	public static final Minecraft MC = Minecraft.getMinecraft();
                                            
                                            	@SubscribeEvent
                                            	public static void renderGameOverlayPre(RenderGameOverlayEvent.Pre event)
                                            
                                            	{
                                            
                                            	}
                                            
                                            	@SubscribeEvent
                                            
                                            	public static void renderGameOverlayPost(RenderGameOverlayEvent.Post event, EntityPlayer player)
                                            
                                            	{
                                            		if (event.getPhase().equals(ElementType.ALL)) {
                                            
                                            			ExtendedProperties props = ExtendedProperties.get(player);
                                            			String s = "Argent :" + props.money + "$";
                                            
                                            			Gui.drawRect(MC.displayWidth - 5 - MC.fontRenderer.getStringWidth(s), 2, MC.displayWidth - 2,
                                            					4 + MC.fontRenderer.FONT_HEIGHT, Integer.MIN_VALUE);
                                            
                                            			MC.fontRenderer.drawString(s, MC.displayWidth - 3 - MC.fontRenderer.getStringWidth(s), 4,
                                            					255);
                                            			
                                            
                                            		}
                                            		// drawHealth(event.(), MC.player);
                                            
                                            		/*
                                            		 * String s = MC.getConnection().getPlayerInfoMap().size() + "/" +
                                            		 * MC.getConnection().currentServerMaxPlayers + " joueurs";
                                            		 * 
                                            		 * Gui.drawRect(width - 5 - MC.fontRendererObj.getStringWidth(s), 2, width - 2,
                                            		 * 4 + MC.fontRendererObj.FONT_HEIGHT, Integer.MIN_VALUE);
                                            		 * 
                                            		 * MC.fontRendererObj.drawString(s, width - 3 -
                                            		 * MC.fontRendererObj.getStringWidth(s), 4, Color.WHITE.getRGB());
                                            		 */
                                            
                                            	}
                                            
                                            }
                                            

                                            de mon extend propriété (pour la variable a afficher dans l’HUD):

                                            package ch.gonin.guillaume.zombiecubefree.common.autres;
                                            
                                            import ch.gonin.guillaume.zombiecubefree.proxy.CommonProxy;
                                            import ch.gonin.guillaume.zombiecubefree.common.Main;
                                            import ch.gonin.guillaume.zombiecubefree.common.packet.PacketMoney;
                                            import net.minecraft.entity.Entity;
                                            import net.minecraft.entity.player.EntityPlayer;
                                            import net.minecraft.entity.player.EntityPlayerMP;
                                            import net.minecraft.nbt.NBTTagCompound;
                                            import net.minecraft.world.World;
                                            import net.minecraftforge.common.IExtendedEntityProperties;
                                            
                                            public class ExtendedProperties implements IExtendedEntityProperties {
                                            
                                            	public final static String EXT_PROP_NAME = "ExtProp";
                                            
                                            	public final EntityPlayer player;
                                            
                                            	public long money;
                                            	public long maxMoney;
                                            
                                            	@Override
                                            	public void saveNBTData(NBTTagCompound compound) {
                                            		NBTTagCompound properties = new NBTTagCompound();
                                            
                                            		properties.setLong("Money", this.money);
                                            
                                            		properties.setLong("MaxMoney", this.maxMoney);
                                            
                                            		compound.setTag(EXT_PROP_NAME, properties);
                                            	}
                                            
                                            	@Override
                                            	public void loadNBTData(NBTTagCompound compound) {
                                            		NBTTagCompound properties = (NBTTagCompound) compound
                                            
                                            				.getTag(EXT_PROP_NAME);
                                            
                                            		this.money = properties.getLong("Money");
                                            
                                            		this.maxMoney = properties.getLong("MaxMoney");
                                            	}
                                            
                                            	@Override
                                            	public void init(Entity entity, World world) {
                                            		// TODO Auto-generated method stub
                                            
                                            	}
                                            
                                            	public ExtendedProperties(EntityPlayer player) {
                                            
                                            		this.player = player;
                                            
                                            		this.money = 0;
                                            
                                            		this.maxMoney = 2147483645;
                                            
                                            	}
                                            
                                            	public static final void register(EntityPlayer player) {
                                            
                                            		player.registerExtendedProperties(ExtendedProperties.EXT_PROP_NAME,
                                            
                                            				new ExtendedProperties(player));
                                            
                                            	}
                                            
                                            	public static final ExtendedProperties get(EntityPlayer player) {
                                            
                                            		return (ExtendedProperties) player.getExtendedProperties(EXT_PROP_NAME);
                                            
                                            	}
                                            
                                            	public final void sync() {
                                            
                                            		PacketMoney packetMoney = new PacketMoney(this.maxMoney, this.money);
                                            
                                            		// La ligne suivante dépend de votre manière d'envoyer les packets. Celle-ci
                                            		// vient de mon mod, je ne la changerais pas car je ne peux l'appliquer à votre
                                            		// mod, mais elle reste bonne pour un exemple.
                                            		
                                            		Main.network.sendToServer(packetMoney);
                                            
                                            		if (!player.worldObj.isRemote) {
                                            
                                            			EntityPlayerMP player1 = (EntityPlayerMP) player;
                                            
                                            			// Ici, même chose que précédemment, sauf que le packet est envoyé au player.
                                            
                                            			Main.network.sendTo(packetMoney, player1);
                                            
                                            		}
                                            
                                            	}
                                            
                                            	private static String getSaveKey(EntityPlayer player) {
                                            
                                            		return player.getDisplayName() + ":" + EXT_PROP_NAME;
                                            
                                            	}
                                            
                                            	public static void saveProxyData(EntityPlayer player) {
                                            
                                            		ExtendedProperties playerData = ExtendedProperties.get(player);
                                            
                                            		NBTTagCompound savedData = new NBTTagCompound();
                                            
                                            		playerData.saveNBTData(savedData);
                                            
                                            		CommonProxy.storeEntityData(getSaveKey(player), savedData);
                                            
                                            	}
                                            
                                            	public static void loadProxyData(EntityPlayer player) {
                                            
                                            		ExtendedProperties playerData = ExtendedProperties.get(player);
                                            
                                            		NBTTagCompound savedData = CommonProxy
                                            
                                            				.getEntityData(getSaveKey(player));
                                            
                                            		if (savedData != null) {
                                            
                                            			playerData.loadNBTData(savedData);
                                            
                                            		}
                                            
                                            		playerData.sync();
                                            
                                            	}
                                            
                                            	public boolean pay(long amount) {
                                            
                                            		if (amount <= this.money) {
                                            
                                            			this.money -= amount;
                                            
                                            			this.sync();
                                            
                                            		} else {
                                            
                                            			return amount <= this.money;
                                            
                                            		}
                                            
                                            		return true;
                                            
                                            	}
                                            
                                            	public void addMoney(long amount) {
                                            
                                            		this.money += amount;
                                            
                                            		this.sync();
                                            
                                            	}
                                            
                                            	public long getMoney() {
                                            
                                            		return this.money;
                                            
                                            	}
                                            
                                            	public void setMoney(long newMoney) {
                                            
                                            		this.money = newMoney;
                                            
                                            		this.sync();
                                            
                                            	}
                                            }
                                            

                                            les deux de mon packet:

                                            package ch.gonin.guillaume.zombiecubefree.common.packet;
                                            
                                            import ch.gonin.guillaume.zombiecubefree.common.autres.ExtendedProperties;
                                            import cpw.mods.fml.common.network.simpleimpl.IMessage;
                                            import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
                                            import cpw.mods.fml.common.network.simpleimpl.MessageContext;
                                            import io.netty.buffer.ByteBuf;
                                            import io.netty.channel.ChannelHandlerContext;
                                            import net.minecraft.entity.player.EntityPlayer;
                                            
                                            public class PacketMoney implements IMessage {
                                            
                                            	public long maxMoney, Money;
                                            
                                            	public PacketMoney() {
                                            
                                            	}
                                            
                                            	public PacketMoney(long maxMoney, long money) {
                                            
                                            		this.maxMoney = maxMoney;
                                            
                                            		this.Money = money;
                                            
                                            	}
                                            
                                            	public void encodeInto(ChannelHandlerContext ctx, ByteBuf buffer) {
                                            
                                            		buffer.writeLong(maxMoney);
                                            
                                            		buffer.writeLong(Money);
                                            
                                            	}
                                            
                                            	public void decodeInto(ChannelHandlerContext ctx, ByteBuf buffer) {
                                            
                                            		this.maxMoney = buffer.readLong();
                                            
                                            		this.Money = buffer.readLong();
                                            
                                            	}
                                            
                                            	public void handleClientSide(EntityPlayer player) {
                                            
                                            		ExtendedProperties props = ExtendedProperties
                                            
                                            				.get(player);
                                            
                                            		props.maxMoney = this.maxMoney;
                                            
                                            		props.money = this.Money;
                                            
                                            	}
                                            
                                            	public void handleServerSide(EntityPlayer player) {
                                            
                                            		ExtendedProperties props = ExtendedProperties
                                            
                                            				.get(player);
                                            
                                            		props.maxMoney = this.maxMoney;
                                            
                                            		props.money = this.Money;
                                            
                                            	}
                                            
                                            	@Override
                                            	public void fromBytes(ByteBuf buf) {
                                            		// TODO Auto-generated method stub
                                            		
                                            	}
                                            
                                            	@Override
                                            	public void toBytes(ByteBuf buf) {
                                            		// TODO Auto-generated method stub
                                            		
                                            	}
                                            
                                            }
                                            
                                            package ch.gonin.guillaume.zombiecubefree.common.packet;
                                            
                                            import cpw.mods.fml.common.network.simpleimpl.IMessage;
                                            import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
                                            import cpw.mods.fml.common.network.simpleimpl.MessageContext;
                                            
                                            public class Handler implements IMessageHandler <PacketMoney, PacketMoney>  {
                                            
                                            	@Override
                                            	public PacketMoney onMessage(PacketMoney message, MessageContext ctx) {
                                            		// TODO Auto-generated method stub
                                            		return null;
                                            	}	
                                            }
                                            

                                            voilà merci si quelqu’un trouve

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 4 / 4
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB