Skip to content

选区与保存(pos1 / pos2 / save / stage)

上一页:结构文件(.nbt / .schem / 标记块 / 地形融合) · 下一页:蓝图与目标(blueprint.yml)

世界里已经盖好的建筑变成一座 QR 遗迹模板,靠的就是这一套命令:框选 → 存模板 → 预览投放 → 需要时还原。全程不碰 YAML(基础字段自动生成,回头再用 遗迹模板 完善)。

全部命令权限 qinhruins.admin。完整命令树见 命令大全


1. 框选:/qr pos1 与 /qr pos2

站在世界里,看向一个方块,敲命令把它设为选区的一个角:

text
/qr pos1     ← 看向的方块设为第一个角
/qr pos2     ← 看向的方块设为第二个角

要点:

  • 靠准星选角:QR 取你视线命中的方块(约 100 格内),不是你脚下的方块。对着目标方块看再敲命令。
  • 准星没指到任何方块(指向天空)会提示「请先看向一个方块」。
  • 两个角组成一个长方体包围盒(含两端方块),无所谓谁在前谁在后、谁高谁低,QR 自动取 min/max。
  • 选区是按玩家记住的,每个管理员各有自己的 pos1/pos2,互不干扰。

🖼️ [图片占位] 站在建筑外,准星分别指向对角两个方块设 pos1/pos2,选区高亮的示意图 · 建议 assets/selection-corners.png


2. 保存:/qr save

框好选区后,把它存成一座遗迹模板:

text
/qr save <遗迹id>

QR 会:

  1. 扫描选区内的牌子标记和标记块——发现的刷怪点 / 奖励箱 / 核心 / 命令点写进 blueprint.yml,并把标记牌子换成对应的功能方块(如核心牌子→磁石、奖励箱牌子→箱子、刷怪牌子→清掉);
  2. 用 Bukkit 原生 API 把选区 capture 成 structure.nbt
  3. templates/<遗迹id>/ 下写出 structure.nbt + 一份默认 template.yml + blueprint.yml(已存在则不覆盖)。
  4. 回报选区尺寸(宽 × 高 × 深)和扫到的标记数量。

之后:

  • 默认生成的 template.ymlgeneration.enabled: false(先不自然生成),你按 遗迹模板 把它配好、开 enabled、设 weight 等再 /qr reload
  • <遗迹id> 有 Tab 补全(列已有模板 ID,方便覆盖更新)。

提示

更新一座已存在的遗迹:重新框选、/qr save <同一id>structure.nbt 会被新选区覆盖,但已有的 template.yml / blueprint.yml 不会被覆盖(保住你手动配的字段)。想重置就先删那两个文件。


3. 预览暂存:/qr stage

存好模板后,/qr stage 让你在原地用幽灵方块预览结构怎么落地——只有你自己看得见、不真正改世界,满意了再确认放下。这是投放遗迹前的「试摆」利器。

text
/qr stage start <模板>      开始暂存:在准星位置摆出幽灵预览
/qr stage here              把暂存原点移到准星指向的方块
/qr stage move <dx> <dy> <dz>   按偏移微调位置
/qr stage rotate            循环旋转(NONE → 90 → 180 → 270)
/qr stage confirm           确认放下:真正生成这座遗迹锚点
/qr stage cancel            取消:清掉幽灵预览,不生成

工作机制:

子命令行为
start <模板>以你准星指向的方块为原点,发送幽灵方块(仅你可见)画出结构本体,并用粒子描出包围盒边框。
here把原点搬到当前准星位置,重画预览。
move <dx> <dy> <dz>在当前原点上按 XYZ 偏移微调(如 move 0 1 0 抬高一格)。
rotate朝向在四向间循环,预览跟着转。
confirm在预览位置真正生成锚点(落地、融地形、地基、刷怪点等全部生效),清掉幽灵。
cancel放弃,清掉幽灵,世界毫无改动。

要点:

  • 幽灵方块是假的:预览只发给你本人的客户端,世界方块一点没动,cancel 后无痕。
  • 预览方块上限 preview-cap(默认 12000):结构方块数超过此值,就只画粒子边框(发太多假方块会卡客户端)。想预览更大结构就调大 config.ymlstaging.preview-cap
  • 标记块在预览里不画(屏障 / 基岩),所见即放置后的实际样子。
  • 预览只在你和原点同一世界时显示。

🖼️ [图片占位] 玩家面前悬浮着半透明幽灵方块预览 + 绿色粒子包围盒,rotate 后朝向变化的对比图 · 建议 assets/stage-preview.png

提示

stage vs spawn/qr spawn <模板> 直接在脚下投放(无预览);/qr stage 先预览再确认,适合精挑位置和朝向。两者都需要 qinhruins.admin


4. 牌子标记

/qr save/qr import 会扫描选区里的告示牌当玩法标记。第一行写标签,后面几行写参数:

第一行标签第二行第三行第四行含义
[mob] / [spawn]怪物 ID数量*等级(如 3*5阶段号普通刷怪点
[mythicmob] / [mmob]MM 怪名数量*等级阶段号MythicMobs 刷怪点(自动加 mm- 前缀)
[chest] / [loot]战利品表名解锁阶段解锁式奖励箱
[core]秘境核心(钥石激活点)
[command] / [cmd]命令第一段第二段第三段生成时执行的命令点

保存后,标记牌子会被换成对应方块(刷怪 / 命令点→清掉,奖励箱→箱子,核心→磁石)。

完整蓝图字段(手写 blueprint.yml、阶段目标、变体)见 蓝图与目标;想用 GUI 标点而不是摆牌子,见 可视化建迹


5. 移除与还原:/qr remove

把一座已生成的锚点回收掉,并尽量把地形还原成生成前的样子:

text
/qr remove <锚点id>

QR 会:把该锚点从世界登记里移除、清掉它的刷怪 / 机关 / 容器战利品记录 / NPC,然后从快照还原原地形,最后回报「已还原」或「无快照(不还原)」。

<锚点id> 有 Tab 补全。配套查找命令:/qr tp <锚点id>(传送过去)、/qr markers <锚点id>(反扫标记)。

快照机制(决定 remove 能不能还原)

config.ymlcleanup 段控制:

yaml
cleanup:
  snapshot-restore: true        # 生成结构前快照原地形,/qr remove 时还原
  max-snapshot-volume: 500000   # 快照体积上限(方块数)
字段默认说明
snapshot-restoretrue:生成遗迹先把原地形拍快照存到磁盘,remove / 消退再生时据此还原。:省磁盘,但移除后不还原方块(留下个坑)。
max-snapshot-volume500000快照体积上限(方块数)。超大结构(如百万级)同步快照会卡死主线程 → 看门狗杀服,所以超过此值就跳过快照(移除不还原,但不卡服)。0=不限(危险)。

注意

想让遗迹移除 / 自然消退后真正还原地形,必须保持 snapshot-restore: true 关掉它,/qr remove 只摘登记不还方块。

打通的遗迹随时间「消退再生」也依赖快照,见 自然生成与预加载director.regen-hours


6. 完整流程示例:把一座塔变成会自然生成的遗迹

text
1. 站在塔外,准星指向塔的一个底角     →  /qr pos1
2. 走到斜对角,准星指向塔顶另一角     →  /qr pos2
3. (可选)在塔里摆 [mob]/[chest]/[core] 牌子标记
4. 存成模板                          →  /qr save ancient_tower
5. 预览它放在别处长啥样              →  /qr stage start ancient_tower
   微调位置 / 转向                   →  /qr stage move 0 1 0 / /qr stage rotate
   满意就放下试看                    →  /qr stage confirm
6. 不要这个试放的实例了              →  /qr remove <上一步给的锚点id>
7. 打开 templates/ancient_tower/template.yml,
   开 generation.enabled、设 weight/biomes/y 等(见「遗迹模板」),
   保存 → /qr reload,从此它会在世界里自然生成

🖼️ [图片占位] 上述六步的流程缩略图(框选→存→预览→确认→还原→开启生成) · 建议 assets/save-workflow.png


下一步