Résolu Modifier les blocs/outils/armures/armes de base
-
Bonjour/bonsoir,
Je suis actuellement en train de créer un mod qui rajoute beaucoup (mais vraiment beaucoup) de minerais, aussi bien réel qu’inventé, mais je voudrais que dans mon mod la pioche en bois soit vraiment très fragile (seulement 3 utilisations) et met beaucoup de temps à miner une stone (comme si on minait de l’obsidienne avec une pioche en diamant), même chose pour la pioche en pierre, il serait aussi plus difficile d’accéder au fer et au diamant qu’en vanilla, il y a plein d’autres minerais moins puissant avant eux, par exemple je ne peux pas miner du fer avec une pioche en pierre mais avec une pioche en platine mais je ne peux pas miner de platine sans pioche en zinc. Mais je ne sais pas comment faire, malgré mes recherches.
Voilà ce que je veux faire : augmenter le taux de spawn du fer et du diamant, les minerais de fers ne peuvent se miner qu’avec une pioche en platine qui est la 4ème pioche qu’obtient le joueur dans mon mod (après le bois ,la pierre et le zinc), pour le diamant, elle ne sera minable que par une pioche en timiosis qui est la 12ème pioche obtenable.
Modifier les pioches en bois et en pierre pour les rendre beaucoup moins efficaces, modifier la pioche en fer et en diamant pour les rendre beaucoup plus efficaces.
Modifier les armures en fer et en diamants pour les rendre plus résistants et les autres outils et armes.
Modifié l’obsidienne pour éviter les risques qu’elle puissent être minées par des pioches inférieures au diamant, car je veux que dans mon mod le nether ne soit accessible que quand le joueur trouve suffisamment de diamants (de toute façon les joueurs ne pourront pas miner les nouveaux minerais avec une pioche inférieur au diamant [excepté le quartz]).
En parlant du nether, je veux aussi modifier la netherrack pour la rendre aussi résistante que l’endstone.En bref, il faut que je sache comment modifier un bloc, une armure, des outils et une arme déjà présent dans minecraft pour résoudre mon problème.
J’ai cherché pas mal de temps ici et ailleurs mais je n’ai pas trouvé
-
Ce n’est pas impossible, mais ça va être difficile.
Pour modifier les valeurs des outils par défaut, je ne suis pas sur que ça va fonctionner, mais tu peux essaye de déclarer des ToolMaterial avec comme nom, les mêmes que ceux de minecraft, comme Forge utilise la réflexion pour ajouter un ToolMaterial, ça va sûrement passer par dessus.Pour changer la résistance des blocs de minecraft, Blocks.nomDuBloc…setHardness(nouvelle valeur) peut fonctionner, à tester.
Si tout ça ne fonctionne pas, il faudra passer par les événements, et ça risque d’être assez compliqué.
-
D’accord, je vais essayer ce que tu m’as dis de faire cet après-midi, merci d’avoir répondue, je te dirai si ça à fonctionner ou pas.
-
et sinon ya pas moyen de recréer les mêmes outils par exemple, de remplacer le craft des outils de base par le tien? et ensuite tu les créées comme des outils normaux?
-
J’ai testé mais rien n’a marché, quand j’ai créé un nouveau ToolMaterial pour remplacer un autre de minecraft de base, ça n’a absolument rien fait, même chose pour les blocs, j’ai testé sur la cobble mais ça à mit une erreur :
http://nsa33.casimages.com/img/2014/03/24/140324033023223051.png
puis j’ai testé ta solution tots51 mais ça à recréé un nouvel item qui avait toute les popriétés que je désirais, la solution serait de faire en sorte que quand j’essaye de crafter une pioche en bois, ça donne celle que j’ai créé mais pas celle de minecraft de base, mais je n’ai pas eu le temps de faire ça (en plus je ne sais pas encore créé un nouveau craft )
-
Blocks, pas Block.
La solution de totos51 devrait passer, mais pas sûr, depuis la 1.7 c’est pas facile de passer par dessus les items / blocs vanilla. -
hum même en simplement ajoutant un craft étant le même qu’un éxistant?
-
C’est bon ça marche pour les blocs mais pour les items je n’arrive pas à recréer le craft de la nouvelle pioche en bois.
J’ai suivi un tuto en 1.6 puisque je ne trouvais pas en 1.7
GameRegistry.addRecipe(new ItemStack(Items.wooden_pickaxe), new Object[]{“WWW”, " S ", " S ", ‘W’, new ItemStack(Block.planks), ‘S’, new ItemStack(Item.stick) });
Il y a une erreur sur “planks” et “stick” disant “planks/stick cannot be resolvd or is not a field”
-
Hum les noms sont changés en 1.7 regarde dans la classe item voir comment tu dois les appeller, je code pas en 1.7 sorry
-
Items.stick et Blocks.planks en 1.7 les classes ont changés.
-
ça marche de mieux en mieux mais il reste un dernier problème : quand j’ai corrigé j’ai réussi à couvrir le craft de la pioche en bois par celle de ma nouvelle pioche en bois, mais ça ne marche qu’avec les planches en bois de chêne, avec les autres type de planche ça donne la pioche en bois de minecraft.
Je vous remet la ligne de code du craft que j’ai modifié :
GameRegistry.addRecipe(new ItemStack(Items.woodenPickaxe), new Object[]{“WWW”, " S ", " S ", ‘W’, new ItemStack(Blocks.planks), ‘S’, new ItemStack(Items.stick) });
J’ai juste changé “wooden_pickaxe” en “woodenPickaxe” car la première et le nom de la pioche en bois de minecraft et ça ne faisait rien avec.
-
Essayes un truc comme cela :```java
GameRegistry.addRecipe(new ItemStack(Items.woodenPickaxe), new Object[]{“WWW”, " S ", " S ", ‘W’, new ItemStack(Blocks.planks, 0, 1), ‘S’, new ItemStack(Items.stick) }); -
Il y avait une erreur à (Items.woodenPickaxe) j’ai retiré le “Items.” et ça s’est enlevé, il voulait que je le change par “wooden_pickaxe” la pioche en bois de minecraft.
après j’ai testé et maintenant je pouvais crafter ma pioche en bois mais avec que des planches en bois de sapin, le chêne ne marchais plus X)
PS : je viens d’avoir une idée, je vais copier 5 fois le code pour tout les types de planche de minecraft, en remplaçant seulement (Blocks.planks, 0, cetteValeurLà)
J’essayerai ça plus tard, normalement ça devrait marché -
oui mais la ce que tu veux craft c’est ta propre picoeh alors tuy dois pa smettre items.wooden mais plutot tonmod.tapioche, non?
-
ça marche avec et sans, donc moi j’ai commencé sans mettre le nom de mon mod et donc je continuerai sans.
Mais en tout cas c’est bon ça marche !
Je sais comment modifié un bloc et un item de minecraft, même si pour changer l’item j’ai du en créé un tout nouveau, en faite j’ai plutôt remplacé un item de minecraft par un item de mon mod.
le but était de modifié, pas de remplacé, la pioche en bois originelle est toujours disponible dans l’inventaire en créa, du coup je sais pas si le problème peut être déplacé dans la catégorie résolu
Si vous trouvez une solution pour vraiment modifié un item de minecraft venez le dire ici.
Pour moi cette solution me convient, je vous remercie de m’avoir aidé
robin4002 j’attend ton tuto sur la customisation des blocs en 1.7
Il ne me reste plus que ça et un tuto sur “comment créé une nouvelle table de craft/un nouveau four” et un tuto sur “commment créé un nouveau minerai” et je saurai tous pour continuer de créer mon mod ^^
EDIT : non en faite ça marche pas, j’avais oublié que l’on pouvais mélangé les planche, du coup en mélangeant les planches on peut avoir la pioche en bois de minecraft.
Et j’ai pas envie de faire une ligne de craft par combinaison -
GameRegistry.addRecipe(new ItemStack(woodenPickaxe), new Object[]{"WWW", " S ", " S ", 'W', new ItemStack(Blocks.planks), 'S', new ItemStack(Items.stick) });
Quand tu ne précise pas le metadata, ça prend tout. Pour l’onglet créatif tu peux toujours set à null la table des items vanilla. Pour vraiment modifier, il faut utiliser un core mod et l’asm, et c’est pas facile (perso je comprends pas trop le byte code, j’ai réussi à faire fonctionner un code d’un tuto, mais jamais réussi à le modifier pour faire autre chose).
-
Non j’avais déjà essayer, comme ça on peut la crafter que avec des planches en chêne
-
Oula, la 1.7 a changé des trucs. Faut que je regarde ça plus en détail après.
-
Et bien plus simplement tu fais:
for (int i = 0; i < 4; i++) { for (int J = 0; j < 4; j++) { for (int k = 0; k <4; k++) { GameRegistry.addRecipe(new ItemStack(woodenPickaxe), new Object[]{"WXY", " S ", " S ", 'W', new ItemStack(Blocks.planks, i, 1), 'X', new ItemStack(Blocks.planks, J, 1), 'Y', new ItemStack(Blocks.planks, k, 1) 'S', new ItemStack(Items.stick) }); } } }
Et comme ça cela fonctionne peu importe le metadata
Attention cependant, remplace le 4 de mes boucles par le nombre de metadata possible en 1.7 -
La même chose en plus simple :
for(int i = 0; i < nombre_Metadata_Possible; i++){ GameRegistry.addRecipe(new ItemStack(woodenPickaxe), new Object[] {"WWW", "S", "S", 'S', new ItemStack(Blocks.planks, i, 1), 'S' new ItemStack(Items.stick) }); }
PS : Je sais pas si c’est encore d’actualité avec la 1.7, mais tu peux utiliser les blocks registry de forge.