基本信息
我的世界Java版本
平台
运行环境
分类
创作者
详情信息
根本没有这样的武器
五把不遵循原版伤害结算规则的武器。伤害数值由使用场景与目标状态共同决定。
模组名称:根本没有这样的武器
模组 ID:nosuchweapon
适用版本:Minecraft 1.20.1 / Forge 47.4.16
客户端要求:不需要安装于客户端(多人游戏中服务端安装即可,但客户端需安装以正确显示物品模型与贴图)
概述
本模组添加五把武器。与原版武器不同,这五把武器均不通过攻击力属性结算伤害,而是各自基于独立的判定规则计算伤害数值。
五把武器在设计上分别对应五种不同的规则偏离方向:数值规则、物品机制、运动状态、附魔数据、坐标空间。
所有武器均注册于独立的创造模式物品栏「根本没有这样的武器」,稀有度为史诗,具备抗火属性,且不可堆叠。
武器列表
反生命方程式
外观:剑形武器,护手与握柄构成一台计算器造型。
伤害规则:
| 目标状态 | 效果 |
|---|---|
| 满生命值 | 生命值降至 1 点,并获得 5 秒「锁血」状态 |
| 未满生命值 | 造成等同于目标已损失生命值 2 倍的伤害 |
「锁血」状态持续期间,该武器无法将目标的生命值降至 0。
使用代价:每次攻击消耗使用者 1 级经验等级。经验等级为 0 时,攻击改为对使用者自身造成 1 点伤害。
附加表现:命中时在目标上方生成一行公式文本,文本由随机符号与伤害数值组合而成,持续 2.25 秒后消失。
死亡消息:[目标] 被 反生命方程式 证明了不存在
背包加特林
外观:弩形武器,由弩身、漏斗、潜影盒与物品展示框组成。
伤害规则:右键使用,将背包内的物品作为弹药发射。伤害计算公式为:
伤害 = √堆叠数量 × 价值系数
价值系数按物品材质档位与获取难度分级,取值范围为 2.0 至 16.0:
| 物品类别 | 价值系数 |
|---|---|
| 泥土、圆石等常见方块 | 3.0 或 2.0 |
| 木制、石制、皮革制装备 | 3.0 |
| 铁制、金制、锁链制装备 | 5.0 |
| 钻石制装备 | 8.0 |
| 下界合金制装备 | 12.0 |
| 下界之星、龙蛋、鞘翅等 | 16.0 |
弹药发射后整组消失。弹药栏位仅包含主背包与快捷栏,不含盔甲栏与副手栏。
特殊交互:
-
以村民刷怪蛋作为弹药时,命中处生成一只村民
-
以下界之星作为弹药时,在使用者所在位置产生爆炸
死亡消息:[目标] 被 [数量] 个[物品] 射杀了
重力翻转锤
外观:锤形武器,锤头为铁砧,锤身为粘液块,附有羽毛装饰。
伤害规则:命中实体后赋予目标 10 秒「个人重力翻转」状态。状态持续期间,目标的垂直速度持续向上增加,表现与自由落体方向相反。
目标接触天花板或到达世界高度上限时状态终止,并受到伤害:
伤害 = 上升高度 × 1.5
对玩家使用时,目标通常无法触及天花板,将上升至世界高度上限后终止状态并自然下落。
使用代价:使用者在攻击时同样获得 1 秒「个人重力翻转」状态。
死亡消息:[目标] 掉向了天空
附魔剥离器
外观:钳形武器,上颚为砂轮,下颚为铁砧,轴心为青金石块。
伤害规则:命中实体后,从目标的装备栏位中随机选取一件附魔装备,移除其中一个随机附魔,并以附魔书的形式掉落于目标所在位置。
该武器不造成常规生命值伤害。仅当目标不存在可移除的附魔时,造成 2 点伤害。
使用代价:使用者自身随机一件附魔装备的随机附魔等级降低 1 级。
死亡消息:[目标] 的[附魔名称] 被拿走了
死亡消息中的附魔名称取自实际被移除的附魔。
区块切割者
外观:下界合金剑形武器,刃身存在一块规则形状的缺口。
伤害规则:命中实体后,将目标传送至其所在区块的随机边缘位置,并造成伤害:
伤害 = 传送前后的直线距离 × 2
传送目标位置的坐标会取整至方块中心。
限制条件:
-
传送距离上限为 32 格
-
不会加载未加载的区块
-
冷却时间为 30 秒
死亡消息:[目标] 被送到了错误的地方
获取方式
五把武器均提供两种获取途径:常规合成配方与仪式条件。
合成配方
全部为有序合成,材料数量与原版合成表一致。
反生命方程式
纸 命名牌 末影之眼
红石 (空) 金苹果
背包加特林
潜影盒 物品展示框 物品展示框
弩 发射器 物品展示框
(空) 漏斗 物品展示框
重力翻转锤
紫颂花 铁砧 紫颂花
紫颂花 粘液块 紫颂花
(空) 下界之星 羽毛
附魔剥离器
砂轮 铁砧 下界之星
(空) 青金石块 (空)
青金石块 青金石块 青金石块
区块切割者
地图 铁砧 地图
地图 下界合金剑 地图
(空) 末影珍珠 指南针
仪式条件
| 武器 | 条件 |
|---|---|
| 反生命方程式 | 手持命名牌右键铁砧,8 格范围内存在女巫 |
| 重力翻转锤 | 潜影贝子弹命中铁砧,且铁砧上方放置粘液块 |
| 附魔剥离器 | 下落的铁砧被闪电命中,4 格范围内存在砂轮与下界之星 |
满足仪式条件时直接获得对应武器,不消耗材料。
实现说明
伤害结算
五把武器均拦截 AttackEntityEvent 事件,取消原版攻击流程后通过自定义 DamageSource 结算伤害。取消原版流程的原因为原版攻击会先按攻击力属性造成一次伤害,该次伤害会干扰上述基于状态判定的伤害计算。
攻击冷却由模组自行重置,以保持武器的攻击频率与原版一致。
死亡消息
死亡消息通过继承 DamageSource 并重写 getLocalizedDeathMessage 方法实现。CombatTracker 在生成死亡消息时会调用该方法,因此支持动态文本。
状态效果
「锁血」与「个人重力翻转」为自定义状态效果。状态终止采用延迟移除队列,原因是在 MobEffect#applyEffectTick 中直接调用 removeEffect 会触发 ConcurrentModificationException。
连续攻击判定
原版 LivingEntity#hurt 方法在 invulnerableTime 大于 10 时,会对伤害值不高于上一次的攻击直接返回 false。背包加特林的射击间隔为 4 tick,若不处理该判定,连续射击中的绝大部分攻击将被丢弃。
处理方式为将 nosuchweapon:gatling 伤害类型注册至 minecraft:bypasses_cooldown 标签。
兼容性与注意事项
-
五把武器的伤害均不经过攻击力属性,附魔「锋利」「亡灵杀手」等对伤害数值无效
-
「保护」「抗性提升」等减伤效果仍会正常生效
-
「锁血」状态仅阻止该武器造成的伤害,其他来源的伤害正常生效
-
区块切割者的传送目标限定为已加载区块,在未探索区域使用时不会发生传送
已知限制
-
附魔剥离器从玩家目标身上移除附魔时,仅修改目标当前装备的物品数据,不影响其背包内的同种物品
-
区块切割者在目标周围无可用落点时会跳过本次传送,但仍会消耗冷却时间




