第一章 MT技巧性叙述
Page.1 MT启用准备工作
或许你能够添加MOD并且制作一个基础的MOD整合包,但是这里我还是要不厌其烦的说一遍MOD安装 当然只是一个图片配一堆文字的叙述,很快就会结束 ![]() Stage.1 MOD安装 确定你的Minecraft版本,去BAIDU 上面寻找匹配版本的MOD资源 下载资源,打开准备好的Minecraft 将MOD直接放入整合包文件夹名称-.minecraft-mods文件夹下 (老版MC的覆盖安装这里就不想提了,因为很古老了) (如果你打开了文件隔离的话,你需要安装在.minecraft-version-对应MC/forge版本文件夹-mods里面) ![]() 好了,或许你需要安装一个Minetweaker 3 以及Modtweaker 2来完成教程 教程使用Minetweaker版本 3.0.10B Modtweaker版本2-0.9.5 Now, our story begins. ![]() Stage.2 找到对应的script文件夹 如果你顺利的安装了MT的话,启动一次MC,你会发现在.minecraft目录下面生成了一个新的文件夹 ![]() 这个scripts文件夹便是我们每天要工作的地方了 关于scripts的历史以后我们会谈,而且我们会经常遇到scripts 相信做过网页,学过编程的对它一定不是很陌生(笑) 话回正轨,我们有了这个文件夹可以干什么呢 (如果有的同学开启MC之后发现没有这个文件夹,可以尝试自己建立一个scripts文件夹) ![]() Stage.3 基础的script编写 Script有剧本,脚本的意思,当然我更喜欢叫它词条 ![]() 但是一个空空如也的文件夹里面并不会产生序章所说的效果 所以说我们需要创建一个MT能够阅读的文件 而MT只能识别以.zs结尾的文件 所以我们需要随便创建一个Txt文件 ![]() 然后给他改一下后缀 ![]() 这样,它就可以被MT加载了 但是这个文件里面没有东西也不行,所以说我们要开始进行一些编写 关于编写,你可以使用计算机默认的记事本打开 ![]() 或者是用比较简洁明了的Notepad(推荐)打开 ![]() Notepad可以在各大应用软件处下载,这里就不放出具体地址 首先我们必须了解一个概念,就是 魔改不同于编程 我再单独拿出来说一遍 魔改不同于编程 ——题外话—— 什么叫做不同于编程呢 首先我们需要知道一个事实,电脑只能识别以0/1编码的序列 我们输入Fuck,电脑自身是看不懂的,实际上连储存都不会 但是通过编程软件--譬如C类和Java以及VB等等 这些Fuck之类的词语就可以被转化为0/1序列了(当然这里说的比较粗略而且也有些漏洞) 而词条scripts,则是建立于编程基础之上的更简单的一种编写方式 “我从未想到人类可以用自己的语言与计算机通话” 那么,我们就可以说“魔改工作者从未想到能用自己的语言跟MC对话” 话归正传,我们需要学习一些基础的词条编写 而在此之前我们需要熟悉MC内MT添加的一些指令,可以通过输入/mt help查询 ![]() /mt help 可以显示原版MC就可以使用的MT指令以及添加入MOD之后的指令 关于指令,我们之后的教程中会缓慢介绍,首先我们需要知道第一个指令 ![]() 1.重装载 /mt reload 重装载,可以让MC处于开启状态时重新加载scripts文件夹内的.zs文件 首先,我们需要学习第一个词条 在我们创建的文件中写入
然后点击保存。 随便打开一个存档,在游戏中输入/mt reload (或者是直接重启一次游戏,当然不会有人这么做的。) 这样,这段print就被加载了,hello world也被打印了出来 打印到哪里去了呢? 在这里minecraft.-minetweaker.log文件下,也就是生成在Log(记录)里面了
这条print有什么用处呢?目前用处似乎只有方便检查那些被加载了,那些未被加载。 ![]() 2.Log的作用 Log的作用想必很多人都知道——可以帮助检查错误 然而Minetweaker给我们了一个惊喜,Log不仅可以检查错误,而且是一个输出端! 在游戏中输入/mt names 这个指令将使MT调出所有物品在MT中的名字 ![]() 不仅是导出原版物品的名字,还有所有MOD里面的名字 但是请注意,这里导出的物品不包括带有附加值/NBT的物品 譬如说 我们在其中搜索木板,是找不到桦木木板和云杉木板的,只能找到橡木 因为桦木的物品ID代码是5:2 云杉是5:1 而5的ID代表的是橡木 也就是说,<minecraft:planks>代表的是橡木木板 那样<minecraft:plank:1>代表的就是云杉!<minecraft:planks:2>就是白桦木! 包括附魔书,附魔书每个都带有自己的NBT数据,而这个数据平时是看不到的,如果用NBTedit又会很麻烦 ![]() 3.实用指令/mt hand
一直都是受所有MT工作者好评的一个指令,他可以输出你手中拿的物品的MT名字,并且复制到剪贴板里面 (所以我们平时都是在复制贴贴.....) 所以如果一个东西有着复杂的NBT数据,不妨用这个指令 这里以时运三附魔书为例,他的名字被/mt hand导出之后是这样的
后面的.withTag我们之后会讲到,不过很多玩过命令方块的玩家想必已经明白了 /mt hand这个指令一定要善加使用,不然会浪费很多时间 ![]() 4.注释格式 经常有小伙伴不爱分开文件夹写词条,有些时候很容易混淆 MT也引用了J的注释格式 格式如下(注释文字不可为中文)
但是请注意,不要使用中文,中文之后会莫名乱码 |
Stage.1 合成配方语句编写 众所周知,所有的编程都有自己的语句,MT也不例外——虽然它不属于编程
这个语句是为了用来添加有序合成的,Output很容易理解,即输出端 那么InputBox是什么呢 我们可以用一个指令来看看电脑的解释 在游戏里面输
MT会将所有物品的合成配方全部发给你 你将会看到密密麻麻的代码 从中我们拿钻石镐举例子 ![]() 对应这个合成的代码是
可以用中文翻译一下,就变成
当然矿典引用你可以去掉观看,这样更为清晰 也就是说,这里的输出端是钻石镐,输入就是我们在合成台看到的那个样板 合成台的模样就是InputBox的模样 被<>包含在内的就是物品名称——MT名称 Null则代表的是空格子的意思 对于Inputbox的最外面的[]代表这个Inputbox的范围 内部的二级[]代表一行的input,当然里面只能容纳三个物品。 如果我们要删除原来就有的配方,则需要输入
或者你可以试着定点删除
如果输出的物品是多个怎么办 譬如说木板合成木棍要出现四个木棍,可是输出只允许写一个物品 你可以将<minecraft:stick>写为<minecraft:stick>*4 这样就可以添加四个木棍作为输出了 如果要添加无须配方怎么办?可以尝试使用这行语句
至于要删除特定物品的有序或者是无序配方
但是有的人又要问了,原版木板合成木棍的话是不是每种木头都要写一个配方 这样就要写(数数),好多个配方 实际上对于几个附加值(Meta)不同的物品来说(譬如木板一家族) 可以采用通用符 即<minecraft:planks:*> 那个*就是所谓通用符,他代表了任意一种附加值 这样,几个添加合成就被压缩成了一段话 ![]() Stage.2 变量 变量是什么?是一个不断变化的量? 对于MT来说,这个就不大重要了,因为只有在循环语句那里我们可能涉及一点变量 因为都是复制贴贴,谁会设置变量(笑),不过还是要按照套路讲一讲 如果你真的觉得写那些物品名称(实际上不是物品名称,只是MT对每个物品做的标记) 太麻烦,你可以尝试使用变量 变量赋值语句分为两种 一种是
还有一种是
此时A代表的还是石头 那么变量是如何使用呢 也是举个例子
![]() 变量的用途大概如此,值得一提的是变量可以代替任何物品,包括有NBT数据的 这个将会在下文提到 同时,变量可以不单单表示一种物品,可以同时表示多种 譬如
![]() Stage.3 NBT数据 NBT数据是什么,这个你问我我也不清楚,不过你可以问问Wiki MT可以调用的NBT数据很多,譬如最基础的就是耐久损耗了,这里就以耐久损耗为例 普通的铁镐可以通过Hand得到他的物品标记
写配方的时候我们可以这样
![]() 当然这只是一种书写方式,这种方式是不涉及NBT的 仅仅是将所有可能出现的全部列了出来(但是这种穷举法很好用) 官方给出的是这样的
也就是
这两种书写都是等效的 当然实际上上面这两种跟NBT标签都没多大关系 还记得我们的附魔书么,他的名字就是一个NBT标签 MT对于NBT标签有一个通用的语句
标签使该铁镐的名字变成了Frog(青蛙)并且带有介绍(这个镐子被续了一秒) 我们将其写入配方中
[attach]1049592[/attach] 这样,我们就可以写出带有NBT数据的物品了 同样,他也可以用于合成,这里我就不赘述了 但是请注意!这样做很容易导致合成冲突进而游戏崩溃!不要轻易将其用于合成! 如果要添加新的物品用于合成我们会在CS章介绍简单的方法。 同样,如果你要写特定耐久的物品用于合成也是很简单的,以下是几种语句
至于特定耐久的标记
NBT标签语句
![]() [img=320,1][/img] 对于NBT数据的自定义,各位可以在游戏里面设置好NBT数据之后Hand复制下来 或者是去Wiki自行查找,这里就不在赘述 ![]() Stage.4 反复利用? 或许各位在GT里面看见过锯子砍木头的合成 那么,怎么可以做到合成之后返还物品呢? 语句
但是这样只能砍一次..因为砍完物品就会降低耐久,所以你可以加入通用符或者是.anyDamage()
|
Page.3 MT高级配方编写
Stage.1 熔炉配方编写 以下仅给予语句,想必各位在经过我Page.2的啰嗦之后一定成长了很多
![]() Stage.2 物品重命名
![]() Stage.3 矿物词典 从刚开始就谈到了这个矿物词典,那么矿物词典到底是什么呢? 矿物词典是由Forge产生的 但在MT中就不这么简单了 首先为了使用矿物词典,我们必须知道MC里面矿物词典的类型 在游戏中输入
就可以在LOG里面看到导出的所有矿物词典 绝大部分的矿物词典都有一个相同的前缀ore 也就是代表它不属于任何一个MOD,仅属于一个公共量中 为什么要引用OD? 譬如说铜锭,TIC(匠魂)里面有铜锭,IC2(工业)也有铜锭,FR(林业)也有铜锭 MEK(通用机械)也有铜锭,RC(铁路)也有铜锭,IE(沉浸工艺)也有铜锭! 如果没有OD的话,就会出现一个及其尴尬的情况 你无法用FR的铜去合成IC的机器! 你无法用RC的钢去合成GT的机器! 你无法用MEK的锡作为TIC的原料! 很恐怖,不是么? 但是如果调用了矿物词典,就可以完全解决这个问题 矿物词典就相当于将在这个矿典中所有的物品全部统一为一个物品池 如果调用OD,就相当于调用了这个物品池里面所有的物品 也就是说一个OD名称代表所有在这个OD中的物品! 是不是跟通配符很像?他就是一个无条件的通配符!不需要他们之间有Meta关系 只需要声明即可! OD使用的时候和普通的物品名称相同,这里就不再重复。
|