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.3k Vues 1 Abonné
    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.
    • 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