第一中文网

第二十六章 更加精确的目标选择器 下 (第1/7页)

天才一秒记住【第一中文网】地址:www.dyzww.cc

——游戏模式——

用游戏模式筛选玩家的参数,在Java1.13及以上版本中是gamemode,在基岩版以及低于Java1.13的版本均为m。

那么它们是怎么用的呢?

众所周知,基岩版服务器并没有像Java版服务器一样具有出生点保护,所以在基岩版,要让服务器主城不被恶意破坏,最基本的操作就是使用『范围冒险模式』。比如这个中国版租贷服最初就用了如下指令:

\/gamemode a @a[x=726,y=89,z=-263,r=50]

重复执行这条指令,就可以让主城范围50格内的所有玩家都改为冒险模式。但这有个缺点:腐竹也被改为冒险模式了。为了解决这个问题,这个腐竹给该目标选择器添加了一个参数,变成:

\/gamemode a @a[x=726,y=89,z=-263,r=50,m=s]

这条指令和上一条指令的唯一区别就在于,它不会将不是生存模式的玩家改为冒险模式,这样子腐竹开着创造就不会受到影响了。其中新添加的m参数,值是s,也就是survival(生存)的缩写。

m参数可以使用游戏模式的全称,缩写和数字Id。比如:

\/tp @a[r=20,m=6]^^^-100(仅适用于基岩版)

这条指令的作用是:将以基准点(在这是指令执行位置)为中心,半径20格内的所有处于旁观模式的玩家,全都传送到执行者背后100米处(^^^-100为局部坐标,会在第五十九章讲到。『6』在这是基岩版1.19及以上版本为实验玩法的旁观者模式的数字Id。没错,基岩版也有旁观者模式了,只不过在测试而已)

而gamemode参数.......在Java1.13版本中,mojang重写了大量游戏基础代码,导致Java1.12.2和1.13版本中,许多游戏内容差异极大。所以在之前的章节中,你会发现许多指令都在Java1.13更新中发生了大改,这种情况在以后的章节中也会持续存在。游戏模式也一样,在Java1.13版本更新后,游戏模式就仅支持全称,即:

survival(生存模式)、creative(创造模式)、adventure(冒险模式)和spectator(旁观模式)。

所以,虽然gamemode参数和m用法一样,但它仅支持上面四个值。

现在我们知道如何选择特定游戏模式的玩家。但如果我们要反过来,排除特定模式的玩家该怎么办?

这位腐竹造了一个房子。为了防止他的房子被破坏,就做了一个简易的安保措施:

\/kill @a[r=15,m=!c]

这条指令的意思是:将范围15格内所有不处于创造模式的玩家全部杀死。

仔细观察这条指令,你发现了什么?

没错,m参数要反过来排除特定模式的玩家,只需要在值前面加一个英文半角感叹号。和m参数一样,gamemode参数也同理:

\/kill @a[distance=..15,gamemode=!creative]

感叹号的这种用法,其实就是不等号在计算机语言中的常见形式(=!)。这种不等号反转选择的用法在接下来几个目标选择器参数中也会频繁出现。

——目标名称——

name参数可以用于选取指定名称的实体。

使用\/give给予某位特定玩家物品时,一般不会用到目标选择器,而是直接指定该玩家的玩家名(不会吧,不会吧,不会真的

本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!

如遇章节错误,请点击报错(无需登陆)

新书推荐

都市超品仙医 活在两个世界 大秦:这个太子总想着造反 与其说瞎话不如 穿越万界:神功自动满级 诛神乾坤 多子多福,仙女都被他抢了怎么办