MFF

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

    Régénération d'un mob aux contact d'autres

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.x
    10 Messages 5 Publieurs 2.7k 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.
    • ÜberfapÜ Hors-ligne
      Überfap
      dernière édition par

      Bonjour tout le monde,

      je vous expose mon problème (ce n’est pas vraiment un problème, c’est juste que je ne trouve absolument pas comment faire), je voudrais que mon boss régénère s’il y a de ses sbires dans les environs (32 blocs), et plus il y a de sbires,plus il régénère vite !

      j’ai pensé à ce code :

      
      int nombreSbires = // Code pour avoir le nombre de sbires sur 32 blocs);
      for(int i = 0; i => nombreSbires; i++) {
         if(!this.worldObj.isRemote) {
               this.heal(i);
         }
      }
      
      

      Merci d’avance 😄 !

      Si je t'ai aidé, n'hésites pas à mettre un point de réputation positif !
      Si tu m'as aidé, je n'hésiterais pas à t'en donner à mon tour !

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

        Ben ya deux possibilités
        Soit tu fait spawn tes sbires et tu les rajoute à une LinkedList. Puis tu vérifie la distance avec sbire.getDistanceSqToEntity(this) < (32*32)

        Ou alors, c’est plus simple mais moins performant, tu recherche toutes les entités dans un rayon de 32 blocks puis tu compte le nombre de sbires
        J’ai pas le code sous les yeux, cherche du côté de World.getEntities

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

          Edit : Arf trop lent je me suis fait doubler ^^

          Si tu as la possibilité de lier le mob au sbires c’est facile. Je m’explique :

          • Dans ta classe sbire tu garde une structure de donnée statique qui maintient un lien vers chacun des sbires qui ont spawn.
          • Périodiquement ton mob principal peut accéder à cette liste via la classe des sbires et compter le nombre de sbires à portée (distance entre les deux positions). A partir de la tu sais de combien il peut se soigner.

          Par contre cela ne fonctionne que pour un petit nombre de sbires. Si ils pop aléatoirement partout sur la map la vérification prendrait trop de temps (ordre de grandeur proportionnel au nombre de sbire existant). Mais si c’est le mob principal qui les invoque et qu’il y a une limite ça devrait faire l’affaire.

          Sinon il existe une methode worldObj.getClosestPlayer(). Peut-être est-il possible de trouver une similaire qui te donne les entité dans un certain rayon (à approfondir).

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

            Merci à tous les deux ! Mais j’aurais dû préciser que les mobs spawnent autour du boss, non aléatoirement ^^

            Si je t'ai aidé, n'hésites pas à mettre un point de réputation positif !
            Si tu m'as aidé, je n'hésiterais pas à t'en donner à mon tour !

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

              Pas la peine de static la list, il suffit de gérer une liste par mob principal
              Si c’est le boss qui fait spawn les sbires.

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

                Ok merci je vais tester ça 🙂

                Si je t'ai aidé, n'hésites pas à mettre un point de réputation positif !
                Si tu m'as aidé, je n'hésiterais pas à t'en donner à mon tour !

                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

                  @‘Porteffroi’:

                  • Dans ta classe sbire tu garde une structure de donnée statique qui maintient un lien vers chacun des sbires qui ont spawn.

                  Mauvaise idée de mettre une variable static dans un mob qui à plusieurs instance. Car ducoup si il y a plusieurs bosses dans la map, ils partagerons ensemble le nombre de sbires.

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

                    Oui en effet, mais je pensait que ce n’était pas le boss qui était responsable de la génération des sbires. Du coup un sbire pouvait avoir un effet sur plusieurs bosses et donc doit être partagé.

                    En fait j’utilise une structure similaire dans le mod que je développe. J’ai une série d’entités robotisée qui ont chacune un id et la structure statique sert à retrouver les entités existante et éventuellement les faire communiquer entre elles. Ça marche pas trop mal mais le spawn est controlé par le joueur ce qui limite le nombre d’entités.

                    Par contre si tu as une solution plus jolie et pratique ça m’intéresse 🙂 .

                    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

                      J’aurai fait ce que rafoudiablol a dit avec world.selectEntitiesWithinAABB(entity, boundingBox, filter);

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

                        Je vous adore pour cette fonction! Sa doit bien faire 2h que je cherche à la coder alors qu’elle existe déjà ^^ !

                        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