使用 NBT 的 /summon 命令:装备、属性和控制生物行为的标签
召唤一个生物只需要一个词。但要让它保留装备、不消失、不燃烧、不乱跑,则需要六个特定的标签。本文将详细介绍每个标签的作用。
/summon zombie 可以正常运行。但要让一个僵尸保留盔甲、静止不动、在白天存活且永不消失,还需要六个额外的标签,而这些标签无法通过命令帮助发现。
六个重要标签
/summon zombie ~ ~ ~ {PersistenceRequired:1b,NoAI:1b,Silent:1b,Invulnerable:1b,
CustomName:'"Guard"',CustomNameVisible:1b}
| 标签 | 效果 |
|---|---|
PersistenceRequired:1b | 永不消失。 对地图制作来说最重要的标签 |
NoAI:1b | 冻结——不移动、不攻击、无重力 (Gravity) |
NoGravity:1b | 漂浮,但保留其 AI |
Silent:1b | 无生物音效 |
Invulnerable:1b | 除了 /kill 和虚空 (The Void) 之外,免疫所有伤害 |
Glowing:1b | 穿墙轮廓显示 |
PersistenceRequired 和命名是相关但不相同的:命名牌 (Name Tag) 也能防止消失,但通过 NBT 设置的 CustomName 不会,除非你添加 PersistenceRequired。这几乎让所有制作商店 NPC 的人都犯过错误。
不掉落的装备
{HandItems:[{id:"minecraft:diamond_sword",count:1},{}],
ArmorItems:[{},{},{},{id:"minecraft:diamond_helmet",count:1}],
HandDropChances:[0f,0f],ArmorDropChances:[0f,0f,0f,0f]}
有两点需要注意。ArmorItems 的顺序是脚、腿、胸、头——从下到上,这与人们列举盔甲的顺序相反。并且,空的 {} 条目是必需的占位符;你不能跳过槽位。
掉落几率是 0f 到 1f 之间的浮点数。任何高于 1f 的值都保证掉落 并且 保持物品的附魔和耐久度不变。
属性
{attributes:[{id:"minecraft:max_health",base:40},
{id:"minecraft:movement_speed",base:0.35}]}
设置 max_health 不会 将生物的生命值恢复到新的最大值——它会以旧的生命值生成,看起来像是受了伤。请同时添加 Health:40f。
常见 ID:max_health、movement_speed、attack_damage、armor、knockback_resistance、 follow_range、scale。
乘客向下堆叠
{Passengers:[{id:"minecraft:skeleton",Passengers:[{id:"minecraft:chicken"}]}]}
最外层的实体是底部的实体。将 Passengers 嵌套在 Passengers 内部会向上构建“塔”。如果你想配置每个骑乘者,每个骑乘者都需要自己的完整 NBT。
基岩版有所不同
基岩版 (Bedrock) 的 /summon 没有 NBT 参数。其语法是 /summon <entity> <pos> <yRot> <xRot> <spawnEvent> <name>,行为通过 生成事件而不是标签来设置。粘贴到基岩版中的 Java NBT 数据块将无法运行。
在 /summon 生成器 中选择一个生物并直观地切换这些标签——盔甲槽位顺序已为你处理。