Problème création mod

Romshh

Aventurier
24 Juillet 2011
27
0
0
Je post ici après un post dans une mauvaise catégorie , désolé .

Voila je me suis mis à la création d'un mod avec le tuto de nostre(à la con car je débute . J'ajoute juste un block , un stick et une épée) .
Le soucis c'est que dès que je lance le tout , bah ça crash .

J'ai regardé et le jeu fonctionne bien sans mon fichier mod_monMod.class
ici appelé mod_Romshh.class

J'ai suivis toutes les instruction de nostre pourtant et ça marche pas .

Mon mod est composé de quatres fichiers : mod_Romshh.java , BlockElementium.java, ItemObsidianStick.java , ItemElementiumSword.java

Je précise que dans la première version que j'avais fait , je n'avais pas mis de skin particulier (un de ceux qui sont de base) et j'avais réussis à avoir dans mon inventaire l'épée et le bloc (le stick n'ayant à ce moment la pas été fait )

Voici le code de mon fichier mod_Romshh.java

Code:
package net.minecraft.src;
public class mod_Romshh extends BaseMod  
{
	public mod_Romshh() 	// nom du Fichier oblige.
	{
			ModLoader.RegisterBlock(elementium); 
                      // Ajout d'un nouveau block , l'elementium
			
			ModLoader.AddName(elementium, "Elementium");    // Ajout d'un nom pour l'inventaire
			ModLoader.AddName(obsidianStick,"Obsidian Stick");	//idem



			 //Ajout de la recette : deux blocs d'obsidian  = un block d'élémentium
			ModLoader.AddRecipe(new ItemStack(elementium, 1), new Object[] 

			{"##",Character.valueOf('#'), Block.obsidian});



			// ajout de la recette : deux blocs d'obsidian = 2 batons d'obsidian
			ModLoader.AddRecipe(new ItemStack(obsidianStick,2), new Object[]	
			{"#","#",Character.valueOf('#'),Block.obsidian});
			


			//Ajout de l'obsidian stick à l'iD n°101 , skin = /mods/romshh/obsidianStick.png

			obsidianStick = (new ItemObsidianStick(101)).setItemName("obsidianStick").setIconIndex(ModLoader.addOverride("/gui/items.png","/mods/romshh/obsidianStick"));


			//Ajout de l'épée à l'iD n°100 , skin = /mods/romshh/elementiumSword.png

			elementiumSword = (new ItemElementiumSword(100)).setItemName("elementiumSword").setIconIndex(ModLoader.addOverride("/gui/items.png","/mods/romshh/elementiumSword.png"));
			

			ModLoader.AddName(elementiumSword,"Elementium Sword"); //Ajout d'un nom pour l'inventaire


//recette pour l'épée : deux blocs d'élementium + un obsidian stick

			ModLoader.AddRecipe(new ItemStack(elementiumSword, 1), new Object[]	
			{"#","#","X",Character.valueOf('#'), elementium,Character.valueOf('X'),Item.stick});
	}
	
		public static Item elementiumSword;
		public static Item obsidianStick;

//paramètre du block d'elementium : Hardness : 2.0F, Resistance: 10F , même son que la cobble

		public static final Block elementium = (new BlockElementium(99,ModLoader.addOverride("/terrain.png","/mods/elementium.png")).setHardness(2.0F).setResistance(10F).setBlockName("elementium")     // Résistance du block
		.setStepSound(Block.soundStoneFootstep).setLightValue(1.0F));  



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

}

Voila .
J'espère que quelqu'un pourra me répondre .
Cordialement , Romshh.
 
Bon , j'ai fais ce que tu as dis mais maintenant ça charge le logo de début puis écran noir et ça reste bloqué la .

Merci sinon d'avoir répondu .
 
Après de longue recherche à décortiquer mon code (comme un bon programmeur devrait faire)
j'ai trouvé d'où venais le problème .
Il n'arrive pas à charger les images de mes créations .

Je m'explique .

Il y a trois objets : Le baton d'obsidian , l'elementium (un block) et l'épée en élémentium .
Ces trois images se trouvent dans %appdata%/.minecraft/mods/romshh/
sous le nom chacun de : obsidianStick.png , elementium.png et elementiumSword.png
Soit exactement le même nom que je leurs ait donné sur le modloader .

Il met une exception : Image Not Found %appdata%/.minecraft/mods/romshh/obsidianStick.png (pour le baton d'obsidian par exemple) .

Voici comment j'ai écris ma ligne de commande correspondant :

obsidianStick =
(new ItemObsidianStick(101)).setItemName("obsidianStick")
.setIconIndex(ModLoader
.addOverride("/gui/items.png","%appdata%/.minecraft/mods/romshh/obsidianStick"));

Voila . Merci d'avance.
 
Alors, pour les ModLoader.addOverride, Minecraft va aller chercher les textures dans le minecraft.jar.
Je te conseille de créer un dossier "textures[ton mod]" et de placer tes trois textures dedans.
Et dans le code, tu écrit ça :

Code:
ModLoader
.addOverride("/gui/items.png","/textures[ton mod]/[ton image].png"));

Ainsi, les futurs utilisateurs de ton mod n'auront qu'à déplacer le dossier textures[ton mod] dans leur minecraft.jar, en même temps que les fichiers .class.
J'espère avoir répondu à ta question :ok: