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

Super! Ca fonctionne!
J'ai juste encore un problème...
j'ai testé une map mais les monstre ("Warrior") ne spawn pas :(
A mins que ça soit les zombie mais je ne crois pas parce que j'avais modifié les textures et ils sont facilement repérable ^^

mod_SpawnMob :

Code:
import java.util.*;
import java.util.Map;

public class mod_SpawnMob extends BaseMod {

    public mod_SpawnMob() {
        ModLoader.RegisterEntityID(EntityWarrior.class, "Warrior", ModLoader.getUniqueEntityId());
        ModLoader.AddSpawn(EntityWarrior.class, 500, EnumCreatureType.monster, (new BiomeGenBase[]{BiomeGenBase.hell}));
    }

    public void AddARenderer(Map map) {
        map.put(EntityWarrior.class, new RenderBiped(new ModelBiped(), 0.5F));
    }


public String Version()
{
return "1.5_01";
}

EntityWarrior :

Code:
package net.minecraft.src;

import java.util.List;
import java.util.Random;

public class EntityWarrior extends EntityZombie {

    public EntityWarrior(World world) {
        super(world);
        texture = "/mob/test.png";
        moveSpeed = 0.4F;
        isImmuneToFire = true;
        attackStrength = 15;
    health = 40;
    }

    public int getMaxSpawnedInChunk() {
        return 50;
    }

    public boolean getCanSpawnHere() {
        return worldObj.difficultySetting > 0 && worldObj.checkIfAABBIsClear(boundingBox) && worldObj.getCollidingBoundingBoxes(this, boundingBox).size() == 0 && !worldObj.getIsAnyLiquid(boundingBox);
    }
    
    public void readEntityFromNBT(NBTTagCompound nbttagcompound) {
        super.readEntityFromNBT(nbttagcompound);
    }
    
    public void onLivingUpdate() {
        super.onLivingUpdate();
    }

    protected int getDropItemId() {
        return Item.cake.shiftedIndex;
    }
    
    public ItemStack getHeldItem() {
        return defaultHeldItem;
    }
    
    private static final ItemStack defaultHeldItem;

    static {
        defaultHeldItem = new ItemStack(Item.swordStone, 1);
    }
}

Voila en sachant que j'ai modifier ce qui est souligné ModLoader.AddSpawn(EntityWarrior.class, 500, EnumCreatureType.monster, (new BiomeGenBase[]{BiomeGenBase.hell}));
et :

public int getMaxSpawnedInChunk()
{
return 50;
}
 
@Jurams
C'est parce que t'es mobs sont configuré pour spawner dans le nether, dans ton mod_SpawnMob.java a la ligne:
Code:
ModLoader.AddSpawn(EntityWarrior.class, 500, EnumCreatureType.monster, (new BiomeGenBase[]{BiomeGenBase.hell}));

Remplace la par:

Code:
ModLoader.AddSpawn(EntityWarrior.class, 500, EnumCreatureType.monster);

Par conte à mon avis avec 500 en chiffres tes mobs vont spawner un max, mais ça tu verras par toi même et changera si nécessaire.
 
Snaxt a dit:
Merci :)
sinon comme tu l'a dis pour regler le taux de spawn il faut changer le 500 mais cette ligne dans entityWarrior signifie quoi ?

Code:
    public int getMaxSpawnedInChunk() {
        return 50;
    }


Euh est-il possible de rajouter un son facilement?
 
jurams a dit:
sinon comme tu l'a dis pour regler le taux de spawn il faut changer le 500 mais cette ligne dans entityWarrior signifie quoi ?

Code:
    public int getMaxSpawnedInChunk() {
        return 50;
    }

Un chunk, il me semble, c'est un bloc de 16 blocs de longueur, 16 blocs de largeur et 128 blocs de hauteurs(une méthode inventée par notch pour diviser la map), ce qui signifie que cette ligne indique le nombre maximum de mob(warrioir) qui peuvent spawner dans ce bloc.
Il me semble, mais je ne suis pas sûre.

jurams a dit:
Euh est-il possible de rajouter un son facilement?

Regarde ce code:
Code:
protected String getLivingSound()
    {
        return "mod.mob";
    }

    protected String getHurtSound()
    {
        return "mod.mob";
    }

    protected String getDeathSound()
    {
        return "mod.mob";
    }

Je ne peux pas t'aider plus pour ce point, attend la réponse de personne plus informées sur ce sujet.
 
Pour les sons c'est bien ici :
Code:
protected String getLivingSound()
    {
        return "mod.mob";
    }

    protected String getHurtSound()
    {
        return "mod.mob";
    }

    protected String getDeathSound()
    {
        return "mod.mob";
    }

J'éxplique : return "mob.mob";

les fichiers sons seront récupérer ici :

.minecraft/ressources/newsound/...

le premier 'mob' correspond au dossier ou sera récupérer les sons, le cond est le nom du son en question exemple :

mob.chicken1

tu peut aussi faire :

mob.monmob.monson

cela fera ainsi dans les dossier :

../mob/monmob/monson.ext

Voila !

Pour le spawn des mobs :

Sa c'est pour définir le nombre maximum du même mob sur une région, je conseil vivement une valeur entre 1 et 10 ... dépasser cela vous risquer d'avoir de gros lag ...
Code:
public int getMaxSpawnedInChunk() {
        return 50;
    }

et ici cela ne sert à rien de mettre 500 car c'est un pourcentage ...
Code:
ModLoader.AddSpawn(EntityWarrior.class, 15, EnumCreatureType.monster);
Préférer plutot une valeur lié à la puissance de votre mob ... si c'est un genre de boos vos mieux appliquer un pourcentage faible, sinon légèrement plus éléver, mais une valeur entre 1 et 100 c'est amplement suffisant ...
 
D'accord merci beaucoup à tous!
EUh, mais j'ai marqué ça et aucun sort de ces foutus warrior...

protected String getLivingSound()
{
return "SoundWarrior.Warriorlive";
}

protected String getHurtSound()
{
return "SoundWarrior.Warriorhurt";
}

protected String getDeathSound()
{
return "SoundWarrior.Warriordeath";
}
 
Bonjour, j'ai essayé de faire un block mais quand je recompile, j'ai eu 8 erreurs, et j'ai réussi a en corriger 5 mais je comprend pas les autres aidez moi svp :

package net.minecraft.src;
public class mod_MyMod extends BaseMod
{
public mod_MyMod()
{
ModLoader.RegisterBlock(Creeper);
ModLoader.AddRecipe(new ItemStack(Creeper, 2), new Object[]
{"##","##",Character.valueOf('#'),Block.stone});
}
public static final Block Creeper = (new
BlockMyBloc(1997,224)).setHardness(2.0F).setResistance(10F)
.setStepSound(Block.soundStoneFootstep);
public String Version()
{
return "1.5_01";
}
}

Sa c'est ce que j'ai marqué, et il me marque en erreur:

src/minecraft/net/minecraft/src/mod_MyMod.java:2: cannot find symbol
symbol: class BaseMod
public class mod_MyMod extends BaseMod

src/minecraft/net/minecraft/src/mod_MyMod.java:6: cannot find symbol
symbol :variable ModLoader
location: class net.minecraft.src.mod_MyMod
ModLoader.RegisterBlock(creeper);

src/minecraft/net/minecraft/src/mod_MyMod.java:7: cannot find symbol
symbol : variable ModLoader
location: class net.minecraft.src.mod_MyMod
ModLoader.AddRecipe(new ItemStack(Creeper, 2), new Object []

j'espère ne pas avoir fait de fautes de frappes, merci d'avance
 
Bonjour,

Alors deux choses,

La 1ere : Waow
La 2eme : GG !!!

Ce tuto est énorme et fonctionne impec chez moi !

Juste, je voulais créer un item, et j'ai besoin de savoir comment je dois appeler le sceau d'eau. Je m'éxplique, je veux créer un item et dans la recette il doit y avoir le sceau d'eau. Or je dois l'appeller comme :
Code:
Character.valueOf('#'), Block.NOMDUSCEAU});

Comment dois-je remplacer "NOMDUSCEAU" pour que ce soit un sceau d'eau, du style "waterbukket", mais je n'en suis pas sur.

Quelqu'un sait svp ?

Cordialement, Arignir