附加伤害修正

创作者: sighsorry
已更新:2026-02-25 02:50:58
353KB

关于此 MOD

使抗性和弱点以加法叠加,并提供可配置的修正值、玩家最低伤害上限、坠落伤害调整,以及带图标、百分比标签和更清晰提示/图鉴信息的可见adm_状态效果。

附加伤害修正

增加伤害修正使瓦尔海姆的抗性和弱点修正叠加,而不是只让最强的修正生效。

当前开发版本面向英灵神殿 1.0.7 (Windows 客户端版本 25185596 / 专用服务器版本 25185644)以及 BepInExPack Valheim 5.4.2350此版本不支持较旧的游戏二进制文件。现有的模组配置键和翻译格式保持不变。

1.0兼容补丁更新了六参数物品提示钩子(包括附加提示),处理了新的 非玩家 伤害通道,不添加玩家最低设置或新增 管理员_ 效果,并修复了捆绑的 ServerSync 中三个过时的常量字段访问。参见 服务器同步修复详情.

在原版中,多种抗性和弱点来源不会相互抵消。游戏按优先级选择一个最终修正值。本模组将其改为加法计算,因此每个相关修正值都会对最终伤害倍率产生影响。


添加可见 管理员_ 用于测试、事件、命令和其他模组的状态效果。你可以使用 添加状态 测试命令。


在提示信息和激活效果界面中显示有效的修正百分比。


查看此模组以使用训练假人进行伤害和抗性测试。 https://thunderstore.io/c/valheim/p/sighsorry/TouchGrass/
以上是模组默认设置下,RootArmor(+30%) + FeatherCape(+45%) + FireResistMead(-30%) = 火焰伤害总和(+45%) 的一个示例。

主要特色

  • 按伤害类型,抗性和弱点修正值可叠加。
  • 影响玩家和生物。
  • 让服务器配置每个修正器等级的百分比数值。
  • 增加玩家最低伤害上限,使极高的抗性也无法将玩家伤害始终降低到0。
  • 添加可见 管理员_ 状态效果,用于测试、事件、命令和其他模组。
  • 在提示框和主动效果界面中显示有效修正百分比。
  • 添加一个图鉴页面,说明当前服务器数值、计算方式、玩家人数下限以及与原版的差异。
  • 添加可配置的坠落伤害上限和坠落伤害倍率选项。
  • 保持ServerSync版本强制校验与同步的游戏配置。

附加伤害示例

默认修饰符值:

  • 非常弱: +45%
  • 虚弱: +30%
  • 略弱: +15%
  • 轻微抵抗: -15%
  • 抗性: -30%
  • 非常抗性: -45%
  • 免疫: -100%

示例玩家修正:

根部护甲穿刺抗性(-30%)+ 狂战士蜜酒穿刺弱点(+30%)+ 骨mass穿刺抗性(-15%)= 穿刺 -15%

玩家拿起 85% 穿刺伤害。

羽毛披风火焰弱点(+45%)+ 大麦酒火焰抗性(-30%)= 火焰 +15%

玩家占据 115% 火焰伤害。

生物的抗性和弱点也是叠加的。一个对穿刺弱点的生物 +30% 消耗 130% 穿刺伤害;一个对此具有抗性的生物 -30% 取得 70%.

玩家最低伤害上限

玩家对这些伤害类型有可配置的最低伤害承受上限:

  • 钝击
  • 穿刺
  • 斩击
  • 火焰
  • 中毒
  • 霜冻
  • 闪电

该配置项名为 玩家受到的最小伤害百分比 - <伤害类型>默认值为 10,所以一个免疫或抗性极高的玩家至少仍会受到 10% 这些上限类型的原始伤害中。在主动效果纲要中,这一上限同样显示在加法修正值刻度上,即 最低总计 -90%.

灵魂伤害故意没有玩家最低上限,因为原版玩家本就免疫灵魂伤害。

状态效果

该模组注册了56个状态效果,名称为:

adm_<伤害类型>_<修正值>

支持的伤害类型:

钝击、穿刺、斩击、火焰、毒、冰霜、闪电、灵魂

支持的修饰符:

非常弱,弱,稍弱,稍抗,抗性,非常抗,免疫

示例:

非常钝 火焰免疫 精神抗性

这些效果可以通过以下命令添加:

添加状态 adm_blunt_resistant

每个 行政管理_ 效果具有生成的狀態圖示,以及一個可讀的HUD名稱,且沒有 管理员_ 前缀,以及一个百分比标签。修饰符图标使用简单的层级标记:

+1, +2, +3, -1, -2, -3

提示与图鉴

伤害修正提示行可以显示配置的修正百分比,例如:

伤害修正:抗性对抗火焰(-30%)

当装备了确切的被动护甲物品,或显示的状态效果当前在本地玩家身上生效时,同一行还会显示该伤害类型的合并修正值:

伤害修正:火焰抗性(-30% / 净-45%)

网络 这是玩家最低伤害上限之前的原始总和。直接武器和护盾伤害修正仅限格挡时生效,不计入被动净值;来自这些物品的装备或套装状态效果在该效果激活期间会被计入。

网络值在每次生成提示框时最多计算一次,并由其嵌套的效果描述共享。Valheim 在打开物品栏时每帧都可能重新生成物品提示框;这并不是提示框可见期间全程有效的缓存。

这个非图鉴百分比后缀由一个仅客户端配置选项控制:

在非图鉴界面的工具提示中显示修饰符百分比 = 开启

主动效果图鉴始终显示更完整的信息,包括当前 网络 用于主动效果和 最低总计 适用时:

伤害修正:抗性对抗火焰(-30% / 净-45% / 最小总计-90%)

活动效果页面在生成时会共享一个网络快照。重新打开图鉴以刷新在打开期间发生变化的效果或数值。

如果合并结果是英灵神殿的特殊 忽略 修饰符,显示为 网络忽略 和 最低总计 因不适用该上限而被省略。

图鉴还包含一个 附加伤害修正 页面。它会读取当前服务器配置并说明:

  • 当前附加修正值
  • 伤害公式与计算示例
  • 玩家最低伤害和 最低总分
  • 原版修饰符数值与选择行为
  • 灵体、免疫、无视与寒冷/冰冻规则

本地化

图鉴页面在模组DLL中包含了英语和韩语翻译。Thunderstore包还包含 附加伤害修正 作为可编辑的翻译模板。

额外的客户端翻译可以放在以下位置的任意处: BepInEx 文件夹。以 Valheim 中所选语言命名该文件:

伤害加成修改器.<Language>.yml

示例:

附加伤害修正

使用 英文翻译文件 作为模板。缺失或空白的键会回退到英语,未知键会被忽略。格式错误的外部文件会被跳过并在 BepInEx 日志中报告。

坠落伤害

坠落伤害有两个同步配置选项:

  • 最大坠落伤害提高状态效果生效前的最大基础坠落伤害。
  • 坠落伤害倍率:控制坠落伤害的增长速度。

实用示例:

  • 香草到达 100 坠落伤害于 20米.
  • 最大坠落伤害 = 200 和 坠落伤害倍率 = 1.00 达到 200 在 36分钟.
  • 最大坠落伤害 = 200 和 坠落伤害倍率 = 2.00 到达 200 伤害于 20米.
  • 带倍率 2.00, 100 伤害发生在 12分钟.

坠落伤害倍率 保留两位小数精度。其他大多数数值配置项均为整数滑块。

寒冷刺骨

霜冻修饰器可以通过以下方式控制寒冷和冰冻免疫:

寒冷/冰冻免疫触发霜冻差值百分比

默认值为 -15%。如果有效附加霜冻变化量小于或等于此阈值,则原版寒冷和冰冻效果将被阻止或清除。

同一阈值适用于单一抗性层级以及来自多个来源的同等总量。例如,当 -50% 阈值,单个 -15% 抗性不再提供环境免疫。原版保暖和庇护规则保持不变。

配置部分

1 - 通用

  • 锁定配置
  • 在非图鉴的提示框中显示修饰符百分比

2 - 附加伤害

  • 修正器等级值
  • 玩家承受的最低伤害上限
  • 寒冷免疫阈值

3 - 坠落伤害

  • 最大坠落伤害
  • 坠落伤害倍率

建造包

该项目引用了以下位置的原始《英灵神殿》程序集: 协程库路径; 无需公开集会。设置 游戏路径 在你的构建参数中指定不同的游戏安装位置。Reflection 和 Harmony 的字段注入会处理所需的非公开游戏成员。

设置 模组版本 在 Plugin.cs,然后运行 Release 构建:

dotnet build AdditiveDamageModifier.csproj -c Release

ILRepack 完成后,Release 构建会更新 Thunderstore/manifest.json 到 DLL 版本,并同时创建 Thunderstore/AdditiveDamageModifier_v<version>.zip 和 Nexus/AdditiveDamageModifier_v<version>.zip重建相同版本会替换那些归档文件。调试版本不会更新清单或创建包。发布打包目前需要 Windows PowerShell。更改版本时请手动更新变更日志。

回归测试

使用PowerShell 7构建当前代码并运行实际DLL检查:

dotnet build AdditiveDamageModifier.csproj -c Debug -p:DeployToGame=true pwsh -NoProfile -File .\Test-Mod.ps1

使用 - AssemblyPath 对于不同的构建输出,以及 -游戏路径 用于其他瓦尔海姆安装。该脚本不会启动游戏或保存配置。它会检查托管计算、上下文清理、翻译契约和游戏补丁目标;它不会替代实时的 Unity 或多人游戏测试。

调试命令还会将最终合并的DLL复制到游戏的 BepInEx/插件 文件夹。使用 -p:DeployToGame=false 显式跳过该副本。对于未安装 BepInEx 的专用服务器程序集检查,请传递 游戏路径 指向服务器并 -BepInEx核心路径 指着一个兼容的客户端 BepInEx/核心 目录。这是程序集检查,不是运行中的服务器测试。

发布前,请在游戏中检查以下内容:

  • 无ADM效果的HUD槽位、多重ADM效果、相同效果数量下ADM替换为普通效果,以及完全重建槽位。在不同UI缩放比例及安装HUD模组的情况下验证布局。
  • 低于、等于和高于抗性值的寒冷/冰冻阈值,包括一个来源与相等组合值的对比、免疫、无视以及温暖区域。
  • 已装备护甲、生效中的装备/套装/蜜酒效果、提示详情关闭,以及在效果过期后重新打开生效效果页面。
  • 重启后现有及迁移的配置值、管理员锁定、同步设置,以及客户端、主机和专用服务器上匹配/不匹配的版本。

使用Unity Profiler比较关闭和打开背包时的HUD内存分配和CPU时间。运行时热卸载/重载不是经过验证的生命周期;图标缓存和已注册的状态效果旨在持续整个进程。

GitHub

https://github.com/sighsorry1029/AdditiveDamageModifier

Valheim: 英灵神殿 的热门 MOD

探索适用于 Valheim: 英灵神殿 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

使用 Xmod 解锁 Valheim: 英灵神殿 的全部潜力 — 今天就探索这些顶级 MOD!