Navigation

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

    [Abandonné] Régler plusieurs problèmes (génération de minerais + outils + id fixe)

    Sans suite
    1.7.10
    4
    19
    2893
    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.
    • _
      _BrowNeez_ last edited by

      Bonjour/Bonsoir tout le monde 😄

      Suite aux dèrniers post (qui ne m’ont pas forcément aider), je retente ma chance.

      Pour commencer, je voudrais générer des minerais dans des mondes multivers, voici mon code :

      package fr.browneez.gen;
      
      import cpw.mods.fml.common.IWorldGenerator;
      import fr.browneez.locky.Main;
      import java.util.Random;
      import net.minecraft.block.Block;
      import net.minecraft.init.Blocks;
      import net.minecraft.world.World;
      import net.minecraft.world.chunk.IChunkProvider;
      import net.minecraft.world.gen.feature.WorldGenMinable;
      
      public class GenStats
      implements IWorldGenerator
      {
      public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
      {
         addOre(Main.Lockyumore, Blocks.stone, random, world, chunkX, chunkZ, 4, 13, 3, 5, 2);
         addOre(Main.Titaniumore, Blocks.stone, random, world, chunkX, chunkZ, 4, 20, 4, 5, 3);
         addOre(Main.Thoriumore, Blocks.stone, random, world, chunkX, chunkZ, 4, 45, 4, 10, 15);
      }
      
      private void addOre(Block block, Block blockSpawn, Random random, World world, int posX, int posZ, int minY, int maxY, int minVeinSize, int maxVeinSize, int spawnChance)
      {
        for (int i = 0; i < spawnChance; i++)
        {
          int defaultChunkSize = 16;
      
          int xPos = posX + random.nextInt(defaultChunkSize);
          int yPos = minY + random.nextInt(maxY - minY);
          int zPos = posZ + random.nextInt(defaultChunkSize);
      
          new WorldGenMinable(block, minVeinSize + random.nextInt(maxVeinSize - minVeinSize), blockSpawn).generate(world, random, xPos, yPos, zPos);
        }
      }
      }
      

      Deuxièmement, L’enchantement efficacité n’affecte pas ma pioche par exemple ( quand je fais /enchant efficiency 5 sur ma pioche, la vitesse de minage n’augmente pas ou n’est pas flagrante)

      Mon code:

      public static ToolMaterial lockyump = EnumHelper.addToolMaterial("lockyump", 3, 2500, 16F, 5F, 10);
      

      Enfin, quand j’ajoute/supprime un mod sur le serveur, mes items changent d’id ( par exemple si mon item à l’id 500 et que j’enlève un mod, il va changer en 450)

      Mon Code :

      Obsidianstick = new Obsidianstick(6300).setTextureName(Reg.MODID + ":ObsidianStick");
      

      Merci pour votre aide, BrowNeez.

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

        1. ça devrait fonctionner
        2. Tu as une valeur déjà très élevé, c’est pour ça que n’observe pas de différence.
        3. L’id n’est pas sensé changer sauf si tu changes de monde.
        1 Reply Last reply Reply Quote 0
        • _
          _BrowNeez_ last edited by

          Pour la génération, je ne retrouve aucuns minerais 😕 (ni avec xray ni avec worldedit)

          Pour les outils, il n’y a pas un moyen d’augmenter leurs vitesse de minage avec les enchantement ( je voudrais des pioches asse abusé)

          Et pour les id, mon item est passé de 450 à 448 par exemple (j’ai enlever 1 mod sur le serveur)

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

            1. pas normal.
            2. Le seul moyen que je vois pour ça c’est passer par l’event PlayerEvent.BreakSpeed. Si l’item que le joueur a en main est ta pioche et qu’elle est enchanté tu mets la variable newSpeed sur une grosse valeur.
            3. pas normal non plus
            1 Reply Last reply Reply Quote 0
            • _
              _BrowNeez_ last edited by

              Pour les outils j’ai pas trop compris 😕

              en gros faut faire ça :

              public void OnBreakEvent(PlayerBreakEvent e)
              {
              if p.getItemHolding == main.montool
              {
              la on fait un truc avec le speed break
              }
              }
              
              ps: j'ai rien tester sur eclipse je fais ça à l'improvisation
              

              et pour les id c’est pas très grave, merci quand même

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

                @SubscribeEvent
                public void onBreakSpeed(PlayerEvent.BreakSpeed event)
                {
                if(event.player.inventory.getCurrentItem() != null && event.player.inventory.getCurrentItem().getItem() == tonItem && EnchantmentHelper.getEnchantmentLevel(Enchantment.efficiency, event.player.inventory.getCurrentItem() == 5) // pour un enchantement de 5
                {
                event.newSpeed = 100000F;
                }
                }
                
                1 Reply Last reply Reply Quote 0
                • _
                  _BrowNeez_ last edited by

                  Le PlayerEvent, j’importe lequel :

                  Parce que si j’importe le premier, j’ai une erreur qui dit “change to entityplayer”

                  le deuxième me dit “fix project setup”

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

                    Le premier.
                    L’erreur change to entityPlayer se trouve où ?

                    1 Reply Last reply Reply Quote 0
                    • _
                      _BrowNeez_ last edited by

                      if(event.player.inventory.getCurrentItem() != null && event.player.inventory.getCurrentItem().getItem() == this && EnchantmentHelper.getEnchantmentLevel(Enchantment.efficiency, event.player.inventory.getCurrentItem() == 5) // pour un enchantement de 5

                      Les erreurs sont en rouge

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

                        Heu oui remplace par entityplayer

                        1 Reply Last reply Reply Quote 0
                        • _
                          _BrowNeez_ last edited by

                          J’ai encore des erreurs :

                          if(event.entityPlayer.inventory.getCurrentItem() != null && event.entityPlayer.inventory.getCurrentItem().getItem() == this && EnchantmentHelper.getEnchantmentLevel(Enchantment.efficiency, %(#ff3333)[event.entityPlayer.inventory.getCurrentItem() == 5))

                          J’ai une erreur : Incompatible operand types itemstack and int]

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

                            
                            if(event.entityPlayer.inventory.getCurrentItem() != null && event.entityPlayer.inventory.getCurrentItem().getItem() == this && EnchantmentHelper.getEnchantmentLevel(Enchantment.efficiency, event.entityPlayer.inventory.getCurrentItem()) == 5)
                            
                            
                            1 Reply Last reply Reply Quote 0
                            • _
                              _BrowNeez_ last edited by

                              @‘bodri’:

                              
                              if(event.entityPlayer.inventory.getCurrentItem() != null && event.entityPlayer.inventory.getCurrentItem().getItem() == this && EnchantmentHelper.getEnchantmentLevel(Enchantment.efficiency, event.entityPlayer.inventory.getCurrentItem()) == 5)
                              
                              

                              Erreur à : .getEnchantmentLevel

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

                                Oui j’ai oublié une parenthèse.
                                Et j’ai aussi oublié de mettre .effectId après Enchantment.efficiency

                                1 Reply Last reply Reply Quote 0
                                • _
                                  _BrowNeez_ last edited by

                                  Je vais peut être passer pour un casse cou mais quand j’utilise le code, j’ai pas le rendu voulus, j’aurais voulut une vitesse proche de la cadence d’une mitraillette ( une comparaison très bizarre mais ça résume bien ce que je veut) et quand j’augmente la event.newspeed ça ne bouge pas.

                                  Pour en revenir avec un problème lié aux mods ( je sais c’est cauldron mais je vais pas refaire un post juste pour ça), quand j’utilise cauldron + bungeecord, ça me met une erreur qui me dit que l’échange d’informations entre le lobby et le cauldron sont pas compatible (je résume car je n’ai pas accès à bungeecord pour le moment)

                                  Au passage, un grand merci à ceux qui m’ont aider 😄

                                  1 Reply Last reply Reply Quote 0
                                  • Folgansky
                                    Folgansky Correcteurs last edited by

                                    Si tu parles bien de la vitesse d’utilisation de ton outil, c’est réglable sur le ToolMaterial.

                                    1 Reply Last reply Reply Quote 0
                                    • _
                                      _BrowNeez_ last edited by

                                      @‘Toutoune1008’:

                                      Si tu parles bien de la vitesse d’utilisation de ton outil, c’est réglable sur le ToolMaterial.

                                      Oui mais je veux changer la vitesse de minage quand mes outils sont enchanté 😕

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

                                        En gros tu veux limite qu’on puisse casser plusieurs blocs en un coup ?
                                        Ça doit être possible mais je ne sais pas du tout où gérer ça.

                                        1 Reply Last reply Reply Quote 0
                                        • _
                                          _BrowNeez_ last edited by

                                          En gros (très gros) oui je voudrais une cadence de minage très élevé avec efficacité 5

                                          Mais je vais abandonner puisque je trouve rien 😕

                                          Un énorme merci à vous 😄

                                          1 Reply Last reply Reply Quote 0
                                          • 1 / 1
                                          • First post
                                            Last post
                                          Design by Woryk
                                          Contact / Mentions Légales / Faire un don

                                          MINECRAFT FORGE FRANCE © 2018

                                          Powered by NodeBB