You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

我的世界如何用游戏内命令移除生物受击后的无敌帧

Minecraft 纯指令移除生物受伤无敌帧解决方案

你之前的命令未生效主要有两个核心问题:

  • HurtTime字段的类型为短整型,单位是游戏刻(1刻=0.05s),你填写的0s属于类型不匹配,游戏会直接忽略该修改操作,正确取值应为不带单位的整数0
  • 普通数据包tick函数的默认执行时机晚于每tick的伤害判定阶段,等你修改HurtTime时本次tick的无敌帧判定已经完成,修改不会对本次击中生效

可用解决方法

方法1:全局移除所有生物无敌帧(适配所有Java版版本)

将以下命令放到你的数据包的tick函数中,同时在pack.mcmeta中将数据包的加载优先级设为最高,确保命令会在每tick伤害判定之前执行:

execute as @e run data modify entity @s HurtTime set value 0

方法2:仅针对你的高速箭矢生效(性能损耗更低)

  1. 生成你的自定义高速箭矢时,给箭矢打上专属标签,示例命令:
tag @e[type=arrow,nbt=<你的箭矢自定义NBT>] add high_speed_arrow
  1. 每tick检测高速箭矢的击中状态,命中时立即清空目标的无敌帧:
execute as @e[tag=high_speed_arrow] at @s if entity @e[type=!arrow,distance=..0.5,limit=1] run data modify entity @e[type=!arrow,distance=..0.5,limit=1] HurtTime set value 0

方法3:1.19.4及以上版本专用方案

1.19.4版本新增了伤害源参数,你可以直接重写高速箭矢的伤害逻辑,用damage命令自定义伤害时直接添加忽略冷却的属性,无需修改HurtTime字段,示例命令:

damage <被击中实体> 2 arrow bypasses_cooldown from <箭矢持有者>

内容的提问来源于stack exchange,提问作者hfanatic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:27:01