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

    Résolu Faire spawn un boss toutes les 12h?

    Anciennes versions
    1.6.4
    4
    13
    2347
    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.
    • T
      totos51 dernière édition par

      Re-Bonsoir,

      Toujours dans le cadre de mon serveur je souhaite créer une sorte d’instance, un donjon qui se renouvèle toutes les 12h, j’aid onc essayé un code utilisant un bloc qui le regénère, cependant cela fait mtn 15heures que j’attends et toujours rien.
      Je précise que j’ai également essayé avec un temps très court et que cela fonctionnait.

      Mon idée serait que le chunk se déchargeant les ticks ne se font plus, je cherche donc une solution autre que celle ci, voici le code de ma TileEntity gérant le renouvellement:

      package Gallad.Mineald;
      
      import java.util.List;
      import java.util.Random;
      
      import net.minecraft.command.IEntitySelector;
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.monster.EntityCreeper;
      import net.minecraft.nbt.NBTTagCompound;
      import net.minecraft.tileentity.TileEntity;
      import net.minecraft.util.AxisAlignedBB;
      import net.minecraft.world.World;
      
      public class TileEntityCreepyBlock extends TileEntity
      {
      public int Compteur;
      public int CompteurParMillier;
      public Random rand;
      public int count;
      
      public void readFromNBT(NBTTagCompound nbtTag)
      {
      super.readFromNBT(nbtTag);
      Compteur = nbtTag.getInteger("Compteur");
      CompteurParMillier = nbtTag.getInteger("CompteurParMillier");
      }
      
      public void writeToNBT(NBTTagCompound nbtTag)
      {
      super.writeToNBT(nbtTag);
      nbtTag.setInteger("Compteur", Compteur);
      nbtTag.setInteger("CompteurParMillier", CompteurParMillier);
      }
      
      @Override
      public void updateEntity()
      {
      Compteur++;
      if(Compteur < 0)
      {
      Compteur = 0;
      }
      if(CompteurParMillier < 0)
      {
      CompteurParMillier = 0;
      }
      if(CompteurParMillier == 1)
      {
      count = 0;
      }
      if(Compteur >= 1000)
      {
      CompteurParMillier++;
      Compteur = 0;
      }
      if(CompteurParMillier >= 864)
      {
      CompteurParMillier = 0;
      if(count != 1)
      {
      
      System.out.println("Mommy Creepy Respawn!");
      final IEntitySelector livingFilter = new MommyFilter();
      AxisAlignedBB Axis = AxisAlignedBB.getAABBPool().getAABB(this.xCoord - 24, this.yCoord - 2, this.zCoord - 25, this.xCoord + 24, this.yCoord + 2, this.zCoord + 25);
      List entityTargetList = this.worldObj.selectEntitiesWithinAABB(Entity.class, Axis, livingFilter);
      for(int i = 0; i < entityTargetList.size(); i++)
      {
      Entity entityTarget = (Entity)entityTargetList.get(i);
      if(entityTarget instanceof EntityMommyCreepy)
      {
      entityTarget.setDead();
      }
      }
      new MommyDungeon(this.worldObj, rand, this.xCoord, this.yCoord, this.zCoord);
      if(!worldObj.isRemote)
      {
      spawnMommyCreepy(this.worldObj, (double)(this.xCoord + 23), (double)(this.yCoord + 1), (double)(this.zCoord + 24));
      }
      count = 1;
      }
      
      }
      }
      
      public void spawnMommyCreepy(World world, double posX, double posY, double posZ)
      {
      Entity entity = new EntityMommyCreepy(world);
      entity.setPosition(posX, posY, posZ);
      world.spawnEntityInWorld(entity);
      }
      }
      

      Mon problème vient il bien du fait que le chunk soit déchargé?
      Si oui, quel moyen ai-je pour résoudre ce soucis? j’ai essayé avec un plugin mais cela ne fonctionne pas.
      Si Non, vers quoi dois je m’orienter?

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

        Le plus simple, tu te sert de l’heure. Genre un regen à 12h et un à minuit et puis voila.

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

          cela fonctionnera malgré le déchargement du chunk?
          Quel méthode utilisé pour avoir l’heure?

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

            Oui, sauf si le chunk n’est pas chargé à l’heure du reset.
            Il y a pleins de moyens différent pour avoir l’heure en java, cherche sur google 😉

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

              D’accourd, il existe un moyen pour faire en sorte que ce bloc empeche le chunk de deload?

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

                oui, tu peux faire que ce bloc soit un chunk loader (exemple : railcraft, chicken chunk, buildcraft).
                Forge à une fonction pour ça, en revanche je ne sais pas comment l’utiliser, il faudrait voir du côté du quarry de buildcraft comme buildcraft est open source.

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

                  J’ai trouvé ce tout ptit post, je peux m’y fier?
                  http://www.minecraftforge.net/forum/index.php?topic=2884.0

                  1 réponse Dernière réponse Répondre Citer 0
                  • jglrxavpok
                    jglrxavpok Modérateurs dernière édition par

                    Tu peux toujours essayer ^^

                    Modérateur sur MFF. 
                    Mon Github: http://github.com/jglrxavpok
                    Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

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

                      Qu’en pensez vous? Cela vous semble t’il fonctionnel, ou du moins pas trop moche pour les yeux ^^

                      
                      public void updateEntity()
                      {
                      if (new java.util.Date().getHours() == 12 || new java.util.Date().getHours() == 0)
                      {
                      if (new java.util.Date().getMinutes() == 0)
                      {
                      if (new java.util.Date().getSeconds() == 0)
                      {
                      if (count == 0)
                      {
                      System.out.println("Mommy Creepy Respawn!");
                      final IEntitySelector livingFilter = new MommyFilter();
                      AxisAlignedBB Axis = AxisAlignedBB.getAABBPool().getAABB(this.xCoord - 24, this.yCoord - 2, this.zCoord - 25, this.xCoord + 24, this.yCoord + 2, this.zCoord + 25);
                      List entityTargetList = this.worldObj.selectEntitiesWithinAABB(Entity.class, Axis, livingFilter);
                      for (int i = 0; i < entityTargetList.size(); i++)
                      {
                      Entity entityTarget = (Entity)entityTargetList.get(i);
                      if (entityTarget instanceof EntityMommyCreepy)
                      {
                      entityTarget.setDead();
                      }
                      }
                      new MommyDungeon(this.worldObj, rand, this.xCoord, this.yCoord, this.zCoord);
                      if(!worldObj.isRemote)
                      {
                      spawnMommyCreepy(this.worldObj, (double)(this.xCoord + 23), (double)(this.yCoord + 1), (double)(this.zCoord + 24));
                      }
                      count++;
                      }
                      
                      }
                      if (new java.util.Date().getSeconds() == 1)
                      {
                      count = 0;
                      }
                      }
                      }
                      }
                      
                      
                      1 réponse Dernière réponse Répondre Citer 0
                      • jglrxavpok
                        jglrxavpok Modérateurs dernière édition par

                        Ça me semble correct

                        Modérateur sur MFF. 
                        Mon Github: http://github.com/jglrxavpok
                        Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

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

                          Bon et bien plus que le soucis dont je t’avais parlé sur skype à propos des outils non réparable et j’ai résolu presque tout mes ptits bugs du moments ^^

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

                            Juste … pourquoi avoir attendu 15h ?

                            Mettre un test avec 1 minute, 5 minutes, 15 minutes aurait suffit pour vérifier non ?

                            "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                            ― Jordan B. Peterson

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

                              sauf que en solo 5/10/15 minutes ça marche
                              mais 12h non…

                              A mon avis c’est pck les ticks se font que quand le chunk est load

                              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