本帖最后由 贰逼 于 2015-7-9 13:53 编辑

条件语句
下一页为 格式 与 执行
条件语句是模块中的一个重要指令
它用于判断事件是否成立
若成立则输出;
若不成立则跳过。


条件语句将会涉及到
execute
  • 条件与变量
  • 相对性

testfor

关于枚举多个条件输出

或|| 与 且&&
  • 或||
  • 且&&
  • 或且结合

!非的表达
  • !非 单个变量
  • !非 多个执行体

条件嵌套
  • 条件嵌套相对性
  • 条件嵌套与变量
  • 子条件detect

全索引链接
上一篇((序) 模块概念)--下一篇(testfor

§3.1 execute
下一页为 条件与变量
        3.1.1 指令格式
execute指令作为相对执行指令成为了条件判断中的主要语句,
它的主要格式:


  1. /execute <entity> <x> <y> <z>
  2. <command>
复制代码

以及
  1. /execute <entity> <x> <y> <z> detect
  2. <x> <y> <z> <block> <data>
  3. <command>
复制代码

(detect将在以后讲解)

这里主要条件指令execute格式如下:
  1. /execute 选择器x 相对选择器x坐标 指令
复制代码


        α.1.1 使用指令执行


  1. /execute @p ~ ~ ~ say 1
复制代码




  1. /say 1
复制代码
可以看到两个指令相比有execute相对执行的概念,其效果类似tell指令。


预置:
在本小章讲解之前,预置一个实体进行条件储存


  1. /summon ArmorStand ~ ~ ~
  2. {CustomName:"f",CustomNameVisible:1}
复制代码

这边的主要作用已经在变量与实体中讲解过了


        α.1.1 条件与变量


下一页为 相对性 和 相对性与变量综合


首先需要给变量赋值,来作为一个条件
/scoreboard players set @e[name=f] a 1



如果运行:
  1. /execute @e[name=f,score_a_min=1] ~ ~ ~ say 1
复制代码


那么就会输出
这是因为在选择器中的确有f的a计分板变量>=1




如果运行:
  1. /execute @e[name=f,score_a=0] ~ ~ ~ say 1
复制代码


那么就不会输出
这是因为在选择器中没有f的a计分板变量<=1
f的a计分板变量=1

        α.1.2 相对性
除了能依靠变量执行,还有有关坐标的相对性,
这里主要利用r的选择器分项来展示:


运行:
  1. /execute @e[name=f] ~ ~ ~ say @p[r=1]
复制代码


而玩家不在f周围1格
所以没有输出。



可以看到输出中输出失败。




同样是上面的指令,如果站在f旁边一格就有输出


        α.1.3 相对性与变量综合


运行:
  1. /execute @e[name=f,score_a_min=1] ~ ~ ~ say @p[r=1]
复制代码


还是原来的位置,所以符合了r=1条件
此时f计分板a的变量值为1,符合了score_a_min=1的条件
所以能够输出



假如不符合r条件↑


或者不符合score条件↑
那么就不会有输出








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