Modding FR

Discussion dans 'Support modding' créé par nostre, 16 Février 2011.

  1. posipi

    posipi Massacreur de zombies

    Inscrit:
    9 Mars 2011
    Messages:
    162
    J'aime reçus:
    7
    Bonjour, depuis la mise à jour quand j'essaie de recompiler, il me met cette erreur, alors que avant ça marchait parfaitement :
    Code:
    == MCP 6.2 (data: 6.2, client: 1.2.5, server: 1.2.5) ==
    # found jad, jad patches, ff patches, osx patches, srgs, name csvs, doc csvs, pa
    ram csvs, astyle, astyle config
    == Recompiling client ==
    > Cleaning bin
    > Recompiling
    '"C:\Program Files (x86)\Java\jdk1.7.0_01\bin\javac" -Xlint:-options -deprecatio
    n -g -source 1.6 -tar...' failed : 1
    == ERRORS FOUND ==
    src\minecraft\net\minecraft\src\BlockC4.java:171: error: cannot find symbol
            if (world.multiplayerWorld)
                     ^
      symbol:   variable multiplayerWorld
      location: variable world of type World
    src\minecraft\net\minecraft\src\BlockC4.java:222: error: cannot find symbol
                    setTickOnLoad(true);
                    ^
      symbol:   method setTickOnLoad(boolean)
      location: class BlockC4
    src\minecraft\net\minecraft\src\BlockdoubleC4.java:171: error: cannot find symbo
    l
            if (world.multiplayerWorld)
                     ^
      symbol:   variable multiplayerWorld
      location: variable world of type World
    src\minecraft\net\minecraft\src\BlockdoubleC4.java:222: error: cannot find symbo
    l
                    setTickOnLoad(true);
                    ^
      symbol:   method setTickOnLoad(boolean)
      location: class BlockdoubleC4
    src\minecraft\net\minecraft\src\EntityC4Primed.java:45: error: cannot find symbo
    l
                if (!worldObj.multiplayerWorld)
                             ^
      symbol:   variable multiplayerWorld
      location: variable worldObj of type World
    src\minecraft\net\minecraft\src\EntityC4Primed.java:47: error: cannot find symbo
    l
                    setEntityDead();
                    ^
      symbol:   method setEntityDead()
      location: class EntityC4Primed
    src\minecraft\net\minecraft\src\EntityC4Primed.java:52: error: cannot find symbo
    l
                    setEntityDead();
                    ^
      symbol:   method setEntityDead()
      location: class EntityC4Primed
    src\minecraft\net\minecraft\src\EntitydoubleC4Primed.java:45: error: cannot find
     symbol
                if (!worldObj.multiplayerWorld)
                             ^
      symbol:   variable multiplayerWorld
      location: variable worldObj of type World
    src\minecraft\net\minecraft\src\EntitydoubleC4Primed.java:47: error: cannot find
     symbol
                    setEntityDead();
                    ^
      symbol:   method setEntityDead()
      location: class EntitydoubleC4Primed
    src\minecraft\net\minecraft\src\EntitydoubleC4Primed.java:52: error: cannot find
     symbol
                    setEntityDead();
                    ^
      symbol:   method setEntityDead()
      location: class EntitydoubleC4Primed
    src\minecraft\net\minecraft\src\mod_C4.java:22: error: cannot find symbol
                    ModLoader.SetInGUIHook(this, true, true);
                             ^
      symbol:   method SetInGUIHook(mod_C4,boolean,boolean)
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:23: error: cannot find symbol
                    ModLoader.SetInGameHook(this, true, true);
                             ^
      symbol:   method SetInGameHook(mod_C4,boolean,boolean)
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:27: error: cannot find symbol
                    ModLoader.RegisterBlock(doubleC4);
                             ^
      symbol:   method RegisterBlock(Block)
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:28: error: cannot find symbol
                    ModLoader.RegisterBlock(C4);
                             ^
      symbol:   method RegisterBlock(Block)
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:29: error: cannot find symbol
                    ModLoader.AddName(doubleC4, "Double C4");
                             ^
      symbol:   method AddName(Block,String)
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:30: error: cannot find symbol
                    ModLoader.AddName(C4, "C4");
                             ^
      symbol:   method AddName(Block,String)
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:35: error: cannot find symbol
                    ModLoader.AddName(teledoubleC4, "Control Double C4");
                             ^
      symbol:   method AddName(Item,String)
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:40: error: cannot find symbol
                    ModLoader.AddName(teleC4, "Control C4");
                             ^
      symbol:   method AddName(Item,String)
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:45: error: cannot find symbol
                    ModLoader.AddName(tele2doubleC4, "Super Control Double C4");
                             ^
      symbol:   method AddName(Item,String)
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:50: error: cannot find symbol
                    ModLoader.AddName(tele2C4, "Super Control C4");
                             ^
      symbol:   method AddName(Item,String)
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:52: error: cannot find symbol
                    ModLoader.AddRecipe(
                             ^
      symbol:   method AddRecipe(ItemStack,Object[])
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:57: error: cannot find symbol
                    ModLoader.AddRecipe(
                             ^
      symbol:   method AddRecipe(ItemStack,Object[])
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:62: error: cannot find symbol
                    ModLoader.AddRecipe(
                             ^
      symbol:   method AddRecipe(ItemStack,Object[])
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:67: error: cannot find symbol
                    ModLoader.AddRecipe(
                             ^
      symbol:   method AddRecipe(ItemStack,Object[])
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:72: error: cannot find symbol
                    ModLoader.AddRecipe(
                             ^
      symbol:   method AddRecipe(ItemStack,Object[])
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:77: error: cannot find symbol
                    ModLoader.AddRecipe(
                             ^
      symbol:   method AddRecipe(ItemStack,Object[])
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:82: error: cannot find symbol
                    ModLoader.AddRecipe(
                             ^
      symbol:   method AddRecipe(ItemStack,Object[])
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:87: error: cannot find symbol
                    ModLoader.AddRecipe(
                             ^
      symbol:   method AddRecipe(ItemStack,Object[])
      location: class ModLoader
    src\minecraft\net\minecraft\src\mod_C4.java:109: error: method does not override
     or implement a method from a supertype
            @Override
            ^
    src\minecraft\net\minecraft\src\mod_C4.java:124: error: cannot find symbol
            if((guiscreen instanceof GuiContainerCreative) && !(lastGuiOpen instance
    of GuiContainerCreative) && !minecraft.theWorld.multiplayerWorld)
                                                   ^
      symbol:   variable multiplayerWorld
      location: variable theWorld of type World
    src\minecraft\net\minecraft\src\mod_C4.java:121: error: method does not override
     or implement a method from a supertype
       @Override
       ^
    31 errors
    ==================
    !! Can not find server sources, try decompiling !!
    Appuyez sur une touche pour continuer...
    
    Est-ce que vous pouvez m'aider ?
     
  2. elias54

    elias54 Graph & dev MFF

    Inscrit:
    17 Juillet 2011
    Messages:
    465
    J'aime reçus:
    40
    J'ai fait un tuto pour ça ! :D Regarde dans ma signature :p
     
  3. posipi

    posipi Massacreur de zombies

    Inscrit:
    9 Mars 2011
    Messages:
    162
    J'aime reçus:
    7
    Bonjour, j'ai rencontré un problème au startclient alors que le recompile marchait parfaitement, vous pouvez m'aider ?

    Code:
    == MCP 6.2 (data: 6.2, client: 1.2.5, server: 1.2.5) ==
    [13:53:32] 27 achievements
    [13:53:32] 182 recipes
    [13:53:32] LWJGL Version: 2.4.2
    [13:53:33] ModLoader 1.2.5 Initializing...
    [13:53:33] Overriding /terrain.png with /mod_C4/doubleC4.png @ 168. 31 left.
    [13:53:33] Overriding /terrain.png with /mod_C4/C4.png @ 169. 30 left.
    [13:53:33] Overriding /terrain.png with /mod_C4/basC4.png @ 170. 29 left.
    [13:53:33] Overriding /gui/items.png with /mod_C4/teledoubleC4.png @ 38. 84 left
    .
    [13:53:33] Overriding /gui/items.png with /mod_C4/teleC4.png @ 102. 83 left.
    [13:53:33] Overriding /gui/items.png with /mod_C4/tele2doubleC4.png @ 118. 82 le
    ft.
    [13:53:33] Overriding /gui/items.png with /mod_C4/tele2C4.png @ 119. 81 left.
    [13:53:33] Mod Initialized: mod_C4 1.2.5
    [13:53:33] Mod Loaded: mod_C4 1.2.5
    [13:53:33] Done.
    [13:53:33] Exception in thread "Minecraft main thread" java.lang.ExceptionInInit
    ializerError
    [13:53:33]      at net.minecraft.client.Minecraft.startGame(Minecraft.java:424)
    [13:53:33]      at net.minecraft.client.Minecraft.run(Minecraft.java:786)
    [13:53:33]      at java.lang.Thread.run(Thread.java:722)
    [13:53:33] Caused by: java.lang.RuntimeException: java.lang.ArrayIndexOutOfBound
    sException: 2789
    [13:53:33]      at net.minecraft.src.ModLoader.init(ModLoader.java:891)
    [13:53:33]      at net.minecraft.src.ModLoader.addAllRenderers(ModLoader.java:15
    7)
    [13:53:33]      at net.minecraft.src.RenderManager.<init>(RenderManager.java:85)
    [13:53:33]      at net.minecraft.src.RenderManager.<clinit>(RenderManager.java:1
    2)
    [13:53:33]      ... 3 more
    [13:53:33] Caused by: java.lang.ArrayIndexOutOfBoundsException: 2789
    [13:53:33]      at net.minecraft.src.ModLoader.initStats(ModLoader.java:905)
    [13:53:33]      at net.minecraft.src.ModLoader.init(ModLoader.java:878)
    [13:53:33]      ... 6 more
    
     
  4. posipi

    posipi Massacreur de zombies

    Inscrit:
    9 Mars 2011
    Messages:
    162
    J'aime reçus:
    7
    help

    Voici mon mod_C4
    Code:
    package net.minecraft.src;
    import java.util.List;
    import net.minecraft.client.Minecraft;
    public class mod_C4 extends BaseMod
    {
     public static final Block doubleC4 = (new BlockdoubleC4(2789, 0))
     .setHardness(0.75F)
     .setResistance(0F)
     .setRequiresSelfNotify()
     .setBlockName("Double C4");
     
     public static final Block C4 = (new BlockC4(2790, 0))
     .setHardness(0.75F)
     .setResistance(0F)
     .setRequiresSelfNotify()
     .setBlockName("C4");
     
     public static int basC4;
     
     public mod_C4()
     {
      doubleC4.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/mod_C4/doubleC4.png");
      C4.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/mod_C4/C4.png");
      basC4 = ModLoader.addOverride("/terrain.png", "/mod_C4/basC4.png");
      ModLoader.registerBlock(doubleC4);
      ModLoader.registerBlock(C4);
      ModLoader.addName(doubleC4, "Double C4");
      ModLoader.addName(C4, "C4");
      
      Item teledoubleC4 = (new ItemteledoubleC4(7201))
      .setIconIndex(ModLoader.addOverride("/gui/items.png", "/mod_C4/teledoubleC4.png"))
      .setItemName("Control Double C4");
      ModLoader.addName(teledoubleC4, "Control Double C4");
      
      Item teleC4 = (new ItemteleC4(7202))
      .setIconIndex(ModLoader.addOverride("/gui/items.png", "/mod_C4/teleC4.png"))
      .setItemName("Control C4");
      ModLoader.addName(teleC4, "Control C4");
      
      Item tele2doubleC4 = (new Itemtele2doubleC4(8392))
      .setIconIndex(ModLoader.addOverride("/gui/items.png", "/mod_C4/tele2doubleC4.png"))
      .setItemName("Super Control Double C4");
      ModLoader.addName(tele2doubleC4, "Super Control Double C4");
      
      Item tele2C4 = (new Itemtele2C4(8393))
      .setIconIndex(ModLoader.addOverride("/gui/items.png", "/mod_C4/tele2C4.png"))
      .setItemName("Super Control C4");
      ModLoader.addName(tele2C4, "Super Control C4");
      
      ModLoader.addRecipe(
      new ItemStack(doubleC4, 1), 
      new Object[] {"X", Character.valueOf('X'), Block.dirt}
      );
      
      ModLoader.addRecipe(
      new ItemStack(C4, 1), 
      new Object[] {"X", Character.valueOf('X'), Block.stone}
      );
      
      ModLoader.addRecipe(
      new ItemStack(teledoubleC4, 1), 
      new Object[] {"XXX", "XVX", "XBX", Character.valueOf('X'), Block.stone, Character.valueOf('B'), doubleC4, Character.valueOf('V'), Item.redstone}
      );
      
      ModLoader.addRecipe(
      new ItemStack(teleC4, 1), 
      new Object[] {"XXX", "XVX", "XBX", Character.valueOf('X'), Block.stone, Character.valueOf('B'), C4, Character.valueOf('V'), Item.redstone}
      );
      
      ModLoader.addRecipe(
      new ItemStack(tele2doubleC4, 1), 
      new Object[] {"XWX", "XVX", "XBX", Character.valueOf('X'), Block.stone, Character.valueOf('B'), doubleC4, Character.valueOf('V'), Item.redstone, Character.valueOf('W'), Block.torchRedstoneActive}
      );
      
      ModLoader.addRecipe(
      new ItemStack(tele2C4, 1), 
      new Object[] {"XWX", "XVX", "XBX", Character.valueOf('X'), Block.stone, Character.valueOf('B'), C4, Character.valueOf('V'), Item.redstone, Character.valueOf('W'), Block.torchRedstoneActive}
      );
      
      ModLoader.addRecipe(
      new ItemStack(tele2doubleC4, 1), 
      new Object[] {"X", "V", Character.valueOf('V'), teledoubleC4, Character.valueOf('C'), Block.torchRedstoneActive}
      );
      
      ModLoader.addRecipe(
      new ItemStack(tele2C4, 1), 
      new Object[] {"X", "V", Character.valueOf('V'), teleC4, Character.valueOf('C'), Block.torchRedstoneActive}
      );
     }
     
     public static Item teledoubleC4;
     public static Item teleC4;
     public static Item tele2doubleC4;
     public static Item tele2C4;
     
     public String Version()
     {
      return "1.2.5";
     }
     
     @Override
     public String getVersion() { return "1.2.5"; }
     @Override
     public void load() {}
    }
    
     
  5. posipi

    posipi Massacreur de zombies

    Inscrit:
    9 Mars 2011
    Messages:
    162
    J'aime reçus:
    7
    Une question, pourquoi est-ce que l'on ne peut plus utiliser setTickOnLoad ? Qu'est-ce qui le remplace ?
     
  6. Alaran38

    Alaran38 Nouveau

    Inscrit:
    10 Avril 2012
    Messages:
    29
    J'aime reçus:
    0
    Merci pour ces exelents tutos !
    j'ai cependant quelques questions :
    Comment obtenir des escaliers ? des demi dalles ?
    Comment faire pour qu'un bloc ait la physique type champignon (apparence en 2D, ne peut ce poser en l'air, être traverser par les mobs et le joueur.
     
  7. posipi

    posipi Massacreur de zombies

    Inscrit:
    9 Mars 2011
    Messages:
    162
    J'aime reçus:
    7
    Pour faire les escaliers, il te suffit de remplacer la partie
    monBloc = (new BlockmonBloc(247, 0))
    Par

    monBloc = (new BlockStairs(247, 0))

    En plus tu n'as pas à créer de BlockmonBloc :)
     
  8. Alaran38

    Alaran38 Nouveau

    Inscrit:
    10 Avril 2012
    Messages:
    29
    J'aime reçus:
    0
    Héhé génial ^^ à moi les toits en chaume !! merci à toi !
    Rien pour les dalles et les champis par contre ?
    J'ai également un probleme avec les fichier à convertir en format .java
    Même en rajoutant une extension .java à mon fichier, celui apparait comme étant soit un document texte, soit un dossier, soit un document open office... mais pas de document JAVA .
    J'ai l'intention de coder sur le fichier texte, est ce que sa va marcher quand même ? sinon comment y remédier ?
     
  9. posipi

    posipi Massacreur de zombies

    Inscrit:
    9 Mars 2011
    Messages:
    162
    J'aime reçus:
    7
    Pour les dalles ils faut créer 2 fichier, la dalle et la double dalle, ou sinon faire en sorte que la double dalle sois un autre bloc. Personnellement je te conseille de faire une double dalle.
    Le code de la dalle :
    Code:
    package net.minecraft.src;
    import java.util.Random;
    public class BlockmaDalle extends Block
    {
        public BlockmaDalle(int i, int j)
        {
            super(i, j, Material.rock);
            setBounds();
        }
        private void setBounds()
        {
            setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
        }
        public boolean isOpaqueCube()
        {
            return false;
        }
    
        public void onBlockAdded(World world, int i, int j, int k)
        {
            if(this != mod_monMod.maDalle)
            {
                super.onBlockAdded(world, i, j, k);
            }
            int l = world.getBlockId(i, j - 1, k);
            int i1 = world.getBlockMetadata(i, j, k);
            int j1 = world.getBlockMetadata(i, j - 1, k);
            if(i1 != j1)
            {
                return;
            }
            if(l == mod_monMod.maDalle.blockID)
            {
                world.setBlockWithNotify(i, j, k, 0);
                world.setBlockAndMetadataWithNotify(i, j - 1, k, mod_monMod.madoubleDalle.blockID, i1);
            }
        }
            public int idDropped(int i, Random random)
        {
           return mod_monMod.maDalle.blockID;
        }
        public int quantityDropped(Random random)
        {
                return 1;
        }
    }
    
    Si tu ne veux pas créer de double dalle il faut changer la ligne
    world.setBlockAndMetadataWithNotify(i, j - 1, k, mod_monMod.madoubleDalle.blockID, i1);
    en
    world.setBlockAndMetadataWithNotify(i, j - 1, k, mod_monMod.Lenomdetonbloc.blockID, i1);

    Le code de la double dalle est comme celui d'un bloc normale, la seule chose qu'il faut changer c'est
    Code:
    public int quantityDropped(Random random)
        {
                return 1;
        }
    
    en
    Code:
    public int quantityDropped(Random random)
        {
                return 2;
        }
    
    sinon le code dans mod_monMod est exactement pareil que pour un bloc normal
    Code:
    public static final Block maDalle= (new BlockmaDalle(247, 0))
     .setHardness(0.5F)
     .setResistance(3F)
     .setStepSound(Block.soundStoneFootstep)
     .setBlockName("Le nom");
     
     public static final Block madoubleDalle = (new BlockmadoubleDalle (246, 0))
     .setHardness(0.5F)
     .setResistance(3F)
     .setStepSound(Block.soundStoneFootstep)
     .setBlockName("Le nom");
    
    sinon pour que le joueur traverse un bloc il faut rajouter ça au bloc :
    Code:
    public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int i)
        {
            return null;
        }
    
    par contre pour le reste je ne sais pas du tout.

    Sinon je te conseille d'utiliser notepad++ il est gratuit et il permet d'écrire en JAVA.
     
  10. Alaran38

    Alaran38 Nouveau

    Inscrit:
    10 Avril 2012
    Messages:
    29
    J'aime reçus:
    0
    Yeah merci beaucoup !!! Une dernière question après j'arrête (ou pas ^^) : comment extraire un morceau de mod déjà existant pour faire une compil et mettre ces éléments à jours ?
     

Partager cette page