/effect 命令
来源:Commands/effect,英文修订 ID:3881223。
添加或移除玩家及其他实体的状态效果。Java 版所需权限等级为 2;基岩版为 1,需要启用作弊。
用法
Java 版中,如果目标已有相同 ID 的状态效果,只能添加持续时间更长或放大倍率更高的新效果。
- 新效果倍率更高且持续时间更短时,原效果会被隐藏。
- 新效果倍率更低且持续时间更长时,新效果会被隐藏。若两者的
hideParticles值不同,则把当前活动效果的此值设为命令指定的值。 - 其他情况下,新效果替换原活动效果,已有隐藏效果不变。
只有活动效果发生变化时命令才成功,隐藏效果是否变化不影响这一判断。
基岩版中,如果目标已有此状态效果,倍率相同且持续时间更长的新效果会覆盖旧持续时间;倍率更高的新效果则覆盖任何先前效果。无论新效果能否覆盖原效果,都会应用 hideParticles 值。如果玩家用 NBT 编辑器获得负等级效果,效果等级会跳至 255。
语法
Java 版,清除全部效果或一种效果:
effect clear [<targets>] [<effect>]
给予效果:
effect give <targets> <effect> [<seconds>] [<amplifier>] [<hideParticles>]
给予无限时长的效果,界面显示为 ∞:
effect give <targets> <effect> infinite [<amplifier>] [<hideParticles>]
基岩版,给予或移除效果:
effect <player: target> <effect: Effect> [seconds: int] [amplifier: int] [hideParticles: Boolean]
给予无限时长的效果,界面显示为 ∞:
effect <player: target> <effect: Effect> infinite [amplifier: int] [hideParticles: Boolean]
移除全部效果或一种效果:
effect <player: target> clear [effect: Effect]
参数
<targets>: entity/player: target(CommandSelector<Actor>):目标实体。Java 版未指定时,默认为执行命令的玩家;可用玩家名称、目标选择器或 UUID。基岩版可用玩家名称或目标选择器。以名称指定的玩家必须在线。
<effect>: resource/effect: Effect:要添加或移除的状态效果。Java 版必须为 minecraft:mob_effect 注册表中的资源位置;基岩版必须为有效效果枚举。
<seconds>: integer/seconds: int:持续时间,单位为秒,但 instant_damage、instant_health、saturation 使用游戏刻。默认 30 秒,这三种即时效果默认 1 游戏刻。Java 版范围为 0 至 1000000;基岩版范围为 0 至 2147483647(均含边界),但大于 1000000 的值视作 1000000。
<amplifier>: integer/amplifier: int:额外增加的效果等级,默认 0,范围 0 至 255。第一等级(如生命恢复 I)的放大倍率为 0,第二等级(如生命恢复 II)为 1,即实际等级等于倍率加一。
<hideParticles>: bool/hideParticles: Boolean:是否隐藏状态效果粒子;Java 版还会隐藏 HUD 指示图标。必须为 true 或 false,默认 false。
结果
命令不完整或任一参数指定错误时,Java 版无法解析,基岩版失败。目标没有解析为一个或多个实体时失败。
Java 版 effect give 中,若所有目标均符合下列一种或多种情况,则失败;基岩版相应的给予效果操作仍可成功:
- 实体免疫此效果。
- 已有相同 ID、相同
hideParticles值的效果,新效果既无更高倍率,也无更长持续时间。 - 已有相同 ID、相同
hideParticles值的效果,新效果倍率更低且持续时间更长。
Java 版 effect clear 在非玩家执行者未指定目标时失败;未从任何实体移除效果时也失败。基岩版 effect ... clear 未从任何实体移除效果时失败。其他情况成功。
输出
Java 版失败时成功次数、success、result 均为 0;成功时成功次数与 success 为 1,result 为被给予或移除效果的实体数量。基岩版失败时成功次数为 0,成功时为被给予或移除效果的实体数量。
示例
| 用途 | Java 版 | 基岩版 |
|---|---|---|
| 给当前实体抗性提升 V,持续一百万秒并隐藏粒子 | effect give @s minecraft:resistance 1000000 4 true |
effect @s resistance 1000000 4 true |
| 给最近玩家速度 II,持续 60 秒 | effect give @p minecraft:speed 60 1 |
effect @p speed 60 1 |
| 给最近玩家速度 III,持续 60 秒 | effect give @p minecraft:speed 60 2 |
effect @p speed 60 2 |
| 移除所有玩家的急迫效果 | effect clear @a minecraft:haste |
effect @a haste 0 |
| 移除所有僵尸的全部效果 | effect clear @e[type=zombie] |
effect @e[type=zombie] clear |
参考资料
- 原文历史部分引用了已修复问题 MC-1541:较强效果覆盖较弱效果时,较弱效果应被隐藏。
外部链接
本文为 Minecraft Wiki 对应英文条目的中文翻译与改编,已按要求省略变更历史。原作者与贡献者见来源页及其历史;除另有说明外,按 CC BY-NC-SA 3.0 非商业、署名、相同方式共享。