我的世界模组——强化模组




2024-11-09

blog_main_img

上个月发布1.21.3 java版的我的世界,趁着休息做个强化模组

项目地址:

https://github.com/zoyluoblue/mc_mods/tree/main/magic

Magic 强化台模组规则说明

这是一个 Minecraft 1.21.3 Fabric 模组,基于 Fabric Loader 0.18.4。模组新增功能方块“强化台”,用于给工具和武器添加独立强化属性。

演示


版本信息

  • Minecraft:1.21.3
  • Fabric Loader:0.18.4
  • Fabric API:0.114.1+1.21.3
  • 模组 ID:magic
  • 强化台方块 ID:magic:strengthening_table
  • 打包文件:build/libs/magic-fabric-1.21.3-loader0.18.4-1.0.0.jar

强化台获取方式

创造模式获取

创造模式打开物品栏,在“功能性方块”分类里可以找到“强化台”。它会显示在原版“锻造台”后面。

也可以使用命令获取:

/give @p magic:strengthening_table

生存模式合成

强化台使用有序合成,合成布局如下:

铁锭       绿宝石       铁锭
紫水晶碎片 锻造台       紫水晶碎片
铁锭       铁锭         铁锭

配方符号:

符号 物品
I 铁锭
E 绿宝石
A 紫水晶碎片
S 锻造台

实际配方:

I E I
A S A
I I I

单个强化台需要:

材料 数量
铁锭 5
绿宝石 1
紫水晶碎片 2
锻造台 1

强化台界面规则

强化台有两个槽位:

槽位 用途 规则
左侧槽位 放入工具或武器 每次只能放 1 个可强化物品
右侧槽位 放入强化材料 必须放入当前升级所需的材料

可强化物品包括:

  • 剑、镐、斧、锹、锄等工具。
  • 弓、弩、三叉戟等武器。
  • 其他具有耐久度的非护甲物品。

不可强化物品:

  • 护甲。
  • 鞘翅。
  • 没有耐久度且不属于工具或武器的普通物品。

界面中有 5 个中文强化按钮:

按钮 强化类型
暴击 暴击率强化
石化 石化概率强化
一击 一击必杀概率强化
力量 伤害加成强化
爆炸 爆炸概率强化

点击某个按钮时,只强化对应类型。5 种强化互相独立,同一件武器可以同时拥有多种强化。

强化等级规则

每种强化都有 4 个大等级,每个大等级有 10 个小等级。

等级显示格式:

大等级-小等级

示例:

显示 含义 总等级
I-1 第 1 大等级第 1 小等级 1
I-10 第 1 大等级第 10 小等级 10
II-1 第 2 大等级第 1 小等级 11
III-10 第 3 大等级第 10 小等级 30
IV-10 第 4 大等级第 10 小等级 40

总等级计算:

总等级 = (大等级 - 1) * 10 + 小等级

最大等级:

IV-10 = 40 级

升级顺序:

未强化 -> I-1 -> I-2 -> ... -> I-10 -> II-1 -> ... -> IV-10

强化材料规则

每种强化的材料规则完全一致,只是强化类型独立计算。

大等级 等级范围 所需材料
I 1-10 级 铁锭
II 11-20 级 金锭
III 21-30 级 钻石
IV 31-40 级 绿宝石

每个大等级内部,小等级消耗数量按 2 倍递增:

目标小等级消耗 = 2 ^ (目标小等级 - 1)

也就是:

目标小等级 单次升级消耗
1 1
2 2
3 4
4 8
5 16
6 32
7 64
8 128
9 256
10 512

同一个大等级从 1 级升满 10 级,总材料消耗:

1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 = 1023

单种强化升到满级 IV-10 的总材料:

材料 数量
铁锭 1023
金锭 1023
钻石 1023
绿宝石 1023

5 种强化全部升满时,总材料为:

材料 数量
铁锭 5115
金锭 5115
钻石 5115
绿宝石 5115

注意:

  • 材料槽必须至少放入 1 个当前等级需要的材料。
  • 如果升级需要超过 64 个材料,强化台会从材料槽和玩家背包中一起统计并扣除。
  • 创造模式玩家点击强化按钮时不会消耗材料。

完整升级材料表

总等级 显示等级 单次升级材料 单次消耗
1 I-1 铁锭 1
2 I-2 铁锭 2
3 I-3 铁锭 4
4 I-4 铁锭 8
5 I-5 铁锭 16
6 I-6 铁锭 32
7 I-7 铁锭 64
8 I-8 铁锭 128
9 I-9 铁锭 256
10 I-10 铁锭 512
11 II-1 金锭 1
12 II-2 金锭 2
13 II-3 金锭 4
14 II-4 金锭 8
15 II-5 金锭 16
16 II-6 金锭 32
17 II-7 金锭 64
18 II-8 金锭 128
19 II-9 金锭 256
20 II-10 金锭 512
21 III-1 钻石 1
22 III-2 钻石 2
23 III-3 钻石 4
24 III-4 钻石 8
25 III-5 钻石 16
26 III-6 钻石 32
27 III-7 钻石 64
28 III-8 钻石 128
29 III-9 钻石 256
30 III-10 钻石 512
31 IV-1 绿宝石 1
32 IV-2 绿宝石 2
33 IV-3 绿宝石 4
34 IV-4 绿宝石 8
35 IV-5 绿宝石 16
36 IV-6 绿宝石 32
37 IV-7 绿宝石 64
38 IV-8 绿宝石 128
39 IV-9 绿宝石 256
40 IV-10 绿宝石 512

强化数值显示规则

所有强化都会在物品 tooltip 中显示:

强化类型强化:等级(数值 百分比)

示例:

暴击强化:IV-10(数值 28.0%)
石化强化:IV-10(数值 40.0%)

不同强化的“数值”含义不同:

强化类型 数值含义
暴击 暴击触发概率
石化 石化触发概率
一击 一击必杀触发概率
力量 直接伤害加成比例
爆炸 爆炸触发概率

暴击数值计算

暴击使用分段权重计算,不是简单每级固定 1%。

每个小等级增加的暴击率:

大等级 每个小等级增加
I 0.1%
II 0.2%
III 0.5%
IV 2.0%

计算公式:

暴击率 =
  I 阶已强化小等级数 * 0.1%
+ II 阶已强化小等级数 * 0.2%
+ III 阶已强化小等级数 * 0.5%
+ IV 阶已强化小等级数 * 2.0%

关键等级示例:

等级 暴击率
I-1 0.1%
I-10 1.0%
II-1 1.2%
II-10 3.0%
III-1 3.5%
III-10 8.0%
IV-1 10.0%
IV-10 28.0%

触发效果:

触发暴击时,本次攻击最终伤害 * 2

也就是增加 100% 伤害。

石化数值计算

石化使用总等级直接计算概率。

计算公式:

石化概率 = 总等级 * 1%

最高等级 IV-10 为 40 级,因此最高石化概率为:

40 * 1% = 40%

石化持续时间:

持续秒数 = ceil(总等级 / 10)

持续时间按真实世界时间计算,不按游戏内白天黑夜时间计算。

总等级范围 石化持续时间
1-10 1 秒
11-20 2 秒
21-30 3 秒
31-40 4 秒

触发效果:

  • 目标被施加最高等级缓慢效果。
  • 目标速度会被持续归零。
  • 到达真实时间截止后解除控制。

示例:

石化 IV-10 = 总等级 40
石化概率 = 40%
持续时间 = ceil(40 / 10) = 4 秒

一击数值计算

一击使用总等级直接计算概率。

计算公式:

一击必杀概率 = 总等级 * 1%

最高等级 IV-10 为 40 级,因此最高一击必杀概率为:

40 * 1% = 40%

触发效果:

目标直接死亡

如果一击和其他效果在同一次攻击中同时触发,以目标直接死亡为主。

力量数值计算

力量的数值计算方式与暴击完全一致,但力量不是概率效果。

每个小等级增加的伤害:

大等级 每个小等级增加
I 0.1%
II 0.2%
III 0.5%
IV 2.0%

计算公式:

力量伤害加成 =
  I 阶已强化小等级数 * 0.1%
+ II 阶已强化小等级数 * 0.2%
+ III 阶已强化小等级数 * 0.5%
+ IV 阶已强化小等级数 * 2.0%

关键等级示例:

等级 伤害加成
I-1 0.1%
I-10 1.0%
II-10 3.0%
III-10 8.0%
IV-10 28.0%

触发规则:

力量不需要触发,每次攻击都会生效。

伤害计算:

强化后伤害 = 原本本次攻击伤害 * (1 + 力量伤害加成)

示例:

原本伤害 = 10
力量 IV-10 = 28.0%
强化后伤害 = 10 * (1 + 28.0%) = 12.8

如果同一次攻击还触发暴击:

最终伤害 = 原本本次攻击伤害 * (1 + 力量伤害加成) * 2

爆炸数值计算

爆炸使用总等级直接计算概率。

计算公式:

爆炸概率 = 总等级 * 1%

最高等级 IV-10 为 40 级,因此最高爆炸概率为:

40 * 1% = 40%

触发效果:

  • 目标会播放类似苦力怕引爆的声音。
  • 目标会在延迟后发生爆炸。
  • 爆炸发生后目标死亡。

当前实现参数:

参数 数值
爆炸引信 30 个服务器 tick
爆炸强度 3.0
爆炸来源类型 生物爆炸

如果爆炸触发但本次攻击原本足以击杀目标,模组会阻止这一刀直接击杀目标,确保延迟爆炸能够发生。

五种强化满级数值汇总

强化类型 满级 满级数值 满级效果
暴击 IV-10 28.0% 28.0% 概率使本次伤害翻倍
石化 IV-10 40.0% 40.0% 概率停止目标移动 4 秒
一击 IV-10 40.0% 40.0% 概率直接击杀目标
力量 IV-10 28.0% 每次攻击直接增加 28.0% 伤害
爆炸 IV-10 40.0% 40.0% 概率使目标延迟爆炸并死亡

创造模式指定等级命令

强化数据存储在物品的 minecraft:custom_data 中。

数据根节点:

MagicEnhancements

强化类型 ID:

强化类型 NBT ID
暴击 crit
石化 petrify
一击 instant_kill
力量 power
爆炸 explosion

等级字段:

字段 含义
Major 大等级,范围 1-4
Minor 小等级,范围 1-10

由总等级换算为 MajorMinor

Major = ceil(总等级 / 10)
Minor = ((总等级 - 1) % 10) + 1

给一把钻石剑设置单个强化示例:

/give @p minecraft:diamond_sword[minecraft:custom_data={MagicEnhancements:{crit:{Major:2,Minor:5}}}] 1

这个命令会生成:

暴击 II-5

给一把钻石剑设置五种强化全部满级:

/give @p minecraft:diamond_sword[minecraft:custom_data={MagicEnhancements:{crit:{Major:4,Minor:10},petrify:{Major:4,Minor:10},instant_kill:{Major:4,Minor:10},power:{Major:4,Minor:10},explosion:{Major:4,Minor:10}}}] 1

给一把下界合金剑设置自定义等级示例:

/give @p minecraft:netherite_sword[minecraft:custom_data={MagicEnhancements:{crit:{Major:4,Minor:10},petrify:{Major:2,Minor:10},instant_kill:{Major:1,Minor:5},power:{Major:3,Minor:10},explosion:{Major:4,Minor:1}}}] 1

对应效果:

强化类型 等级 数值
暴击 IV-10 28.0%
石化 II-10 20.0%
一击 I-5 5.0%
力量 III-10 8.0%
爆炸 IV-1 31.0%

使用流程示例

  1. 合成或获取强化台。
  2. 将强化台放置在世界中。
  3. 右键打开强化台。
  4. 左侧槽位放入要强化的工具或武器。
  5. 右侧槽位放入当前等级需要的材料。
  6. 点击“暴击”“石化”“一击”“力量”或“爆炸”按钮。
  7. 强化成功后,物品 tooltip 会显示新的强化等级和数值。

示例:把一把钻石剑的暴击从未强化升到 I-3

步骤 目标等级 材料 数量
1 I-1 铁锭 1
2 I-2 铁锭 2
3 I-3 铁锭 4

总消耗:

铁锭 7 个

最终暴击率:

I-3 = 3 * 0.1% = 0.3%

构建

在项目根目录执行:

./gradlew build

构建后的可用模组 jar 位于:

build/libs/magic-fabric-1.21.3-loader0.18.4-1.0.0.jar