MFF

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

    Potion incurable

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    13 Messages 3 Publieurs 2.6k 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.
    • P Hors-ligne
      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
      • DeletedD Hors-ligne
        Deleted
        dernière édition par

        Dans le Living Event

        1 réponse Dernière réponse Répondre Citer 0
        • P Hors-ligne
          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 Hors-ligne
            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
            • robin4002R Hors-ligne
              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 Hors-ligne
                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 Hors-ligne
                  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
                  • robin4002R Hors-ligne
                    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 Hors-ligne
                      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
                      • robin4002R Hors-ligne
                        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 Hors-ligne
                          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
                          ContactMentions Légales

                          MINECRAFT FORGE FRANCE © 2024

                          Powered by NodeBB