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

Déjà :

Code:
public int.idDropped(int i, Random random)
    {
        return Block.stone.BlockID;
    }

pas de point entre le int et idDropped.

Il me semble que c'est la seule erreur, donc vérifie et tient nous au courant ;p
 
bonjour a tous voila j ai un petit probleme de code j'essaye que le nouveau bloc que j ai crée une fois detruit droppe mon item que j'ai crée et j'aimerais votre avis pour voir ou je me suis trompé

code:

package net.minecraft.src;
import java.util.Random;
public class emeraud extends Block
{
public emeraud(int i, int j)
{
super(i, j, Material.rock);
}
public int idDropped(int i, Random random)
{
return mod_emeraude.itememeraude.BlockID;
 
mysterioxes a dit:
val pour qu'un mob attaque un autre mob cherche dans le model du chien

bé c'est justement j'ai copier exactement le code du loup ( se n'ai aps un chien a l'origine mais un loup) et puis bé je "dresse" mon nouveau mob j'attaque un mob et puis celui que j'ai dresser il se balade tranquille il me regarde entrain de me faire tuer ^^ merci quand même
 
REbonjour aujourd'hui je REvien pour un nouveau probleme plutot dstiner a val puisque c'est lui qui m'as conseiller alors voila j'ai crer ma plante je recompile tout va bien puis des que je met start client sa clash donc je vous envoit le crash et le dossier block et oui je les bien mit dans chunk provider comme la plante en changeant le nom du bloc et mettre mod_XX au lieu de block

Code:
package net.minecraft.src;

import java.util.Random;

public class Blockherbedodo extends Block
{

    protected Blockherbedodo(int i, int j)
    {
        super(i, Material.plants);
        blockIndexInTexture = j;
        setTickOnLoad(true);
        float f = 0.2F;
        setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, f * 3F, 0.5F + f);
    }

    public boolean canPlaceBlockAt(World world, int i, int j, int k)
    {
        return super.canPlaceBlockAt(world, i, j, k) && canThisPlantGrowOnThisBlockID(world.getBlockId(i, j - 1, k));
    }

    protected boolean canThisPlantGrowOnThisBlockID(int i)
    {
        return i == Block.grass.blockID || i == Block.dirt.blockID || i == Block.tilledField.blockID;
    }

    public void onNeighborBlockChange(World world, int i, int j, int k, int l)
    {
        super.onNeighborBlockChange(world, i, j, k, l);
        func_268_h(world, i, j, k);
    }

    public void updateTick(World world, int i, int j, int k, Random random)
    {
        func_268_h(world, i, j, k);
    }

    protected final void func_268_h(World world, int i, int j, int k)
    {
        if(!canBlockStay(world, i, j, k))
        {
            dropBlockAsItem(world, i, j, k, world.getBlockMetadata(i, j, k));
            world.setBlockWithNotify(i, j, k, 0);
        }
    }

    public boolean canBlockStay(World world, int i, int j, int k)
    {
        return (world.getFullBlockLightValue(i, j, k) >= 8 || world.canBlockSeeTheSky(i, j, k)) && canThisPlantGrowOnThisBlockID(world.getBlockId(i, j - 1, k));
    }

    public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int i, int j, int k)
    {
        return null;
    }

    public boolean isOpaqueCube()
    {
        return false;
    }

    public boolean renderAsNormalBlock()
    {
        return false;
    }

    public int getRenderType()
    {
        return 1;
    }
}
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 19/06/11 20:02

Minecraft: Minecraft Beta 1.6.6
OS: Windows 7 (x86) version 6.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: ATI Mobility Radeon HD 5650     version 4.0.9901 Compatibility Profile Context, ATI Technologies Inc.

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_newtool.<init>(mod_newtool.java:39)
	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 cf5f7df7 ----------
 
tu es sur de l'avoir définie dans ton mod_*** ??? et sinon bé sa viendrais peut être d'une recette sa me fait sa quand j'ai une mauvaise recette me demande pas pk ^^ cette recette se trouve dans mod_newtool je crois
 
a euh....bé essaye avec mon code de la rose noire alors
Code:
package net.minecraft.src;

import java.util.Random;

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

public class BlockroseN extends Block
{

    protected BlockroseN(int i, int j)
    {
        super(i, Material.plants);
        blockIndexInTexture = j;
        setTickOnLoad(true);
        float f = 0.2F;
        setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, f * 3F, 0.5F + f);
    }

    public boolean canPlaceBlockAt(World world, int i, int j, int k)
    {
        return super.canPlaceBlockAt(world, i, j, k) && canThisPlantGrowOnThisBlockID(world.getBlockId(i, j - 1, k));
    }

    protected boolean canThisPlantGrowOnThisBlockID(int i)
    {
        return i == Block.grass.blockID || i == Block.dirt.blockID || i == Block.tilledField.blockID;
    }

    public void onNeighborBlockChange(World world, int i, int j, int k, int l)
    {
        super.onNeighborBlockChange(world, i, j, k, l);
        func_268_h(world, i, j, k);
    }

    public void updateTick(World world, int i, int j, int k, Random random)
    {
        func_268_h(world, i, j, k);
    }

    protected final void func_268_h(World world, int i, int j, int k)
    {
        if(!canBlockStay(world, i, j, k))
        {
            dropBlockAsItem(world, i, j, k, world.getBlockMetadata(i, j, k));
            world.setBlockWithNotify(i, j, k, 0);
        }
    }

    public boolean canBlockStay(World world, int i, int j, int k)
    {
        return (world.getFullBlockLightValue(i, j, k) >= 8 || world.canBlockSeeTheSky(i, j, k)) && canThisPlantGrowOnThisBlockID(world.getBlockId(i, j - 1, k));
    }

    public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int i, int j, int k)
    {
        return null;
    }

    public boolean isOpaqueCube()
    {
        return false;
    }

    public boolean renderAsNormalBlock()
    {
        return false;
    }

    public int getRenderType()
    {
        return 1;
    }
}
tu as juste a remplacer la où ya rose N etc... bon j'espère que sa marchera