• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Problème effet de Potion custom

    Sans suite
    1.7.x
    2
    13
    3861
    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.
    • Antoine_
      Antoine_ dernière édition par

      Bonsoir tout le monde:

      J’ai suivi le tuto de ZeAmateis sur les effets de potion.

      Tout fonctionne correctement appart le fait que quand l’effet est appliqué a un joueur il ce prend un coup.

      Voici mon code:

      
      package potion;
      
      import java.awt.Color;
      
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.potion.Potion;
      import net.minecraft.util.DamageSource;
      
      public class Regeneration extends Potion
      {
      
      public static Regeneration customEffect;
      public static int customEffectID;
      
      protected Regeneration(int id, boolean isBadEffectOrNot, int color, String name)
      {
      super(id, isBadEffectOrNot, color);
      this.setPotionName("potion." + name);
      }
      
      @Override
      public Regeneration setIconIndex(int x, int y)
      {
        super.setIconIndex(x, y);
        return this;
      }
      
      public static void loadEffects()
      {
      customEffect = new Regeneration(customEffectID, false, Color.red.getRGB(), "regeneration1").setIconIndex(4, 2);
      }
      
      public static void register()
      {
      Regeneration.potionTypes[customEffect.getId()] = customEffect;
      }
      
      public void performEffect(EntityLivingBase entity, int p_76394_2_)
      {
         if (this.id == 25)
         {
             if (entity.getHealth() < entity.getMaxHealth())
             {
                 entity.heal(1.0F);
             }
         }
      }
      
      public boolean isReady(int p_76397_1_, int p_76397_2_)
      {
         return p_76397_1_ >= 1;
      }
      
      }
      

      Donc le soin marche correctement mais le jouer ce prend un coup ….

      J’ai essayé différente fonction de la classe Potion de minecraft sans aucun succé…

      Merci d’avance

      1 réponse Dernière réponse Répondre Citer 0
      • SCAREX
        SCAREX dernière édition par

        
        public boolean isReady(int p_76397_1_, int p_76397_2_)
        {
        return p_76397_1_ >= 1;
        }
        
        

        tu peux aussi mettre return true, ça ira plus vite puisque juste avant il y a : ```java
        if (this.duration > 0)

        
        Penses aux @Override.
        
        Question : qaund tu dis que tu prends un coup, est-ce que tu perds de la vie ? Ou est-ce que tu as juste le son et l'animation comme si tu était touché.

        Site web contenant mes scripts : http://SCAREXgaming.github.io

        Pas de demandes de support par MP ni par skype SVP.
        Je n'accepte sur skype que l…

        1 réponse Dernière réponse Répondre Citer 0
        • Antoine_
          Antoine_ dernière édition par

          d’accord merci pour ta réponse et pour être plus clair non je ne perd pas de vie mais il y a le son et l’animation comme si le joueur était touché ….

          1 réponse Dernière réponse Répondre Citer 0
          • SCAREX
            SCAREX dernière édition par

            @‘Antoine_’:

            d’accord merci pour ta réponse et pour être plus clair non je ne perd pas de vie mais il y a le son et l’animation comme si le joueur était touché ….

            Même lorsque tu appliques l’effet via la commande /effect ?

            EDIT :
            où est-ce que le customEffectID est donné ?

            Site web contenant mes scripts : http://SCAREXgaming.github.io

            Pas de demandes de support par MP ni par skype SVP.
            Je n'accepte sur skype que l…

            1 réponse Dernière réponse Répondre Citer 0
            • Antoine_
              Antoine_ dernière édition par

              Oui l’ID est 25 pour mon effet ….

              Même avec la commande /effect j’ai le même soucis … je ne comprend pas d’ou vient le problème.

              1 réponse Dernière réponse Répondre Citer 0
              • Antoine_
                Antoine_ dernière édition par

                up svp

                1 réponse Dernière réponse Répondre Citer 0
                • SCAREX
                  SCAREX dernière édition par

                  @‘Antoine_’:

                  up svp

                  Là je vois pas du tout d’où vient le problème, renvoi toutes les classes en rapport (ex : classe de l’effet de potion, classe où l’effet est appelé, etc.)

                  Site web contenant mes scripts : http://SCAREXgaming.github.io

                  Pas de demandes de support par MP ni par skype SVP.
                  Je n'accepte sur skype que l…

                  1 réponse Dernière réponse Répondre Citer 0
                  • Antoine_
                    Antoine_ dernière édition par

                    Voila mes classe:

                    Classe de l’effet:

                    package potion;
                    
                    import java.awt.Color;
                    
                    import net.minecraft.entity.EntityLivingBase;
                    import net.minecraft.potion.Potion;
                    import net.minecraft.util.DamageSource;
                    
                    public class Regeneration extends Potion
                    {
                    
                    public static Regeneration customEffect;
                    public static int customEffectID;
                    
                    protected Regeneration(int id, boolean isBadEffectOrNot, int color, String name)
                    {
                    super(id, isBadEffectOrNot, color);
                    this.setPotionName("potion." + name);
                    }
                    
                    @Override
                    public Regeneration setIconIndex(int x, int y)
                    {
                    super.setIconIndex(x, y);
                    return this;
                    }
                    
                    public static void loadEffects()
                    {
                    customEffect = new Regeneration(customEffectID, false, Color.red.getRGB(), "regeneration1").setIconIndex(4, 2);
                    }
                    
                    public static void register()
                    {
                    Regeneration.potionTypes[customEffect.getId()] = customEffect;
                    }
                    
                    public void performEffect(EntityLivingBase entity, int p_76394_2_)
                    {
                    if (this.id == 25)
                    {
                    if (entity.getHealth() < entity.getMaxHealth())
                    {
                    entity.heal(1.0F);
                    }
                    }
                    }
                    
                    public boolean isReady(int p_76397_1_, int p_76397_2_)
                    {
                    return p_76397_1_ >= 1;
                    }
                    
                    }
                    

                    Classe principal

                    
                    Regeneration.customEffectID = 25;
                    Regeneration.loadEffects();
                    Regeneration.register();
                    
                    

                    Je cherche aussi mais rien de concluant

                    1 réponse Dernière réponse Répondre Citer 0
                    • SCAREX
                      SCAREX dernière édition par

                      @‘Antoine_’:

                      Voila mes classe:

                      Classe de l’effet:

                      package potion;
                      
                      import java.awt.Color;
                      
                      import net.minecraft.entity.EntityLivingBase;
                      import net.minecraft.potion.Potion;
                      import net.minecraft.util.DamageSource;
                      
                      public class Regeneration extends Potion
                      {
                      
                      public static Regeneration customEffect;
                      public static int customEffectID;
                      
                      protected Regeneration(int id, boolean isBadEffectOrNot, int color, String name)
                      {
                      super(id, isBadEffectOrNot, color);
                      this.setPotionName("potion." + name);
                      }
                      
                      @Override
                      public Regeneration setIconIndex(int x, int y)
                      {
                        super.setIconIndex(x, y);
                        return this;
                      }
                      
                      public static void loadEffects()
                      {
                      customEffect = new Regeneration(customEffectID, false, Color.red.getRGB(), "regeneration1").setIconIndex(4, 2);
                      }
                      
                      public static void register()
                      {
                      Regeneration.potionTypes[customEffect.getId()] = customEffect;
                      }
                      
                      public void performEffect(EntityLivingBase entity, int p_76394_2_)
                      {
                         if (this.id == 25)
                         {
                             if (entity.getHealth() < entity.getMaxHealth())
                             {
                                 entity.heal(1.0F);
                             }
                         }
                      }
                      
                      public boolean isReady(int p_76397_1_, int p_76397_2_)
                      {
                         return p_76397_1_ >= 1;
                      }
                      
                      }
                      

                      Classe principal

                      
                      Regeneration.customEffectID = 25;
                      Regeneration.loadEffects();
                      Regeneration.register();
                      

                      Je cherche aussi mais rien de concluant

                      Tu n’as pas rajouté les balises @Override

                      Site web contenant mes scripts : http://SCAREXgaming.github.io

                      Pas de demandes de support par MP ni par skype SVP.
                      Je n'accepte sur skype que l…

                      1 réponse Dernière réponse Répondre Citer 0
                      • Antoine_
                        Antoine_ dernière édition par

                        Oui désolé mais ceci ne change pas grand choses malheureusement …

                        
                        public class Regeneration extends Potion
                        {
                        
                        public static Regeneration customEffect;
                        public static int customEffectID;
                        
                        public Regeneration(int id, boolean isBadEffectOrNot, int color, String name)
                        {
                        super(id, isBadEffectOrNot, color);
                        this.setPotionName("potion." + name);
                        }
                        
                        @Override
                        public Regeneration setIconIndex(int x, int y)
                        {
                        super.setIconIndex(x, y);
                        return this;
                        }
                        
                        public static void loadEffects()
                        {
                        customEffect = new Regeneration(customEffectID, false, Color.red.getRGB(), "regeneration1").setIconIndex(4, 2);
                        }
                        
                        public static void register()
                        {
                        Regeneration.potionTypes[customEffect.getId()] = customEffect;
                        }
                        
                        @Override
                        public void performEffect(EntityLivingBase entity, int p_76394_2_)
                        {
                        if (this.id == 25)
                        {
                        if (entity.getHealth() < entity.getMaxHealth())
                        {
                        entity.heal(0.05F);
                        }
                        }
                        }
                        
                        @Override
                        public boolean isReady(int p_76397_1_, int p_76397_2_)
                        {
                        return true;
                        }
                        
                        }
                        
                        

                        up svp

                        1 réponse Dernière réponse Répondre Citer 0
                        • SCAREX
                          SCAREX dernière édition par

                          
                          entity.heal(0.05F);
                          
                          

                          il vaut mieux mettre des valeurs entières comme 1.0F.

                          
                          @Override
                          public Regeneration setIconIndex(int x, int y)
                          {
                          super.setIconIndex(x, y);
                          return this;
                          }
                          
                          

                          Autant supprimer toute cette fonction, ou mettre return super.setIconIndex(x,y); .

                          [java
                          @Override
                          public void performEffect(EntityLivingBase entity, int p_76394_2_)
                          {
                          if (this.id == 25)
                          {
                          if (entity.getHealth() < entity.getMaxHealth())
                          {
                          entity.heal(0.05F);
                          }
                          }
                          }
                          [/java]
                          Essaie sans la condition if (this.id == 25) .

                          Site web contenant mes scripts : http://SCAREXgaming.github.io

                          Pas de demandes de support par MP ni par skype SVP.
                          Je n'accepte sur skype que l…

                          1 réponse Dernière réponse Répondre Citer 0
                          • Antoine_
                            Antoine_ dernière édition par

                            Merci pour le nombre non entier ça fonctionne comme même très bien et j’ai fait les test avec 1.0F ca ne résout pas le problème…

                            Je vais essayer sans la condition if mais j’ai peux d’espoir car l’effet de heal s’applique correctement sauf que le joueur ce prend des coups…

                            Edit: après le test aucun changement

                            1 réponse Dernière réponse Répondre Citer 0
                            • SCAREX
                              SCAREX dernière édition par

                              Qu’est-ce qu’il se passe si tu met en commentaire le entity.heal() (ctrl + shift + c) ?

                              Site web contenant mes scripts : http://SCAREXgaming.github.io

                              Pas de demandes de support par MP ni par skype SVP.
                              Je n'accepte sur skype que l…

                              1 réponse Dernière réponse Répondre Citer 0
                              • 1 / 1
                              • Premier message
                                Dernier message
                              Design by Woryk
                              Contact / Mentions Légales

                              MINECRAFT FORGE FRANCE © 2018

                              Powered by NodeBB