/spreadplayers

/spreadplayers

图片处理:未转载源站游戏图像;具体物品、实体、效果或界面说明以中文文字保留。

原文:Commands/spreadplayers;源修订:3826040。

将实体传送至某一区域内随机的地表位置。虽然名称中有 players,本命令可用于传送任何实体,而不仅是玩家。Java 版所需权限等级为 2;基岩版为 1,且需要开启作弊。

用法

Java 版中,目标始终放在某一水平位置最高的非空气方块上。under 模式中,目标放在指定最高高度以下、上方有两个空气方块的最高非空气方块上。不存在这类非空气方块时,该水平坐标无效。

基岩版中,目标始终放在某一水平位置最高的固体方块上方一格。指定 maxHeight: value 时,目标放在指定最高高度以下的最高固体方块上方一格。若不存在这类固体方块,或其上方没有两个空气方块,则该水平坐标无效。

目标不会放在熔岩、水、气泡柱或火上方,这些位置均无效。基岩版中,岩浆块、凋灵玫瑰、营火、灵魂营火、甜浆果丛、下界传送门、末地传送门和末地折跃门也属于无效位置。

Java 版中,实体分散到命令执行所在的维度。基岩版中,本命令只改变实体位置,不改变维度,但有效位置是在命令执行所在维度计算的。

若没有有效位置,或目标过多、无法在有效位置内满足最小距离(spreadDistance 或 spreadDistance: float)要求,则不会分散任何实体。

语法

Java 版

分散到最高非空气方块上:

spreadplayers <center> <spreadDistance> <maxRange> <respectTeams> <targets>

分散到最高高度以下、上方有两个空气方块的最高非空气方块上:

spreadplayers <center> <spreadDistance> <maxRange> under <maxHeight> <respectTeams> <targets>

基岩版

spreadplayers <x: value> <z: value> <spreadDistance: float> <maxRange: float> <victim: target> [maxHeight: value]

参数

  • center(Java 版,vec2),或 x: value 与 z: value(基岩版,RelativeFloat):分散区域中心。Java 版须为由空格分隔的两个水平坐标;基岩版分别指定两个浮点坐标。可使用波浪号表示相对于命令执行位置的坐标。
  • spreadDistance / spreadDistance: float:任意两个目标间的最小距离,须为单精度浮点数,至少为 0.0。
  • maxRange / maxRange: float:区域中心到各水平轴边界的最大距离,因此区域是正方形而非圆形。须为单精度浮点数;Java 版最小为 1.0,基岩版应至少比 spreadDistance: float 大 1.0。
  • maxHeight(Java 版,integer),或 maxHeight: value(基岩版,RelativeFloat):目标位置的最大高度。Java 版须为 32 位整数;基岩版须为浮点坐标,可使用波浪号指定相对高度。
  • respectTeams(Java 版,bool):是否将同队实体保持在一起。为 true 时,同队目标传送至相同位置;须为 true 或 false。
  • targets(Java 版,entity)/ victim: target(基岩版,CommandSelector<Actor>):要分散的目标。Java 版可使用玩家名称、目标选择器或 UUID,并可选择多个实体;基岩版可使用玩家名称或目标选择器。

结果

条件 Java 版 基岩版
命令不完整或任一参数指定不正确 无法解析 无法解析
spreadDistance: float 小于 0.0 不适用 失败
maxRange: float 小于 spreadDistance: float 加 1 不适用 失败
目标无法解析为一个或多个实体,指定名称的玩家须在线 失败 失败
没有可分散到的有效位置,例如只有熔岩或水 失败 失败
under 模式下,最高高度以下没有合格的非空气方块,或其上方没有两个空气方块 失败 不适用
虽然存在有效位置,但目标过多、无法满足最小距离要求 失败 失败
其他情况 成功 成功

输出

Java 版失败时成功次数、成功值、结果值均为 0;成功时成功次数和成功值均为 1。respectTeams=true 时,结果值为目标所属队伍数量;为 false 时,结果值为目标实体数量。基岩版失败时成功次数为 0,成功时为 1。

示例

Java 版中,将所有玩家按队伍传送至以 (0,0) 为中心、大小为 1000×1000 格的区域内随机地表位置,队伍间最小距离为 200 格:

spreadplayers 0 0 200 500 true @a

原文还给出以下 Java 版示例:将 Red、Blue、Green 三队各一名随机玩家,以及 Alice 和 Bob,传送至以 (0,0) 为中心、大小为 200×200 格的区域内随机地表位置,玩家间最小距离为 50 格。以下保留原文语法:

spreadplayers 0 0 50 100 false @r[team=Red] @r[team=Blue] @r[team=Green] Alice Bob

另见

/tp 和 /teleport:将单个玩家或实体传送到指定位置,包括地下位置。

外部链接

Microsoft Learn:/spreadplayers 命令(2024 年 8 月 1 日)。

来源为 Minecraft Wiki;本中文翻译/改编按 CC BY-NC-SA 3.0 共享。