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

    Solved Faire spawn un boss toutes les 12h?

    Anciennes versions
    1.6.4
    4
    13
    2320
    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.
    • T
      totos51 last edited by

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

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

        1 Reply Last reply Reply Quote 0
        • T
          totos51 last edited by

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

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

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

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

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

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

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

                  1 Reply Last reply Reply Quote 0
                  • jglrxavpok
                    jglrxavpok Modérateurs last edited by

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

                      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 Reply Last reply Reply Quote 0
                      • jglrxavpok
                        jglrxavpok Modérateurs last edited by

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

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

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

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