MFF

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

    Dimension, structures.

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.x
    14 Messages 4 Publieurs 2.5k 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.
    • T Hors-ligne
      totos51
      dernière édition par

      Salut tout le monde, comme à mon habitude je regroupe mes différents problèmes
      tout d’abord désolé de mon absence, quelques projets m’ont pris beaucoup de temps,
      je me remets donc à coder et je me heurte à quelques soucis.

      #Une dimension sans jour?(Une dimension sans jour?)

      J’ai créé une dimension dite “bleu” c’est à dire que l’herbe tend vers un vert bleu, le ciel est bleu foncé, les zombies sont bleus les arbres aussi. Mon but était initialement de créer une dimension hardcore. je n’ai pas la mùoindre idée de comment je pourrais faire en sorte que le jour n’existe pas. (ou sinon plutot que la nuit, faire en sorte que les mobs spawn tout le temps)

      en cas de besoin voici le code actuelle de ma dimension:

      WorldProvider: http://pastebin.com/TXwfPuzY
      WorldGenerator: http://pastebin.com/X0dsNHyF
      BiomeGen: http://pastebin.com/qADaCHiB

      également j’ai quelques difficultés pour équilibré le spawn des mobs et je me retrouve avec de nombreux blazes.

      #Un gamerule actif?(Un gamerule actif?)
      Le but recherché est le suivant lorsque l’on meut:

      • Ne jamais perdre son inventaire (soit activé le gamerule keeepInventory)
      • perdre un pourcentage d’xp en fonction du nombre d’xp
      • Ne jamais respawn avec toute sa faim

      je n’ai aucune idée quant à ça, c’est pour cela que je vous en fait part.

      #Une structure refuse de se générer(Une structure refuse de se générer)

      Mon code marchait autrefois et je ne comprends pas pourquoi ma structure ne se génère plus, en effet d’habitude un bloc faisait respawn la structure à des heures précises à condition qu’un joueur se trouve à proximité (pour que le chunk soit chargé). Or cela ne fonctionne plus maintenant, voici le code du bloc:

      http://pastebin.com/zn25qz99
      je ne mets pas le code de la génération car inutile ici.

      Edit: Quel c** j’ai avant toute chose oublié de vous remercier de votre aide dans ce post ^^

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

        Il me semble qu’il faut modifier le code de Minecraft lui même pour les gamerules

        Moddeur à la retraite et développeur de trucs en Java.

        J'aide les gens comme je peux, alors si mon message v…

        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

          Salut,
          C’est pas (new MommyDungeon(this.worldObj, rand, this.xCoord, this.yCoord, this.zCoord)).generate(); normalement ?
          La classe ressemble à quoi ?

          Pour la nuit, dans ton world provider essaye de mettre :

          public boolean isDaytime()
          {
          return false;
          }
          

          Pour le gamerule, aucune idée.

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

            @utybo, non merci, pas de mod sur du vanilla :3
            @robin, cette classe est faite avec je ne sais plus quelle tool, sa principale est ainsi:

            
            public MommyDungeon(World world, Random rand, int i, int j, int k)
            {
            this.generate(world, rand, i, j, k);
            }
            
            

            visiblement le soucis vient de la condition car il ne me fais pas de print.
            serai-ce l’update qui pose un soucis?
            je suis en train de test pour la nuit je vais edit après

            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

              ça devrait fonctionner alors oui, donc le problème vient de la fonction update.

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

                la nuit passe et le soleil se lève toujours.
                le problème vient visiblement des conditions. j’ai viré toutes les conditions, ils la fait respawn à chaque tick.

                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

                  Il y a une variable skylightSubtracted dans la classe World, faudrait voir pour la garder sur un nombre voulu (genre 4 ou 5) depuis un tick handler de type world.

                  Après pour les games rules tu as la fonction getGameRules dans la classe world, donc dans le constructeur du provider tu peux tenter de faire :
                  this.worldObj.getGameRules().setOrCreateGameRule(“keepInventory”, “true”);

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

                    pour la nuit, j’ai simplement mis la variable hasnosky sur true 🙂
                    pour le gamerule où mettre ça, pck je voudrais que ça s’applique à tout les mondes.
                    j’ai test dans le worldprovider de la dimension que j’ai créé, je perd ma stuff.

                    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

                      Essaye depuis WorldEvent.Load dans ce cas.

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

                        @‘robin4002’:

                        Pour la nuit, dans ton world provider essaye de mettre :

                        public boolean isDaytime()
                        {
                        return false;
                        }
                        

                        Pour le gamerule, aucune idée.

                        Pour ma dimension ça ne marche pas, le cycle jour/nuit continue de défiler. Il faut procéder autrement, je l’ai fait sur ma dimension.

                        https://github.com/elias54/FakeOres/blob/master/common/fr/elias/fakeores/dimension/FD_WorldProvider.java

                        Mon site | GitHub

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

                          oui le cycle continue de défiler mais en mettant ce bout de code + hasnosky sur true, il continue de défiler mais il fait toujours sombre.

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

                            Pour la lumière regarde mon code ^^

                            Mon site | GitHub

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

                              J’ai fait quelques test au sujet du bloc quid oit faire spawn la maman creeper.
                              j’ai utilisé ce code:

                              
                              public class TileEntityCreepyBlock extends TileEntity
                              {
                              public Random rand;
                              public int count = 0;
                              public Date D = new java.util.Date();;
                              public int H = 0;
                              public int M = 0;
                              public int S = 0;
                              
                              @Override
                              public void updateEntity()
                              {
                              H = D.getHours();
                              M = D.getMinutes();
                              S = D.getSeconds();
                              System.out.println(H + "h");
                              System.out.println(M + "m");
                              System.out.println(S + "s");
                              
                              if (H == 12 && H == 16 && H == 20 && H == 22)
                              {
                              if (M == 49)
                              {
                              if (S == 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 (S == 1)
                              {
                              count = 0;
                              }
                              }
                              }
                              }
                              
                              public void spawnMommyCreepy(World world, double posX, double posY, double posZ)
                              {
                              Entity entity = new EntityMommyCreepy(world);
                              entity.setPosition(posX, posY, posZ);
                              world.spawnEntityInWorld(entity);
                              }
                              }
                              
                              

                              et le résultat dans la console est le suivant:

                              
                              2014-06-12 11:02:05 [Infos] [STDOUT] 11h
                              2014-06-12 11:02:05 [Infos] [STDOUT] 1m
                              2014-06-12 11:02:05 [Infos] [STDOUT] 54s
                              2014-06-12 11:02:05 [Infos] [STDOUT] 11h
                              2014-06-12 11:02:05 [Infos] [STDOUT] 1m
                              2014-06-12 11:02:05 [Infos] [STDOUT] 54s
                              2014-06-12 11:02:05 [Infos] [STDOUT] 11h
                              2014-06-12 11:02:05 [Infos] [STDOUT] 1m
                              2014-06-12 11:02:05 [Infos] [STDOUT] 53s
                              2014-06-12 11:02:05 [Infos] [STDOUT] 11h
                              2014-06-12 11:02:05 [Infos] [STDOUT] 1m
                              2014-06-12 11:02:05 [Infos] [STDOUT] 53s
                              2014-06-12 11:02:05 [Infos] [STDOUT] 11h
                              2014-06-12 11:02:05 [Infos] [STDOUT] 1m
                              2014-06-12 11:02:05 [Infos] [STDOUT] 54s
                              2014-06-12 11:02:05 [Infos] [STDOUT] 11h
                              2014-06-12 11:02:05 [Infos] [STDOUT] 1m
                              2014-06-12 11:02:05 [Infos] [STDOUT] 53s
                              2014-06-12 11:02:05 [Infos] [STDOUT] 11h
                              2014-06-12 11:02:05 [Infos] [STDOUT] 1m
                              2014-06-12 11:02:05 [Infos] [STDOUT] 54s
                              2014-06-12 11:02:05 [Infos] [STDOUT] 11h
                              2014-06-12 11:02:05 [Infos] [STDOUT] 1m
                              2014-06-12 11:02:05 [Infos] [STDOUT] 53s
                              
                              

                              il semblerait, que la valeur est attribué une fois, puis n’est jamais modifié à partir du lancement du jeu.
                              Autre chose, quand j’avais pas mis les ’ = 0’ à ce code:

                              
                              public int H = 0;
                              public int M = 0;
                              public int S = 0;
                              
                              

                              mes print ne se faisait pas du tout, est ce normal?

                              quelqu’un a t’il une idée? moi concrétement je sèche.

                              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

                                Normal, puisque tu instancie l’objet Date dans le constructeur, donc il n’est jamais mit à jour.

                                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