命令教程“真”从零开始 (四) 有关队伍命令/team的……差不多一切
Dahesor
2024年05月28日 10:26
收录于文集
共16篇

这是原载于MCbbs论坛上的命令教程。随着论坛的消失,这系列教程经修缮(可能需要几天时间)后被迁移至此。

本文某种程度上是一个白话版的Wiki

作者不保证对本教程的维护和更新(全随兴致),请您自行判断内容是否过时。不过,若有更多问题欢迎在评论区提出

教程声明:

  1. 系列教程默认读者是按照顺序阅读的

  2. 教程默认读者有对Minecraft的基础了解

  3. 教程主要注重基础原理,实践内容极少

  4. 本篇教程适用于Java 1.20.6,但大部分内容也适用于1.13+

1. 队伍

队伍,是所有队伍竞技的核心。

当然,贴心(一点也不)的Mojang也为游戏添加了管理队伍的指令——/team

注意:该命令/team为Java版独有

基岩版的队伍功能仍属于/scoreboard的一部分。

网页链接​

首先,想要研究队伍,请让我们先创建一个队伍:

格式:

代码块
HTML
自动换行
复制代码
/team add <队伍ID> [<显示名称>]
复制成功

解析(用么):

(我是觉得你看字也能看懂的)

team  指令:队伍指令

add   子指令:添加队伍

<队伍ID>  目标/ID:填写一个ID

[<显示名称>]  选项:玩家可见的名称

首先,<队伍ID> 处请填写任意未使用过的英文字符串,这将是该队的ID。你可以使用大小写字母,数字,点,下划线以及连字符。

[<显示名称>]是一个可选元素,如果你忽略,显示名称将默认为<队伍ID>

代码块
HTML
自动换行
复制代码
/team add test
复制成功

本指令会创建一个ID为“test”的队伍,由于没有填写显示名称,名称会与ID等同,均为“test”

OK,接下来就是事情变得有点复杂的地方了。

不知道从哪一个版本起,[<显示名称>] 必须使用JSON文本填写———

被上一句话吓到的各位,不用担心,我们暂时不涉及到JSON。如果各位感兴趣的话,可以去MC Wiki查看关于JSON文本的信息。

这里,我们用它的无特殊格式简写,即 " "(双引号)。

我的意思是,当你填写[<显示名称>] 时,注意将你的内容使用双引号括起来。就这么简单:

代码块
HTML
自动换行
复制代码
/team add test "蓝队"
复制成功

本指令会创建一个ID为“test”的队伍,显示为蓝队。

注意:  这是一对英文的双引号,不要切错输入法

这样,你就得到了一个队伍。

想要移除一支队伍,简单地将“add”替换为“remove”:

代码块
HTML
自动换行
复制代码
/team remove <队伍ID>
复制成功

比如:

代码块
HTML
自动换行
复制代码
/team remove test
复制成功

这会将刚创建的,ID为“test”的队伍移除。

2. 加入队伍

我们刚创建了一个队伍,但它是空的。

想要运行这个机制,很重要的一点,是将玩家或实体加入队伍。

代码块
HTML
自动换行
复制代码
/team join <队伍ID> <目标>
复制成功

比如...

代码块
HTML
自动换行
复制代码
/team join test Dahesor
复制成功

将Dahesor加入队伍“test”

当然,你也可以使用选择器——

代码块
HTML
自动换行
复制代码
/team join test @r
复制成功

将一名随机的玩家加入队伍“test”

注意,

当你在聊天框中执行本指令是,你可以省略“<目标>”。此时目标会默认为你自己。

每位玩家或实体同一时间只能加入一支队伍。

如果你尝试将一名已经有队伍的玩家加入另一个队伍,他会退出原来的队伍。

实体也是可以加入队伍的——比如,你可以让一只猪加入队伍“test”

与你同队的攻击性生物不再对你攻击。

啊,你问,你该如何将“<目标>”确定为猪?我记得你没说过类似的选择器吧!

唔唔,解决这个问题就是我们第六篇的内容了——在那之前,你只需要记住“实体也可以加入队伍”就好啦!

接下来,如果你反悔了,想要将一名玩家从队伍中剔除——

代码块
HTML
自动换行
复制代码
/team leave <目标>
复制成功

比如:

代码块
HTML
自动换行
复制代码
/team leave Dahesor
复制成功

这会让我(Dahesor)离开我已加入的队伍。

注意本指令无需填写队伍ID,所以实际上指令会让你离开任何队伍。

如果你想要清空一支队伍中的所有成员,你并不需要一条一条为每人打指令——你只需要使用子指令empty就好了:

代码块
HTML
自动换行
复制代码
/team empty test
复制成功

本指令会清空test队伍中的所有成员。

最后,如果你忘了有哪些队伍,可以执行指令:

代码块
HTML
自动换行
复制代码
/team list
复制成功

该指令会告诉你所有现存的队伍。

你同样可以在命令中指定一支队伍,此时,指令会给出队伍中的所有成员:

代码块
HTML
自动换行
复制代码
/team list test
复制成功

给出队伍“test”中的所有成员。

哈,讲完这一大滩,我们就可以看向一些有趣的东西了。

3. 选项

除了“组队,除队,加队”这些基础操作,我们还有更好玩的“选项”。这些选项可以为队伍竞技加入一些有趣(或者坑人)的内容:

代码块
HTML
自动换行
复制代码
/team modify <队伍> <选项> <值>
复制成功

其中,在<选项>处指定要更改/设置的选项内容,而不同的选项可以使用不同的值。以下是所有选项:

3.1 颜色

代码块
HTML
自动换行
复制代码
color
复制成功

首先,最重要的一点,颜色

只要你进入过任何一个包含队伍竞技元素的服务器(比如Hypixel),你就可以得知,队伍是有颜色的。而选项“color”就决定了队伍的颜色。

例:

代码块
HTML
自动换行
复制代码
/team modify test color blue
复制成功

该指令会将队伍"test"的颜色更改为蓝色。

当你的颜色被更改之后,你的名条与聊天名头的颜色等都会被更改。

很遗憾的是,MC的队伍并不支持整个RGB标准的颜色,我们只能使用以下十六种(如果有哪个颜色的英文不认识,可以翻词典):

aqua    青色

black    黑色

blue    蓝色

dark_aqua    深青色

dark_blue    深蓝色

dark_gray     深灰色

dark_green     深绿色

dark_purple     紫色

gray    灰色

gold    橙色

light_purple    粉色

dark_red    深红色

green    绿色

red    红色

white    白色

yellow    黄色

就这十六种颜色。

注意,颜色同样会改变发光效果的轮廓线的颜色:

红队的成员会发红光

通过输入reset可以清除队伍的颜色:

代码块
HTML
自动换行
复制代码
/team modify test color reset
复制成功

清除test队伍的颜色

3.2 显示名称

代码块
HTML
自动换行
复制代码
displayname
复制成功

接下来,如果你对队伍的[显示名称]不够满意,可以使用指令更改:

代码块
HTML
自动换行
复制代码
/team modify <队伍ID> displayname <显示名称>
复制成功

注意之前说过的,把你的文字引起来:"蓝队"

代码块
HTML
自动换行
复制代码
/team modify test displayname "蓝队"
复制成功

将队伍test的显示名称更改为蓝队

接下来才是有趣的地方:

3.3 死亡信息

代码块
HTML
自动换行
复制代码
deathMessageVisibility 
复制成功

本选项可以设置“谁可以看见队伍成员的死亡信息”

你有四个可选的值:

  • never  对所有人隐藏死亡信息

  • always  对所有人显示死亡信息(默认值)

  • hideForOtherTeams  向其他队伍的成员隐藏(注意,无队者可见)

  • hideForOwnTeam  对队友隐藏

不难理解以上选项的含义......但你这个“对队友隐藏”嘛.......嘿嘿嘿嘿嘿嘿......(咳咳)

例:

代码块
HTML
自动换行
复制代码
/team modify test deathMessageVisibility hideForOwnTeam
复制成功

队伍“test”将无法看到队友的死亡信息。

3.4队友伤害

代码块
HTML
自动换行
复制代码
friendlyFire
复制成功

这又是一个潜在的坑人元素。本选项控制了“队友间能否互相伤害”这个严肃的问题。

  • true  开启队友伤害(默认)

  • false  关闭队友伤害

在UHC中,这真的是个超级重要的元素。

例:

代码块
HTML
自动换行
复制代码
/team modify test friendlyFire false
复制成功

队伍“test”将无法攻击队友。

注意:这无法阻止药水效果。

注意,此选项对非玩家实体无效!你仍可以伤害一只同队的僵尸或苦力怕。

3.5 隐藏ID

代码块
HTML
自动换行
复制代码
nametagVisibility 
复制成功

各位可能知道,多人游戏中浮在玩家头上的ID是可以穿墙显示的。这样,在需要隐藏的游戏中——比如UHC,可是致命的。尽管保持潜行或使用隐身药水可以将其隐藏,不过本选项可以控制是否隐藏ID。

  • never  对所有玩家隐藏(谁也看不见)

  • always 不隐藏(默认)

  • hideForOtherTeams 其他队伍的玩家将无法看见你的ID(注意无队者可见)

  • hideForOwnTeam  无法看见队友的ID(有一坑人可能性)

例:

代码块
HTML
自动换行
复制代码
/team modify test nametagVisibility never
复制成功

队伍test的ID将对所有人隐藏

3.6 是否可见队友隐身

代码块
HTML
自动换行
复制代码
 seeFriendlyInvisibles
复制成功

本选项可以调整你是否能看到隐身的队友.。

  • true 可见(默认)

  • false 不可见

当调整为true时,队友隐身时你可以看到一个透明的轮廓,比如这样:

隐身的队友苦力怕

嗯,由于我处于单人游戏,我只好把一只苦力怕拉进了队伍“test”。

代码块
HTML
自动换行
复制代码
/team modify test  seeFriendlyInvisibles true
复制成功

3.7 碰撞推挤

代码块
HTML
自动换行
复制代码
 collisionRule
复制成功

你有过被一只猪进岩浆湖的经历么?

我有过(捂脸)。

而推挤在一些情况下是致命的!

本指令可以管理推挤规则:

  • always   开启碰撞(默认)

  • never    关闭碰撞

  • pushOtherTeams  只有同属这一队的成员可以互相推挤

  • pushOwnTeam     只有其他队伍的成员可以推挤本队成员

挺简单嘛......诶,不对,等等,你的描述和英文对不上啊? pushOtherTeams是“推其他队伍”,怎么成了“只有同属这一队的成员可以互相推挤”了?

额...这是一个bug。从1.11开始就有的bug。直到1.20.6还没修好。

正是本bug导致了错乱,也就是我标下的结果。你可以前往漏洞追踪器的本页面获取相关信息:

https://bugs.mojang.com/browse/MC-87984

使用时请先自行实验

代码块
HTML
自动换行
复制代码
/team modify red collisionRule never
复制成功

使得队伍red不受推挤影响

注意,以上的所有选项都指定了<队伍ID>,所以他们都是对“这支队伍”做的调整。

3.5 前缀与后缀

除了以上的选项,modify还可以还可以设定前缀或后缀。他们会显示在你的名称之前或之后:

代码块
HTML
自动换行
复制代码
/team modify test (prefix|suffix) <Raw Json Text>
复制成功

学过英语的可能知道,prefix是前缀,在名称之前加入的称呼。而suffix为后缀。

你又在后面看见了“Json”这个东西。同样,请无视。你只需要将想要的名称引在双引号里就好了:

代码块
HTML
自动换行
复制代码
/team modify test suffix "小白鼠"
复制成功

本指令会给所有test成员加入后缀“小白鼠”。

啊啊,我这是单人游戏,玩家又看不到自己的名条,所以一样,用苦力怕展示。

我随便弄了只苦力怕,又拿出一块命名牌把它命名为“NPC”(不然如果它没名,后缀也不会出现):

后缀小白鼠

如你所见,长这样。

代码块
HTML
自动换行
复制代码
/team modify test prefix "【求生者】"
复制成功

会变成这样:

前缀求生者

(为了方便,我把之前的后缀删去了,但两者可以一同存在)

诶,为啥【求生者】是青色的?

当然是为了吊你胃口啦!这是原始Json文本格式,“让字体变得有颜色”这个至少占了命令提问20%的问题就是使用Json达成的。(来自未来的作者可以告诉你,JSON会在第17篇提到)

当然,我说了是“吊你胃口”所以这并不是今天要研究的问题。(我才不会告诉你其实是因为只有这张截图而且本电脑里没装MC的原因。)