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

    Résolu Extended Entity Properties

    1.7.x
    1.7.10
    4
    13
    2109
    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.
    • DiabolicaTrix
      DiabolicaTrix Correcteurs Moddeurs confirmés dernière édition par

      Bonjour,

      J’ai commencé dans la shoutbox, mais j’ai décidé de créer un topic pour.

      Donc, j’ai créé une entité que est un pnj qui ouvre un menu, bref le problème est que en créant un EEP pour définir le menu à ouvrir, je me suis retrouvé avec la méthode sync() qui synchronise serveur+client. Jusque là ça va, mais sync() utilise un packet qui est envoyé au client pour synchroniser comme je l’ai dit mais on ne peut pas envoyer de packet à une entité omme un pnj et la même chose, la classe packet fait un ctx.getServerHandler().playerEntity pour récupérer le props donc ça ne fonctionne pas.

      Je me suis dit que logiquement le serveur récupère le props de l’entité et l’envoir au client du joueur mais le problème est qu’on ne peut pas envoyer un objet comme une entité dans un packet. Bref, je suis un peu mindfuck.

      Merci de votre aide! 😉

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

        Ouh là. Alors plusieurs choses me semblent bizarres dans ce que tu dis. On peut très bien envoyer un packet à une entity. Ensuite la variable ctx.getServerHandler().playerEntity retourne un EntityPlayerMP, pas ton ExtendedEntityProperties. Logiquement si tu veux avoir une instance de ce dernier, tu as la méthode get(EntityPlayer p).
        Pour finir, tu peux sauvegarder une entity dans un packet en te servant par-exemple de son id. Ensuite je ne vois pas pourquoi tu as besoin d’un ExtendedEntityProperties dans ce cas là. Tu souhaites juste faire ouvrir un gui à un pnj, c’est ça ? Pourquoi t’embêter avec le NBTTagCompound du joueur ? Peut-être que j’ai mal compris après…

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

          Tu cherches à faire quoi exactement ?

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

            Je cherche en fait à faire des PNJs, mais pour pouvoir les customiser un peu, je dois avoir un minimum de configuration possible donc ce que j’essaye de faire c’est d’utiliser les EEP pour le nom de la texture, le gui à ouvrir, etc. Le seul problème c’est que ce ne sont pas des joueurs et on ne peut pas envoyer de paquet à une entity, j’avais essayer avant de post.

            @Julot10085 Je sais que pour avoir l’instance d’un EEP il faut faire un get(entity) mais je ne peux pas le faire si je n’ai pas l’instance de l’entité. Sinon, je pourrais me servir de l’id. Pour l’envoie de Packet à une entité, c’est possible si l’entité est un joueur, seulement, dans mon cas l’entité n’est pas nécessairement un joueur. De toutes façon evoyer un packet à une entité serait complètement inutile car le but d’un packet est d’envoyer des données Client/Serveur et inversement donc un joueur est un client, oui mais pas une entité.

            EDIT: J’ai fait beaucoup de tests mais rien de concluant, je poste mes code demain.

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

              Utilises des data watcher. C’est fait pour ça.
              L’EEP n’a pas du tout besoin d’être utilisé dans ce cas.

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

                Qu’est ce que tu dis par “on ne peut pas envoyer de packet à une entity ?”
                Tu peux très bien envoyer un packet à une entity, dans une de ses méthodes. On peut envoyer n’importe quand et n’importe comment des packets à une entity…

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

                  @‘Julot10085’:

                  Qu’est ce que tu dis par “on ne peut pas envoyer de packet à une entity ?”
                  Tu peux très bien envoyer un packet à une entity, dans une de ses méthodes. On peut envoyer n’importe quand et n’importe comment des packets à une entity…

                  Heu ??? Non.
                  Un paquet c’est quelque chose qui va d’un client à un serveur ou l’inverse.

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

                    @‘robin4002’:

                    @‘Julot10085’:

                    Qu’est ce que tu dis par “on ne peut pas envoyer de packet à une entity ?”
                    Tu peux très bien envoyer un packet à une entity, dans une de ses méthodes. On peut envoyer n’importe quand et n’importe comment des packets à une entity…

                    Heu ??? Non.
                    Un paquet c’est quelque chose qui va d’un client à un serveur ou l’inverse.

                    Ah oui je comprends mieux. Je croyais qu’il disait qu’il ne pouvait pas envoyer de packet depuis une classe d’Entity
                    Enfin bref…
                    Au passage DiabolicaTrix, un p’tit tuto si tu en as besoin sur les Datawatcher =)
                    http://www.minecraftforge.net/wiki/Datawatcher

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

                      Ah merci je connaissais pas les datawatcher.

                      J’ai essayé et quand je ferme le serveur (mon monde) et que je reviens, rien n’est sauvegardé même pas sur le serveur.

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

                        Les data watchers ne sont pas enregistrés il me semble, il faut passer par les nbt après

                        Site web contenant mes scripts : http://SCAREXgaming.github.io

                        Pas de demandes de support par MP ni par skype SVP.
                        Je n'accepte sur skype que l…

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

                          Ah les nbt… Honnêtement je ne comprend pas vraiment le nbt donc je vais chercher un tuto.

                          EDIT: J’ai même pas eu besoin d’un tuto, ça fonctionne! Merci pour votre aide!

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

                            Il me semblait que les Datawatcher étaient enregistrés…

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

                              Non, mais c’est très simple à enregistré, 3 lignes.

                              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