没劲的卡拉帕西吧 关注:1,176贴子:42,481

[命令教程水水水] 静怡带你从零学选择器!

只看楼主收藏回复

Hello大家好,我是zhvsjia!
做完地图没事干来教指令(选择器)。
其实这个不属于指令的一条,而属于指令的一部分。
如果你认为选择器只是@a,@p,@e,@r那你就大错特错了。
选择器远比你想象的要复杂!如果你认为你已经精通选择器了那么请你看到最后,你肯定会有新的发现
本帖内容源于wiki但不照搬wiki,融入了我自己的见解。
各位大触请轻喷如有错误还请指出~


IP属地:天津1楼2016-08-16 19:59回复
    先讲完再at人


    IP属地:天津2楼2016-08-16 20:01
    收起回复
      首先,我们要知道,选择器是用来配合其他指令使用的,并不是单独使用的。基本上都是用来选定某些玩家/实体并执行输出命令。
      所以说,选择器对于学习其他指令也是非常重要的
      选择器分为两大门类,选择器变量和选择器参数
      选择器的基本格式是:
      选择器变量[选择器参数1=数值1,选择器参数2=数值2,…]


      IP属地:天津3楼2016-08-16 20:02
      回复
        选择器变量只有4个,也是选择器的基础:
        @p,@r,@a,@e
        其中@p,@r是一类,指对单一实体的选择;@a,@e是一类,指对多个实体的选择。
        @p选择最近的玩家
        @r选择最近的实体/玩家(详见下面讲的参数讲解
        @a选择全部的玩家
        @e选择全部的实体
        以上四个就是选择器变量,当然,你可以通过修改参数来修改以上四个变量的检测范围,下面我们讲选择器参数,共12组


        IP属地:天津4楼2016-08-16 20:03
        收起回复
          1,
          x=,y=,z=这个非常好理解,选择某个坐标的实体/玩家
          例如:
          @a[x=X,y=Y,z=Z]
          可以选择某个坐标处的所有玩家。
          当然,如果你想简单一些,输入:
          @a[X,Y,Z]
          也是可以的。


          IP属地:天津5楼2016-08-16 20:03
          收起回复

            2,
            r=
            rm=
            第一个是用来选择以命令方块为中心半径几格内的实体/玩家,而第二个是用来选择以命令方块为中心半径几格外的实体/玩家。当然,我们可以通过第一组参数来改变检测的中心。
            例如:
            @a[x=X,y=Y,z=Z,r=R]
            @a[x=X,y=Y,z=Z,rm=RM]
            可以选择以X,Y,Z坐标为中心,以R/RM为半径内/外的所有玩家。
            当然,如果你想简单一些,输入:
            @a[X,Y,Z,R]
            也是可以的。(仅对于R有用)


            IP属地:天津6楼2016-08-16 20:04
            收起回复

              3,
              m=
              用来选择游戏模式为几的玩家。
              例如:
              @a[m=2]
              即选择冒险模式的所有玩家。
              顺便附上:
              -1 所有模式(这个有什么用)
              0 生存模式
              1 创造模式
              2 冒险模式
              3 旁观者模式


              IP属地:天津7楼2016-08-16 20:04
              回复
                4,
                c=
                对于这个参数,它会有两个不同的作用。
                对于@p,@r,它会选择最近的/随机的几个玩家/(实体(仅针对@r))
                例如:
                @p[c=3]
                会选择最近的3位玩家
                仅针对@p,
                @p[c=-2]
                则会选择最远的2位玩家
                对于@a,@e,它只能选择最近的目标。


                IP属地:天津8楼2016-08-16 20:04
                收起回复
                  5,
                  l=
                  lm=
                  对于第一条,会选择经验等级不超过几的所有玩家;对于第2条,会选择经验等级不低于几的所有玩家。
                  例如:
                  @a[l=L]
                  @p[lm=LM]
                  会选择经验等级不高/低于几的全部/最近玩家。


                  IP属地:天津9楼2016-08-16 20:05
                  回复
                    6,
                    score_XXX=
                    score_XXX_min=
                    通过分数(记分板)来选择玩家/实体。
                    第一条指选择分数不高于几的玩家/实体;而第二条选择分数不低于几的玩家/实体。
                    例如:
                    @e[score_123=5,score_123_min=10]
                    选择其123分数超过5,但不超过10的所有实体。
                    这里用123来代替XXX,XXX指记分板的名称,是可以随意改动的。
                    当然,对于如何创建记分板,以及如何给玩家/实体加/减分,这个不属于我的范畴。请找某ND或某神隐讲解


                    IP属地:天津10楼2016-08-16 20:05
                    收起回复
                      7,
                      team=XXX
                      选择在XXX队伍中的玩家/实体。
                      例如:
                      @a[team=RED]
                      选择在RED队伍中的所有玩家
                      其中本参数还有几个变种:
                      team=!XXX
                      选择不在XXX队伍中的实体/玩家
                      team=
                      选择不在任何队伍中的实体/玩家(注意“=”后面不加任何数值)
                      team=!
                      选择在任意队伍中的实体/玩家(注意“!”后面不加任何数值)
                      上面例子中用RED代替XXX,对于如何创建队伍,属于记分板范畴,详见楼上


                      IP属地:天津11楼2016-08-16 20:06
                      收起回复
                        8,
                        name=
                        选择名字叫什么的实体/玩家。
                        例如:
                        @e[name=Pa_Xi]
                        选择名称叫帕西的所有实体。
                        另外,这个名称指玩家用CustomName标签给实体命名的名称。
                        本参数还有几个变种:
                        Name=!
                        选择名称不是什么的实体/玩家。


                        IP属地:天津12楼2016-08-16 20:06
                        回复
                          10,
                          type=
                          选择类型为什么的实体。也就是选择什么实体。
                          例如:
                          @e[type=Blaze]
                          则选择所有的烈焰人。
                          当然,也可以这样:
                          @r[type=Blaze]
                          则选择一个随机的烈焰人。
                          这也就是我之前说的,@r也可以用来选择实体,并不仅仅是玩家。


                          IP属地:天津14楼2016-08-16 20:07
                          回复

                            11,
                            tag=XXX
                            选择带有XXX标签的玩家/实体。
                            例如:
                            @e[tag=1]
                            检测带有标签1的所有实体。
                            本参数还有几个变种:
                            tag=!XXX
                            选择不带有XXX标签的玩家/实体
                            tag=
                            选择不带有标签的玩家/实体(注意“=”后面不加任何数值)
                            tag=!
                            选择带有标签的玩家/实体(注意“!”后面不加任何数值)
                            在例子中用1代替XXX,对于如何给玩家/实体加标签,貌似同样属于记分板内容,详询第6条


                            IP属地:天津15楼2016-08-16 20:07
                            收起回复
                              下面高能
                              12,
                              rx=X1
                              rxm=X2
                              ry=Y1
                              rym=Y2
                              对于第1条,指选择最大不超过垂直旋转值X1的唯一玩家/实体;对于第2条,指选择最小不低于垂直旋转值X2的唯一玩家/实体;对于第3条,指选择最大不超过水平旋转值Y1的唯一玩家/实体;对于第4条,指选择最小不低于水平旋转值Y2的唯一目标。
                              垂直旋转值指从-90.0面对正上方到90.0面对正下方,可以通过f3查询。
                              将垂直旋转值向下取整(例如:36.8≈36,-10.4≈-11)得到数值X1,X2
                              若X1=0,则只选择x=0的玩家/实体
                              若X1>0,则选择0≤x≤RX的玩家/实体
                              若X1<0,则选择x≥0或RX≥x≥-90的玩家/实体
                              若X2=0,则选择所有的目标,无视其垂直旋转值
                              若X2>0,则选择x<0或90≥x≥RXM的玩家/实体
                              若X2<0,则选择0<x≤RXM的玩家/实体
                              水平旋转值指从-180.0 面对正北方,到-90.0面对正东方,到0.0面对正南方,到179.9正北方偏西,旋转回-180.0,可以通过f3查询。
                              将水平旋转值向下取整(见上)得到数值Y1,Y2
                              若Y1=0,则只选择x=0的玩家/实体
                              若Y1>0,则选择0≤x≤RY的玩家/实体
                              若Y1<0,则选中x≥0或RY≥x≥-180的玩家/实体
                              若Y2=0,则选择所有的目标,无视其水平旋转值
                              若Y2>0,则选择x<0或90≥x≥RYM的玩家/实体
                              若Y2<0,则选择0<x≤RYM的玩家/实体
                              对于这4个参数,不是很好理解,所以大家可以自己去慢慢研究,这里就不再多说其他的了。


                              IP属地:天津16楼2016-08-16 20:08
                              收起回复