/damage 命令

/damage 命令

来源:Commands/damage,英文修订 ID:3785896。

对指定实体施加一定数量的伤害。Java 版所需权限等级为 2;基岩版为 1,需要启用作弊。

用法

/damage 对拥有生命值或等效数值的实体施加伤害。Java 版 <damageType>、基岩版 cause: DamageCause 指定伤害类型。

命令使用游戏其他地方造成伤害时相同的底层逻辑,所以命令所指定的伤害不一定是实体实际受到的精确伤害。伤害来源与类型会通过相关属性修改或抵消伤害。例如,创造模式玩家免疫大部分伤害,抗火抵消归类为火焰的伤害,火焰保护削减这类伤害。实体对命令伤害的反应也与正常伤害相同,例如伤害来源归类为弹射物时,末影人会传送离开。

未定义行为

实体 行为
所有生物 被击退,开始受伤无敌冷却期
气球(基岩版/教育版) 伤害具有来源实体时摇摆
蝙蝠 睡眠中的蝙蝠受伤后开始飞行
末地水晶 由末影龙战斗系统控制
末影人 传送离开
守卫者 尖刺伸出时,若伤害来源为生物且原因不是 magic、block_explosion、projectile,则对来源造成荆棘伤害
潜影贝 传送离开
鱿鱼 伤害来源为实体时生成墨汁粒子

硬编码行为

原文写明:amount: int 为 0 时,总被视为成功造成伤害;不为 0 时,只有实体(盔甲架、NPC、相机除外)、船、画、拴绳结、下落的方块、矿车可能被认定为成功受伤。此处关于 0 的陈述与本页结果表不一致,保留并提示这一来源问题。

部分行为由数据驱动,例如末地水晶爆炸、火球反弹。这些行为不影响命令输出文本、结果与返回值,只有硬编码行为能影响它们。

玩家与智能体

创造模式玩家免疫大多数伤害,generic_kill、out_of_world 除外,详见伤害类型。基岩版/教育版智能体始终可被 /kill 杀死,所以 self_destruct 伤害总会移除智能体,不论 amount: int 是否为 0。

盔甲架

/damage 不能减少盔甲架生命值(fire、fire_tick 除外),从不被视为成功伤害盔甲架,也不能用行为包检测或控制。

击打盔甲架不被视为伤害;生存模式击打两次会摧毁它。伤害来源为生存模式玩家,在 5 游戏刻内对盔甲架执行两次 /damage,会使其掉落所持物品并自毁。创造模式玩家击打会移除盔甲架;以创造玩家为来源执行命令也会移除它。

爆炸总能摧毁盔甲架,/kill 总能杀死它。suicide、block_explosion、entity_explosion 会使盔甲架掉落所持物品并自毁。原文此处仍用旧名 suicide,现行伤害类型表使用 self_destruct。虚空总能杀死盔甲架,void 总会移除盔甲架。

盔甲架在熔岩或火中会着火。fire 会点燃盔甲架并减少 0.5 生命值。盔甲架着火时受到伤害;原因是 fire 且盔甲架不在熔岩或火方块中时,命令减少 1.0 生命值。

箭击中盔甲架会摧毁它并使箭消失;伤害来源为箭时执行 /damage 有相同行为。三叉戟击中盔甲架会摧毁它;以三叉戟为来源执行命令也会摧毁它。盔甲架落地会播放落地声;用 fall 伤害盔甲架会广播落地声。

气球

基岩版/教育版中,点击气球不算伤害,所以 /damage 不降低其生命值,也从不被视为成功伤害。弹射物、火、熔岩、岩浆块总能摧毁气球,/kill 总能杀死它,所以 self_destruct、projectile、fire、fire_tick、lava、magma 会摧毁气球。

船

击打船总被视为伤害;对船执行 /damage 总被视为成功伤害,但行为包不能检测或控制。船用结构完整性而非生命值判断是否破坏,初始结构完整性为 40。命令修改结构完整性而不是生命值。

以末影珍珠为伤害来源时,会降低结构完整性,但即使小于 0 也不会摧毁船。创造模式击打会摧毁船;以创造玩家为来源执行命令,无论 amount: int 是否为 0 都会摧毁船。

相机

基岩版/教育版的相机不能受伤,命令从不被视为成功伤害,也不能用行为包检测或控制。爆炸不影响相机;以玩家为伤害来源执行命令会移除相机。

末地水晶

伤害末地水晶意味着使其爆炸。执行命令无论 amount: int 是否为 0 都会引爆它,并且从不被视为成功伤害。原文对此成功判定标记“需要验证”。

末影龙

栖息时的末影龙免疫箭并点燃箭。以箭为来源不能伤害栖息的末影龙,命令虽失败,箭仍会着火。suffocation 不能伤害末影龙,总被视为失败。

只有玩家能伤害末影龙。只有玩家作为来源,或 block_explosion 作为原因,才能伤害它,且可被行为包检测或控制。/kill 总能杀死末影龙。self_destruct 无论伤害量是否为 0 都会杀死它,命令视为成功。

末影人

除药水外的弹射物不能伤害末影人。原因是 projectile 且来源不是药水实体时,命令使其传送而不受伤,行为包不能检测或控制。如果末影人成功传送离开,命令被视为成功伤害实体。

经验球

玩家不能伤害经验球。命令可减少经验球生命值,但从不被视为成功伤害,行为包不能检测或控制。

下落的方块

命令总被视为成功伤害,行为包不能检测或控制。来源为 piston 时总会摧毁它,掉落下落方块当前所在方块的物品,而非该下落方块自身的物品形式。

恶魂

玩家反弹的火球对恶魂造成 1000 点伤害。命令以被玩家击打过的火球为来源时,不论 amount: int 为何都造成 1000 点伤害;行为包不能检测或控制。

画与拴绳结

推动画或拴绳结会摧毁实体。命令总会摧毁它们;若来源不是创造模式玩家,则掉落物品。无论伤害量是否为 0,总被视为成功伤害,但行为包不能检测或控制。

掉落物

玩家不能伤害掉落物。命令能降低其生命值,但从不被视为成功伤害,行为包不能检测或控制。

矿车

击打矿车总被视为伤害,命令总被视为成功伤害。矿车以结构完整性而非生命值判断是否破坏,初始值为 5;命令修改该值。末影珍珠可降低完整性但不能摧毁矿车。以末影珍珠为命令来源时,即使完整性小于 0,矿车也不会被摧毁。

运输 TNT 的矿车

原因是 projectile 且来源为燃烧的箭或小火球,或原因是 fire、lava 时,会点燃矿车并被视为成功。原文接着又写“从不被视为成功伤害,且行为包不能检测或控制”,此处存在判定表述冲突,按来源保留。其他行为与普通矿车相同。

NPC

基岩版/教育版的 NPC 不能受伤。命令从不被视为成功伤害,行为包不能检测或控制。只有虚空、/kill、世界建造者能移除 NPC。原因为 void、self_destruct,或原因是 entity_attack 且来源为世界建造者时,命令移除 NPC;其他情况无效果。

激活的 TNT

激活的 TNT 不能受伤,命令从不被视为成功伤害。/kill 总能杀死它,self_destruct 无论伤害量是否为 0 都会杀死它。

潜影贝

潜影贝在火或熔岩中会传送。lava 或 fire 不能伤害它,而会使它传送,命令被视为失败,行为包不能检测或控制。闭合的潜影贝免疫弹射物;用 projectile 伤害闭合潜影贝无效,视为失败,行为包不能检测或控制。

小火球

小火球不能被击打。命令从不被视为成功伤害,行为包不能检测或控制。

三叉戟

三叉戟不能受伤,命令从不被视为成功伤害。爆炸不影响三叉戟;block_explosion、entity_explosion 原因的命令不能被行为包检测或控制。

凋灵之首

凋灵之首不能受伤,命令从不被视为成功伤害。黑色凋灵之首不能被击打;对黑色凋灵之首执行命令也从不被视为成功伤害,行为包不能检测或控制。

凋灵

凋灵免疫溺水与摔落,drowning、fall 对它无效,命令不被视为成功伤害,行为包不能检测或控制。凋灵不能伤害其他凋灵;若原因不是 self_destruct 且来源为另一只凋灵,命令无效,不被视为成功伤害,行为包不能检测或控制。

生成动画期间,若原因是 entity_attack 且来源为生物,则命令使来源生物被击退。凋灵生成时除虚空外不受其他伤害;来源不是 void 时命令无效,判定失败,行为包不能检测或控制。凋灵死亡过程中不能受伤,命令无效,判定失败,行为包不能检测或控制。

护甲状态的凋灵免疫箭。此状态下原因是 projectile 且来源为箭时命令无效,不被视为成功伤害,行为包不能检测或控制。

伤害类型

以下类型用于 Java 版 <damageType> 或基岩版 cause: DamageCause。

Java 版

伤害类型 可绕过的防护
arrow 来源未列备注
bad_respawn_point 来源未列备注
cactus 来源未列备注
campfire 来源未列备注
cramming 盔甲、盾牌、狼铠
dragon_breath 盔甲、盾牌
drown 盔甲、盾牌、狼铠
dry_out 来源未列备注
explosion 来源未列备注
fall 盔甲、盾牌
falling_anvil 盾牌
falling_block 来源未列备注
falling_stalactite 盾牌
fireball 来源未列备注
fly_into_wall 盔甲、盾牌
freeze 盔甲、盾牌、狼铠
generic 盔甲、盾牌
generic_kill 无敌、盔甲、抗性提升、盾牌、狼铠
hot_floor 来源未列备注
in_fire 来源未列备注
in_wall 盔甲、盾牌、狼铠
indirect_magic 盔甲、盾牌、狼铠
lava 来源未列备注
lightning_bolt 来源未列备注
magic 盔甲、盾牌、狼铠
mob_attack 来源未列备注
mob_attack_no_aggro 来源未列备注
mob_projectile 来源未列备注
on_fire 盔甲、盾牌
out_of_world 无敌、盔甲、抗性提升、盾牌、狼铠
outside_border 盔甲、盾牌、狼铠
player_attack 来源未列备注
player_explosion 来源未列备注
sonic_boom 盔甲、附魔、盾牌
spit 来源未列备注
stalagmite 盔甲、盾牌
starve 盔甲、状态效果(包括抗性提升)、盾牌、狼铠
sting 来源未列备注
sweet_berry_bush 来源未列备注
thorns 狼铠
thrown 来源未列备注
trident 来源未列备注
unattributed_fireball 来源未列备注
wind_charge 来源未列备注
wither 盔甲、盾牌、狼铠
wither_skull 来源未列备注

基岩版

名称 描述 备注
anvil 下落的铁砧造成 戴头盔的目标受伤更少
block_explosion 方块爆炸造成 盔甲减伤,爆炸保护各等级进一步减伤
campfire 站在营火上 需要补充资料
charging 需要补充资料 需要补充资料
contact 接触仙人掌、甜浆果丛等伤害方块 盔甲减伤,保护各等级进一步减伤
drowning 溺水或生物受雨水伤害 需要补充资料
entity_attack 生物近战攻击 盔甲减伤,保护各等级进一步减伤
entity_explosion 生物爆炸 盔甲减伤,爆炸保护各等级进一步减伤
fall 高处坠落或使用末影珍珠传送 摔落缓冲/保护盔甲减伤,部分生物免疫或少受摔落伤害;详见伤害的摔落伤害章节
falling_block 需要更多资料 需要补充资料
fire 站在火中 需要补充资料
fire_tick 自身着火 火焰保护/保护减伤;烈焰人、恶魂、岩浆怪、凋灵、凋灵骷髅、僵尸猪灵免疫燃烧
fireworks 烟花火箭爆炸 需要补充资料
fly_into_wall 用鞘翅飞行时撞上方块 需要补充资料
freezing 站在细雪中 需要补充资料
lava 熔岩 需要补充资料
lightning 闪电 需要补充资料
mace_smash 重锤重击 需要补充资料
magic 药水、龙息、唤魔者尖牙或守卫者 需要补充资料
magma 岩浆块 需要补充资料
none 未指定伤害类型的 /damage 需要补充资料
override 脚本 API 覆盖实体生命值 需要补充资料
piston 活塞 需要补充资料
projectile 箭等弹射物 需要补充资料
ram_attack 山羊冲撞 需要补充资料
self_destruct /kill 需要补充资料
sonic_boom 监守者音爆 需要补充资料
soul_campfire 站在灵魂营火上 需要补充资料
stalactite 下落的钟乳石 需要补充资料
stalagmite 石笋 需要补充资料
starve 饥饿 需要补充资料
suffocation 窒息 需要补充资料
temperature 雪傀儡受生物群系温度伤害 需要补充资料
thorns 荆棘 需要补充资料
void 虚空 需要补充资料
wither 凋零效果 需要补充资料

语法

Java 版:

damage <target> <amount> [<damageType>] [at <location>]
damage <target> <amount> [<damageType>] [by <entity>] [from <cause>]

基岩版:

damage <target: target> <amount: int> <cause: DamageCause> entity <damager: target>
damage <target: target> <amount: int> [cause: DamageCause]

参数

<target>: entity/target: target(CommandSelector<Actor>):受伤实体。Java 版只能选一个;基岩版可选多个。Java 版接受玩家名称、目标选择器或 UUID,基岩版接受名称或目标选择器。

<amount>: float(Java 版):伤害量,必须为不小于 0.0 的浮点数。基岩版 amount: int 必须为 0 至 2147483647 的整数(含边界)。

<damageType>: resource/cause: DamageCause:伤害类型,影响死亡消息、随难度缩放等。Java 版默认 minecraft:generic,必须为 minecraft:damage_type 注册表中已有的资源位置。基岩版可用参数见 官方附加包文档。

<location>: vec3(Java 版):伤害并非来自实体时的起点,例如下界中爆炸的床的位置,由三个坐标组成,可用相对坐标。

<entity>: entity/damager: target(CommandSelector<Actor>):直接造成伤害的实体,应选中单个实体。

<cause>: entity(Java 版):伤害的根本来源,例如射出箭的骷髅,应选中单个实体。

结果

参数指定错误时无法解析。以下情况失败:

  • amount/amount: int 小于或等于 0。这与上方基岩版硬编码说明的零伤害判定存在冲突。
  • 伤害量大于 0,但伤害不被视为成功伤害实体。
  • 基岩版伤害量大于 0,且目标不是原版实体或没有硬编码受伤行为;原文对此标记“需要验证”。
  • Java 版 by 的来源或基岩版 damager: target 指向多个实体。

其他情况成功。

输出

Java 版失败时成功次数、success、result 均为 0,成功时均为 1。基岩版失败时成功次数为 0,成功时为被认定为成功受伤的实体数量。

示例

让名为 villager_1 的村民对最近的铁傀儡造成 1 点伤害:

# Java 版
/damage @e[type=iron_golem, sort=nearest, limit=1] 1 generic by @e[type=villager, limit=1, name="villager_1"]
# 基岩版
/damage @e[type=iron_golem, c=1] 1 entity_attack entity @e[type=villager, c=1, name="villager_1"]

外部链接


本文为 Minecraft Wiki 对应英文条目的中文翻译与改编,已按要求省略变更历史。原作者与贡献者见来源页及其历史;除另有说明外,按 CC BY-NC-SA 3.0 非商业、署名、相同方式共享。