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

    Résolu Clique droit avec un item = Effet de potion

    1.7.x
    1.7.2
    6
    17
    5183
    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.
    • loustak
      loustak dernière édition par robin4002

      Bonjour,
      Je voudrait que lorsque le joueur fait clique droit avec mon item dans la main l’item disparaissent et applique un effet de potion, sauaf que je ne trouve pas comment faire :huh:
      Actuellement j’ai rendu l’item comme mangeable pour q’une fois avaler un effet de potion soit appliqué :

      miningPotion = new ItemFood(0, 0.1f, false).setPotionEffect(3, 120, 2, 1.0f).setUnlocalizedName("miningPotion").setTextureName(PotionPlus.MODID+":miningPotion");
      

      Comment transformez ça ? Merci 🙂

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

        Je n’ai pas bien compris ce que tu veux finalement xD

        Si je t'ai aidé, n'hésites pas à mettre un point de réputation positif !
        Si tu m'as aidé, je n'hésiterais pas à t'en donner à mon tour !

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

          Je veux que quand le joueur fasse un clique droit ça applique un effet de potion et consomme l’item 🙂

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

            Tu fais une nouvelle classe qui hérite de Item, dans la fonction onItemRightClick(…), tu fais ce que tu veux 😉


            http://pastebin.com/7iwPwYJX voila le code 😉

            Si je t'ai aidé, n'hésites pas à mettre un point de réputation positif !
            Si tu m'as aidé, je n'hésiterais pas à t'en donner à mon tour !

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

              Alors ma question va surement te paraître bête mais comment faire une classe qui hérite de mon item ?
              Mon item est déclarée dans la page du mod principale (je n’est pas créer de classe spécifique)
              du coup j’ai ça actuellement comme code :

              miningPotion = new ItemFood(0, 0.1f, false).setPotionEffect(3, 120, 2, 1.0f).setUnlocalizedName("miningPotion").setTextureName(PotionPlus.MODID+":miningPotion");
              public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
              {
              player.addPotionEffect(1);
              player.setCurrentItemOrArmor(0, null);
              return super.onItemRightClick(stack, world, player);
              }
              GameRegistry.addShapelessRecipe(new ItemStack(miningPotion), new Object[]{new ItemStack(Items.potionitem, 1),new ItemStack(hotSlimeBall)});
              GameRegistry.registerItem(miningPotion, "miningPotion", PotionPlus.MODID);
              miningPotion.setCreativeTab(tabPotionPlus); //On ajoute l'item à la table créative
              

              Encore merci 🙂

              edit: eclipse me dit qu’il y a une erreur sur la ligne ‘public item stack on right click…’ : Multiplz marker at this line

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

                Voir tuto comment créer un item:
                http://www.minecraftforgefrance.fr/showthread.php?tid=588

                et après tu ajoute la méthode:

                
                public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
                {
                event.player.addPotionEffect(new PotionEffect(id, temps, level));
                if (!player.capabilities.isCreativeMode)
                {
                –stack.stackSize;
                }
                return stack;
                }
                
                

                “id” “temps” et “level” sont à remplacer

                pour les ids d’effets de potions:
                Potion.nom.id
                le “nom” est à remplacer par le nom de l’effet.


                Mettez à jours vers la dernière version stable (1.8.9 voir même…

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

                  Alors en faite j’ai toutes mes classes dans c’elle de mon mod :

                  package com.gmail.loustak347.common;
                  
                  import net.minecraft.block.Block;
                  import net.minecraft.creativetab.CreativeTabs;
                  import net.minecraft.init.Blocks;
                  import net.minecraft.init.Items;
                  import net.minecraft.item.EnumAction;
                  import net.minecraft.item.Item;
                  import net.minecraft.item.ItemEgg;
                  import net.minecraft.item.ItemFood;
                  import net.minecraft.item.ItemGlassBottle;
                  import net.minecraft.item.ItemPotion;
                  import net.minecraft.item.ItemStack;
                  import net.minecraft.potion.Potion;
                  import cpw.mods.fml.common.Mod;
                  import cpw.mods.fml.common.Mod.EventHandler;
                  import cpw.mods.fml.common.Mod.Instance;
                  import cpw.mods.fml.common.event.FMLInitializationEvent;
                  import cpw.mods.fml.common.event.FMLPostInitializationEvent;
                  import cpw.mods.fml.common.event.FMLPreInitializationEvent;
                  import cpw.mods.fml.common.registry.GameRegistry;
                  import net.minecraft.creativetab.CreativeTabs;
                  import cpw.mods.fml.relauncher.Side;
                  import cpw.mods.fml.relauncher.SideOnly;
                  import net.minecraft.potion.Potion;
                  
                  @Mod(modid = "potionplus", name = "Potion+", version = "0.1")
                  public class PotionPlus {
                  
                  @Instance("modtutoriel")
                  public static final String MODID = "potionPlus";
                  
                  @Instance(MODID)
                  public static PotionPlus instance;
                  //On créer la table en créatif
                  public static CreativeTabs tabPotionPlus = new CreativeTabs("potionPlus") {
                  @Override
                  @SideOnly(Side.CLIENT)
                  public Item getTabIconItem()
                  {
                  return Items.potionitem;
                  }
                  };
                  
                  public static Item hotSlimeBall;
                  public static Item miningPotion;
                  
                  @EventHandler
                  public void preInit(FMLPreInitializationEvent event)
                  {
                  hotSlimeBall = new Item().setTextureName(PotionPlus.MODID+":hotSlimeBall").setUnlocalizedName("hotSlimeBall");
                  GameRegistry.addSmelting(Items.slime_ball,new ItemStack(hotSlimeBall) , 0.0f);
                  GameRegistry.registerItem(hotSlimeBall, "HotSlimeBall", PotionPlus.MODID);
                  hotSlimeBall.setCreativeTab(tabPotionPlus); //On ajoute l'item à la table créative
                  
                  miningPotion = new ItemFood(0, 0.1f, false).setPotionEffect(3, 120, 2, 1.0f).setUnlocalizedName("miningPotion").setTextureName(PotionPlus.MODID+":miningPotion");
                  
                  GameRegistry.addShapelessRecipe(new ItemStack(miningPotion), new Object[]{new ItemStack(Items.potionitem, 1),new ItemStack(hotSlimeBall)});
                  GameRegistry.registerItem(miningPotion, "miningPotion", PotionPlus.MODID);
                  miningPotion.setCreativeTab(tabPotionPlus); //On ajoute l'item à la table créative
                  }
                  }
                  
                  

                  Ets-ce que c’est possible même comme ça ?

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

                    Tu dois créer une class NomDeTonItem, et remplace new ItemFood par new NomDeTonItem, puis créé une class avec le NomDeTonItem. Mais attend que quelqu’un vérifie ce que je dis, pour être sur de ne pas faire de bêtises

                    Joueur PC Master Race :D
                    Config : MSI B85-G43 GAMING - Intel Core i5 4460 @3.2GHz - be Quiet! Pure Rock - 8 Go DDR3 CAS 9 - Saegate SSHD 1 To - Zotac GTX 960 - Cooler Master G550M - Creative Sound Blaster Z - Logitech G230 - Razer DeathAdder Chroma - BlueStork KEYZ#1 (Azerty) - Zalman Z11+ - Asus VE247H

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

                      Exact zery59


                      Mettez à jours vers la dernière version stable (1.8.9 voir même…

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

                        Du coup j’ai ça :

                        import net.minecraft.entity.player.EntityPlayer;
                        import net.minecraft.item.ItemStack;
                        import net.minecraft.potion.PotionEffect;
                        import net.minecraft.world.World;
                        
                        public class miningPotion {
                        public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
                        {
                        event.player.addPotionEffect(new PotionEffect(3, 20, 2));
                        if (!player.capabilities.isCreativeMode)
                        {
                        –stack.stackSize;
                        }
                        return stack;
                        }
                        }
                        
                        

                        Mais il me souligne en rouge event et dit : ‘event cannot be resolved’

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

                          Mets juste player, enlève event.

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

                            Ok j’ai essayer plus d’erreur pour eclipse mais un crash au lancement de minecraft :
                            :::
                            [17:47:03] [Client thread/ERROR] [FML]: The following problems were captured during this phase
                            [17:47:03] [Client thread/ERROR] [FML]: Caught exception from potionplus
                            java.lang.NullPointerException: Can’t add null-object to the registry, name potionplus:miningPotion.
                            at cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry.add(FMLControlledNamespacedRegistry.java:353) ~[FMLControlledNamespacedRegistry.class:?]
                            at cpw.mods.fml.common.registry.GameData.registerItem(GameData.java:772) ~[GameData.class:?]
                            at cpw.mods.fml.common.registry.GameData.registerItem(GameData.java:740) ~[GameData.class:?]
                            at cpw.mods.fml.common.registry.GameRegistry.registerItem(GameRegistry.java:143) ~[GameRegistry.class:?]
                            at com.gmail.loustak347.common.PotionPlus.preInit(PotionPlus.java:59) ~[PotionPlus.class:?]
                            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
                            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
                            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
                            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
                            at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:513) ~[FMLModContainer.class:?]
                            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
                            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
                            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
                            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
                            at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) ~[guava-15.0.jar:?]
                            at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:47) ~[guava-15.0.jar:?]
                            at com.google.common.eventbus.EventBus.dispatch(EventBus.java:314) ~[guava-15.0.jar:?]
                            at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) ~[guava-15.0.jar:?]
                            at com.google.common.eventbus.EventBus.post(EventBus.java:267) ~[guava-15.0.jar:?]
                            at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:208) ~[LoadController.class:?]
                            at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:187) ~[LoadController.class:?]
                            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
                            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
                            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
                            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
                            at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74) ~[guava-15.0.jar:?]
                            at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:47) ~[guava-15.0.jar:?]
                            at com.google.common.eventbus.EventBus.dispatch(EventBus.java:314) ~[guava-15.0.jar:?]
                            at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296) ~[guava-15.0.jar:?]
                            at com.google.common.eventbus.EventBus.post(EventBus.java:267) ~[guava-15.0.jar:?]
                            at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:118) [LoadController.class:?]
                            at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:512) [Loader.class:?]
                            at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:239) [FMLClientHandler.class:?]
                            at net.minecraft.client.Minecraft.startGame(Minecraft.java:522) [Minecraft.class:?]
                            at net.minecraft.client.Minecraft.run(Minecraft.java:892) [Minecraft.class:?]
                            at net.minecraft.client.main.Main.main(Main.java:112) [Main.class:?]
                            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_45]
                            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
                            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_45]
                            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_45]
                            at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
                            at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
                            :::

                            Je pense que ça viens de quelque part ici :

                            public void preInit(FMLPreInitializationEvent event)
                            {
                            hotSlimeBall = new Item().setTextureName(PotionPlus.MODID+":hotSlimeBall").setUnlocalizedName("hotSlimeBall");
                            GameRegistry.addSmelting(Items.slime_ball,new ItemStack(hotSlimeBall) , 0.0f);
                            GameRegistry.registerItem(hotSlimeBall, "HotSlimeBall", PotionPlus.MODID);
                            hotSlimeBall.setCreativeTab(tabPotionPlus); //On ajoute l'item à la table créative
                            
                            new miningPotion();
                            GameRegistry.addShapelessRecipe(new ItemStack(miningPotion), new Object[]{new ItemStack(Items.potionitem, 1),new ItemStack(hotSlimeBall)});
                            GameRegistry.registerItem(miningPotion, "miningPotion", PotionPlus.MODID);
                            miningPotion.setCreativeTab(tabPotionPlus); //On ajoute l'item à la table créative
                            }
                            

                            edit :
                            Mon ancienne ligne était :

                            miningPotion = new ItemFood(0, 0.1f, false).setPotionEffect(3, 120, 2, 1.0f).setUnlocalizedName("miningPotion").setTextureName(PotionPlus.MODID+":miningPotion");
                            
                            
                            1 réponse Dernière réponse Répondre Citer 0
                            • robin4002
                              robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                              miningPotion = new miningPotion().setUnlocalizedName(“miningPotion”).setTextureName(PotionPlus.MODID+“:miningPotion”);
                              et pas new miningPotion(); …

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

                                C’est ce que j’avait fait au début mais il me souligne ‘.setUnlocalizedName’ et tous les autres arguments car : d’après eclipse elle ne sont pas définit pour le type ‘mininPotion’
                                Je rapelle ma page miningPotion.java :
                                :::
                                package com.gmail.loustak347.common;

                                import net.minecraft.entity.player.EntityPlayer;
                                import net.minecraft.item.ItemStack;
                                import net.minecraft.potion.PotionEffect;
                                import net.minecraft.world.World;

                                public class miningPotion {

                                public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
                                {
                                player.addPotionEffect(new PotionEffect(3, 20, 2));
                                if (!player.capabilities.isCreativeMode)
                                {
                                –stack.stackSize;
                                }
                                return stack;
                                }
                                }
                                :::

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

                                  public class miningPotion extends Item {

                                  Si je t'ai aidé, n'hésites pas à mettre un point de réputation positif !
                                  Si tu m'as aidé, je n'hésiterais pas à t'en donner à mon tour !

                                  1 réponse Dernière réponse Répondre Citer 1
                                  • isador
                                    isador Moddeurs confirmés Modérateurs dernière édition par

                                    c’est la base ca a tu au moins lu le tuto pour créer un item?

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

                                      Merci ça fonctionne normalement, et sinon oui j’avais vu le tuto pour créer un item.

                                      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