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

    Résolu Problème forge : Modifier une class existante

    1.7.x
    1.7.10
    4
    24
    5632
    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.
    • T
      torticounette dernière édition par

      Bonjour,

      Voila je cherchais via un mod forge à modifier une class du jeu (impossible de modder directement le .jar quand c’est pour un serveur ^^)

      C’est en fait pour changer les potions (nerf des potions de force 2).

      Je ne suis pas le meilleur en modage (c’est pourquoi je suis ici :D) donc j’ai essayé pas mal de trucs.

      J’ai vu sur un site qu’il fallais creer un event du coup la class de mon mod est comme ceci :

      package yPotion;
      
      /**
      *
      */
      /**
      * @author NTE
      *
      */
      
      import net.minecraft.block.Block;
      import net.minecraft.block.BlockOre;
      import net.minecraft.block.BlockOreStorage;
      import net.minecraft.creativetab.CreativeTabs;
      import net.minecraft.item.EnumArmorMaterial;
      import net.minecraft.item.EnumToolMaterial;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemAppleGold;
      import net.minecraft.item.ItemArmor;
      import net.minecraft.item.ItemAxe;
      import net.minecraft.item.ItemFood;
      import net.minecraftforge.common.EnumHelper;
      import net.minecraft.item.ItemPickaxe;
      import net.minecraft.item.ItemSpade;
      import net.minecraft.item.ItemStack;
      import net.minecraft.item.ItemSword;
      import net.minecraft.potion.*;
      import net.minecraft.src.ModLoader;
      import net.minecraft.world.World;
      import net.minecraft.world.gen.feature.WorldGenMinable;
      import torti.mod.common.CommonProxy;
      import cpw.mods.fml.common.Mod;
      import net.minecraft.potion.*;
      import cpw.mods.fml.common.Mod.Init;
      import cpw.mods.fml.common.Mod.Instance;
      import cpw.mods.fml.common.Mod.PreInit;
      import cpw.mods.fml.common.SidedProxy;
      import cpw.mods.fml.common.event.FMLInitializationEvent;
      import cpw.mods.fml.common.event.FMLPreInitializationEvent;
      import cpw.mods.fml.common.network.NetworkMod;
      import cpw.mods.fml.common.registry.GameRegistry;
      import cpw.mods.fml.common.registry.LanguageRegistry;
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import torti.mod.*;
      import yPotion3.CommonProxy2;
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      
      import java.util.ArrayList;
      import java.util.Collection;
      import java.util.HashMap;
      import java.util.Iterator;
      import java.util.List;
      import java.util.ArrayList;
      import java.util.Collection;
      import java.util.HashMap;
      import java.util.Iterator;
      import java.util.Random;
      
      @Mod(modid = "19999", name = "Tortiiiiiicounette", version = "1.0.0.0")
      @NetworkMod(clientSideRequired = true, serverSideRequired = false)
      
      public class Potion extends net.minecraft.potion.PotionHelper
      {      
         public static final String MODID = null;
      @Instance("ModCatnos")
         public static Potion modInstance;
         @SidedProxy(clientSide="yPotion2.ClientProxy2", serverSide="yPotion3.CommonProxy2", bukkitSide="yPotion3.CommonProxy2")
         public static CommonProxy2 proxy;
      
         @PreInit
         public void initConfig(FMLPreInitializationEvent event)
         {
                 proxy.registerRender();
         }
      
         @Init
         public void load(FMLInitializationEvent event)
         {
          net.minecraft.potion.PotionHelper.potionRequirements.put(Integer.valueOf(net.minecraft.potion.Potion.regeneration.getId()), "0 & !1 & !2 & !3 & 0+6");
          net.minecraft.potion.PotionHelper.sugarEffect = "-0+1-2-3&4-4+13";
          net.minecraft.potion.PotionHelper.potionRequirements.put(Integer.valueOf(net.minecraft.potion.Potion.moveSpeed.getId()), "!0 & 1 & !2 & !3 & 1+6");
          net.minecraft.potion.PotionHelper.magmaCreamEffect = "+0+1-2-3&4-4+13";
          net.minecraft.potion.PotionHelper.potionRequirements.put(Integer.valueOf(net.minecraft.potion.Potion.fireResistance.getId()), "0 & 1 & !2 & !3 & 0+6");
          net.minecraft.potion.PotionHelper.speckledMelonEffect = "+0-1+2-3&4-4+13";
          net.minecraft.potion.PotionHelper.potionRequirements.put(Integer.valueOf(net.minecraft.potion.Potion.heal.getId()), "0 & !1 & 2 & !3");
          net.minecraft.potion.PotionHelper.spiderEyeEffect = "-0-1+2-3&4-4+13";
          net.minecraft.potion.PotionHelper.potionRequirements.put(Integer.valueOf(net.minecraft.potion.Potion.poison.getId()), "!0 & !1 & 2 & !3 & 2+6");
          net.minecraft.potion.PotionHelper.fermentedSpiderEyeEffect = "-0+3-4+13";
          net.minecraft.potion.PotionHelper.potionRequirements.put(Integer.valueOf(net.minecraft.potion.Potion.weakness.getId()), "!0 & !1 & !2 & 3 & 3+6");
          net.minecraft.potion.PotionHelper.potionRequirements.put(Integer.valueOf(net.minecraft.potion.Potion.harm.getId()), "!0 & !1 & 2 & 3");
          net.minecraft.potion.PotionHelper.potionRequirements.put(Integer.valueOf(net.minecraft.potion.Potion.moveSlowdown.getId()), "!0 & 1 & !2 & 3 & 3+6");
          net.minecraft.potion.PotionHelper.blazePowderEffect = "+0-1-2+3&4-4+13";
          net.minecraft.potion.PotionHelper.potionRequirements.put(Integer.valueOf(net.minecraft.potion.Potion.damageBoost.getId()), "0 & !1 & !2 & 3 & 3+6");
          net.minecraft.potion.PotionHelper.goldenCarrotEffect = "-0+1+2-3+13&4-4";
          net.minecraft.potion.PotionHelper.potionRequirements.put(Integer.valueOf(net.minecraft.potion.Potion.nightVision.getId()), "!0 & 1 & 2 & !3 & 2+6");
          net.minecraft.potion.PotionHelper.potionRequirements.put(Integer.valueOf(net.minecraft.potion.Potion.invisibility.getId()), "!0 & 1 & 2 & 3 & 2+6");
          net.minecraft.potion.PotionHelper.glowstoneEffect = "3+6";
          net.minecraft.potion.PotionHelper.potionAmplifiers.put(Integer.valueOf(net.minecraft.potion.Potion.moveSpeed.getId()), "5");
          net.minecraft.potion.PotionHelper.potionAmplifiers.put(Integer.valueOf(net.minecraft.potion.Potion.digSpeed.getId()), "5");
          net.minecraft.potion.PotionHelper.potionAmplifiers.put(Integer.valueOf(net.minecraft.potion.Potion.damageBoost.getId()), "5");
          net.minecraft.potion.PotionHelper.potionAmplifiers.put(Integer.valueOf(net.minecraft.potion.Potion.regeneration.getId()), "5");
          net.minecraft.potion.PotionHelper.potionAmplifiers.put(Integer.valueOf(net.minecraft.potion.Potion.harm.getId()), "5");
          net.minecraft.potion.PotionHelper.potionAmplifiers.put(Integer.valueOf(net.minecraft.potion.Potion.heal.getId()), "5");
          net.minecraft.potion.PotionHelper.potionAmplifiers.put(Integer.valueOf(net.minecraft.potion.Potion.resistance.getId()), "5");
          net.minecraft.potion.PotionHelper.potionAmplifiers.put(Integer.valueOf(net.minecraft.potion.Potion.poison.getId()), "5");
          net.minecraft.potion.PotionHelper.redstoneEffect = "-5+6-7";
          net.minecraft.potion.PotionHelper.gunpowderEffect = "+14&13-13";
          net.minecraft.potion.PotionHelper.field_77925_n = new HashMap();
          net.minecraft.potion.PotionHelper.potionPrefixes = new String[] {"potion.prefix.mundane", "potion.prefix.uninteresting", "potion.prefix.bland", "potion.prefix.clear", "potion.prefix.milky", "potion.prefix.diffuse", "potion.prefix.artless", "potion.prefix.thin", "potion.prefix.awkward", "potion.prefix.flat", "potion.prefix.bulky", "potion.prefix.bungling", "potion.prefix.buttered", "potion.prefix.smooth", "potion.prefix.suave", "potion.prefix.debonair", "potion.prefix.thick", "potion.prefix.elegant", "potion.prefix.fancy", "potion.prefix.charming", "potion.prefix.dashing", "potion.prefix.refined", "potion.prefix.cordial", "potion.prefix.sparkling", "potion.prefix.potent", "potion.prefix.foul", "potion.prefix.odorless", "potion.prefix.rank", "potion.prefix.harsh", "potion.prefix.acrid", "potion.prefix.gross", "potion.prefix.stinky"};
      
         }
      }
      
      

      Le changement se situe sur le glowstone effect. Mais pour une raison que j’ignore forge reconnais bien le mod mais le changement ne se fais pas. J’ai peux être tout raté, si c’est le cas merci de votre aide 🙂

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

        Salut, alors déjà quelques questions :

        yPotion2.ClientProxy2
        

        Pourquoi mettre un 2 dans le nom de la classe et utiliser un package différent pour les proxy ?

           public static final String MODID = null;
        

        Id de mod null ? Pas très bonne idée

        public class Potion extends net.minecraft.potion.PotionHelper
        

        Une classe principale extends PotionHelper ?!?

        @Mod(modid = "19999"
        

        Tu sors d’où cette id de mod ?

        Ensuite ce que tu es en train de faire ne fonctionnera pas.
        À mon avis il faudrait plutôt patcher la classe PotionAttackDamage pour avoir quelque chose de fonctionnel, et utiliser ASM n’est pas facile (xavpok prépare actuellement un tutoriel)

        Et sinon, les règles sont si difficile à lire ?

        Franchement je ne vois pas comment être plus clair, code = programmation, donc → Support pour les moddeurs PAS ICI
        Je déplace le sujet dans la bonne section.

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

          1)Pour le 2 c’est parce que dans le même mcp, il y a un autre mod (pour ajouter des minerais) qui utilise le même nom. Puisque celui la fonctionne, je me suis dit que j’allais copier tout en changeant juste les valeurs ^^

          2)Id de mod je ne sais pas ce qu’il faut mettre, sa fonctionne pour un autre mod donc…

          3)Qu’est-ce que tu entend par la ?

          4)C’est pas une id que l’on choisis ?

          Peux-tu être plus précis ?
          Et comment patcher la classe PotionAttackDamage ?

          Surtout que le mod est reconnu par forge et ne fais pas crash le jeu donc je pense que c’est surtout un code qui n’est pas bon ^^

          J’ai réussit, avec un bout de code choppé sur un autre forum a modifier le Gui donc je pense que c’est faisable pour les potions.

          Enfin, désolé pour la section je n’avais pas fais gaffe pas besoin d’être agressif

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

            Modifier le gui ? Quel gui ?
            Patcher avec ASM c’est compliqué comme je l’ai dit, personnellement je n’ai pas encore vraiment toucher à ça, mais d’autres personnes du forum l’ont déjà fait.

            Et pour toutes mes autres remarques : http://www.minecraftforgefrance.fr/showthread.php?tid=587

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

              Le Gui du menu au lancement (se connecter, solo ect…) et le Gui Ig (quand on fais échap)

              Pour l’ASM je me rend bien compte que c’est compliqué ^^ mais d’autres personnes peuvent sans doute m’aider (enfin je l’espère) car ce que je demande doit tout de même être possible…

              Et pour ton tuto je l’ai déjà lu il y a un moment mais comme mon truc fonctionnais je n’y ai pas touché ^^

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

                Oui ces gui la sont faciles à modifier puisqu’il suffit de faire que lorsque le gui est ouvert, on ouvre un autre modifié à la place. Mais pour les effets de potion ce n’est pas aussi simple.

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

                  @‘robin4002’:

                  Oui ces gui la sont faciles à modifier puisqu’il suffit de faire que lorsque le gui est ouvert, on ouvre un autre modifié à la place. Mais pour les effets de potion ce n’est pas aussi simple.

                  Ce que je veux modifier ce n’est pas l’effet de la potion. C’est le fait que lorsque l’on met la potion avec une poudre de glow dans l’alambic, on obtient la potion en 6 minutes au lieu du stade II de l’effet, d’ou le 3+6 ^^.

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

                    Il faudrait demander à xavpok pour ça, il a beaucoup touché au potion.

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

                      @‘robin4002’:

                      Il faudrait demander à xavpok pour ça, il a beaucoup touché au potion.

                      Et je fais comment pour lui demander ? 😄

                      Sinon si tu pouvais lui passer le message pour qu’il voit mon post

                      Merci de ton aide en tout cas

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

                        J’ai vu ton post.
                        J’ai beaucoup touché aux potions.
                        J’ai vu l’enfer. Crois-moi, c’est de loin la chose la plus dure a faire en modding.

                        Sent from my GT-I9000 using Tapatalk 2

                        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
                        • T
                          torticounette dernière édition par

                          @‘jglrxavpok’:

                          J’ai vu ton post.
                          J’ai beaucoup touché aux potions.
                          J’ai vu l’enfer. Crois-moi, c’est de loin la chose la plus dure a faire en modding.

                          Sent from my GT-I9000 using Tapatalk 2

                          Mais, est-ce impossible de faire ce que je demande ? Si non, comment le faire ?

                          Je ne demande pas de creer un effet mais juste de modifier pour que quand on met une poudre de glow dans l’alambic, ce soit le temps qui augmente (d’ou le 3+6) au lieu du niveau. Cela permet de suprimer les potions de Forces II sans avoir a toucher aux effets.

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

                            Installe un plugin qui empeche de faire les potions de force 2 sinon

                            Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

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

                              @‘sosoh’:

                              Installe un plugin qui empeche de faire les potions de force 2 sinon

                              Sa existe ? Empêcher de les crafter ?

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

                                Je crois que j’ai déjà vu ca, ou du moins empêcher de les avoir dans l’inventaire: ca doit checker à chaque tick, si le joueur a cette potion alors ca la supprime…

                                Je sais que c’est faisable en command block donc en plugin ou en mod je penses que ca l’est …

                                Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

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

                                  @‘torticounette’:

                                  @‘jglrxavpok’:

                                  J’ai vu ton post.
                                  J’ai beaucoup touché aux potions.
                                  J’ai vu l’enfer. Crois-moi, c’est de loin la chose la plus dure a faire en modding.

                                  Sent from my GT-I9000 using Tapatalk 2

                                  Mais, est-ce impossible de faire ce que je demande ? Si non, comment le faire ?

                                  Je ne demande pas de creer un effet mais juste de modifier pour que quand on met une poudre de glow dans l’alambic, ce soit le temps qui augmente (d’ou le 3+6) au lieu du niveau. Cela permet de suprimer les potions de Forces II sans avoir a toucher aux effets.

                                  Fesable. Mais va falloir utiliser la réflexion pour modifier la valeur du field.

                                  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
                                  • T
                                    torticounette dernière édition par

                                    @‘jglrxavpok’:

                                    @‘torticounette’:

                                    @‘jglrxavpok’:

                                    J’ai vu ton post.
                                    J’ai beaucoup touché aux potions.
                                    J’ai vu l’enfer. Crois-moi, c’est de loin la chose la plus dure a faire en modding.

                                    Sent from my GT-I9000 using Tapatalk 2

                                    Mais, est-ce impossible de faire ce que je demande ? Si non, comment le faire ?

                                    Je ne demande pas de creer un effet mais juste de modifier pour que quand on met une poudre de glow dans l’alambic, ce soit le temps qui augmente (d’ou le 3+6) au lieu du niveau. Cela permet de suprimer les potions de Forces II sans avoir a toucher aux effets.

                                    Fesable. Mais va falloir utiliser la réflexion pour modifier la valeur du field.

                                    Ok Merci beaucoup je vais aller tester sa 🙂

                                    Sinon je voudrais modifier la class AbstractClientPlayer

                                    Savez vous comment je doit m’y prendre ?

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

                                      @‘torticounette’:

                                      Ok Merci beaucoup je vais aller tester sa 🙂 
                                      Sinon je voudrais modifier la class AbstractClientPlayer
                                      Savez vous comment je doit m’y prendre ?

                                      ASM et encore, c’est pas sûr que Minecraft accepte puisque World est pas accepté je crois.

                                      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
                                      • T
                                        torticounette dernière édition par

                                        @‘jglrxavpok’:

                                        @‘torticounette’:

                                        Ok Merci beaucoup je vais aller tester sa 🙂 
                                        Sinon je voudrais modifier la class AbstractClientPlayer
                                        Savez vous comment je doit m’y prendre ?

                                        ASM et encore, c’est pas sûr que Minecraft accepte puisque World est pas accepté je crois.

                                        Et quel code dois-je taper pour cela ?

                                        Merci de votre aide en tout cas les potions fonctionnent ^^

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

                                          @‘torticounette’:

                                          @‘jglrxavpok’:

                                          @‘torticounette’:

                                          Ok Merci beaucoup je vais aller tester sa 🙂 
                                          Sinon je voudrais modifier la class AbstractClientPlayer
                                          Savez vous comment je doit m’y prendre ?

                                          ASM et encore, c’est pas sûr que Minecraft accepte puisque World est pas accepté je crois.

                                          Et quel code dois-je taper pour cela ?

                                          Merci de votre aide en tout cas les potions fonctionnent ^^

                                          Alors là… Faut voir s’il reste pas des bouts d’ASM qui trainent sur le forum, mais j’y crois pas trop.

                                          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
                                          • T
                                            torticounette dernière édition par

                                            @‘jglrxavpok’:

                                            @‘torticounette’:

                                            @‘jglrxavpok’:

                                            @‘torticounette’:

                                            Ok Merci beaucoup je vais aller tester sa 🙂 
                                            Sinon je voudrais modifier la class AbstractClientPlayer
                                            Savez vous comment je doit m’y prendre ?

                                            ASM et encore, c’est pas sûr que Minecraft accepte puisque World est pas accepté je crois.

                                            Et quel code dois-je taper pour cela ?

                                            Merci de votre aide en tout cas les potions fonctionnent ^^

                                            Alors là… Faut voir s’il reste pas des bouts d’ASM qui trainent sur le forum, mais j’y crois pas trop.

                                            non mais je parle juste en théorie.

                                            Je ne demande pas de me faire le code en entier mais de m’expliquer genre “tu commence en mettant cette balise, ensuite tu recopie le code de cette classe” ect…

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

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB