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

    Spawn de Mob

    Sans suite
    1.7.10
    4
    9
    1828
    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.
    • Antoine_
      Antoine_ last edited by

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

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

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

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

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

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

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

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

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

                      @‘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 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