• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Trouver les entités dans un monde

    Sans suite
    1.7.10
    7
    20
    2297
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mosca421 last edited by

      Bonsoir, je voudrais savoir si a la manière des crash report si l’on pouvait prendre les entitées du monde (joueurs) et les afficher ainsi que leurs coordo quand l’on clique droit sur une boussole spécial, ensuite en afficher 5 (les plus proche dans le tchat du joueur) 
      Je ne vois pas du tout comment faire
      J’espere que vous avez une réponse 
      Merci

      1 Reply Last reply Reply Quote 0
      • Deleted
        Deleted last edited by

        Pas trop le temps, regarde avec la variable loadedEntityList de la classe Word

        1 Reply Last reply Reply Quote 0
        • robin4002
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

          Dans la classe world il a une fonction pour avoir toutes les entités étant dans une box spécifié.
          Suffit d’utiliser cette fonction et de parcourir la liste qu’elle retourne.

          1 Reply Last reply Reply Quote 0
          • M
            mosca421 last edited by

            Je la parcours depuis un moment mais c’est long

            1 Reply Last reply Reply Quote 0
            • Benjamin Loison
              Benjamin Loison last edited by

              Ou tu fais une liste des joueurs du monde par un packet et tu testes les plus proche et tu renvoie par chat le résultat 😉

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

              1 Reply Last reply Reply Quote 0
              • M
                mosca421 last edited by

                Euh me dire trop de chose et on me perd xD

                j’ai trouvé ça :

                   public CrashReportCategory addWorldInfoToCrashReport(CrashReport p_72914_1_)
                    {
                        CrashReportCategory crashreportcategory = p_72914_1_.makeCategoryDepth("Affected level", 1);
                        crashreportcategory.addCrashSection("Level name", this.worldInfo == null ? "????" : this.worldInfo.getWorldName());
                        crashreportcategory.addCrashSectionCallable("All players", new Callable()
                        {
                            private static final String __OBFID = "CL_00000143";
                            public String call()
                            {
                                return World.this.playerEntities.size() + " total; " + World.this.playerEntities.toString();
                            }
                        });
                        crashreportcategory.addCrashSectionCallable("Chunk stats", new Callable()
                        {
                            private static final String __OBFID = "CL_00000144";
                            public String call()
                            {
                                return World.this.chunkProvider.makeString();
                            }
                        });
                
                        try
                        {
                            this.worldInfo.addToCrashReport(crashreportcategory);
                        }
                        catch (Throwable throwable)
                        {
                            crashreportcategory.addCrashSectionThrowable("Level Data Unobtainable", throwable);
                        }
                
                        return crashreportcategory;
                    }
                
                1 Reply Last reply Reply Quote 0
                • robin4002
                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                             List <entity>list = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(-10, -10, -10, 10, 10, 10));
                             for(Entity entity : list)
                             {
                                 //fais ce que tu veux avec les entités
                             }
                  

                  Avec ça tu obtiens toutes les entités se trouvant entre x = -10, y = -10, z = -10 et x = 10, y = 10, z = 10.

                  Si tu veux toutes les entités autours d’un joueur tu as juste à prendre les coordonnées du joueur +/- la taille que tu veux.
                  Ou alors utiliser directement la box de collision du joueur et faire un .expand(x, y, z).</entity>

                  1 Reply Last reply Reply Quote 0
                  • M
                    mosca421 last edited by

                    donc je fais genre :
                    onItemRightclick
                          List <entity>list = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(-10, -10, -10, 10, 10, 10));
                    p.chatmessagetrucdugenre list trucdugenre ?

                    Edit si oui erreur sur AxisAlignedBB The constructor AxisAlignedBB(double, double, double, double, double, double) is not visible</entity>

                    1 Reply Last reply Reply Quote 0
                    • robin4002
                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                      Remplaces par AxisAlignedBB.getBoundingBox(-10, -10, -10, 10, 10, 10)
                      Je suis en 1.8, visiblement en 1.7 c’était différent.

                      1 Reply Last reply Reply Quote 0
                      • M
                        mosca421 last edited by

                        ça marche niquel mais je get toutes les Entité cochon joueurs ect on peut pas prendre que 5 joueurs ?

                        1 Reply Last reply Reply Quote 0
                        • SCAREX
                          SCAREX last edited by

                          Tu as juste à mettre la taille de la liste à 5 même si c’est pas très optimisé

                          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 Reply Last reply Reply Quote 0
                          • Deleted
                            Deleted last edited by

                            Beh remplace Entity.class, par EntityPlayer.class.

                            1 Reply Last reply Reply Quote 0
                            • M
                              mosca421 last edited by

                              Ok ça aussi ça marche mais dernier probleme les joueurs que ne capte que les player que mon perso vois alors que je voudrais qu’il capte les joueurs dans toute la map C’est possible d’après vous ?

                              1 Reply Last reply Reply Quote 0
                              • Deleted
                                Deleted last edited by

                                Sois tu mets de très grandes dimensions dans le code de robin, soit tu adaptes avec la liste World#loadedEntityList

                                1 Reply Last reply Reply Quote 0
                                • SCAREX
                                  SCAREX last edited by

                                  C’est à dire ? Tu veux faire une recherche dans tous les joueurs du monde ?

                                  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 Reply Last reply Reply Quote 0
                                  • Snowy_1803
                                    Snowy_1803 last edited by

                                    Il y a pas un field avec tous les joueurs connectés dans World ?

                                    Moddeur 1.8

                                    Développeur Java

                                    1 Reply Last reply Reply Quote 0
                                    • robin4002
                                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                                      Dans ce cas tu as juste à faire une boucle sur world.playerEntities

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        mosca421 last edited by

                                        public ItemStack onItemRightClick(ItemStack item, World world, EntityPlayer player)
                                            {
                                        
                                            List <entity>list = world.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(-10, -10, -10, 10, 10, 10).expand(5000, 300, 5000));
                                            for(Entity entity : list)
                                            {
                                            player.addChatComponentMessage(new ChatComponentText(""+list));
                                            }
                                        return item;
                                        }
                                        

                                        Normalement ça devrait marcher non ?</entity>

                                        1 Reply Last reply Reply Quote 0
                                        • AymericRed
                                          AymericRed last edited by

                                          Non car il faut aussi expand du côté négatif, mais fais ce qu’a dit Robin, plus simple

                                          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 Reply Last reply Reply Quote 0
                                          • robin4002
                                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                                            expand étant des deux côtés.
                                            Mais bon la ce code va être lourd alors que tu peux faire bien plus léger :

                                               public ItemStack onItemRightClick(ItemStack item, World world, EntityPlayer player)
                                               {
                                                   for(Entity entity : world.playerEntities)
                                                   {
                                                       player.addChatComponentMessage(new ChatComponentText(entity.getCommandSenderName() + " x=" + entity.posX + " y=" + entity.posY + " z=" + entity.posZ));
                                                   }
                                                   return item;
                                               }
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • 1 / 1
                                            • First post
                                              Last post
                                            Design by Woryk
                                            Contact / Mentions Légales

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB