若烹小鲜
我的世界模组——强化模组

# 项目地址: 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` ## 强化台获取方式 ### 创造模式获取 创造模式打开物品栏,在“功能性方块”分类里可以找到“强化台”。它会显示在原版“锻造台”后面。 也可以使用命令获取: ```mcfunction /give @p magic:strengthening_table ``` ### 生存模式合成 强化台使用有序合成,合成布局如下: ```text 铁锭 绿宝石 铁锭 紫水晶碎片 锻造台 紫水晶碎片 铁锭 铁锭 铁锭 ``` 配方符号: | 符号 | 物品 | | --- | --- | | `I` | 铁锭 | | `E` | 绿宝石 | | `A` | 紫水晶碎片 | | `S` | 锻造台 | 实际配方: ```text I E I A S A I I I ``` 单个强化台需要: | 材料 | 数量 | | --- | ---: | | 铁锭 | 5 | | 绿宝石 | 1 | | 紫水晶碎片 | 2 | | 锻造台 | 1 | ## 强化台界面规则 强化台有两个槽位: | 槽位 | 用途 | 规则 | | --- | --- | --- | | 左侧槽位 | 放入工具或武器 | 每次只能放 1 个可强化物品 | | 右侧槽位 | 放入强化材料 | 必须放入当前升级所需的材料 | 可强化物品包括: - 剑、镐、斧、锹、锄等工具。 - 弓、弩、三叉戟等武器。 - 其他具有耐久度的非护甲物品。 不可强化物品: - 护甲。 - 鞘翅。 - 没有耐久度且不属于工具或武器的普通物品。 界面中有 5 个中文强化按钮: | 按钮 | 强化类型 | | --- | --- | | 暴击 | 暴击率强化 | | 石化 | 石化概率强化 | | 一击 | 一击必杀概率强化 | | 力量 | 伤害加成强化 | | 爆炸 | 爆炸概率强化 | 点击某个按钮时,只强化对应类型。5 种强化互相独立,同一件武器可以同时拥有多种强化。 ## 强化等级规则 每种强化都有 4 个大等级,每个大等级有 10 个小等级。 等级显示格式: ```text 大等级-小等级 ``` 示例: | 显示 | 含义 | 总等级 | | --- | --- | ---: | | `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 | 总等级计算: ```text 总等级 = (大等级 - 1) * 10 + 小等级 ``` 最大等级: ```text IV-10 = 40 级 ``` 升级顺序: ```text 未强化 -> I-1 -> I-2 -> ... -> I-10 -> II-1 -> ... -> IV-10 ``` ## 强化材料规则 每种强化的材料规则完全一致,只是强化类型独立计算。 | 大等级 | 等级范围 | 所需材料 | | --- | --- | --- | | I | 1-10 级 | 铁锭 | | II | 11-20 级 | 金锭 | | III | 21-30 级 | 钻石 | | IV | 31-40 级 | 绿宝石 | 每个大等级内部,小等级消耗数量按 2 倍递增: ```text 目标小等级消耗 = 2 ^ (目标小等级 - 1) ``` 也就是: | 目标小等级 | 单次升级消耗 | | ---: | ---: | | 1 | 1 | | 2 | 2 | | 3 | 4 | | 4 | 8 | | 5 | 16 | | 6 | 32 | | 7 | 64 | | 8 | 128 | | 9 | 256 | | 10 | 512 | 同一个大等级从 1 级升满 10 级,总材料消耗: ```text 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 中显示: ```text 强化类型强化:等级(数值 百分比) ``` 示例: ```text 暴击强化:IV-10(数值 28.0%) 石化强化:IV-10(数值 40.0%) ``` 不同强化的“数值”含义不同: | 强化类型 | 数值含义 | | --- | --- | | 暴击 | 暴击触发概率 | | 石化 | 石化触发概率 | | 一击 | 一击必杀触发概率 | | 力量 | 直接伤害加成比例 | | 爆炸 | 爆炸触发概率 | ## 暴击数值计算 暴击使用分段权重计算,不是简单每级固定 1%。 每个小等级增加的暴击率: | 大等级 | 每个小等级增加 | | --- | ---: | | I | 0.1% | | II | 0.2% | | III | 0.5% | | IV | 2.0% | 计算公式: ```text 暴击率 = 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% | 触发效果: ```text 触发暴击时,本次攻击最终伤害 * 2 ``` 也就是增加 100% 伤害。 ## 石化数值计算 石化使用总等级直接计算概率。 计算公式: ```text 石化概率 = 总等级 * 1% ``` 最高等级 `IV-10` 为 40 级,因此最高石化概率为: ```text 40 * 1% = 40% ``` 石化持续时间: ```text 持续秒数 = ceil(总等级 / 10) ``` 持续时间按真实世界时间计算,不按游戏内白天黑夜时间计算。 | 总等级范围 | 石化持续时间 | | --- | ---: | | 1-10 | 1 秒 | | 11-20 | 2 秒 | | 21-30 | 3 秒 | | 31-40 | 4 秒 | 触发效果: - 目标被施加最高等级缓慢效果。 - 目标速度会被持续归零。 - 到达真实时间截止后解除控制。 示例: ```text 石化 IV-10 = 总等级 40 石化概率 = 40% 持续时间 = ceil(40 / 10) = 4 秒 ``` ## 一击数值计算 一击使用总等级直接计算概率。 计算公式: ```text 一击必杀概率 = 总等级 * 1% ``` 最高等级 `IV-10` 为 40 级,因此最高一击必杀概率为: ```text 40 * 1% = 40% ``` 触发效果: ```text 目标直接死亡 ``` 如果一击和其他效果在同一次攻击中同时触发,以目标直接死亡为主。 ## 力量数值计算 力量的数值计算方式与暴击完全一致,但力量不是概率效果。 每个小等级增加的伤害: | 大等级 | 每个小等级增加 | | --- | ---: | | I | 0.1% | | II | 0.2% | | III | 0.5% | | IV | 2.0% | 计算公式: ```text 力量伤害加成 = 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% | 触发规则: ```text 力量不需要触发,每次攻击都会生效。 ``` 伤害计算: ```text 强化后伤害 = 原本本次攻击伤害 * (1 + 力量伤害加成) ``` 示例: ```text 原本伤害 = 10 力量 IV-10 = 28.0% 强化后伤害 = 10 * (1 + 28.0%) = 12.8 ``` 如果同一次攻击还触发暴击: ```text 最终伤害 = 原本本次攻击伤害 * (1 + 力量伤害加成) * 2 ``` ## 爆炸数值计算 爆炸使用总等级直接计算概率。 计算公式: ```text 爆炸概率 = 总等级 * 1% ``` 最高等级 `IV-10` 为 40 级,因此最高爆炸概率为: ```text 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` 中。 数据根节点: ```text MagicEnhancements ``` 强化类型 ID: | 强化类型 | NBT ID | | --- | --- | | 暴击 | `crit` | | 石化 | `petrify` | | 一击 | `instant_kill` | | 力量 | `power` | | 爆炸 | `explosion` | 等级字段: | 字段 | 含义 | | --- | --- | | `Major` | 大等级,范围 1-4 | | `Minor` | 小等级,范围 1-10 | 由总等级换算为 `Major` 和 `Minor`: ```text Major = ceil(总等级 / 10) Minor = ((总等级 - 1) % 10) + 1 ``` 给一把钻石剑设置单个强化示例: ```mcfunction /give @p minecraft:diamond_sword[minecraft:custom_data={MagicEnhancements:{crit:{Major:2,Minor:5}}}] 1 ``` 这个命令会生成: ```text 暴击 II-5 ``` 给一把钻石剑设置五种强化全部满级: ```mcfunction /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 ``` 给一把下界合金剑设置自定义等级示例: ```mcfunction /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 | 总消耗: ```text 铁锭 7 个 ``` 最终暴击率: ```text I-3 = 3 * 0.1% = 0.3% ``` ## 构建 在项目根目录执行: ```sh ./gradlew build ``` 构建后的可用模组 jar 位于: ```text build/libs/magic-fabric-1.21.3-loader0.18.4-1.0.0.jar ```