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

.setItemName("bloc") ne fonctionne pas donc je fait ModLoader.AddName(bloc ,"bloc") et là sa fait planter le jeu

Code:
:
package net.minecraft.src;
public class mod_rubismod extends BaseMod
{
public mod_rubismod()
{
rubis = (new rubisp(206)).setIconCoord(5, 6);
ModLoader.AddName(rubis ,"gemme rubis");
}
public String Version()
{
return "1.5_01";
}
public static Item rubis;
}
 
Perso pour faire fonctionner les noms j'ai toujours utiliser les deux, setItemName + addName de modLoader.

as-tu bien insérer cette ligne : 'package net.minecraft.src;' dans ton rubisp.java ?

'rubisp' est le nom exacte de ton fichier *.java ?

as-tu bien transférer touts tes fichiers dans mcp folder/src/minecraft/net/minecraft/src ?

as-tu bien tous recompiller avant de relancer le jeux ?

éssai la meme manière que moi, c'est à dire de placer setItemName et addName.
 
merci sa fonctionne pour le nom mais quand je veux faire une recette impliquant l'item que je viens de créer systématiquement sa plante

mod_A
Code:
:
package net.minecraft.src;
public class mod_A extends BaseMod
{
public mod_A()
{
ModLoader.RegisterBlock(B);
ModLoader.AddRecipe(new ItemStack(B, 1), new Object[] 
{"###", "###", "###",Character.valueOf('#'), mod_rubismod.rubis});
}
public static final Block B = (new 
BlockC(119,234)).setHardness(3F).setResistance(50F)
.setStepSound(Block.soundStoneFootstep);
public String Version()
{
return "1.5_01";
}
}



mod_rubismod [CODE]:
package net.minecraft.src;
public class mod_rubismod extends BaseMod
{
public mod_rubismod()
{
rubis = (new rubisp(206)).setIconCoord(5, 6).setItemName("gemme rubis");
ModLoader.AddRecipe(new ItemStack(rubis, 1), new Object[] 
{"#",Character.valueOf('#'), Item.stick});
ModLoader.AddName(rubis ,"gemme rubis");
}
public String Version()
{
return "1.5_01";
}
public static Item rubis;
}

vous savez pourquoi ??
 
Ton erreur est là :

ModLoader.AddRecipe(new ItemStack(B, 1), new Object[]
{"###", "###", "###",Character.valueOf('#'), mod_rubismod.rubis});

il ne faut pas mettre mod_rubismod.rubis mais rubis.

du moins c'est ce qui me vien direct en regardant ton code !
pourquoi ? car tu déclare directement ton item sur la même page, donc pas besoin de passer par le mod_rubismod

d'ailleur je n'est pas fait attention mais tu fait sa :

public class mod_A { ... }

et dans ton code :
mod_rubismod.rubis

voulu ?

Si oui oublie si non l'erreur viens très certainement de là !
 
il faut que je mette mod_rubismod.rubis parce que c'est dans un autre fichier en faite et donc je comprend pas se que je dois enlever quand tu dis :
[
d'ailleur je n'est pas fait attention mais tu fait sa :

public class mod_A { ... }

et dans ton code :
mod_rubismod.rubis

voulu ?

Si oui oublie si non l'erreur viens très certainement de là !
[/quote]

tu pourrais me dire exactement parce que je vois pas trop là dsl ^^

et enfaite a chaque fois que je veux faire une recette avec mon item créer bé sa plante le jeu
 
Salut Shadyre,
j'aurais encore une petite question si tu es d'accord:

j'ai regardé un peu ce que tu m'as envoyé, je pense pouvoir me débrouillez avec, mais pour la création de mob tu as utilisé quoi(le côté graphique)? FMC modeler(celui spécial pour minecraft) ou une autre méthode? Tu as fais comment pour déterminer les mouvements(logiciel ou dans le code direct)?
Est ce que cette ligne de code
Code :
texture = "/chemin/vers/image.png";
a un rapport avec la texture 3d du mob? Mais après comment l'animé?

Merci beaucoup de ta future réponse.
 
@val166 en effet dsl, j'ai poster ce msg assez tard ayant beaucoup bosser de la journé j'avais un peut la tête ailleur.

Donc pour résumer tu à donc 2 mods au total ? si je suis bien on a mod_A et mod_rubismod ont est d'accord ?

Ton mod A appel donc grâce à une recette un objet du mod rubismod ? ont est toujours d'accord ?

Donc sa c'est ok possible erreur que je vien de voir... à la ligne de ta recipe tu fait new ItemStack(B, 1) ... mais à quoi correspond B ? je pense que c'est sa qui plante !

Il te faut soit créer un autre objet et le déclarer dans la recipe soit dire que cela créer un objet éxistant du jeux.

@Snaxt je n'est pas encore fait de modelism pour minecraft, je n'est fait que réutiliser les render et model éxistant, je n'est fait qu'appliquer de nouvelle texture en outre.

Pour la texture sont application se gère, du moins à ce que j'ai comprit car sa me parait logique avec le fichier RenderNOMDUMOB, ou chaque pixel ou zone de pixel est "découper" pour être appliquer à une zone relative au model.

L'animation se gère dans le fichier ModelNOMDUMOB en question, je n'est aucun exemple concret à te passer car je suis en plin dedan pour créer un mob perso, si j'ai du nouveau je te tiendrai au courant.
 
bé mon B ensuite j'ai dit se que c'était plus loins dans le code :

public static final Block B = (new
BlockC

donc normalement c'est sensé marché

voila les codes de mes fichier .java :

mod_a:

package net.minecraft.src;
public class mod_A extends BaseMod
{
public mod_A()
{
ModLoader.RegisterBlock(B);
ModLoader.AddRecipe(new ItemStack(B, 1), new Object[]
{"###", "###", "###",Character.valueOf('#'), mod_rubismod.rubis});
}
public static final Block B = (new
Blockc(119,234)).setHardness(3F).setResistance(50F)
.setStepSound(Block.soundStoneFootstep);
public String Version()
{
return "1.5_01";
}
}

Blockc:

package net.minecraft.src;
import java.util.Random;
public class BlockC extends Block
{
public BlockC(int i, int j)
{
super(i, j, Material.rock);
}
public int idDropped(int i, Random random)
{
return mod_A.B.blockID;
}
}

mod_rubismod:

package net.minecraft.src;
public class mod_rubismod extends BaseMod
{
public mod_rubismod()
{
rubis = (new rubisp(206)).setIconCoord(5, 6).setItemName("gemme rubis");
ModLoader.AddRecipe(new ItemStack(rubis, 1), new Object[]
{"#",Character.valueOf('#'), Item.stick});
ModLoader.AddName(rubis ,"gemme rubis");
}
public String Version()
{
return "1.5_01";
}
public static Item rubis;
}

rubisp:

package net.minecraft.src;
public class rubisp extends Item
{
public rubisp(int i)
{
super(i);
}
}

voila j'espère que tu pourras trouver l'erreur
 
J'ai trouver sa :

public static final Block B = (new Blockc ... ... ...

Hors ta class s'appel BlockC il faut faire attention au majuscule !

Donc oui erreur et plantage puisque la class appelé n'éxiste pas !

Ah et conseil, pour que tu t'y retrouver mieu, évite les A B C , utilise de préférence des nom bien définie sa t'évitera bien des souci !