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

    Spawn de Mob

    Sans suite
    1.7.10
    4
    9
    1904
    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.
    • Antoine_
      Antoine_ dernière édition par

      Bonjour J’ai créer un spawn de mob avec l’Event LivingDeathEvent tout fonctionne correctement voici mon code :

      public class EventRespawn
      {
      
      @SubscribeEvent
      public void respawn(LivingDeathEvent event)
      {
      if(event.entityLiving instanceof Entitytest && !event.entityLiving.worldObj.isRemote)
      {
      World world = event.entity.worldObj;
      Entitytest entity = new Entitytest(world);
      entity.setPosition(117, 201, -159);
      world.spawnEntityInWorld(entity);
      }
      }
      }
      

      Mais lorsque je tue une unité trop loin de la position de spawn rien ne ce passe.

      J’ai donc utilisé une méthode de chunk loader utile pour les bock de commande mais rien n’y fait le mob ne spawn pas 😢

      Merci de votre aide

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

        Salut,
        Premièrement ton entity doit être instanciée aussi côté client, du coup il est faux de mettre un !worldObj.isRemote avant l’instance. Le check côté serveur doit uniquement être avant le spawnEntityInWorld. Ensuite si tu veux qu’elle spawn à l’endroit de la mort, il est absurde de mettre ceci entity.setPosition(117, 201, -159); sauf si tu te trouves à cet endroit bien entendu.
        Par ailleurs es-tu sûr d’avoir enregistré ta classe d’event, avec le bon BUS ? Si oui, essaie de remplacer setPosition par setLocationAndAngles, et tiens nous au courant !

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

          J’ai suivi tes conseil est j’ai modifié le code comme ceci:

          public class EventRespawn
          {
          
          @SubscribeEvent
          public void respawn(LivingDeathEvent event)
          {
          if(event.entityLiving instanceof Entitytest )
          {
          World world = event.entity.worldObj;
          Entitytest entity = new Entitytest (world);
          entity.setPosition(117, 201, -159);
          entity.setLocationAndAngles(117, 201, -159, 0, 0);
          if(!event.entityLiving.worldObj.isRemote)
          {
          world.spawnEntityInWorld(entity);
          }
          }
          }
          }
          

          Donc je t’explique le fonctionnement que je recherche, je veux que au moment ou mon entitytest meurt n’importe ou dans le monde elle respawn en 117,201,-159 donc tout fonctionne quand je suis proche de cette position mais des que je m’éloigne de trop ceci ne fonctionne plus.

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

            Tu as essayé dans la méthode onDeath de ta classe Entity, ou/et dans setDead, si cela ne marche pas ?

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

              Je ne pense pas que changer la méthode va faire apparaître mon mob car elle fonctionne quand je suis prêt de la position.

              je pense que le problème vient du fait que la partie du monde ou j’essaye de spawn l’entité n’est pas chargé.

              Mais un chunk loader ne change rien alors je ne comprend pas.

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

                Quel code utlises-tu pour charger le chunk ?

                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 réponse Dernière réponse Répondre Citer 0
                • Antoine_
                  Antoine_ dernière édition par

                  Je n’utilise pas mon propre mod, pour charger le chunk.

                  Mais je veux bien essayer mais je n’ai aucune idée de par ou commencer XD

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

                    @‘Plaigon’:

                    Premièrement ton entity doit être instanciée aussi côté client, du coup il est faux de mettre un !worldObj.isRemote avant l’instance. Le check côté serveur doit uniquement être avant le spawnEntityInWorld.

                    Non. Ça ne sert absolument à rien d’instancier une entité si elle n’est pas spawn. Inutile d’instancier l’entité sur les deux site. La fonction spawnEntityInWorld envoie un paquet au client avec les données de l’entité, il créé une instance puis la spawn.

                    En faisant ce que tu proposes tu vas avoir deux instances sur le client, dont une qui ne sera jamais utilisé (donc nettoyé par le GC). Bref, ça pourri juste la mémoire du client de faire ainsi.

                    Pour le problème, plutôt que charger le chunk pour spawn l’entité et le décharger, autant mettre l’entité directement dans la sauvegarde de la map si le chunk n’est pas chargé.

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

                      @‘robin4002’:

                      Pour le problème, plutôt que charger le chunk pour spawn l’entité et le décharger, autant mettre l’entité directement dans la sauvegarde de la map si le chunk n’est pas chargé.

                      D’accord cette solution me parait viable mais je ne voie pas du tout comment faire

                      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