Modding FR

nostre

Aventurier
13 Novembre 2010
424
5
0
30
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

Escusez moi, maintenant c'est : jdk1.7.0

Donc mon chemin variation n'est plus bon, et j'ai error 5 je peu pas décompresser,

le chemin c'est jdk1.7.0_* quelle est le * svp?:)

merci d'avance ^^

Edit piaf: mon nom de dossier c'est jdk1.7.0
mais si j'met ça, il me mette l'erreur 5 :/

C:\Program Files\Java\jdk1.7.0\bin;C:\Program Files\Java\jre7\bin
jr7 nom de mon 2ième dossier
et jdk1.7.0 mon autre

ils marchent les deux j'ai vérifier un par un...
ou alors ça viens d'autre chose ? "PATH" ? une faute ?
ou c'est mod loader?
quelqu'un aurait un lien direct (direct pas vers une page) vers le bon ?


Erreur total :
Traceback <most recent call last>:
File "runtime\decompile.py", line 116, in <module>
main<options.config, options.force_jad>
File 'runtime\decompile.py", line 14 in main
Commands= commands<conffile>
File "C:\Program Files\MCP\runtime\commands.py", line 42, in __init__
self.checkfolders<>
File "C:\Program Files\MCP\runtime\commands.py", line 470, in checkfolders
os.mkdir<self.dirtemp>
WindowsError: [Error 5] Accps refus: 'temp'
Appuyez sur une touche pour continuer ...
et si je touche ça quitte c'est tout

le accps refus,j'pense c'est accès mais le è est pas pris e charge :p
 
J'ai encore un problème avec un item.
L'item doit exploser quand on fait clique droit avec l'objet mais rien. Voici le code de l'item :
Code:
package net.minecraft.src;

import java.util.Random;

public class ItemBombe extends Item
{

    public ItemBombe(int i)
    {
        super(i);
        maxStackSize = 64;
    }

    public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer)
    {
        itemstack.stackSize--;
        world.playSoundAtEntity(entityplayer, "random.fuse", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
        if(!world.multiplayerWorld)
        {
            world.entityJoinedWorld(new EntityBombe(world, entityplayer));
        }
        return itemstack;
    }
}
et le fichier entity :
Code:
package net.minecraft.src;



public class EntityBombe extends Entity
{

    public EntityBombe(World world)
    {
        super(world);
        setSize(0.4F, 0.4F);
        yOffset = height / 2.0F;
        fuse = 0;
        bounceFactor = 0.55000000000000004D;
    }

    protected boolean canTriggerWalking()
    {
        return false;
    }

    protected void entityInit()
    {
    }

    public EntityBombe(World world, Entity entity)
    {
        this(world);
        setRotation(entity.rotationYaw, 0.0F);
        double d = -MathHelper.sin((entity.rotationYaw * 3.141593F) / 180F);
        double d1 = MathHelper.cos((entity.rotationYaw * 3.141593F) / 180F);
        motionX = 0.29999999999999999D * d * (double)MathHelper.cos((entity.rotationPitch / 180F) * 3.141593F);
        motionY = -0.5D * (double)MathHelper.sin((entity.rotationPitch / 180F) * 3.141593F);
        motionZ = 0.29999999999999999D * d1 * (double)MathHelper.cos((entity.rotationPitch / 180F) * 3.141593F);
        setPosition(entity.posX + d * 0.80000000000000004D, entity.posY, entity.posZ + d1 * 0.80000000000000004D);
        prevPosX = posX;
        prevPosY = posY;
        prevPosZ = posZ;
        fuse = 50;
    }

    public void onUpdate()
    {
        double d = motionX;
        double d1 = motionY;
        double d2 = motionZ;
        prevPosX = posX;
        prevPosY = posY;
        prevPosZ = posZ;
        moveEntity(motionX, motionY, motionZ);
        if(stopped)
        {
            return;
        }
        if(motionX != d)
        {
            motionX = -bounceFactor * d;
        }
        if(motionY != d1)
        {
            motionY = -bounceFactor * d1;
        }
        if(motionZ != d2)
        {
            motionZ = -bounceFactor * d2;
        } else
        {
            motionY -= 0.040000000000000001D;
        }
        motionX *= 0.98999999999999999D;
        motionY *= 0.98999999999999999D;
        motionZ *= 0.98999999999999999D;
        exploded = false;
        if(fuse-- <= 0)
        {
            explode();
        }
        if(fuse % 2 == 0)
        {
            worldObj.spawnParticle("smoke", posX, posY + 0.57499999999999996D, posZ, 0.0D, 0.0D, 0.0D);
        }
    }

    private void explode()
    {
        if(!exploded)
        {
            exploded = true;
            worldObj.createExplosion(null, posX, posY, posZ, 2.0F);
            setEntityDead();
        }
    }

    public boolean attackEntity(Entity entity, int i)
    {
        attackEntity(entity, i);
        explode();
        return false;
    }

    public void writeEntityToNBT(NBTTagCompound nbttagcompound)
    {
        nbttagcompound.setByte("Fuse", (byte)fuse);
    }

    public void readEntityFromNBT(NBTTagCompound nbttagcompound)
    {
        fuse = nbttagcompound.getByte("Fuse");
    }

    double bounceFactor;
    int fuse;
    boolean exploded;
    boolean stopped;
}
Merci d'avance.
 
Hello petit problème je veux que mon action retire 1 objet et me donnent une slimeball

Code:
Code :
public boolean interact(EntityPlayer entityplayer)
    {
        ItemStack itemstack = entityplayer.inventory.getCurrentItem();
         if(itemstack != null && itemstack.itemID == mod_MyMod.myItem.shiftedIndex)
        {
    
ICI


            return true;}
    }
 
Ce tutoriel est génial !

Mais j'ai un petit problème:
Je n'arrive pas a ajouter plusieurs objets.
Le code pour un objet marche mais je voudrai ajouter plusieurs objet et je ne sait pas comment faire.

Quelcun pourait m'aider s'il vous plait
 
Code:
 package net.minecraft.src;
public class mod_MyMod extends BaseMod
{
public mod_MyMod()
{
myItem = (new ItemMyitem(99)).setIconCoord(1, 1);
ModLoader.AddRecipe(new ItemStack(myItem, 1), new Object[]
{"#",Character.valueOf('#'), Item.stick});
}
{
myItem1 = (new ItemMyitem2(100)).setIconCoord(1, 1);
ModLoader.AddRecipe(new ItemStack(myItem1, 1), new Object[]
{"#",Character.valueOf('#'), Item.stick});
}
public String Version()
{
return "1.5_01";
}
public static Item myItem;
}

Voilà le code pour 2 objets.