本帖最后由 贰逼 于 2015-7-26 20:20 编辑

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

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

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


获取执行值将会涉及到

stats用法
  • 所有执行类型
  • 相对执行概念
  • 计分板调用
  • 实体储存
stats与条件语句
  • 一般执行
  • !非
  • 且&&
  • 或||
  • 结合表达式
stats与时钟

全索引链接
上一篇(stats用法)--下一篇(stats与时钟)

§6.2 stats与条件语句
下一页为 结合表达式
既然stats是与计分板关联的,那么stats的执行值同样可以适用于所有条件语句中的结论
比如或且非等等逻辑语句。


stats关联条件语句便是对事件执行值进行判断输出,使事件输出更加灵活


可以将stats与条件语句看作两个模块,一个负责获取,一个负责处理条件,便达成了一个完整的输出。

        6.1.1 结合表达式
由于条件语句都有固定的格式,这边只进一步阐述将本章内容分为两个模块的概念


例如:
检测所有实体的数量,如果数量>=3或者<=1就输出。

我们则可以将检测数量当作一个模块条件输出再当作一个模块,那么指令如下:



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

*获取执行值模块
  1. /execute @e[name=f,score_a=1] ~ ~ ~ /scoreboard players set @e[name=f] b 1
  2. /execute @e[name=f,score_a_min=3] ~ ~ ~ /scoreboard players set @e[name=f] b 1
  3. /execute @e[name=f,score_b_min=1] ~ ~ ~ say 1
复制代码

*条件检测模块

效果:







由于>=3或<=1输出,所以当检测到两个实体无输出。

分析:
*执行获取
仍旧需要先设定初始值
然后stats执行值关联计分板,
最后影响实体的方法有很多,这边考虑的获取数量不影响任何实体,所以testfor是一个很好的选择。

*条件检测
用到的就是条件语句中的标准格式,
这个模块一定是在执行获取后面,因为先有值才有检测。
当然这个模块中条件语句所有逻辑关系标准格式通用

附加部分

练习:
  • 使用本文中的例子,将条件检测变更为实体数量!=2;
  • 制作一个使用SuccessCount执行类型并关联条件检测的模块。

[groupid=546]Command Block Logic[/groupid]