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

tu es un comique toi didonc ^^ mais c'est bon j'ai trouvé comment en modifiant le fichier terrain.png même si je voulait pas il le faut bien maintenant ^^
 
Depuis la version 1.6 le code que j'ai créer ne fonctionne plus.
je ne comprend pas

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

public abstract class mod_modDinosaure extends BaseMod {

    public mod_modDinosaure() {
        ModLoader.RegisterEntityID(EntityDiplodocus.class, "Diplodocus", ModLoader.getUniqueEntityId());
        ModLoader.AddSpawn(EntityDiplodocus.class, 100, EnumCreatureType.monster);
    }

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


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

ET le EntityDiplodocus :
Code:
import java.util.List;
import java.util.Random;

public class EntityDiplodocus extends EntityZombie
 {

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

    public int getMaxSpawnedInChunk() {
        return 20;
    }

    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);
    }
}

Quelqu'un serait que est le problème?
 
Quelqu'un connaitrait un tuto sur comment faire des block dit "transformateurs" (style Four...) ?
Ainsi qu'un tuto sur les GUI ?
Et aussi, quel nom doit-on rentrer dans nos ligne pour les champignons rouges et marron ? (J'ai essayé "Item.mushroomBrown" et "Item.mushroomRed", comme dit sur cette page, sur l'image, mais ça ne marche pas et j'obtiens le traditionnel "can't find symbol" ^^' )
 
Re, alors, j'ai prix le code que on m'avait passé, mais sa ne m'aide pas vraiment, vu que c'est MON objet, et pas un objet déjà configuré, j'ai besoin juste qu'on m'explique ce qu'il faut faire, pas qu'on me passe un code déjà tout fait, sinon, je n'arriverais jamais a créer un mod tout seul...
Donc, je up mon problème :

Rebonjour !^^
Mon ancien test a marcher, maintenant, j'essaye de faire mon vrai bloc, et la, sa m'embête, car vu que je ne comprend pas très bien tout, y'as des erreurs...
Ce que j'ai essayer de faire :

Ajouter un nom a mon bloc, et mettre une image pour chaque face.

Voilà ce que sa me dit lors de la recompilation :

http://imageshack.us/photo/my-images/189...mpile.png/

Ensuite, voilà mes codes :

BlockMyBlock :

Code :
Code:
package net.minecraft.src;
import java.util.Random;
public class BlockMyBloc extends Block
{
public BlockMyBloc(int i, int j)
{
super(i, j, Material.stone);
}
public int idDropped(int i, Random random)
{
return mod_MyMod.TV.blockID;
}
Texture1 = ModLoader.addOverride("/mod/Texture1.png");
Texture2 = ModLoader.addOverride("/mod/Texture2.png");
Texture3 = ModLoader.addOverride("/mod/Texture3.png");
Texture4 = ModLoader.addOverride("/mod/Texture4.png");
Texture5 = ModLoader.addOverride("/mod/Texture5.png");
Texture6 = ModLoader.addOverride("/mod/Texture6.png");
public int Texture1;
public int Texture2;
public int Texture3;
public int Texture4;
public int Texture5;
public int Texture6;
public int getBlockTextureFromSide(int i)
{
if(i == 0)
{
return Texture1;
}
if(i == 1)
{
return Texture2;
}
if(i == 2)
{
return Texture3;
}
if(i == 3)
{
return Texture4;
}
if(i == 4)
{
return Texture5;
} else
{
return Texture6;
}
}
}

Et du mod_MyMod :

Code :
Code:
package net.minecraft.src;
public class mod_MyMod extends BaseMod
{
public mod_MyMod()
{
ModLoader.RegisterBlock(TV);
ModLoader.AddName(TV, "TV")
ModLoader.AddRecipe(new ItemStack(TV, 1), new Object[]
{"###", "#X#", "#O#", Character.valueOf('#'), Block.iron, Character.valueOf('X'), Item.redstone, Character.valueOf('O'), Item.button});
}
public static final Block TV = (new
BlockMyBloc(254,0)).setHardness(2.0F).setResistance(10F)
.setStepSound(Block.soundStoneFootstep)
.setBlockName("TV");
public String Version()
{
return "1.6.6";
}
}

Dans mon minecraft.jar (dans le dossier jars de MCP), il y a un nouveau fichier mod avec les textures dedans, les bon titre majuscule comme minuscule et sa ne marche quand même pas...
Merci d'avance pour votre aide !^^

Voilà, a la limite, passer moi mon code tout arranger mais me passer pas votre code, sa sert a rien...
Sinon, expliquer moi la chose !^^
 
Erwann21 a dit:
Et aussi, quel nom doit-on rentrer dans nos ligne pour les champignons rouges et marron ? (J'ai essayé "Item.mushroomBrown" et "Item.mushroomRed", comme dit sur cette page, sur l'image, mais ça ne marche pas et j'obtiens le traditionnel "can't find symbol" ^^' )

Mon image est bonne, c'est juste que les champignons sont des blocs et pas des items
 
@Stormweaker
Ha ok =P Autant pour moi c'est vrai j'aurais dû y penser ^^
En tout cas merci pour l'image, elle est vraiment très pratique =P !

J'ai obtenu une erreur et je n'arrive pas à savoir d'où elle vient ...
Quelqu'un à une idée ?

Code:
Mods loaded: 2
ModLoader Beta 1.6.6
net.minecraft.src.mod_nexcraft 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 8c3b4393 --------
Generated 25/06/11 16:56

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.ExceptionInInitializerError
	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)
Caused by: java.lang.NullPointerException
	at net.minecraft.src.BlockReacteur.<init>(BlockReacteur.java:11)
	at net.minecraft.src.mod_reacteur.<clinit>(mod_reacteur.java:21)
	... 15 more
--- END ERROR REPORT 11aaae0a ----------
 
Bonjour, j'ai créer de nouveaux blocs et j'aimerai leurs rajouter une action au clic droit (comme pour le mod piston ou le clic droit change la direction du piston) seulement je ne sais pas comment faire alors je m'en remets à vous si quelqu'un connait le code.
Merci
 
Le code est à rajouter dans BlockMyBlock.java et c'est
Code:
public boolean blockActivated(World world, int i, int j, int k, EntityPlayer entityplayer)
{
//Ici tu rajoute ce que tu veux que ça fasse quand tu clique dessus.
}

Voila =P
 
megavigore a dit:
Re, alors, j'ai prix le code que on m'avait passé, mais sa ne m'aide pas vraiment, vu que c'est MON objet, et pas un objet déjà configuré, j'ai besoin juste qu'on m'explique ce qu'il faut faire, pas qu'on me passe un code déjà tout fait, sinon, je n'arriverais jamais a créer un mod tout seul...
Donc, je up mon problème :

Rebonjour !^^
Mon ancien test a marcher, maintenant, j'essaye de faire mon vrai bloc, et la, sa m'embête, car vu que je ne comprend pas très bien tout, y'as des erreurs...
Ce que j'ai essayer de faire :

Ajouter un nom a mon bloc, et mettre une image pour chaque face.

Voilà ce que sa me dit lors de la recompilation :

http://imageshack.us/photo/my-images/189...mpile.png/

Ensuite, voilà mes codes :

BlockMyBlock :

Code :
Code:
package net.minecraft.src;
import java.util.Random;
public class BlockMyBloc extends Block
{
public BlockMyBloc(int i, int j)
{
super(i, j, Material.stone);
}
public int idDropped(int i, Random random)
{
return mod_MyMod.TV.blockID;
}
Texture1 = ModLoader.addOverride("/mod/Texture1.png");
Texture2 = ModLoader.addOverride("/mod/Texture2.png");
Texture3 = ModLoader.addOverride("/mod/Texture3.png");
Texture4 = ModLoader.addOverride("/mod/Texture4.png");
Texture5 = ModLoader.addOverride("/mod/Texture5.png");
Texture6 = ModLoader.addOverride("/mod/Texture6.png");
public int Texture1;
public int Texture2;
public int Texture3;
public int Texture4;
public int Texture5;
public int Texture6;
public int getBlockTextureFromSide(int i)
{
if(i == 0)
{
return Texture1;
}
if(i == 1)
{
return Texture2;
}
if(i == 2)
{
return Texture3;
}
if(i == 3)
{
return Texture4;
}
if(i == 4)
{
return Texture5;
} else
{
return Texture6;
}
}
}


Déjà, tu donnes une textures à tes variables (Texture1, Texture2, etc...) AVANT de déclarer tes variables, c'est totalement illogique. On déclare les variables avant de leur assigné une valeur (tu ne peux pas donner une valeur à une variable qui n'existe pas encore ;) Tu dois la créer avant).

Sinon, j'ai dû faire une bloc avec une texture différente sur chaque face (enfin, une face pour les cotés et l'arrière, une face pour le devant, et une face pour le dessus et le dessous) et pour y arriver, j'ai regardé le code du four (la partie qui concerne la texture) et je l'ai adapté. Tu devrais y jeter un œil, ça pourrait t'aider.