• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Rendu visuel joueur

    Sans suite
    1.7.10
    6
    18
    2895
    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.
    • S
      Sebenf0rce dernière édition par

      Bonjour,

      J’ai créé un mod permettant de modifier le rendu des joueurs (différent pour chaque) , cela fonctionne bien pour le joueur en question mais malheureusement le rendu s’applique également au autres joueur qu’il voit.
      En fait il applique son rendu personnel aux autres joueurs.
      Je passe par un event forge.
      D’où cela peut-il venir ?

      Merci d’avance.

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

        Sans ton code on peut difficile te dire pourquoi cela fait ça.
        Et où est la balise de version ?

        1 réponse Dernière réponse Répondre Citer 0
        • S
          Sebenf0rce dernière édition par

          @‘robin4002’:

          Sans ton code on peut difficile te dire pourquoi cela fait ça.
          Et où est la balise de version ?

          Oui le voici :

          Appel de mon event : ```java
          if(event.getSide() == Side.CLIENT)

          MinecraftForge.EVENT_BUS.register(new rendu());

          
          Et la classe de mon event :
          
          ```java
          public class rendu{
          
          @SubscribeEvent
          public void changementRendu(RenderPlayerEvent.Pre event) {
          //code de l'event
          }
          
          public static ThreadDownloadImageData downloadRendu(ResourceLocation p_110304_0_, String p_110304_1_)
              {
                  //téléchargement du rendu
                  }
          
                  return (ThreadDownloadImageData)object;
              }
          }
          
          
          1 réponse Dernière réponse Répondre Citer 0
          • Benjamin Loison
            Benjamin Loison dernière édition par

            “la balise de version ?”

            De plus je reconnais le code de Minecraft pour changer les skins hors dans les règles de ce forum on interdit cela, tu n’auras pas plus d’aide.

            >! Développeur de Altis-Life (Arma III) sur Minecraft !
            >! Site web     : https://lemnoslife.com

            1 réponse Dernière réponse Répondre Citer 0
            • DiabolicaTrix
              DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

              @Benjamin Loison Qu’est-ce qui te dit qu’il veut changer le skin? On peut faire beaucoup de choses avec le rendu. Après, j’avoue que le ResourceLocatio parle de lui-même.

              Sinon, tu vas devoir faire un Extended Entity Properties pour pouvoir faire ça individuellement pour chaque joueur.

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

                Aucun rapport avec l’Ext Prop…
                Y at-il selon toi besoin d’enregistrer un tag lorsqu on cherche à faire une action particulière selon le username du player ?!

                1 réponse Dernière réponse Répondre Citer 0
                • DiabolicaTrix
                  DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

                  Je n’ai jamais dit de sauvegarder quoi que ce soit. Je ne peux pas t’envoyer un lien car je suis sur mon mobile, mais je vais l’envoyer tout à l’heure.

                  EDIT: http://www.minecraftforgefrance.fr/showthread.php?tid=2620

                  Le EEP n’est pas utilisé pour sauvegarder, il est utilisé pour faire que chaque joueur a sa texture chargée.

                  1 réponse Dernière réponse Répondre Citer 0
                  • S
                    Sebenf0rce dernière édition par

                    J’ai essayé avec l’extended Entity Property mais le problème est toujours le même.
                    Me suis-je trompé ?
                    Voici ma nouvelle classe :

                    
                    public class rendu implements IExtendedEntityProperties {
                    
                    @SubscribeEvent
                    public void changementRendu(RenderPlayerEvent.Pre event) {
                    {
                    //code de l'event
                    }
                    
                    public static ThreadDownloadImageData downloadRendu(ResourceLocation p_110304_0_, String p_110304_1_)
                        {
                           //téléchargement du rendu
                        }
                    
                    @Override
                    public void saveNBTData(NBTTagCompound compound) {
                    // TODO Auto-generated method stub
                    
                    }
                    
                    @Override
                    public void loadNBTData(NBTTagCompound compound) {
                    // TODO Auto-generated method stub
                    
                    }
                    
                    @Override
                    public void init(Entity entity, World world) {
                    // TODO Auto-generated method stub
                    
                    }
                    
                    protected ResourceLocation getEntityTexture(EntityLiving living)
                    {
                    DataWatcher dw = living.getDataWatcher();
                           String texture = dw.getWatchableObjectString(20);
                    
                           return new ResourceLocation(texture);
                    }
                    }
                    
                    
                    1 réponse Dernière réponse Répondre Citer 0
                    • DiabolicaTrix
                      DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

                      Est-ce que tu le register? Est-ce que tu peux nous donner ta classe de rendu aussi?

                      1 réponse Dernière réponse Répondre Citer 0
                      • Folgansky
                        Folgansky Correcteurs dernière édition par

                        Je vais peut être dire une ânerie mais le fonctionnement du datawatcher ne serait pas plus indiqué pour une info qui doit être stockée par un seul joueur et qui influence les autres également?

                        Datawatcher - En anglais.

                        1 réponse Dernière réponse Répondre Citer 0
                        • DiabolicaTrix
                          DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

                          Le DataWatcher sert à sauvegarder et synchroniser des valeurs client-serveur. Par contre, tu as raison, l’info est stockée par un seul joueur. Perso, j’utilise un DataWatcher pour déterminer la texture et ensuite je récupère le DataWatcher dans le render et je l’envoie dans mon download.

                          1 réponse Dernière réponse Répondre Citer 0
                          • S
                            Sebenf0rce dernière édition par

                            Le rendu et l’extend entity properties sont dans la même classe. Faut-il les séparer ?

                            1 réponse Dernière réponse Répondre Citer 0
                            • DiabolicaTrix
                              DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

                              Ton EEP doit être dans une classe séparée puisque tu dois implémenter IExtendedProperties, mais tu peux register ta classe comme event handler et l’utiliser pour les deux.

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

                                Mais y’a pas besoin de DataWatcher, qu’est-ce que t’enregistres dans ton datawatcher ?! On a juste besoin de connaitre le pseudo du joueur et ensuite on commence le téléchargement…
                                Le problème qu’il faut résoudre est dans l’event RenderPlayerEvent, la nom de la texture à télécharger est sûrement le même que celui du joueur login. Je regarderai + en détails ce week-end 🙂

                                1 réponse Dernière réponse Répondre Citer 0
                                • S
                                  Sebenf0rce dernière édition par

                                  Du coup j’enlève le code du DataWatcher ? Et l’EEP je laisse ou pas ?

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • DiabolicaTrix
                                    DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

                                    Par contre, tu devrais utiliser le UUID au lieu du pseudo, comme ça tu es certain. Dans l’exemple que je t’ai envoyé, j’utilise un DataWatcher cae j’ai besoin de sauvegarder le nom de la texture, mais dans ton cas, tu n’en as pas besoin.

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • S
                                      Sebenf0rce dernière édition par

                                      Du coup j’ai ajouté l’EEP et je l’ai register dans un event mais le problème est toujours le même

                                      Voici ma classe :

                                      
                                      public class rendu implements IExtendedEntityProperties {
                                      
                                      public final static String EXT_PROP_NAME = "ExtPropRendu";
                                      
                                      //private final EntityPlayer player;
                                      
                                      @SubscribeEvent
                                      public void changementRendu(RenderPlayerEvent.Pre event) {
                                      //code pour modifier le rendu
                                      }
                                      
                                      @SubscribeEvent
                                      public void onEntityConstructing(EntityConstructing event)
                                      {
                                      if (event.entity instanceof EntityPlayer && rendu.get((EntityPlayer) event.entity) == null)
                                      
                                      rendu.register((EntityPlayer) event.entity);
                                      }
                                      
                                      public static final void register(EntityPlayer player) {
                                      player.registerExtendedProperties(rendu.EXT_PROP_NAME,
                                      new rendu());
                                      }
                                      
                                      public static final rendu get(EntityPlayer player) {
                                      return (rendu) player.getExtendedProperties(EXT_PROP_NAME);
                                      }
                                      
                                      public static ThreadDownloadImageData downloadRendu(ResourceLocation p_110304_0_, String p_110304_1_)
                                          {
                                              //téléchargement du rendu
                                          }
                                      
                                      @Override
                                      public void saveNBTData(NBTTagCompound compound) {
                                      // TODO Auto-generated method stub
                                      
                                      }
                                      
                                      @Override
                                      public void loadNBTData(NBTTagCompound compound) {
                                      // TODO Auto-generated method stub
                                      
                                      }
                                      
                                      @Override
                                      public void init(Entity entity, World world) {
                                      // TODO Auto-generated method stub
                                      
                                      }
                                      
                                      protected ResourceLocation getEntityTexture(EntityLiving living)
                                      {
                                      DataWatcher dw = living.getDataWatcher();
                                             String texture = dw.getWatchableObjectString(20);
                                      
                                             return new ResourceLocation(texture);
                                      }
                                      ``` 
                                      
                                      Aurais-je oublié quelque chose ?
                                      1 réponse Dernière réponse Répondre Citer 0
                                      • robin4002
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                                        Le problème vient du fait que tu n’as pas comprit comme gérer les instances.
                                        Le but d’un epp c’est d’avoir une instance par entité. Mais si tu mets le code qui change le rendu du joueur dans la même classe ainsi que les variables en rapport tu n’exploites pas l’intérêt de l’epp comme lors de l’enregistrement de la classe en temps que classe event il n’y a qu’une seule instance.

                                        Enfin de toute façon comme je sais très bien ce que tu cherches à faire la discussion va s’arrêter ici.

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • 1 / 1
                                        • Premier message
                                          Dernier message
                                        Design by Woryk
                                        Contact / Mentions Légales

                                        MINECRAFT FORGE FRANCE © 2018

                                        Powered by NodeBB