MFF

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

    Extended Entity Properties

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    13 Messages 4 Publieurs 2.4k Vues 1 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.
    • DiabolicaTrixD Hors-ligne
      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
      • DeletedD Hors-ligne
        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
        • robin4002R Hors-ligne
          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
          • DiabolicaTrixD Hors-ligne
            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
            • robin4002R Hors-ligne
              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
              • DeletedD Hors-ligne
                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
                • robin4002R Hors-ligne
                  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
                  • DeletedD Hors-ligne
                    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
                    • DiabolicaTrixD Hors-ligne
                      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
                      • SCAREXS Hors-ligne
                        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
                        • DiabolicaTrixD Hors-ligne
                          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
                          • DeletedD Hors-ligne
                            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
                            • DiabolicaTrixD Hors-ligne
                              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
                              ContactMentions Légales

                              MINECRAFT FORGE FRANCE © 2024

                              Powered by NodeBB