/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 共享。