MFF

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

    Lanceur qui ne casse pas l'obsi dans l'eau

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.2
    11 Messages 5 Publieurs 2.7k 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.
    • darkvince37D Hors-ligne
      darkvince37
      dernière édition par

      Salut,

      Je revient vers vous car j’ai un petit probleme j’ai créer un lanceur que quand on fait clique droit sa lance une balle qui peut casser l’obsi jusqu’a la tous va bien mais mon probleme c’est qu’on peut casser l’obsi meme quand elle est dans de l’eau se qui devrai pas.

      
      package fr.darkvince.ultra;
      
      import net.minecraft.block.Block;
      import net.minecraft.block.BlockRedstoneDiode;
      import net.minecraft.block.material.Material;
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.entity.projectile.EntityThrowable;
      import net.minecraft.init.Blocks;
      import net.minecraft.util.DamageSource;
      import net.minecraft.util.MovingObjectPosition;
      import net.minecraft.world.World;
      
      public class EntityBalleTntObsi extends EntityThrowable
      {
          public static float explosionPower;
          public static final int empRadius = 4;
      
          public EntityBalleTntObsi(World world)
          {
              super(world);
          }
      
          public EntityBalleTntObsi(World world, EntityLivingBase entity)
          {
              super(world, entity);
          }
      
          private void explode()
          {
              int bx = (int)posX;
              int by = (int)posY;
              int bz = (int)posZ;
              worldObj.createExplosion(this, posX, posY, posZ, 0.75F, true);
      
              for (int x = bx - empRadius; x <= empRadius; x++)
              {
                  for (int y = by - empRadius; y <= by + empRadius; y++)
                  {
                      for (int z = bz - empRadius; z <= bz + empRadius; z++)
                      {
                          Block block = worldObj.getBlock(x, y, z);  
                          if (block.getMaterial() != Material.air)
                              if(block == Blocks.water)
                                if(block != Blocks.obsidian){
                                explosionPower = 0.75F;
                                System.out.println("Dans l'eau");
                                }
                                else
      
                                    explosionPower = 0.75F*1000.0F;
                            System.out.println("Casse l'obsi");
                                }
                  }
      
                  }
      
              setDead();
          }
          @Override
          public void onUpdate()
          {
              super.onUpdate();
              if (ticksExisted > 20)
              {
                 explode();
              }
      
              for (int i = 0; i < 10; i++)
              {
                  double x = (double)(rand.nextInt(10) - 5) / 8.0D;
                  double y = (double)(rand.nextInt(10) - 5) / 8.0D;
                  double z = (double)(rand.nextInt(10) - 5) / 8.0D;
                  worldObj.spawnParticle("fireworksSpark", posX, posY, posZ, x, y, z);
              }
          }
      
          @Override
          protected float getGravityVelocity()
          {
              return 0.005F;
          }
      
          @Override
          public void onImpact(MovingObjectPosition movingObjectPosition)
          {
              explode();
      
          }
      }
      
      
      1 réponse Dernière réponse Répondre Citer 0
      • darkvince37D Hors-ligne
        darkvince37
        dernière édition par

        Hum je vais essayer sa

        Envoyé de mon SM-G928F en utilisant Tapatalk

        Edit:

        J’ai fait sa mais l’obsi casse plus maintenant

        
          if (block.getMaterial() != Material.air)
                          if(block == Blocks.water)
                            if(block != Blocks.obsidian){
                            explosionPower = 0.75F;
                            System.out.println("Dans l'eau");
                            }
                            else
        
                                explosionPower = 0.75F*1000.0F;
                        System.out.println("Casse l'obsi");
                            }
        }
        
        

        Les conditions ne sont pas appelé

        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

          Tu l’utilises où la variable explosionPower ?

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

            @‘robin4002’:

            Tu l’utilises où la variable explosionPower ?

            Un peut plus haut je vais actualisé mon code actuelle en haut.

            public static float explosionPower;

            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 c’est juste la déclaration de la variable.
              Je veux savoir où elle est utilisé.

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

                @‘robin4002’:

                ça c’est juste la déclaration de la variable.
                Je veux savoir où elle est utilisé.

                Elle est utilisé ici

                
                1.  **if**(block != Blocks.obsidian){
                2.                      explosionPower = 0.75F;
                3.                      System.**out**.println("Dans l'eau");
                4.                      }
                5.                      **else**
                6.                          
                7.                          explosionPower = 0.75F%(#666600)
                8.  1000.0F;
                
                
                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

                  Je ne vois pas pourquoi elle est static alors.
                  Et je ne vois pas non plus en quoi elle modifie la force d’explosion.

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

                    @‘robin4002’:

                    Je ne vois pas pourquoi elle est static alors.
                    Et je ne vois pas non plus en quoi elle modifie la force d’explosion.

                    Je veut pas modifier la force de l’explosion je veut juste quelle casse l’obsi mais le probleme c’est quelle casse l’obsi mais meme dans l’eau
                    J’ai juste mis en float du coup

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

                      @‘darkvince37’:

                      
                             
                        if (block.getMaterial() != Material.air)
                                        if(block == Blocks.water)
                                          if(block != Blocks.obsidian){
                                          explosionPower = 0.75F;
                                          System.out.println("Dans l'eau");
                                          }
                                          else
                                              
                                              explosionPower = 0.75F*1000.0F;
                                      System.out.println("Casse l'obsi");
                                          }
                      }
                      
                      

                      Les conditions ne sont pas appelé

                      Traduction de ton code :

                      Si c’est un bloc d’eau et que ce n’est pas un bloc d’obsidienne : “dans l’eau”
                      Sinon, si c’est un bloc d’eau et que ce bloc d’eau est un bloc d’obsidienne : “casse l’obsi”

                      Personnellement je ne connais aucun bloc d’eau qui soit de l’obsidienne

                      –------------------------------------------------------------------------------------
                      Si tu trouves mon intervention pertinente, n'hésite pas a m…

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

                        J’avais essayé sans le water mais mon problème c’est que sa casse mais même dans l’eau

                        Envoyé de mon SM-G928F en utilisant Tapatalk

                        1 réponse Dernière réponse Répondre Citer 0
                        • jglrxavpokJ Hors-ligne
                          jglrxavpok Modérateurs
                          dernière édition par

                          Il faudrait que tu vérifies si un des 6 blocs autour de l’obsidienne est un bloc d’eau (au dessus, en dessous, au nord, au sud, à l’est et à l’ouest).
                          Et encore, je pense qu’il faudrait ne pas prendre le bloc d’en dessous au risque de faire des faux positifs.

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