/worldborder 有十种形式,其中只有两种是渐变的
set 和 add 可以带一个可选的时间参数,让边界逐渐收缩;其余八种都是瞬间生效。另外说明距离指的是直径而不是半径,以及 Minecraft 的四个边界默认值到底是什么意思,例如伤害为何随越界距离增加。
世界边界只有一条命令,却有十种完整形式,而其中两种与其余八种的区别,正是所有收缩边界地图得以成立的根源。以下内容取自 Mojang 为 26.3 提供的命令树,以及本页规划器所采用的默认值。
全部十种形式
/worldborder get
/worldborder set <distance>
/worldborder set <distance> <time>
/worldborder add <distance>
/worldborder add <distance> <time>
/worldborder center <pos>
/worldborder damage amount <damagePerBlock>
/worldborder damage buffer <distance>
/worldborder warning distance <distance>
/worldborder warning time <time>
这就是完整列表——没有 remove,没有 reset,也无法查询单项设置。get 只返回直径,别的什么都不给。
只有 set 和 add 接受时间参数
有两种形式可以带一个可选的尾部 <time>,单位是刻(tick),除非你加上单位——60s 是六十秒,光写 60 则是三刻:
/worldborder set 100 60s—— 用 60 秒移动到 100 格的直径/worldborder add -50 30s—— 用 30 秒收缩 50 格
其余所有形式都是瞬间生效。这就是所有收缩边界小游戏赖以成立的机制,也是为什么这类地图用计时器反复执行 set/add,而不是一遍遍设置更小的数字——一条带时间参数的命令就能产生平滑收缩,客户端会把它渲染成一面移动的墙。
add 配上负数距离,就是相对收缩的写法。并不存在单独的减法形式。
distance 指的是直径,不是半径
set 和 add 接受的是直径。一个 /worldborder set 6000 让你从中心向每个方向各有 3000 格,而不是 6000 格。这是该命令最常见的一个错误,本页的规划器有一部分存在意义就是为了在两者之间换算。
center 是独立的,接受一个坐标,所以边界是一个以你最后设定的位置为中心的正方形——移动中心并不会改变它的大小。
四个默认值的含义
| 设置 | 默认值 | 含义 |
|---|---|---|
damage amount | 0.2 | 每秒伤害,每超出缓冲带一格 |
damage buffer | 5 | 超出边界多少格后开始造成伤害 |
warning distance | 5 | 距离边界多少格时出现红色暗角 |
warning time | 300 刻(15 秒) | 边界逼近时提前多久显示警告——写作 15s |
伤害这一项值得读两遍:它随你在外面多远而变,而不是随你在外面待了多久。按默认值,站在边界外 10 格意味着超出缓冲带 5 格,也就是每秒 1 点伤害——而外面 30 格就是每秒 5 点。一个持续向外走的玩家会死得越来越快,这正是设计上要施加的压力。
把 damage buffer 设为 0 会完全取消缓冲带,把 damage amount 设为 0 则让边界变成纯视觉效果——一堵你能穿过去的墙,屏幕发红,但没有任何后果。
警告时间关乎移动,而非位置
warning distance 由你所在的位置触发。warning time 则由边界将要到达的位置触发:按默认的 15,收缩中的边界会在抵达你之前 15 秒发出警告,哪怕你现在离它还远得很。
两者可以同时触发,而且都只是给屏幕染色——都不会拦住玩家。