北冥饼鲲 | 目标选择器 | 指令详解第1期

大多数以玩家作为参数的命令,可以通过某些限定条件来选择一个或多个玩家,而不必要用名字来指定玩家。要用条件来选择玩家,先选择一个目标选择器变量,然后,可选地,选择一个或多个目标选择器参数以制定具体的条件。
——Minecraft Wiki
【注意:以下蓝字是1.13的版本内容,红字是1.8的版本内容,绿色是通用】
【你既然点进来了,就是想要学习,不要半途而废哦!一定要看到最底下!】
一、什么是目标选择器
目标选择器顾名思义,是可以根据条件选择目标的选择器。
常用的目标选择器有:@p(挑选最近),@a(挑选所有玩家),@e(挑选所有实体),@r(挑选随机玩家),@s(挑选执行者)。
二、目标选择器的作用
通常在发布性的地图,或是在多人模式中需要的指令,不方便以ID指定玩家时,就需要用到目标选择器。
通常来说,只要使用到指令,有80+%会用到目标选择器。
三、什么是进阶型目标选择器(含参数选择器)及其作用
当我们需要指定特定范围内玩家时,就可以用到目标选择器参数。
目标选择器书写规范:@选择器类型[准则1,准则2,准则3,准则...](全部使用小写)
四、含参数选择器的参数及其作用
注意:
①、所有1.13表范围的格式:小于等于3→[=..3],小于3→[=..2],大于等于3→[=3..],等于3→[=3],介于5到9→[5..9]
②、所有选择器和指令一定要确保使用半角字符(西文字符)进行书写!举例:
——【】。、()不是西文字符。
——[]./()是西文字符。
③、某些参数可以通过加!反转效果,比如[tag=text],[tag=!text]
④、@p、[c=?]或[limit=?]选择时,若所有条件都完全相同,选择进入服务器最久的。(@e选择加载最久且中途未被卸载的[Wiki])
最为常用-指定生物类型[type=]:定义目标满足的生物类型
●使用实例:/kill @e[type=Ender_Dragon],效果为秒杀末影龙
●使用实例2:/kill @e[type=!Player],效果为清除玩家以外所有实体【不可逆】
指定位置[x,y,z]:定义该指令选择时的原点位置。
●使用实例:/kill @p[x=0,y=64,z=0],效果为清除离0,64,0最近的玩家
指定距离[r] | [rm]:定义目标所要适用的距离范围。
●使用实例:/kill @a[r=3],效果为清除执行位置周围3格的所有玩家
●使用实例2:/kill @a[rm=3],效果为清除执行位置周围3格以外的所有玩家
指定距离[distance]:定义目标所要适用的距离范围。
●使用实例:/kill @a[distance=..3],效果为清除执行位置周围3格的所有玩家
●使用实例2:/kill @a[distance=3..],效果为清除执行位置周围3格以外的所有玩家
指定延伸区域[dm,dy,dz]:选取一个长方体区域内的目标。
●使用实例:/kill @a[x=0,y=64,z=0,dm=5,dy=-10,dz=5],效果为清除0,64,0到5,53,5内的所有玩家
指定计分板[score](1.8):指定符合特殊积分条件的目标。有三种格式:[score_OBJECTIVE_5],[score_OBJECTIVE_min_5],[score_OBJECTIVE_max_5],其含义分别为:计分板OBJECTIVE=5,>5,<5。
关于计分板的详细用法,可以关注北冥饼鲲,第一时间收到更新哦!
●使用实例:/tp @a[score_level_min_5] 0 64 0 0 0,效果为传送所有“级别”计分板上超过5的玩家到 0,64,0,方向0,仰角0。
关于teleport的详细用法,可以关注北冥饼鲲,第一时间收到更新哦!
指定计分板[scores](1.13):指定符合特殊积分条件的目标。
●使用实例:/tp @a[scores={level=5..}] 0 64 0 0 0,效果为传送所有“级别”计分板上超过5的玩家到 0,64,0,方向0,仰角0。
指定标签,队伍:指定拥有|不拥有某个标签,属于|不属于某个队伍的目标。
●使用实例:/kill @a[tag=death],效果为清除所有拥有标签“death”的玩家。
●使用实例2:/kill @a[tag=!death],效果为清除所有没有标签“death”的玩家。
●使用实例3:/kill @a[tag=],效果为清除没有任何标签的玩家。
●使用实例3:/kill @a[tag=!],效果为清除有任意标签的玩家。
●队伍同理。
指定数量(1.8):用[c=1]选择1个,[c=-1]选择最不符合条件的1个。
●使用实例:/kill @p[c=2],效果为清除最近的2个玩家。
●使用实例2:/kill @p[c=-1],效果为清除最远的1个玩家。
指定数量/排序(1.13):[limit=]替代[c=]的用法。
●使用实例:/kill @p[limit=2],效果为清除最近的2个玩家。
●使用实例2:/kill @p[limit=-1],效果为清除最远的1个玩家。
指定条件排序(1.13独占):用[sore=]选择符合条件的目标。条件有:[sore=furthest]为最远,[sore=nearest]为最近,[sore=random]为随机,[sore=arbitrary]是所有。
●使用实例:/kill @a[sore=nearest,limit=1],效果为清除最近的1个玩家。
●其实这个选择器和@p没什么两样。其主要用途是嵌套@e(@p不可以指定非玩家实体)
通过等级选择目标(1.8):选定满足指定经验条件的玩家。
●使用实例:/tp @a[r=3,l=10] 0 64 0 0 0,效果为传送3格内所有10级以上玩家到0,64,0,方向0,仰角0。非常适合在RPG地图里使用。
●使用实例2:/tp @a[r=3,l=10,lm=20] 0 64 0 0 0,效果为传送3格内所有10级以上、20级以下玩家到0,64,0,方向0,仰角0。真的非常非常适合在rpg地图里使用。
通过等级选择目标(1.13):选定满足指定经验条件的玩家。
●使用实例:/tp @a[distance=3,level=10] 0 64 0 0 0,效果为传送3格内所有10级玩家到0,64,0,方向0,仰角0。顺带一提,1.8可以通过复选限定等级,比如10级可以通过[l=9,lm=11]选择10级目标。
●使用实例2:/tp @a[distance=3,level=10..20] 0 64 0 0 0,效果为传送3格内所有10级以上、20级以下玩家到0,64,0,方向0,仰角0。
通过游戏模式选择目标(1.8):选定满足指定游戏模式的玩家。
●使用实例:/gamemode @a[m=!2] 2或/gamemode @a[m=!adventure] adventure,效果是把所有不为冒险模式的玩家修改为冒险模式。可以用做一个简单的反作弊装置(但还是阻止不了刷东西和setblock)
通过游戏模式选择目标(1.13):选定满足指定游戏模式的玩家,此版本不支持简写。
●使用实例:/gamemode @a[gamemode=!adventure],效果是把所有不为冒险模式的玩家修改为冒险模式。
通过名称选择目标:选定满足指定名称的生物。
●使用实例:/kill @e[name=CustomName],效果是把所有名称为CustomName的生物清除。可以搭配命名牌做到一键斩杀的效果。
●使用实例2(仅1.13):/kill @e[name="Custom Name With Space"],效果同上,但是允许出现空格。
五、老子/老娘学这些东西有什么用啊?
目标选择器是学习指令的基础。绝大多数指令需要合理的安排目标选择器才能有最好的效果。如果没有像现在这么完备的目标选择器,世界上将会失去95%以上的优秀原版地图(此处一定要@盘灵古域,这是鲲鲲的命令启蒙地图,我基本上把盘灵古域的命令方块拆了个遍)。
六、学完了这些,我应该怎么应用的呢?
很简单!先按一下推荐,再扔两个硬币,最后点一下收藏和分享,转发给你的好朋友哇!
如果你还想看到指令详解类型的专栏,请记得关注鲲鲲!!
本文引用部分来自于Minecraft Wiki:“命令”条目