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

    Résolu Potion incurable

    1.7.x
    1.7.10
    3
    13
    2394
    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.
    • P
      PlagueZ dernière édition par

      Bonjour,

      je me pose une question est-ce que c’est possible de faire en sorte que un effet de potion ne puisse pas être enlever avec un seau de lait?

      “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

        PotionEffect effect = new PotionEffect(id, durée, amplificateur);
        effect.getCurativeItems().clear();
        player.addPotionEffect(effect);
        
        1 réponse Dernière réponse Répondre Citer 0
        • P
          PlagueZ dernière édition par

          On utilise ça dans la classe ou on ajoute les effet?

          ou dans le living event?

          “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

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

            Dans le Living Event

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

              if (event.entityLiving.isPotionActive(ViruZEffect.Dependance))
              {
              ViruZEffect effect = new ViruZEffect(id, durée, amplificateur);
              effect.getCurativeItems().clear();
              player.addPotionEffect(effect);
              comme ça dans l’idée? parce que j ai pas le getCurrativeItem 😕

              “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

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

                la classe ViruZEffect

                package virusz.miscellaneous;
                
                import java.awt.Color;
                
                import net.minecraft.potion.Potion;
                
                public class ViruZEffect extends Potion {
                public static ViruZEffect bleeding;
                public static int bleedingID;
                public static ViruZEffect fracture;
                public static int fractureID;
                public static ViruZEffect adrenaline;
                public static int adrenalineID;
                public static ViruZEffect Dependance;
                public static int DependanceID;
                public static ViruZEffect Drogue;
                public static int DrogueID;
                public static ViruZEffect Manque;
                public static int ManqueID;
                
                public ViruZEffect(int id, boolean isBadEffect, int color, String name) {
                super(id, isBadEffect, color);
                setPotionName("potion." + name);
                }
                
                @Override
                public ViruZEffect setIconIndex(int x, int y) {
                super.setIconIndex(x, y);
                return this;
                }
                
                public static void loadEffects() {
                bleeding = new ViruZEffect(bleedingID, true, Color.red.getRGB(), "bleeding").setIconIndex(4, 2);
                fracture = new ViruZEffect(fractureID, true, Color.white.getRGB(), "fracture").setIconIndex(5, 2);
                adrenaline = new ViruZEffect(adrenalineID, true, Color.blue.getRGB(), "adrenaline").setIconIndex(6, 2);
                Dependance = new ViruZEffect(DependanceID, true, Color.TRANSLUCENT, "Dependance").setIconIndex(7, 2);
                Drogue = new ViruZEffect(DrogueID, true, Color.TRANSLUCENT, "Drogue").setIconIndex(8, 2);
                Manque = new ViruZEffect(ManqueID, true, Color.TRANSLUCENT, "Manque").setIconIndex(9, 2);
                }
                
                public static void register() {
                Potion.potionTypes[bleeding.getId()] = bleeding;
                Potion.potionTypes[fracture.getId()] = fracture;
                Potion.potionTypes[adrenaline.getId()] = adrenaline;
                Potion.potionTypes[Dependance.getId()] = Dependance;
                Potion.potionTypes[Drogue.getId()] = Drogue;
                Potion.potionTypes[Manque.getId()] = Manque;
                }
                }
                

                “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

                1 réponse Dernière réponse Répondre Citer 0
                • robin4002
                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                  Tu confonds Potion et PotionEffect. Ce sont deux choses différentes.
                  Le code que je t’ai donné doit être utilisé là ou tu appliques l’effet. Dans ton cas ça sera :
                  PotionEffect effect = new PotionEffect(ViruZEffect.bleeding.getId(), durée, amplificateur);
                  effect.getCurativeItems().clear();
                  player.addPotionEffect(effect);

                  ViruZEffect devrait plutôt être nommé ViruZPotions pour éviter toutes confusion.

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

                    ok le probleme c’est que si le joueur deco/reco alors que l’effet est appliquer il peut utiliser un seau de lait parce que le premier effet est ajouter par un item 😕 il y a un moyen pour que tout les effets créé soit incurable?

                    “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

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

                      j ai trouver suffit d’ajouter:

                      public class Effect extends PotionEffect {
                      
                       public Effect(int potionID, int duration, int amplifier) {
                         super(potionID, duration, amplifier);
                      //toutes les potion créé sont incurable
                         this.getCurativeItems().clear();
                       }
                      }
                      

                      Mais le joueur peut toujours se clear si il deco reco T_T

                      “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

                      1 réponse Dernière réponse Répondre Citer 0
                      • robin4002
                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                        Dans ce cas dans un event de tick de joueur tu parcours la liste de tous les effets de potions qu’a le joueur et si l’effet est le tient tu clear la liste des CurativeItems

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

                          On enregistre bien l’event player tick comme ca?

                          MinecraftForge.EVENT_BUS.register(new PlayerEventTick());
                          dans le init?

                          parce que j’ai aucun effet a mon event j’ai mis des print partout c est comme si l event était pas la

                          public class PlayerEventTick {
                          VirusZEffect effect;
                          @SubscribeEvent
                          public void onPlayerTick(PlayerTickEvent e){
                          System.out.println("test");
                          if(e.player.isPotionActive(VirusZPotion.Drogue)){
                          effect.getCurativeItems().clear();
                          System.out.println("test");
                          }
                          else if(e.player.isPotionActive(VirusZPotion.Dependance)){
                          effect.getCurativeItems().clear();
                          System.out.println("test");
                          
                          }
                          else if(e.player.isPotionActive(VirusZPotion.Manque)){
                          effect.getCurativeItems().clear();
                          System.out.println("test");
                          }
                          }
                          }
                          
                          

                          “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

                          1 réponse Dernière réponse Répondre Citer 0
                          • robin4002
                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                            PlayerTickEvent est un event de fml, donc FMLCommonHandler.instance().bus().register(new PlayerEventTick());
                            Par contre ton code n’est pas bon, tu vas te manger un NPE.
                            J’aurai plutôt fait comme ça :

                            public class PlayerEventTick {
                                @SubscribeEvent
                                public void onPlayerTick(PlayerTickEvent e)
                                {
                                    Iterator it = e.player.getActivePotionEffects().iterator();
                                    while(it.hasNext())
                                    {
                                        PotionEffect p = (PotionEffect)it.next();
                                        if(p.getPotionID() ==VirusZPotion.Drogue.getId() || p.getPotionID() == VirusZPotion.Dependance || p.getPotionID() == VirusZPotion.Manque)
                                        {
                                            p.getCurativeItems().clear();
                            
                                        }
                                    }
                                }
                            
                            }
                            
                            1 réponse Dernière réponse Répondre Citer 0
                            • P
                              PlagueZ dernière édition par

                              ça fonctionne merci 😃

                              “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

                              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