Minecraft(我的世界)中文论坛

标题: [CBL∫2b]指令方块进阶教程——模块 §6 : stats与时钟 [打印本页]

作者: ⭐✔️    时间: 2015-7-26 20:20
标题: [CBL∫2b]指令方块进阶教程——模块 §6 : stats与时钟
本帖最后由 贰逼 于 2015-7-27 10:12 编辑

获取执行值
下一页为 stats与条件语句
本章将引进新的概念:执行值。

执行值便是一个指令除了输出外执行的结果,通常返回执行的次数输出值或者条件真假
获取执行值就能够随机应变,根据判断来调整下一步输出;执行值也可以用作debug;执行值也可以变相获取游戏参数

在指令中,返回值的指令是stats。使用这条指令可以对指令影响的实体、方块、物品进行值的返回
结合条件语句进行下一步输出;或者产生对应参数


获取执行值将会涉及到

stats用法
stats与条件语句
stats与时钟

全索引链接
上一篇(stats与条件语句)--下一篇(执行值与条件语句)
§6.2 stats与时钟
stats关联高频,也应当注意时钟


stats+条件语句关联高频本身就是时钟
比如当玩家背包拥有石头后,输出1。

此时需要关联高频,使用以下指令:


按照顺序执行:
  1. /scoreboard players set @e[name=f] a 0
  2. /stats entity @e[name=f] set AffectedItems @e[name=f] a
  3. /execute @e[name=f] ~ ~ ~ clear @p minecraft:stone
复制代码

*获取执行值
  1. /execute @e[name=f,score_a_min=1] ~ ~ ~ say 1
复制代码

*条件输出

效果:





一旦玩家拥有石头,立刻清除,输出1。

分析:
构成时钟的主要原因是每次都需要设定初始值,而后面又使用条件语句,所以相互冲突关联影响结果,所以构成时钟
此处AffectedItems表示影响物品栏物品,这是一个很好的验证。

除了stats本身构成时钟,还可继续增加时钟,构成双时钟
使用以下指令,让时钟具有!非效果:



在最后去掉/execute @e[name=f,score_a_min=1] ~ ~ ~ say 1,
依次增加三条指令:
  1. /scoreboard players set @e[name=f,score_a_min=1] a -1
复制代码

*时钟重新设定值产生!非
  1. /execute @e[name=f,score_a_min=0] ~ ~ ~ say 1
复制代码

*默认值输出
  1. /execute @e[name=f,score_a=-1] ~ ~ ~ say 2
复制代码

*重新产生的值输出

效果:


默认输出


检测到石头后

利用了时钟中默认值的方式实现!非,证明了存在双时钟


附加部分

练习:
  • 将任意一个stats模块关联高频;
  • 使用SuccessCount制作一个关联时钟的例子。

[groupid=546]Command Block Logic[/groupid]
作者: dhji    时间: 2015-7-26 20:21
教程更新了
好棒
作者: Sad_elevenKH    时间: 2015-7-26 20:21
终于更新了,沙发是我的
作者: 红云redcloudy    时间: 2015-7-26 20:43
贰逼大大加油!
作者: 深蓝の回忆    时间: 2015-7-26 20:47
顶起,加油加油
作者: Mr.Right.    时间: 2015-7-26 20:51
大大好,平时只知道普通的指令不过我比较喜欢红石……


作者: 丢失的钥匙    时间: 2015-8-6 11:02
MCBBS有你,世界更精彩!
作者: langyo    时间: 2015-8-8 11:08
顶下

能不能在下次更新时加上前置的安装指令(/scoreboard objective add),或说明有哪些变量将要使用……
只是个建议……
作者: alfa5148    时间: 2016-8-18 19:15
厉害,mc没有不可能,今天又学到了。
作者: man871955    时间: 2016-8-19 08:18
感觉好高深{:10_522:}




欢迎光临 Minecraft(我的世界)中文论坛 (https://www.mcbbs.net/) Powered by Discuz! X3.5