导览
脚本方块是一个为Minecraft 1.7.10 设计的模组,提供了一个能够在特定情况下执行的脚本方块以及一套工具。
在游戏的根目录创建文件夹ScriptBlockData并把Json(或Json5)放入其中。
解析Json5需要凤梨通灵术作为Lib,否则会跳过解析。 内容详情请见 规范
主名称: /script
别名:/scb, /sc
别名与主名称效果相同。
参数:
reload - 重新读取。
set [文件名] - 得到存储文件夹内脚本文件的记录之章,右击脚本方块可以写入脚本。
block - 得到一个脚本方块。
run <玩家名称> [文件名] - 立刻对玩家执行脚本。
脚本解析依赖一种较为严格的规范,这闻起来就像是一种具有严谨规范的解释性语言。
模组解析器会且只会解析列表和字符串(数字会在解析时被自动转义,而无法转义的内容则会抛出异常。)
解析器会尝试在一个大列表中解析细节列表,也就是说即便你只有一个内容也必须使用两个列表。
如下所示:
[
[
"@Command",
"say", "Hello", "World!"
]
]
这个内容被触发后将会向服务器发送“Hello World!”。相关内容会在解释“@Command”关键字时说明。
@Set
別名:@SetVar
@Set 关键字需要两个参数,如下:
[
"@Set", "Test",
"Hello!"
]
上述的内容是将变量“Test”存储到变量池并申明内容字符串“Hello!”。
如果我们需要存入一个数字?请使用带小数方便解析器理解。如下:
[
"@Set", "TestNumber",
"10.0"
]
好,那么知道它会被存入变量池,如何从变量池中拿到数据?
字符“%”帮助我们拿到变量,而且变量可以传给另一个变量,如下演示:
"@Set", "AnotherTestNumber",
"%TestNumber"
]
这样我们就把“TestNumber”的值传给新的变量“AnotherTestNumber”了。
当然,这里还有一些魔术参数,使用字符“&”申明一个魔术参数得到一些游戏内的数据。
方法名称 内容用途 &Player 得到触发的玩家的名称 &World 得到当前世界名称 &Health 得到玩家当前生命 &Hunger 得到玩家当前饱食 &Item 得到玩家手上物品 &Lv 得到玩家人物等级 &Random 得到0-100之间的随机数
运算关键组
运算能够插入大部分地方,比如@Set。这里有个运算的示例:
[
"@Set", "AnotherTestNumber",
["@Add",
"%TestNumber", "10.0"
]
]
当解析完此条目时,变量“AnotherTestNumber”的值将会是“TestNumber + 10.0”的结果。
变量运算组需要两位参数,两位参数均支持使用数字形式的字符串,变量和另一个运算组。
@Add 关键词用于申明两位数相加。
@Min 关键词用于申明两位数相减。
@Mul 关键词用于申明两位数相乘。
@Exc 关键词用于申明两位数相除。
判断句柄
使用关键词@If申明一个判断,参数允许使用字符串,变量和运算组。@If的下一位参数需要接入一个判断形式:
@Is 关键词用于判断两个参数内容相同。
@IsNot 关键词用于判断两个参数内容不同。
@Greater 关键词用于判断第一个参数大于第二个参数。
@Less 关键词用于判断第一个参数小于第二个参数。
下面是一段截取自Json5的文本,Json中请删除注解。
[
"@If", "@Is",
"%Test", "Hello!",
["@Set", "Test", "True!"], // 返回值为True,这一段执行
["@Set", "Test", "False!"] // 反之是这一段执行。
]
上述的一段脚本将会返回True,那么Test的值会被设为“True!”。
@Command
到了我们的重头戏,现在让我们提供一段指令。还记得一开始的那段脚本吗?把它拿回来:
[
[
"@Command",
"say", "Hello", "World!"
]
]
@Command 关键词能够输出一段命令。通常我们要如何输出一段命令?用say来说,输出Hello World!的话,我们应该写成这样: /say Hello World!
无论是对于Minecraft的命令解释器,还是对于我们的脚本解释器,这一段命令将会被分为三段:say,Hello,World!。如果命令带参数也是同理。将这三段分别填入申明了@Command的列表中最终会被拼合为一段。请注意,请不要在字符串中提供空格。
这段指令的发送身份将会是控制台(等价于命令方块)。@Command 关键词可以在@If 句柄中被作为判断后执行任务进行申明,@Command中不接受任何运算,但是可以使用“%”关键字来申明一些魔术变量和你的变量池变量。我们的变量池里有“Test”,那么这儿提供“%Test”即可。关于@Command 可用的魔术变量如表:
变量名 内容 %Player 返回触发的玩家的名称 %World 返回当前世界的名称 %Pos 返回坐标(x y z) %PlayerPos 返回玩家的坐标(x y z)
- 脚本方块: 脚本方块是这个模组的核心内容,需要配合其他物品进行操作。
- 记录之章: 使用指令获得或使用空白之章复制获得的记录之章才能被使用。右击脚本方块可以填充(或覆盖)脚本内容。
- 空白之章: 右击一个内容不为空的脚本方块可以复制内容并变为记录之章。
- 归空之帚: 右击某个方块会清扫
3*3*3
范围内的脚本方块的画皮,使其形象初始化。 - 绘作之触: 右击一个非脚本方块的方块可以取得方块的贴图,再右击脚本方块可以进行伪装。
- 窥视之眼: 检查脚本方块的脚本内容。
- 机械之心: 无视触发形式直接执行脚本方块的脚本(如果有)。
- 和谐之音: 改变脚本方块的触发方式。有四种状态:关闭,仅踩踏触发,仅右击触发,踩踏或右击(混合)。
模组分发等均基于主许可证:凤梨许可证。