创建自己的MOD或修改minecraft(添加新配方)
首先,我不会java语言,也不了解工作方式和如何编译其次,我参考了http://bbs.3dmgame.com/thread-1918986-1-1.html 与 http://bbs.3dmgame.com/thread-1915936-1-1.html
上面这些都没有说明如何编写mod,而是如何修改minecraft.
如无限耐久那篇讲述的是修改,这里唯一要注意的是,反编译的时候,也就是使用 decompile.bat 的时候,最好不要用你自己正在玩的minecraft.jar 而是用原版的.原版的如果mcp版本正确,肯定能反编译,并再次编译成功.
即,如果没有其他特殊的改动,直接改变原版的文件内容是最合适的.
如,仿照那个自定义规则的mod,我添加了新配方,修改的文件是 \mcp\sources\minecraft\net\minecraft\src\CraftingManager.java
在其中添加如下代码
addRecipe(new ItemStack(Item.gunpowder, 4), new Object[] {
" # ", "#X#", " # ", Character.valueOf('X'), Item.coal, Character.valueOf('#'), Block.sand
});
addRecipe(new ItemStack(Block.sand, 8), new Object[] {
"#", " ", "#", Character.valueOf('#'), Block.cobblestone
});
addRecipe(new ItemStack(Block.oreIron, 4), new Object[] {
"#X#", "X#X", "#X#", Character.valueOf('#'), Block.cobblestone, Character.valueOf('X'), Block.dirt
});
addRecipe(new ItemStack(Block.oreGold, 4), new Object[] {
"#X#", "X#X", "#X#", Character.valueOf('#'), Block.sand, Character.valueOf('X'), Block.dirt
});
addRecipe(new ItemStack(Block.oreDiamond, 4), new Object[] {
"#X#", "X#X", "#X#", Character.valueOf('#'), Block.oreIron, Character.valueOf('X'), Block.oreGold
});
addRecipe(new ItemStack(Item.clay, 8), new Object[] {
" X ", " ", "# #", Character.valueOf('#'), Block.dirt, Character.valueOf('X'), Block.sand
});
addRecipe(new ItemStack(Block.dirt, 4), new Object[] {
"#", " ", "X", Character.valueOf('#'), Block.sand, Character.valueOf('X'), Block.cobblestone
});
addRecipe(new ItemStack(Item.redstone, 4), new Object[] {
"#", " ", "X", Character.valueOf('X'), Block.dirt, Character.valueOf('#'), Block.sand
});
代码含义基本如下, addRecipe添加新的配方规则(new创建 ItemStack物品(Item.redstone物品.红石, 4块), new Object[] {
"# "9格中最上层第一块, " "9格中中层为空, " X"9格中最下层最后一块, Character.valueOf('X')字符X, Block.dirt为块,土, Character.valueOf('#')字符#, Block.sand为块,沙
});
如上所示那条规则,是使用在对角线放置土和沙并生成4块红石的规则.基本上,使用上面的方式可以添加更多种原料的配方.
最后,询问下曾经自己制作过mod的各位,如何制作基于 modloader的mod,或者,简单点,如何把基于modloader的mod.java代码编译成class ...
卡住了,好别扭_ 666666666666 6666666666
页:
[1]