/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"]
外部链接
- Microsoft Learn:
/damage命令,2024-08-16。
本文为 Minecraft Wiki 对应英文条目的中文翻译与改编,已按要求省略变更历史。原作者与贡献者见来源页及其历史;除另有说明外,按 CC BY-NC-SA 3.0 非商业、署名、相同方式共享。