Résolu Minerai qui drope un items
-
Bonjour, je voudrais savoir comment faire une chose! Quand on casse un minerai il ne drope pas son bloc mais un items!
Puis aussi, mais minerai se casse avec une pioche en fer ou en pierre, mais il se casse à la pioche en bois, je sais que sa se règle mais je sais pas comment! Je sais avec MCP mais avec forge…
Merci d’avoir lu, j’espère un réponse rapide ^^!
-
pour le drop:
public int idDropped(int par1, Random par2Random, int par3) { return TaClasseMain.TonBloc.blockid; } public int quantityDropped(Random par1Random) { return nombreDeLoot; }
-
Pour détruire ton minerai avec une certaine pioche :
A la fin de la déclaration de ton item (TonMinerai = new TonMineraiClass etc…)
.setHarvestLevel("pickaxe", harvest)
Change harvest par un chiffre
Rappel :
0 = Pioche en bois et en or
1 = Pioche en pierre
2 = Pioche en fer
3 = Pioche en diamant -
Rebonjour, merci pour vos réponses! Cependant quand je rajoute .setHarvestLevel(“pickaxe”, 3) par exemple, cela me mets un erreur! Quand je la corrige et que je lance le jeu, crash…
et isador, je mets le code ou? je suis un nouveau codeur forge, je code sous MCP pas forge normalement ^^! -
Dans la classe de ton bloc.
Pour drop le bloc seulement avec certaines pioches en 1.6.4 il faut ajouter :
MinecraftForge.setBlockHarvestLevel(bloc, metadata, toolClass, harvestLevel);
Dans la fonction init de ta classe principale
-> http://www.minecraftforgefrance.fr/showthread.php?tid=136 -
Oulà –’ Merci robin4002, j’ai fait une grosse faute
-
Je suis vraiment un noob ;(
J’ai suivit le tutoriel a la lettre est ca ne fait rien ;( Il n’y a vraiment rien de différent en 1.6.4? -
En 1.6 :
MinecraftForge.setBlockHarvestLevel(Block block, String toolClass, int tier);
On utilise MinecraftForgeEn 1.7, on utilise la méthode setHarvestLevel présente dans la classe de ton bloc.
-
Oui, en gros dans ma classe principale je fou ça dans la fonction init:
MinecraftForge.setBlockHarvestLevel(RubyOre, "Pickaxe", 2); ``` Pour que mon bloc se casse à la pioche en fer ? Je l'ai fait, mais cela ne marche pas ;(
-
pickaxe sans P majuscule.
-
Merci, ça marche ENFIN!
Maintenant je ne veux plus vous embêtez, mais il me reste le drops, je n’arrive pas à faire que le rubis me drop un rubis et non un bloc de rubis! -
http://www.minecraftforgefrance.fr/showthread.php?tid=136
regarde la fonction idDropped -
Envoie à nouveau ton bloc + ta classe principale.
-
Pour le crash reports, c’est régler
!Mais la! Le rubis ne me drop RIEN!
-
Envoie ton code …
-
public int idDropped(int metadata, Random rand, int fortune) { if(metadata == 0 && rand.nextInt(5) > 3) { return GoldenMain.Ruby.itemID; } else if(metadata == 0) { return 0; } else { return this.blockID; }
J’ai mis dans la classe du bloc!
-
return 0; = pas de drop
-
–-- Minecraft Crash Report ----
// Who set us up the TNT?Time: 17/07/14 18:42
Description: Ticking memory connectionjava.lang.NullPointerException
at goldenmod.Blocks.RubyOre.idDropped(RubyOre.java:23)
at net.minecraft.block.Block.getBlockDropped(Block.java:1831)
at net.minecraft.block.Block.dropBlockAsItemWithChance(Block.java:721)
at net.minecraft.block.Block.dropBlockAsItem(Block.java:711)
at net.minecraft.block.Block.harvestBlock(Block.java:1142)
at net.minecraft.item.ItemInWorldManager.tryHarvestBlock(ItemInWorldManager.java:338)
at net.minecraft.item.ItemInWorldManager.uncheckedTryHarvestBlock(ItemInWorldManager.java:238)
at net.minecraft.network.NetServerHandler.handleBlockDig(NetServerHandler.java:501)
at net.minecraft.network.packet.Packet14BlockDig.processPacket(Packet14BlockDig.java:67)
at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:141)
at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:54)
at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:689)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:585)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482)
at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)A detailed walkthrough of the error, its code path and all known details is as follows:
– Head –
Stacktrace:
at goldenmod.Blocks.RubyOre.idDropped(RubyOre.java:23)
at net.minecraft.block.Block.getBlockDropped(Block.java:1831)
at net.minecraft.block.Block.dropBlockAsItemWithChance(Block.java:721)
at net.minecraft.block.Block.dropBlockAsItem(Block.java:711)
at net.minecraft.block.Block.harvestBlock(Block.java:1142)
at net.minecraft.item.ItemInWorldManager.tryHarvestBlock(ItemInWorldManager.java:338)
at net.minecraft.item.ItemInWorldManager.uncheckedTryHarvestBlock(ItemInWorldManager.java:238)
at net.minecraft.network.NetServerHandler.handleBlockDig(NetServerHandler.java:501)
at net.minecraft.network.packet.Packet14BlockDig.processPacket(Packet14BlockDig.java:67)
at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:141)– Ticking connection –
Details:
Connection: net.minecraft.network.NetServerHandler@579ea8d
Stacktrace:
at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:54)
at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:689)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:585)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482)
at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)– System Details –
Details:
Minecraft Version: 1.6.2
Operating System: Windows 7 (amd64) version 6.1
Java Version: 1.8.0_05, Oracle Corporation
Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 648068984 bytes (618 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
AABB Pool Size: 658 (36848 bytes; 0 MB) allocated, 490 (27440 bytes; 0 MB) used
Suspicious classes: FML and Forge are installed
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v8.04 FML v6.2.62.871 Minecraft Forge 9.10.1.871 4 mods loaded, 4 mods active
mcp{8.04} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
FML{6.2.62.871} [Forge Mod Loader] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Forge{9.10.1.871} [Minecraft Forge] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
GF{1.0} [GoldenPack] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Profiler Position: N/A (disabled)
Vec3 Pool Size: 152 (8512 bytes; 0 MB) allocated, 105 (5880 bytes; 0 MB) used
Player Count: 1 / 8; [EntityPlayerMP[‘Player974’/32, l=‘New World’, x=219,30, y=4,00, z=1781,80]]
Type: Integrated Server (map_client.txt)
Is Modded: Definitely; Client brand changed to ‘fml,forge’public class RubyOre extends Block { public RubyOre(int id) { super(id, Material.rock); this.setCreativeTab(CreativeTabs.tabBlock); } public int idDropped(int metadata, Random rand, int fortune) { if(metadata == 0 && rand.nextInt(5) > 3) { return GoldenMain.Ruby.itemID; } else if(metadata == 0) { return 1; } else { return this.blockID; } }
Le crash reports que ça me fait + la classe du bloc (sans le package) et les imports
-
Sauf quand sans les packages et les importations les numéros de ligne sont faux, et ça aide pas.
RubyOre.java:23
la ligne 23 de RubyOre, c’est quoi ? -
Non, mais ça sert à rien que tu les voient mais si tu veux…
package goldenmod.Blocks; import goldenmod.GoldenMain; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; public class RubyOre extends Block { public RubyOre(int id) { super(id, Material.rock); this.setCreativeTab(CreativeTabs.tabBlock); } public int idDropped(int metadata, Random rand, int fortune) { if(metadata == 0 && rand.nextInt(5) > 3) { return GoldenMain.Ruby.itemID; } else if(metadata == 0) { return 1; } else { return this.blockID; } } }
Et à la ligne 23: ```java
return GoldenMain.Ruby.itemID;Ou à la ligne 23 de l'autre c'est juste ça: }