当前位置:文档之家› 怎么制作mod

怎么制作mod

java是什么?java是一门计算机语言,我相信很多人都知道这一事实,这很可能是由于您曾经玩过由这一语言编译而成的游戏。

Java是一门面向对象的计算机语言,也就是说它由两主要部分组成:字段和方法。

那什么是字段和方法呢?我们以人为例:我们可以把一个人比作一个工程(o(∩_∩)o好像有些类比不当~)。

在这个工程中会有许多包,比如“human.body.head”。

在每个包中会包含好多类(我们之后详细阐述),比如说"ear.java"就是一个类。

现在我们已经知道了字段和方法,那么什么是类呢?我们以之前的ear.java为例,这个耳朵类可以诸如“耳垂高度”和“音量”等特征,所以一个解决方案是建立如“listenTo()”和"moveEars()"等函数。

您可能会问这到底是什么呀,也可能会问这些和Minecraft到底有神马关系?好吧,以下就是一个例子:方法/函数举例1.public int getMaxHealth()2.{3. return 20;4.}复制代码这是minecraft中EntityCreeper.java中的一段代码。

这段代码非常基本,您只需关心的是如果把返回值20改为其它的什么东西会发生什么呢?当然您有可能会猜测:嗯,有可能会带来我砍苦力怕多少刀它会死呢?其中的"public"表示其它的类也可以调用该函数,"int"表示该函数为整型函数(在+/-2,147,483,647之间的所有十进制整数)。

"getMaxHealth()"为函数名,"return 20"表示返回值,比如如果有人问这个类:“苦力怕的最大生命值是多少呀?”,它将回答:“是20~”。

由于我们在函数头声明了"int",所以我们的返回值必须为整数。

字段/变量举例1.private double velocityY;复制代码这是在EntityMinecart类中所生命的一个字段。

其中"private"表示只有这个类才可以访问这个字段,"double"表示为一个十进制数,"velocityY"为这个变量的变量名(字段和变量有时表示同一个东西)。

•从简单之处做起!我见过好多好多人再问楼主类似的问题:“如何让NPC自动建筑、谈话、打猎、去杀末影之龙呀?”。

MOD制作是一个长期的过程,您也不可能马上就成为高手。

正如我之前谈过的,您可以通过学习一些Java基础知识来了解一些知识,这样可以使您更快地成为高手。

所以说要从简单之处入手,先试着吧。

•要有兴趣!请注意,为您喜欢的游戏制作MOD并不应该成为您的一份工作,在MOD制作之时您应该能获得成就感与愉悦。

虽然当您不能修正错误,或者您的MOD的反响没有预想中高时难免会灰心丧气,但这只是一时之举。

如果您经常性地感到厌倦并没有从中获得乐趣,或许玩Minecraft更加适合您吧…在这章开始之前呢,我们需要提一下forge。

我个人相比较modloader而言更倾向于forge。

您可以在安装之前阅读关于Forge与modloader之间的比较,但是记得总结。

有许多工具有助于提高您MOD的兼容性并使您的MOD制作之路更为轻松。

Forge可以通过更新支持不同的版本但是modloader只支持对应的版本。

所以不要犹豫通过安装FML和其他一些工具,您可以不需要安装那繁多的API。

如果您有任何问题,请移驾至并加入#MinecraftForge。

请参阅本文:准备文件在工作环境中,您需要一份纯净的.minecraft 文件夹。

可以通过备份您当前.minecraft 文件夹,并通过点击"force update"来获得纯净的minecraft文件下载您在开始MOD制作之前还需要下载一下这三样东西:•最新版本的Eclipse:/downloads/packages/eclipse-ide-java-developers/junor •最新版本的Minecraft ForgeSRC:/•最新版本的MCP:http://mcp.ocean-labs.de/index.php/MCP_Releases设置工作环境首先将MCP解压缩至您所希望的位置,我个人的习惯是在桌面新建一个名为"Mods"的文件夹,并将MCP解压缩至那里。

Forge SRC的下载文件应该会是一个单独的名为"forge"的文件夹,将其解压缩至MCP目录下的“jars”文件夹里(其实只需要Bin和resources文件夹……但是无妨)。

由于Forge不在依赖modloader,所以您不再需要安装modloader了。

如果您计划制作支持多人生存模式(SSP)的MOD,您必须要在"jars"文件夹中,如下图所示:现在返回MCP目录下的“forge”文件夹,运行"install.cmd"文件,如果您操作系统不同文件名字也不同。

稍等片刻,安装结束后我们继续……收尾工作如果您在运行install.bat或者install.sh文件时没有任何错误,您现在应该可以开始您的大师之路了。

返回Mcp/eclipse文件夹中,复制文件夹的地址,如:X:UsersMitchDesktopModsNewModMCPeclipse。

现在您可以通过在您文件解压缩至您所希望的位置的方式安装eclipse。

安装结束之后通过双击eclipse.exe的方式运行eclipse,当系统问及您的工作环境时,粘贴之前您复制的Mcp/eclipse文件夹的位置。

当加载结束后,需要您找到“Client/src/net.minecraft.src/”的位置。

第一节:您的第一个方块通过在net.minecraft.src包内右击任意文件,点击New ->Class。

将其命名为“mod_YOURMODNAME”,必须确保其以“mod_”开头,因为只有这样系统才会识别该文件为一个MOD并开始加载。

无需在底部选择任何的选项,点击"Finish"完成创建。

此时您会看见一段预先写好的类代码。

您的第一件事就是要扩展这个MOD使之成为一个基本类(BaseMod)。

您可以通过添加“extends BaseMod”这样的代码完成类的声明,此时代码如下:1.package net.minecraft.src;2.3.public class mod_YourModName extends BaseMod {4.5.}复制代码当然,此时会在“mod_YOURMODNAME”处显示错误,此时将鼠标移至该错误处,在弹出的对话框中单击“Add unimplemented methods”。

此时会在当前的基本类里添加两个类函数:“load”与“getVersion”。

您可以删除掉“//TODO”这种行,在“getVersion”类函数中,您需要将null替换为”1.0“或者其他您喜欢的版本号。

您需要保留引用,就如同需要返回一个字符串一样。

此时的代码如下所示:1.package net.minecraft.src;2.3.public class mod_YourModName extends BaseMod {4.5. @Override6. public String getVersion() {7. return "1.0";8. }9.10. @Override11. public void load() {12.13. }14.15.}复制代码现在您终于可以开始创作您的第一份方块代码啦~在类的顶端添加下列代码(在“{}”之内):1.public static Block yourFirstBlock = new BlockTutorial(blockID,0).setHardness(2.5F).setStepSound(Block.soundWoodFootstep).setBlockName("blockName");复制代码现在您已经掌握了如何新建一个BlockTutorial类了,当然有可能在之前您就把这个名字改掉了……现在我们要扩展方块,我们首先需要执行ITextureProvider,当您将如下代码复制进其中时,可以使鼠标悬停在ITextureProvider处并单击导入(import)。

1.public class BlockTutorial extends Block implements ITextureProvider { 复制代码现在我们需要为我们之前跳过的那部分创建一个构造函数(可以在java教程中获得更为详实的信息)。

1.public BlockTutorial(int i, int j)2.{3. super(i, j, Material.wood);4.}复制代码好,现在您即将进行的步骤是添加一个Forge的类函数以便我们可以为这个方块设置材质。

1.public String getTextureFile()2.{3. return "/Mic'sMods/CrossbowMod/gui/Crossbow.png";4.}复制代码切记:不要更改类函数的第一行!乱修改可能覆盖或者替换类函数。

这是一个用于十字弓MOD的例子,其中的材质存储在minecraft.jar的相应位置中。

您可以很轻松地修改您所使用的材质,但是如果指向一个空位置则无法进行加载。

当然也要保证是双引号~最后还需要一个Forge的类函数将该方块添加至创造模式的物品栏中。

1.public void addCreativeItems(ArrayList itemList)2.{3.if(blockID == mod_ YourModName. yourFirstBlock.blockID)4. {5. itemList.add(new ItemStack(this));6. }7.}复制代码之后,我们在load()类函数中添加如下语句:1.ModLoader.registerBlock(yourFirstBlock);2.ModLoader.addName(yourFirstBlock, "Woohoo! My first Block :D");复制代码现在要做一件最为重要的事请:本帖隐藏的内容在Eclipse中单击Run运行Minecraft,进入创造模式,去寻找您的方块吧!在这一部分教程中,将会为您讲述如何为您的方块添加材质。

相关主题