跳到正文

Progressive Mechanics Library

为我和其他希望更好掌控游戏伤害机制的模组提供前置库。 可与 First Aid 模组配合使用。

收藏

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

这是一个前置库模组,旨在让我的模组和其他模组能够更好地控制伤害和一些战斗机制
默认情况下,此模组会执行以下操作
修改造成暴击时的伤害类型,让模组能够轻松判断一次攻击是否为暴击。伤害类型为 “pml:player_critical”
修改横扫攻击造成的伤害类型。伤害类型为 “pml:sweeping_damage”。

面向模组开发者
它新增了一种注册和添加伤害加成与减免的方法,还能与 First Aid Mod 配合使用,以便控制受伤的身体部位。

DamageControl 类是核心组件。它提供了一种结构化方式,可在伤害应用到游戏中之前对伤害值进行修改、控制和计算。

此系统支持多种修正,包括固定加成、百分比加成,以及来自盔甲、附魔和特殊机制的伤害减免。

🔧 工作原理:
系统从原始基础伤害开始。

应用武器专属的缩放(在后续计算前降低伤害)。

首先应用基础加成(固定值和百分比加成)。

接着应用额外加成(固定值和百分比加成)。

系统计算伤害减免(盔甲、附魔和特殊减免)。

最终伤害会被保存,并可在 LivingDamageEvent 中获取或修改。

📊 变量说明:
🛠️ 增加伤害的修正项
变量 说明
baseFlatBonus 在百分比倍率应用前添加的固定加成(例如,+10 点伤害)。
basePercentBonus 在其他计算前应用的百分比加成(例如,1.2 倍倍率)。
flatBonus 在基础加成之后添加的固定加成(例如,+5 点伤害)。
percentBonus 在基础计算后应用的百分比加成。
🛡️ 减少伤害的修正项
变量 说明
weapondamagecontrol 在所有计算前控制基于武器的伤害缩放。
armorReduction 因盔甲而减少的伤害(单独处理)。
enchReduction 因附魔而减少的伤害(单独处理)。
specialReduction 直接减少最终伤害,因此必须谨慎使用。
📌 供参考的原始值

变量 说明
originalDamage 保存所有计算后的最终伤害,可用于 LivingDamageEvent。
originalAbsorption 保存修改前的伤害吸收值。

🛠️ 关键方法
✔️ 添加加成
🛡️ getArmorReduction()
✅ 返回值:因盔甲而减免的伤害量。
💡 用法:此值由 setArmorReduction(float value) 设置,表示盔甲机制(例如原版盔甲计算或其他模组的自定义盔甲效果)所抵挡的伤害量。
🔮 getEnchantmentReduction()
✅ 返回值:因附魔而减免的伤害量。
💡 用法:此值用于追踪防御性附魔(例如保护附魔或自定义附魔)对最终伤害的减免量。模组可利用此值来平衡附魔效果,或在工具提示中显示相关信息。
⚠️ getSpecialReduction()
✅ 返回值:通过特殊机制直接减免的伤害量。
💡 用法:这是作用最强的伤害减免方式,因为它会在伤害计算的最后阶段扣除。由于数值过高可能会完全抵消伤害,模组应谨慎使用此方法。

📌 First Aid Mod 兼容系统
此系统与 First Aid 模组集成,该模组通过引入身体部位特定的伤势来改变伤害处理方式。以下代码有助于在使用 First Aid 模组时追踪受伤的身体部位,并确保与 DamageControl 系统兼容。

🛠️ 关键方法
🔍 getDamagedBodyPart(Player player)

✅ 用途:获取受伤的身体部位。返回一个与受伤身体部位对应的 EquipmentSlot 变量。
💡 用法:

此方法仅应在 LivingDamageEvent 期间且存在 First Aid 时使用。

如果玩家未被映射,则返回 null。

一个使用示例是在模组 Just a lot more Enchantments 中。

常见问题

Progressive Mechanics Library 支持哪些 Minecraft 版本?

Progressive Mechanics Library 支持 Minecraft Java 版 1.20.1–1.20.3,共 3 个版本,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

Progressive Mechanics Library 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端和服务端都要装。

评论

登录后评论和评分

A_teapot_orbiting_the_sun 的其他作品

查看全部 →