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

Bonjour,

J'ai un petit soucis lors de la compilation, apparemment le problème viens de modloader mais je ne sais pas pourquoi. Normalement je l'ai bien installé mais c'est pas sur sur !

Bref si quelqu'un peut m'aider, voici les erreurs que j'ai à la console.



Merci par avance,
Maniaki
 
@Arcade81400

Tu dois utiliser les damages values de l'objet. C'est assez chiant de trouver une explication en anglais, alors je te donne le code et te prévient de suite que pour les nom, je ne sais pas (encore) comment les mettre (addName ne fonctionnant bien sur pas).

Dans le constructeur, tu dois rajouter ça :

Code:
//99 = ID du bloc
		Item.itemsList[99] = (new ItemCloth(99 - 256)).setItemName("X");
		for(int i = 0; i < 256; i++)
        {
            if(Block.blocksList[i] != null && Item.itemsList[i] == null)
            {
                Item.itemsList[i] = new ItemBlock(i - 256);
                Block.blocksList[i].preRenderSlimeSize();
            }
        }

Le slimeSize, je ne sais pas à quoi il sert, mais comme il interagis avec la variable blockList, je préfère garder.

Ensuite vient la classe de ton bloc :

Code:
//Pour la texture, selon le damage
public int getBlockTextureFromSideAndMetadata(int i, int j)
    {
        if(j == 0)
        {
            return blockIndexInTexture;
        } else
        {
            j = ~(j & 0xf);
            /*Ici, c'est rien que pour la laine
               mais tu peux la personnaliser en plaçant un switch à la place*/
            return 113 + ((j & 8) >> 3) + (j & 7) * 16;
        }
    }

    //Là, c'est pour recevoir le bon bloc lorsque tu le casse
    protected int damageDropped(int i)
    {
        return i;
    }

Comme mon bloc est juste de la laine un peu modifié (luminosité), je n'ai pas besoin d'étendre la classe itemBlock, la classe itemCloth me suffisant. Cependant, je te suggère de reprendre le code de cette classe et de l'adapter au bois.
 
Un nouveau plantage au lancement du client que je ne reconnais pas :
Code:
Mods loaded: 1
ModLoader Beta 1.6.6

      Minecraft has crashed!      
      ----------------------      

Minecraft has stopped running because it encountered a problem.

If you wish to report this, please copy this entire text and email it to [email protected].
Please include a description of what you did when the error occured.



--- BEGIN ERROR REPORT 72687359 --------
Generated 26/06/11 16:22

Minecraft: Minecraft Beta 1.6.6
OS: Windows XP (x86) version 5.1
Java: 1.6.0_26, Sun Microsystems Inc.
VM: Java HotSpot(TM) Client VM (mixed mode), Sun Microsystems Inc.
LWJGL: 2.4.2
OpenGL: Quadro FX 380/PCI/SSE2 version 3.3.0, NVIDIA Corporation

java.lang.NullPointerException
	at net.minecraft.src.CraftingManager.addRecipe(CraftingManager.java:257)
	at net.minecraft.src.ModLoader.AddRecipe(ModLoader.java:428)
	at net.minecraft.src.mod_alloy.<init>(mod_alloy.java:12)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at java.lang.Class.newInstance0(Class.java:355)
	at java.lang.Class.newInstance(Class.java:308)
	at net.minecraft.src.ModLoader.addMod(ModLoader.java:215)
	at net.minecraft.src.ModLoader.readFromClassPath(ModLoader.java:1179)
	at net.minecraft.src.ModLoader.init(ModLoader.java:785)
	at net.minecraft.src.ModLoader.AddAllRenderers(ModLoader.java:112)
	at net.minecraft.src.RenderManager.<init>(RenderManager.java:65)
	at net.minecraft.src.RenderManager.<clinit>(RenderManager.java:158)
	at net.minecraft.client.Minecraft.startGame(Minecraft.java:138)
	at net.minecraft.client.Minecraft.run(Minecraft.java:435)
	at java.lang.Thread.run(Thread.java:662)
--- END ERROR REPORT f8652da9 ----------

Je remarque le "Mod Loader : 1", alors qu'il y a trois mod_ présent dans mes "src"...
Si quelqu'un peut m'indiquer d'où vient le problème ...

D'avance Merci.
 
Oui je sais, mais je ne sais pas ce que c'est que cette erreur... ^^'
Voila le code de mod_alloy.java :
Code:
package net.minecraft.src;
public class mod_alloy extends BaseMod
{

    public mod_alloy()
    {
        ModLoader.RegisterBlock(AlloyAllumé);
        ModLoader.RegisterBlock(AlloyEteint);
		ModLoader.RegisterTileEntity(net.minecraft.src.TileEntityAlloy.class, "tileentityAlloy");
        ModLoader.AddName(AlloyAllumé, "Alloy Machine");
        ModLoader.AddName(AlloyEteint, "Alloy Machine");
		ModLoader.AddRecipe(new ItemStack(AlloyEteint, 1), new Object[]
		{"###","OXO","SIP",Character.valueOf('#'), Block.wood, Character.valueOf('O'), Item.ingotIron, Character.valueOf('X'), Item.ingotGold, Character.valueOf('I'), Block.workbench,
		Character.valueOf('S'), mod_nexcraft.Sertisseur, Character.valueOf('P'), mod_nexcraft.Pince});
    }

    public static void loadMoreTextures()
    {
        spritealloyTop = ModLoader.addOverride("/terrain.png", "/Alloy/AlloyHaut.png");
    }

    static 
    {
        loadMoreTextures();
        BlockAlloy.loadSprites();
    }

    public static final Block AlloyAllumé = (new BlockAlloy(106, true)).setHardness(2.0F).setBlockName("AlloyAllumé");
    public static final Block AlloyEteint = (new BlockAlloy(105, false)).setHardness(2.0F).setBlockName("AlloyEteint");
    public static int spritealloyTop;

    public String Version()
    {
        return "1.6.6";
    }
}
 
@val166

Effectivement, ça marche, mais je ne sais pas pourquoi...
En plus j'ai déjà crée un autre bloc de ce type, en plaçant la recette dans le mod "normal", et ça marche très bien, donc c'est un crash assez bizarre ^^"
 
c encore moi !! :D
quand je lance recompil il me met ca:
== MCP v4.1 ==
> Recompiling client...
"C:\Program Files\Java\jdk1.6.0_26\bin\javac.exe" -g -verbose -classpath "lib/;l
ib/*;jars/bin/minecraft.jar;jars/bin/jinput.jar;jars/bin/lwjgl.jar;jars/bin/lwjg
l_util.jar" -sourcepath src/minecraft -d bin/minecraft src/minecraft\net\minecra
ft\client\*.java src/minecraft\net\minecraft\isom\*.java src/minecraft\net\minec
raft\src\*.java conf/patches/*.java failed.
Return code : 1

== ERRORS FOUND ==

src\minecraft\net\minecraft\src\TMIController.java:85: undefined label: MISSING_
BLOCK_LABEL_89
break MISSING_BLOCK_LABEL_89;
^

src\minecraft\net\minecraft\src\TMIController.java:94: undefined label: MISSING_
BLOCK_LABEL_89
break MISSING_BLOCK_LABEL_89;
^

2 errors
==================

> Done in 12.82 seconds
> Recompiling server...
!! Can not find server sources !!
Appuyez sur une touche pour continuer...

j'ai essayer de remplacer le b par une maj mais ca fait rien ...