Minecraft(我的世界)中文论坛

标题: 用MCP制作属于自己的简单mod (已过期)

作者: 719823597    时间: 2011-8-10 13:43
标题: 用MCP制作属于自己的简单mod (已过期)
本帖最后由 719823597 于 2014-1-16 15:04 编辑


                    转载请注明原帖地址



                                                         一.设置MCP
需要的东西:
MCP:http://mcp.ocean-labs.de/index.php/MCP_Releases
干净的MINECRAFT
官方服务端
JDK6


先把MCP解压了(我解压到了C盘 C:\MCP),复制BIN和RESOURCE和官方服务端到MCP目录里的jars文件夹(C:\MCP\JARS)然后点开decompile.bat,完成



                                                                               二.制作新的合成公式
打开mcp里的src文件夹(MCP\src\minecraft\net\minecraft\src)找到CraftingManage.java,打开(记事本都行的),可以看到类似于这个的代码
  1.         addRecipe(new ItemStack(Block.trapdoor, 1), new Object[] {
  2.             "###", "###", Character.valueOf('#'), Block.planks
  3.         });
复制代码
这是陷阱门的合成公式,Block.trapdoor的Block是判断是方块还是物品,trapdoor是方块的名称(要区分大小写),详细可以参考Block.java和Item.java,"XXX"是合成的方法,Character.valueOf('#'), Block.planks是让#的位置在游戏合成中等于木块的放置位置


假如我想做1个沙换1个TNT的公式,代码如下
  1.         addRecipe(new ItemStack(Block.TNT, 1), new Object[] {
  2.             "#", Character.valueOf('#'), Block.sand
  3.         });
复制代码


写好后就可以测试了,打开MCP目录下的recompile.bat,让它检查错误,检查完成后可以打开startclient.bat进入游戏测试,测试完成后打开mcp目录下的reobfuscate.bat,让它把刚刚修改的文件打包,打包完后的文件可以在reobf文件夹找到


                                         三.制作一个新方块

新建一个BlockExample.java(名字自己改),在里面写上
  1. package net.minecraft.src;

  2. import java.util.Random;

  3. public class BlockExample extends Block
  4. {
  5. public BlockExample(int i, int j)
  6. {
  7. super(i, j, Material.rock);
  8. }

  9. public int idDropped(int i, Random random)
  10. {
  11. return 0;
  12. }
  13. }
复制代码
rock是方块的特性(cloth是羊毛 易燃)可以参考Material.java,”return 0“ 是掉落的物品(0可以改成各种物品的ID)


新的方块就做好了,接下来是将其添加到游戏中,打开Block.java,大概720+行,找到
  1. public static final Block trapdoor;
复制代码

在这句代码下面添加上
  1.         public static final Block example;
复制代码

然后继续往下翻,找到
  1. trapdoor = (new BlockTrapDoor(96, Material.wood)).setHardness(3F).setStepSound(soundWoodFootstep).setBlockName("trapdoor").disableStats().disableNeighborNotifyOnMetadataChange();
复制代码

在下面添加上

  1. example = (new BlockExample(111, 49)).setHardness(1.5F).setResistance(5000000F).setStepSound(soundStoneFootstep);
复制代码

111为方块的ID(97-255为空方块ID),49为材质编号(可以参考别的方块),setHardness(1.5F)为挖时的速度(1.5F为手挖石头的速度),setResistance(5000000F)是方块的抗炸强度(也可以参考别的方块的数值),setStepSound(soundStoneFootstep)是踩在方块上的脚步声(这里是石头的)

最后,打开recompile检查吧




                                          四.添加一个新物品

新建一个ItemTest.java(名字还是自己改),在里面写上

  1. package net.minecraft.src;

  2. public class ItemTest extends Item
  3. {

  4.     public ItemExample(int i, int k)
  5.     {
  6.         super(i);
  7.         maxStackSize = 64;
  8.     }

  9. //这里可以自己添加代码

  10. }
复制代码
maxStackSize = 64是设定最大叠加数量,如果嫌物品太无趣了还可以自己添加代码

  1. public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer)
  2.     {
  3.         itemstack.stackSize--;
  4.         world.playSoundAtEntity(entityplayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
  5.         if(!world.multiplayerWorld)
  6.         {
  7.             world.entityJoinedWorld(new EntityArrow(world, entityplayer));
  8.         }
  9.         return itemstack;
  10.     }
复制代码

这条代码使手持此物品时右键可以扔出箭

好了 接下来就要把新物品添加进游戏了 打开Item.java 找到这条代码
  1. public static Item recordCat = (new ItemRecord(2001, "cat")).setIconCoord(1, 15).setItemName("record");
复制代码

在这条代码下面添加一句
  1. public static Item test = (new ItemTest(120, 0)).setIconCoord(5, 5).setItemName("example");
复制代码

注意! 120不是物品的真正ID,物品的真正ID为120+256 , (5, 5)是物品的材质(可以参考前面的物品)

现在可以打开recompile.bat检查代码了



                                                                                    五.削弱enderman

首先,我们打开EntityEnderman.java ,然后从第326行开始,你可以看到如下代码
  1.         field_35186_b = new boolean[256];
  2.         field_35186_b[Block.stone.blockID] = true;
  3.         field_35186_b[Block.grass.blockID] = true;
  4.         field_35186_b[Block.dirt.blockID] = true;
  5.         field_35186_b[Block.cobblestone.blockID] = true;
  6.         field_35186_b[Block.planks.blockID] = true;
  7.         field_35186_b[Block.sand.blockID] = true;
  8.         field_35186_b[Block.gravel.blockID] = true;
  9.         field_35186_b[Block.oreGold.blockID] = true;
  10.         field_35186_b[Block.oreIron.blockID] = true;
  11.         field_35186_b[Block.oreCoal.blockID] = true;
  12.         field_35186_b[Block.wood.blockID] = true;
  13.         field_35186_b[Block.leaves.blockID] = true;
  14.         field_35186_b[Block.sponge.blockID] = true;
  15.         field_35186_b[Block.glass.blockID] = true;
  16.         field_35186_b[Block.oreLapis.blockID] = true;
  17.         field_35186_b[Block.blockLapis.blockID] = true;
  18.         field_35186_b[Block.sandStone.blockID] = true;
  19.         field_35186_b[Block.cloth.blockID] = true;
  20.         field_35186_b[Block.plantYellow.blockID] = true;
  21.         field_35186_b[Block.plantRed.blockID] = true;
  22.         field_35186_b[Block.mushroomBrown.blockID] = true;
  23.         field_35186_b[Block.mushroomRed.blockID] = true;
  24.         field_35186_b[Block.blockGold.blockID] = true;
  25.         field_35186_b[Block.blockSteel.blockID] = true;
  26.         field_35186_b[Block.brick.blockID] = true;
  27.         field_35186_b[Block.tnt.blockID] = true;
  28.         field_35186_b[Block.bookShelf.blockID] = true;
  29.         field_35186_b[Block.cobblestoneMossy.blockID] = true;
  30.         field_35186_b[Block.oreDiamond.blockID] = true;
  31.         field_35186_b[Block.blockDiamond.blockID] = true;
  32.         field_35186_b[Block.workbench.blockID] = true;
  33.         field_35186_b[Block.oreRedstone.blockID] = true;
  34.         field_35186_b[Block.oreRedstoneGlowing.blockID] = true;
  35.         field_35186_b[Block.ice.blockID] = true;
  36.         field_35186_b[Block.cactus.blockID] = true;
  37.         field_35186_b[Block.blockClay.blockID] = true;
  38.         field_35186_b[Block.pumpkin.blockID] = true;
  39.         field_35186_b[Block.netherrack.blockID] = true;
  40.         field_35186_b[Block.slowSand.blockID] = true;
  41.         field_35186_b[Block.glowStone.blockID] = true;
  42.         field_35186_b[Block.pumpkinLantern.blockID] = true;
  43.         field_35186_b[Block.field_35285_bn.blockID] = true;
  44.         field_35186_b[Block.field_35286_bo.blockID] = true;
  45.         field_35186_b[Block.field_35287_bp.blockID] = true;
  46.         field_35186_b[Block.field_35281_bs.blockID] = true;
复制代码

这些就是enderman可以拿起的方块, 根据谷歌翻译,我们可以知道true的意思是行的而false的意思是不行的。所以 如果我想要让enderman拿不起什么的石头的话,可以这样改:

  1. field_35186_b[Block.stone.blockID] = false;
复制代码
第一部分结束。




我们还可以修改它的一些基础数值来玩
  1.         field_35187_a = false;
  2.         field_35184_d = 0;
  3.         field_35185_e = 0;
  4.         texture = "/mob/enderman.png";
  5.         moveSpeed = 0.2F;
  6.         attackStrength = 5;
  7.         setSize(0.6F, 2.9F);
  8.         stepHeight = 1.0F;
复制代码

前三个我暂时没看明白,texture是皮肤的路径,moveSpeed为移动速度,attackStrength为攻击威力(试试改成负数),setSize是改大小(皮肤不会改变 占地变了而已),stepHeight为它的身高(貌似0.5F等于1格)



放个挺好玩的代码

         public boolean interact(EntityPlayer entityplayer)
    {
        
        
        
        this.motionY += 1;
        return true;
    }

在entityenderman.java里加入这条即可,功能为右键enderman后他的y坐标+1  也就是飞起来
























作者: 719823597    时间: 2011-8-10 13:43
占楼
作者: 719823597    时间: 2011-8-10 13:43
占楼
作者: KOL梦幻    时间: 2011-8-10 13:46
本帖最后由 KOL梦幻 于 2011-8-10 13:58 编辑

应该可以回帖了吧-w-   
回复才行,真麻烦0.0
--------------------------------------------------------------------------
我不得不承认,太太太太“简单”了...

作者: 斯巴达    时间: 2011-8-10 13:54
回复哇哇= =
作者: hhyx    时间: 2011-8-10 13:56
哇。。。。回复看看 好厉害啊
作者: HelloBeauty    时间: 2011-8-10 14:00
回复。。。。。。。。。。。。。。
作者: 小兲    时间: 2011-8-10 14:01
回复看看!
作者: ynny    时间: 2011-8-10 14:05
这是?....
作者: 624415583    时间: 2011-8-10 14:08
回复一下就可以制作mod 值啊
作者: 1171034064    时间: 2011-8-10 14:09
快快学一学吧
作者: augustory    时间: 2011-8-10 14:12
是技术贴莫?
顶个~
作者: 我是天才嘎嘎    时间: 2011-8-10 14:17
什么情况.......................
作者: dantebelmondo    时间: 2011-8-10 14:33
很有兴趣~感谢教程。
作者: devil4bob    时间: 2011-8-10 14:35
回复后,来看帖
作者: 圣骑ye    时间: 2011-8-10 14:49
是什么好像好像很神秘哇
作者: a756810279    时间: 2011-8-10 14:51
我来看看~~~~~~~~
作者: lonely    时间: 2011-8-10 14:52
ding````````````


作者: a368389669    时间: 2011-8-10 15:07
我要看 设什么隐藏

作者: 001585100    时间: 2011-8-10 15:08
早就想做MOD了~~
作者: 虚伪的傻瓜    时间: 2011-8-10 15:24
哇,这个回复是怎么弄的
作者: wangchujinqwe    时间: 2011-8-10 15:26
还要回复               
作者: 联合蟹    时间: 2011-8-10 15:27
回复……蛋疼
作者: qq595684258    时间: 2011-8-10 15:30
不知道是什么,看看。
作者: green丶bastard    时间: 2011-8-10 15:32
-.=度度霸气
作者: kelas    时间: 2011-8-10 15:33
因为要回复,所以我回了,至于你信不信,我反正信了(顶贴)
作者: l582110521    时间: 2011-8-10 15:40
..............................
作者: tedlc    时间: 2011-8-10 15:43
呃……                   15?
作者: 772983513    时间: 2011-8-10 15:45
看看。。。。。。。。
作者: vs863129    时间: 2011-8-10 15:50
看看有啥東西

作者: windosac    时间: 2011-8-10 15:51
我要制作啊!
作者: steven3213    时间: 2011-8-10 15:52
see~~~~~~~~~~~~`
作者: abc52woool    时间: 2011-8-10 16:00
回复看看!
[gold_ingot]
作者: feng464458710    时间: 2011-8-10 16:12
应该可以看了吧-w-
作者: 420952996    时间: 2011-8-10 16:13
啊啊                     
作者: 1019927246    时间: 2011-8-10 16:13
.................................
作者: zjs951123    时间: 2011-8-10 16:22
还要回复啊= = 支持
作者: 11311131    时间: 2011-8-10 16:24
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa只为看
作者: wusitade    时间: 2011-8-10 16:44
回复看看~~~
作者: 夜神月    时间: 2011-8-10 17:00
学学吧~呵呵呵。做个自己的
作者: well    时间: 2011-8-10 17:22
唉, 回就回吧...
作者: Grox0101    时间: 2011-8-10 17:26
如此甚好……
作者: 新世界爱好者    时间: 2011-8-10 17:31
居然全文隐藏,谁知道你这是要折腾的方法还是简单方法= =折腾法我早就找到了真的。。。。
作者: cyb123    时间: 2011-8-10 17:35
看看一下 ccc
作者: as799799    时间: 2011-8-10 17:36
那就回一下吧
作者: 471998145    时间: 2011-8-10 17:37
好吧。。。。我承认我想要这个。。。。。。所以。。。。回复啦
作者: green丶bastard    时间: 2011-8-10 17:54
做个钻石苹果试试- -
作者: a954596907    时间: 2011-8-10 17:57
aAAAAAAAAAAAAAAAAAAAAA
作者: 122206692    时间: 2011-8-10 18:05
我看看,应该不错。。。。。。。。。

作者: knightx    时间: 2011-8-10 18:27
话说我还是不知道怎么修改冲突的方块id。。。
作者: sigsigmama    时间: 2011-8-10 18:43
回复看看!
參考看看!
作者: j77o88o    时间: 2011-8-10 18:43
看看.......................................
作者: aa50734464    时间: 2011-8-10 18:51
hhhhhhhhhhhhhhhhhhhhhhhhh
作者: pathfinder    时间: 2011-8-10 18:54
LZ加油……
作者: a8574    时间: 2011-8-10 19:19
11111111111111111111111111111111
作者: etwxr9    时间: 2011-8-10 19:19
回帖!~有需要软件把。。很大咩?
作者: 652220513    时间: 2011-8-10 19:24
好。。。。。。。。。。。。
作者: tmick1379    时间: 2011-8-10 19:28
需要回覆0.0

看看~~
作者: 551551551    时间: 2011-8-10 19:29
好的我回的了
作者: Mk.至尊小宇    时间: 2011-8-10 19:39
...............
作者: 嗜血魔狼    时间: 2011-8-10 19:41
额 好神秘啊 好奇啊 好奇……
作者: hkw7979    时间: 2011-8-10 19:45
看看
作者: spy1995426    时间: 2011-8-10 20:13
厄。。。。。。
作者: 嶽嶺    时间: 2011-8-10 20:13
好像是個不錯的東西來看看
作者: 蜘蛛侠hw    时间: 2011-8-10 20:16
719823597 发表于 2011-8-10 13:43
占楼

什么东西试试看
作者: mayuhang2    时间: 2011-8-10 21:01
教程吗~~做个萝莉mod
作者: mayuhang2    时间: 2011-8-10 21:03
好BT~~这都是什么?~~看不懂啊~~果然制作mod是火星人的玩意~~~WTF~
作者: heyidalao    时间: 2011-8-10 21:06
来回复啦,拿金币啦,学做MOD啦~又进步啦!
作者: YD之子    时间: 2011-8-10 21:36
回复                     
作者: iop889955    时间: 2011-8-10 22:07
OKOKOKOKOKOKOOOKOOOOO
作者: plqws    时间: 2011-8-10 22:23
围观,汉化用
作者: AIWar    时间: 2011-8-10 22:25
提示: 作者被禁止或删除 内容自动屏蔽
作者: s0909093333    时间: 2011-8-10 22:55
我想製作一個MOD...來看看了~!!
作者: elvis    时间: 2011-8-10 23:04
回复看看..
作者: azusky    时间: 2011-8-10 23:13
回复一下就可以制作mod 值啊
作者: mjwwd2    时间: 2011-8-11 00:02
kb\na\\\kankan zen me qu nong
作者: ynny    时间: 2011-8-11 00:30
本帖最后由 ynny 于 2011-8-11 00:31 编辑

我出现这个

然后src文件夹也没有那些文件厄 咋办


作者: 717209554    时间: 2011-8-11 01:42
好东西! .                      .
作者: knightx    时间: 2011-8-11 02:11
knightx 发表于 2011-8-10 18:27
话说我还是不知道怎么修改冲突的方块id。。。

比如我最近在弄那个船舵的和工业的。。。不太懂帖子中在config中加文件的做法。而且也没成功。。。
作者: 774994255    时间: 2011-8-11 02:53
回复看看。
作者: higifi    时间: 2011-8-11 03:36
回复才能查看真是一大坑爹%……但是内容值得回复~
作者: boss96e    时间: 2011-8-11 04:46
...........看看

作者: 顺逆同流    时间: 2011-8-11 04:59
十分的好奇。
作者: wyr1998526    时间: 2011-8-11 08:05
好期待的说………………
作者: jjj201200    时间: 2011-8-11 08:43
啥东西咯~虽说现在还没到制作mod 的境界撒~
作者: 寂寞的巴尼    时间: 2011-8-11 08:45
比较复杂。。。
作者: q807734497    时间: 2011-8-11 10:07
nanma
作者: sun2007    时间: 2011-8-11 10:09
我要!!!!
作者: akzycb2012    时间: 2011-8-11 10:11
回复。。               
作者: walle    时间: 2011-8-11 10:17
可恶..要回帖..
作者: zhaopeng1234    时间: 2011-8-11 10:33
新手路过。。。

作者: tt78llo    时间: 2011-8-11 11:25
回复看看{:1_1:}
作者: tteicom    时间: 2011-8-11 11:55
这个要学习一下,哈哈。。看看有多么简单了
作者: fscdb    时间: 2011-8-11 13:19
先顶才能看啊
作者: 599056390    时间: 2011-8-11 13:22
回复………………………
作者: nickken    时间: 2011-8-11 14:17


回复 good

作者: hon12352003    时间: 2011-8-11 14:23
回复........
作者: wcNoOb    时间: 2011-8-11 15:16
真麻烦....回复看看!

作者: lopke    时间: 2011-8-11 15:28

哇。。。。回複看看 好厲害啊
作者: lap0608    时间: 2011-8-11 15:31
ccccccccccccccccccc