Modding FR

posipi

Architecte en herbe
9 Mars 2011
162
7
125
25
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 ?
 

elias54

Graph & dev MFF
17 Juillet 2011
465
45
135
26
Bonjour, j'aimerais savoir comment faire pour que mon mob tienne une épée ou par exemple un bouclier en main gauche! :)
J'arrive à lui faire tenir une épée en main droite mais pour la main gauche je sais pas du tout.
Si quelqu'un sait, j'aimerais bien qu'il m'explique :)
Merci


Ps: Je suis sur que l'on doit utiliser cette variable
Code:
  /**
    * Records whether the model should be rendered holding an item in the left hand, and if that item is a block.
    */
    public int heldItemLeft;
 
    /**
    * Records whether the model should be rendered holding an item in the right hand, and if that item is a block.
    */
    public int heldItemRight;

Mais je n'arrive pas a faire qu'il tienne cette foutu épée en main gauche!! :mad: :D
J'ai fait un tuto pour ça ! :D Regarde dans ma signature :p
 

posipi

Architecte en herbe
9 Mars 2011
162
7
125
25
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
 

posipi

Architecte en herbe
9 Mars 2011
162
7
125
25
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() {}
}
 

posipi

Architecte en herbe
9 Mars 2011
162
7
125
25
Une question, pourquoi est-ce que l'on ne peut plus utiliser setTickOnLoad ? Qu'est-ce qui le remplace ?
 

Alaran38

Aventurier
10 Avril 2012
29
0
1
31
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.
 

posipi

Architecte en herbe
9 Mars 2011
162
7
125
25
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 :)
 

Alaran38

Aventurier
10 Avril 2012
29
0
1
31
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 ?
 

posipi

Architecte en herbe
9 Mars 2011
162
7
125
25
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.
 

Alaran38

Aventurier
10 Avril 2012
29
0
1
31
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 ?