Modding FR

nostre

Aventurier
13 Novembre 2010
424
5
0
31
subject_mods_32.png

Minecraft est un jeu en plein développement,aussi bien du coté de chez Mojang que de celui de la communauté, qui ne cesse de développer toujours plus de mods et de extures packs.

Cependant, pour toute personne voulant tenter le modding de Minecraft,il faudra passer par les tutoriaux du forum officiel,où le français n'est pas vraiment courant.
De plus,si la personne en question ne connait pas un minimum certaines bases de code,sa devient vite un enfer de se lancer dans le domaines...

C'est pourquoi,devant l'absence total de tutoriel français sur le sujet,et afin d'encourager de nouveaux modder français,j'ai décidé de créer le 1er Tutoriel de Modding Minecraft FR.

Le but n'est pas seulement de créer un tutoriel en français,j'esseye de faire en sorte qu'il sois le plus accessible possible pour toutes personnes, compréhensible même pour des non initiés a toutes formes de codes (ou presque).

tutorial.gif


changelog.png
ChangeLog:
changelog.png

*27-02-11: Mise a jour des tutos I et III pour MCP 29a et ModLoader Beta 1.3_01v4.
*27-02-11: Correction d'une erreur dans le tuto II,merci a Woreck de me l'avoir fait remarquer !
*11-04-11: Mise a jour complète pour Minecraft Beta 1.4_01,MCP211 et ModLoader B1.4_01 v1.
*27-04-2011: Mise a jour pour Minecraft B1.5_01,MCP v2.12 et ModLoader v3 B1.5_01.
*30-04-2011: Correction d'une erreur avec les recettes,et mise a disposition des fichiers mod_MyMod.java et BlockMyBloc.java.
exclamation.gif
*29-05-11: Mise a jour pour Minecraft B1.6.5,MCP v3.3 et ModLoader v1 B1.6.5.


! Les liens suivants sont morts !

tuto.png

green-download-arrow-grey-line.png
Tutorial Modding FR - Téléchargement:
green-download-arrow-grey-line.png

asus_download_arrow004.gif
Tuto I - Téléchargement et installation
asus_download_arrow004.gif
Tuto II - Création d'un mod simple,ajout de nouveaux blocs
asus_download_arrow004.gif
Tuto III - Compilation et tests
asus_download_arrow004.gif
Tuto IV - Quelques petits trucs a savoir avant de continuer
asus_download_arrow004.gif
Tuto - Création de nouveaux objets
asus_download_arrow004.gif
Tuto - Ajouter des blocs et objets pour le four
asus_download_arrow004.gif
Tuto - Blocs – Autres possibilités
asus_download_arrow004.gif
Tuto - Autres possibilités - objets
asus_download_arrow004.gif
Sources du mod du Tuto II

Nouveaux fichiers ajoutés suite aux liens morts à la fin du message.
Il manque juste les "Sources du mod du Tuto II".
Je précise que ce sont les fichiers d'origine, le code est parfois obsolète !
 

Fichiers joints

J'ai envie de dire que si tu veux vraiment modder et avoir du mérite, tu ferai mieux de chercher dans les fichiers tels que celui de la dirt ou du gâteau.
 
@val166: J'ai trouvé ça dans le fichier "BlockGrass.java".

Code:
public class BlockGrass extends Block
{

    protected BlockGrass(int i)
    {
        super(i, Material.field_28130_b);
        blockIndexInTexture = 3;
        setTickOnLoad(true);
    }

    public int getBlockTexture(IBlockAccess iblockaccess, int i, int j, int k, int l)
    {
        if(l == 1)
        {
            return 0;
        }
        if(l == 0)
        {
            return 2;
        }
        Material material = iblockaccess.getBlockMaterial(i, j + 1, k);
        return material != Material.snow && material != Material.builtSnow ? 3 : 68;
    }

    public int colorMultiplier(IBlockAccess iblockaccess, int i, int j, int k)
    {
        iblockaccess.getWorldChunkManager().func_4069_a(i, k, 1, 1);
        double d = iblockaccess.getWorldChunkManager().temperature[0];
        double d1 = iblockaccess.getWorldChunkManager().humidity[0];
        return ColorizerGrass.getGrassColor(d, d1);
    }

    public void updateTick(World world, int i, int j, int k, Random random)
    {
        if(world.multiplayerWorld)
        {
            return;
        }
        if(world.getBlockLightValue(i, j + 1, k) < 4 && Block.lightOpacity[world.getBlockId(i, j + 1, k)] > 2)
        {
            if(random.nextInt(4) != 0)
            {
                return;
            }
            world.setBlockWithNotify(i, j, k, Block.dirt.blockID);
        } else
        if(world.getBlockLightValue(i, j + 1, k) >= 9)
        {
            int l = (i + random.nextInt(3)) - 1;
            int i1 = (j + random.nextInt(5)) - 3;
            int j1 = (k + random.nextInt(3)) - 1;
            int k1 = world.getBlockId(l, i1 + 1, j1);
            if(world.getBlockId(l, i1, j1) == Block.dirt.blockID && world.getBlockLightValue(l, i1 + 1, j1) >= 4 && Block.lightOpacity[k1] <= 2)
            {
                world.setBlockWithNotify(l, i1, j1, Block.grass.blockID);
            }
        }
    }

    public int idDropped(int i, Random random)
    {
        return Block.dirt.idDropped(0, random);
    }
}

Je ne sais pas si ça t'aidera mais tu peux toujours vérifier ^^


PS: je continuerai à chercher aussi ^^
 
Un truc bizarre pour la 1.6.6

Je prends MCP 1.6.6, ModLoader1.6.5 (un mod l'utilisant est en 1.6.6 donc je me dis que ça doit marcher), je décompile MC 1.6.6 moddé ModLoader 1.6.5 avec MCP 1.6.6, ça marche comme il faut.

Je mets les fichiers de mon mod (en 1.6.5) dans les sources de MCP 1.6.6, je recompile sans rien changer, fonctionne aussi, je test en jeu, tout marche comme il faut.

J'essaie d'utiliser la version 1.6.5 de mon mod sur MC 1.6.6 (+ModLoader 1.6.5), ça ne marche pas.
Quelqu'un a une explication ?
 
moi c'est bon j'ai trouver enfin je vais essayer de comprendre a fond comment modifier les variable avant de le mettre mais sinon j'ai trouvé le code dans le fichier BlockWorkBench.java
 
Bonjour !

Alors, je m'étend sur un mini-mod de bierre (ne le prend pas mal Stormweaker, je ne pense pas le publier !) Mais il bug à la recompilation, voici mes fichiers et l'erreur :

Erreur :
110531074521235735.png


Le contenu de mod_minebeer :

Code:
package net.minecraft.src; 
public class mod_minebeer extends BaseMod 
{ 
    public mod_minebeer() 
    { 

        bierre = (new Itembierre(99)).setIconCoord(13, 6).setItemName("bierre");
        bierreliquide = (new Itembierreliquide(100)).setIconCoord(13, 9).setItemName("bierreliquide");
        choppe = (new Itemchoppe(101)).setIconCoord(13, 7).setItemName("choppe");
        houblon = (new Itemhoublon(102)).setIconCoord(13, 8).setItemName("houblon");
        ModLoader.AddName(bierre, "Bierre");
        ModLoader.AddName(bierreliquide, "Bierre Liquide");
        ModLoader.AddName(choppe, "Choppe");
        ModLoader.AddName(houblon, "Houblon");
        ModLoader.AddRecipe(new ItemStack(bierre, 1), new Object[]
        {"   ", " # ", " Y ", Character.valueOf('#'), bierreliquide, Character.valueOf('Y'), choppe});
        ModLoader.AddRecipe(new ItemStack(bierreliquide, 1), new Object[]
        {"   ", " A ", " B ", Character.valueOf('A'), houblon, Character.valueOf('B'), Items.bucketWater});
        ModLoader.AddRecipe(new ItemStack(choppe, 1), new Object[]
        {"C C", "C C", "CCC", Character.valueOf('C'), Block.glass});
        
    } 
    public String Version() 
    { 


        return "1.0"; 
    } 
    public static Item bierre;
    public static Item bierreliquide;
    public static Item bierrechoppe;
    public static Item bierrehoublon;
 
}

et enfin le contenu de "itembierre.java" sachant que les fichiers des autres mods existent mais qu'ils sont identiques pour le moment donc j'en post qu'un !

Code:
package net.minecraft.src; 
public class Itembierre extends Item
{ 

public Itembierre(int i) 
{ 
super(i);
maxStackSize = 16;
} 

public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer) 

{ 
super.onItemRightClick(itemstack, world, entityplayer);
itemstack.stackSize--;
entityplayer.heal(10);
return itemstack;
} 

}

PS : j'ai déjà réussi à créer un mod avec juste un item et il fonctionnait, donc je pense pas que ça vienne des variables PATH !

Merci de m'aider, Arignir

Désolé pour la longueur de message, mais je voulais être précis !
 
Salut , tout d'abord très bon tutoriel nostre j'ai réussie du premier coup . Mais je voudrais s'avoir comment on change le texte et l'icone ( externe ) d'un block ? Car tu explique que pour les items . Merci de tes futurs réponses

Cordialement The Killer Rabbit
 
@Ryffe
c'est bon j'ai trouver comment mettre des texture sur les différents coté je posterais sa demain là j'ai pas trop trop le temps dsl ^^
 
@val166
Ok, j'attent avec impatience ^^

Bonjour à tous ^^
J'ai une petite erreur qui me dérange et j'essai sans cesse de la réparer mais je n'y arrive pas...
La voici:

src\minecraft\net\minecraft\src\ItemMonItem.java:14: missing return statement }


J'ai essayé de mettre } à la 14ème ligne mais il m'affiche tout le temps la même erreur...
J'espère que vous pourrez m'aider ^^
 
Code:
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) braces deadcode 

package net.minecraft.src;


// Referenced classes of package net.minecraft.src:
//            Block, World, EntityPlayer, Material

public class Blockvitre extends Block
{

    protected Blockvitre(int i)
    {
        super(i, Material.wood);
        blockIndexInTexture = 59;
    }

    public int getBlockTextureFromSide(int i)
    {
//dessus
        if(i == 1)
        {
            return blockIndexInTexture + 143;
        }
//dessous
        if(i == 0)
        {
            return blockIndexInTexture + 142;
        }
//cotés
        if(i == 2 || i == 4)
        {
            return blockIndexInTexture + 143;
        } else
        {
            return blockIndexInTexture + 143 ;
        }
    } 
}

bon bé il faut simplement modifier les différent nombre pour obtenir la texture que tu as mis dans ton fichier terrain.png . Pour la personne qui veut plus d’explication n'hésiter pas à demander