MFF

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

    Frost Walker

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.10
    12 Messages 4 Publieurs 3.2k 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.
    • Mehd95M Hors-ligne
      Mehd95
      dernière édition par

      Je voudrais refaire l’enchante Frost Walker mais je n’arrive pas a recuperer le code de minecraft et je n’ai pas vu sur le forum comment faire,
      ce qu’il me manque c’est savoir quelles methodes et event (ou meme plus ) utiliser pour le faire.

      1 réponse Dernière réponse Répondre Citer 0
      • BrokenSwingB Hors-ligne
        BrokenSwing Moddeurs confirmés Rédacteurs
        dernière édition par

        PlayerEvent.TickEvent, et tu dois créer l’enchantement frost walker

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

          @‘BrokenSwing’:

          PlayerEvent.TickEvent, et tu dois créer l’enchantement frost walker

          Ok mais comment faire pour dire que ça remplace une zone d’eau de 5*5  autour de joueurs et que ça dispawn au bout de 5s

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

            Utilises les ChunkCoordinates pour stocker les positions des 5 blocks sous le joueur.
            Pour récupérer la position du block sous le joueur, suffit de faire une troncature sur ses positions. (Math.floor(pos))
            Ensuite tu récupères les autres blocks à partir des coordonnées de celui ci.
            Tu créer une liste (ou tableau) nommée lastFrostChunkCoordinates, et si les positions d’un block est différent sur le remplace par de l’eau.

            Fracture

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

              L’avantage d’éclipe c’est de pouvoir installer plusieurs version de Forge.
              Ducoup, on peu voir le code sources des versions ultérieur.
              Ici, la fonction qui permet de Freeze l’eau en 1.10 (EnchantementFrostWalker.class)

              public static void freezeNearby(EntityLivingBase living, World worldIn, BlockPos pos, int level)
              {
              if (living.onGround)
              {
              float f = (float)Math.min(16, 2 + level);
              BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos(0, 0, 0);
              
              for (BlockPos.MutableBlockPos blockpos$mutableblockpos1 : BlockPos.getAllInBoxMutable(pos.add((double)(-f), -1.0D, (double)(-f)), pos.add((double)f, -1.0D, (double)f)))
              {
              if (blockpos$mutableblockpos1.distanceSqToCenter(living.posX, living.posY, living.posZ) <= (double)(f * f))
              {
              blockpos$mutableblockpos.setPos(blockpos$mutableblockpos1.getX(), blockpos$mutableblockpos1.getY() + 1, blockpos$mutableblockpos1.getZ());
              IBlockState iblockstate = worldIn.getBlockState(blockpos$mutableblockpos);
              
              if (iblockstate.getMaterial() == Material.AIR)
              {
              IBlockState iblockstate1 = worldIn.getBlockState(blockpos$mutableblockpos1);
              
              if (iblockstate1.getMaterial() == Material.WATER && ((Integer)iblockstate1.getValue(BlockLiquid.LEVEL)).intValue() == 0 && worldIn.canBlockBePlaced(Blocks.FROSTED_ICE, blockpos$mutableblockpos1, false, EnumFacing.DOWN, (Entity)null, (ItemStack)null))
              {
              worldIn.setBlockState(blockpos$mutableblockpos1, Blocks.FROSTED_ICE.getDefaultState());
              worldIn.scheduleUpdate(blockpos$mutableblockpos1.toImmutable(), Blocks.FROSTED_ICE, MathHelper.getRandomIntegerInRange(living.getRNG(), 60, 120));
              }
              }
              }
              }
              }
              

              De la tu peu observer tous les code sources. Les class qui n’existe pas, tu dois te débrouillé à les changer (ex : cette fonction est appeler par l’update de l’entité, tu dois donc l’ajouté dans l’event d’update d’entité).
              Cela nécessiste un peu de recherche, mais tu as tout disponible sur le code sources de Minecraft.

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

                @‘Jodge’:

                L’avantage d’éclipe c’est de pouvoir installer plusieurs version de Forge.
                Ducoup, on peu voir le code sources des versions ultérieur.
                Ici, la fonction qui permet de Freeze l’eau en 1.10 (EnchantementFrostWalker.class)

                public static void freezeNearby(EntityLivingBase living, World worldIn, BlockPos pos, int level)
                   {
                       if (living.onGround)
                       {
                           float f = (float)Math.min(16, 2 + level);
                           BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos(0, 0, 0);
                
                           for (BlockPos.MutableBlockPos blockpos$mutableblockpos1 : BlockPos.getAllInBoxMutable(pos.add((double)(-f), -1.0D, (double)(-f)), pos.add((double)f, -1.0D, (double)f)))
                           {
                               if (blockpos$mutableblockpos1.distanceSqToCenter(living.posX, living.posY, living.posZ) <= (double)(f * f))
                               {
                                   blockpos$mutableblockpos.setPos(blockpos$mutableblockpos1.getX(), blockpos$mutableblockpos1.getY() + 1, blockpos$mutableblockpos1.getZ());
                                   IBlockState iblockstate = worldIn.getBlockState(blockpos$mutableblockpos);
                
                                   if (iblockstate.getMaterial() == Material.AIR)
                                   {
                                       IBlockState iblockstate1 = worldIn.getBlockState(blockpos$mutableblockpos1);
                
                                       if (iblockstate1.getMaterial() == Material.WATER && ((Integer)iblockstate1.getValue(BlockLiquid.LEVEL)).intValue() == 0 && worldIn.canBlockBePlaced(Blocks.FROSTED_ICE, blockpos$mutableblockpos1, false, EnumFacing.DOWN, (Entity)null, (ItemStack)null))
                                       {
                                           worldIn.setBlockState(blockpos$mutableblockpos1, Blocks.FROSTED_ICE.getDefaultState());
                                           worldIn.scheduleUpdate(blockpos$mutableblockpos1.toImmutable(), Blocks.FROSTED_ICE, MathHelper.getRandomIntegerInRange(living.getRNG(), 60, 120));
                                       }
                                   }
                               }
                           }
                       }
                

                De la tu peu observer tous les code sources. Les class qui n’existe pas, tu dois te débrouillé à les changer (ex : cette fonction est appeler par l’update de l’entité, tu dois donc l’ajouté dans l’event d’update d’entité).
                Cela nécessiste un peu de recherche, mais tu as tout disponible sur le code sources de Minecraft.

                ok daccord je comprends pourquoi j’avais pas trouvé je croyais que c’etait en 1.9 x)

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

                  package fr.yahoo.mehdiboussalem.mehdmod.common;
                  
                  import net.minecraft.block.BlockLiquid;
                  import net.minecraft.block.material.Material;
                  import net.minecraft.entity.Entity;
                  import net.minecraft.entity.EntityLivingBase;
                  import net.minecraft.init.Blocks;
                  import net.minecraft.item.ItemStack;
                  import net.minecraft.util.EnumFacing;
                  import net.minecraft.util.MathHelper;
                  import net.minecraft.world.World;
                  
                  public class EnchantementMod {
                  
                      public static void freezeNearby(EntityLivingBase living, World worldIn, BlockPos pos, int level)
                      {
                          if (living.onGround)
                          {
                              float f = (float)Math.min(16, 2 + level);
                              BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos(0, 0, 0);
                  
                              for (BlockPos.MutableBlockPos blockpos$mutableblockpos1 : BlockPos.getAllInBoxMutable(pos.add((double)(-f), -1.0D, (double)(-f)), pos.add((double)f, -1.0D, (double)f)))
                              {
                                  if (blockpos$mutableblockpos1.distanceSqToCenter(living.posX, living.posY, living.posZ) <= (double)(f * f))
                                  {
                                      blockpos$mutableblockpos.setPos(blockpos$mutableblockpos1.getX(), blockpos$mutableblockpos1.getY() + 1, blockpos$mutableblockpos1.getZ());
                                      IBlockState iblockstate = worldIn.getBlockState(blockpos$mutableblockpos);
                  
                                      if (iblockstate.getMaterial() == Material.air)
                                      {
                                          IBlockState iblockstate1 = worldIn.getBlockState(blockpos$mutableblockpos1);
                  
                                          if (iblockstate1.getMaterial() == Material.water && ((Integer)iblockstate1.getValue(BlockLiquid.LEVEL)).intValue() == 0 && worldIn.canBlockBePlaced(Blocks.FROSTED_ICE, blockpos$mutableblockpos1, false, EnumFacing.DOWN, (Entity)null, (ItemStack)null))
                                          {
                                              worldIn.setBlockState(blockpos$mutableblockpos1, Blocks.FROSTED_ICE.getDefaultState());
                                              worldIn.scheduleUpdate(blockpos$mutableblockpos1.toImmutable(), Blocks.FROSTED_ICE, MathHelper.getRandomIntegerInRange(living.getRNG(), 60, 120));
                                          }
                                      }
                                  }
                              }
                          }
                      }
                  }
                  

                  j’ai des erreus sur les  BlockPos, IBlockState, LEVEL, FROSTED_ICE

                  1 réponse Dernière réponse Répondre Citer 0
                  • BrokenSwingB Hors-ligne
                    BrokenSwing Moddeurs confirmés Rédacteurs
                    dernière édition par

                    BlockPos -> remplace par des x, y z (tous des int)
                    IBlockState -> remplace par un Block
                    LEBEL c’est le niveau de l’enchantement
                    FROSTED_ICE -> va falloir impro par que c’est un block de la 1.10 (de la glace qui fond en peu de temps et n’importe où), c’est la glace qui est sous les pieds du joueur

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

                      ok juste comment on telecharge les sources de mc 1.10 pour que je recree le frosted ice

                      1 réponse Dernière réponse Répondre Citer 0
                      • BrokenSwingB Hors-ligne
                        BrokenSwing Moddeurs confirmés Rédacteurs
                        dernière édition par

                        Tu peux faire un setup 1.10 ou alors avec MCP

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

                          Euh j’arrive pas a faire le setup on peut juste me passer la class du frosted Ice ?

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

                            https://www.minecraftforgefrance.fr/showthread.php?tid=2805

                            Te filer la source sert à rien : c’est en 1.10. Il y aura des class qui n’existe plus, qui ont été renommé, ou qui on été adapté. Il faut faire un petit travail d’analyse pour modifier certaine chose.
                            Tu suis le Tuto, tu installe les sources, et tu regarde par toi même. C’est un support, on vas pas te mâché le travail en te donnant toute les réponse de simple claquement de doigt.

                            C’est pas pour être méchant ou quoi que se soit hein, mais si on te donne toute les réponses servis sur un plateau d’argent, tu n’apprendras rien 😉

                            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