
哭泣的苦力怕
一个哭泣天使与苦力怕的杂交体。你看着它时它会冻结。你不看时它会更快。只伤害你——从不伤害你的房子。
Weeping Creeper
一个苦力怕 × 哭泣天使的杂交体,适用于 Fabric 和 NeoForge 上的 Minecraft 26.1.x。
盯着它:它会冻结。移开视线:它会冲刺。抓住你:它会爆炸 —— 但只伤害你,不会破坏地形。想去哪建就去哪建,再也不用害怕那声 psssss。
功能特性
- 被注视时冻结。 任何时刻,当一只哭泣苦力怕落在你前方 120° 的锥形视野内且拥有视线时,它会完全停止移动。引信不推进、寻路不更新、原地冻结。移开视线、阻断视线,或者躲到墙后 —— 它会重新开始追击。
- 比原版更快(
movementSpeed为 0.40,原版为 0.25 —— 约等于蜘蛛)。当你不看它时,它会猛烈地拉近距离。 - 仅对玩家造成爆炸伤害。 不破坏方块。不会对其他生物、你的动物、你的物品展示框、你的潜影盒、你的一切造成附带伤害。只有你。保留原版伤害缩放,因此充能的哭泣苦力怕在零距离能一击秒杀无护甲玩家。
- 默认替换原版苦力怕。 每一次自然生成的苦力怕都会变成哭泣苦力怕。可从 0%(仅通过刷怪蛋生成)调整到 100%(完全替换)。
- 雕像美学。 通过实体着色 API 施加细微的更深、略去饱和的色调 —— 并非独立纹理,因此已安装的资源包(Faithful、Sphax 等)仍会应用它们的 HD 苦力怕纹理,只是变暗了。
- 泪痕位于每只眼睛下方,绘制为半透明叠加层。可开关。
- 近距离安全网。 走进近战范围后,无论视角如何它都会冻结,因此近距离遭遇不会总以引爆告终。
- 可选爱心粒子,营造“我看到你在看我”的喜剧效果(默认关闭 —— 若符合你的风格,可在配置中启用)。
配置
配置文件位于 config/weepingcreeper.json(首次启动时创建):
{
"replacementChance": 1.0,
"movementSpeed": 0.4,
"lookArcDegrees": 120.0,
"proximityFreezeRadius": 1.5,
"followRange": 64.0,
"tearsEnabled": true,
"heartParticlesEnabled": false,
"heartIntervalTicks": 60,
"tintBrightness": 0.55,
"desaturation": 0.25,
"explosionRadius": 3.0,
"chargedExplosionRadius": 6.0
}
| 键 | 默认值 | 说明 |
|---|---|---|
replacementChance |
1.0 |
原版苦力怕生成中被替换为哭泣苦力怕的比例。0.0 = 从不替换;1.0 = 始终替换。 |
movementSpeed |
0.4 |
移动速度属性。原版苦力怕为 0.25。 |
lookArcDegrees |
120.0 |
被视为“正在注视”的前方锥形宽度。 |
proximityFreezeRadius |
1.5 |
任何在此距离内的玩家都会冻结该苦力怕,无论视角如何。0 表示禁用。 |
followRange |
64.0 |
侦测/追击范围。原版苦力怕约为 16。 |
tearsEnabled |
true |
面部泪痕叠加层。 |
heartParticlesEnabled |
false |
被注视时在苦力怕上方生成爱心粒子。具有喜剧效果,默认关闭。 |
heartIntervalTicks |
60 |
启用时的爱心间隔刻数。20 = 1 秒。 |
tintBrightness |
0.55 |
苦力怕纹理的统一亮度乘数。1.0 = 不变。 |
desaturation |
0.25 |
为呈现雕像效果而进行的逐通道绿色削减。0.0 = 仅统一变暗。 |
explosionRadius |
3.0 |
玩家伤害半径。与原版苦力怕相同。 |
chargedExplosionRadius |
6.0 |
被闪电击中时的半径。与原版充能苦力怕相同。 |
tearsEnabled、heartParticlesEnabled 以及色调相关数值在渲染时实时生效。其他数值需要重启。
底层工作原理
- 自定义实体(
WeepingCreeperEntity extends Creeper)—— 继承标准的苦力怕 AI、膨胀计时器和充能变体。通过EntityJoinLevelEvent(NeoForge)/ServerEntityEvents.ENTITY_LOAD(Fabric)在生成时替换原版苦力怕。 - 注视检测:玩家视线向量与玩家眼睛到苦力怕中心向量之间的点积,对比
cos(arc / 2),再加上原版的hasLineOfSight()检查。 - 冻结:
customServerAiStep停止导航、清除目标、将水平速度归零,并每刻将膨胀引信硬重置为 0。引信重置使用一个极小的 mixin 访问器(CreeperAccessor),因为swell字段是私有的,而单纯调用setSwellDir(-1)每刻只会递减 1 —— 对于已经处于爆炸中段的苦力怕来说太慢了。 - 自定义爆炸:另一个极小的 mixin(
CreeperTickMixin)包装了Creeper#tick内私有的Creeper#explodeCreeper()调用。对于哭泣苦力怕,重定向到WeepingCreeperEntity#explodeWeeping(),它触发一次仅视觉的爆炸(Level.ExplosionInteraction.NONE= 不破坏方块),并仅对半径内的玩家应用原版苦力怕伤害缩放。原版苦力怕不受影响。 - 着色:重写
LivingEntityRenderer#getModelTint(state),使用逐通道 ARGB 乘数。保留原版苦力怕纹理路径,因此资源包重绘仍会通过着色生效。
两个 mixin 都只针对原版 Creeper.class 中极小的字节码范围。应与任何不重定向同一私有调用的内容良好兼容。
需求
- Minecraft 26.1.x
- Java 25
- Fabric Loader 0.18.4+ 配合 Fabric API,或 NeoForge 26.1+
许可证
CC0-1.0 —— 公有领域,随意使用。
源代码
正在加载版本记录…

正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。