
舰长技能重做(新增经验来源)
这个模组重做了船长的技能经验获取,使其有可能在你真正的有生之年学会。
查看大图Bannerlord Shipmaster Reworked
一个用于《骑马与砍杀 II:霸主》War Sails DLC 的模组,更改了 Shipmaster 技能的经验获取行为。
特性
- 当队伍中的船只数量等于玩家队伍可拥有的最大船只数量时,航行获得的 Shipmaster 技能经验现在有 3 倍加成。默认情况下为 3 艘船,加上特长可提升至 5 艘。
- 在风暴中航行时,航行获得的 Shipmaster 技能经验现在有额外的 2 倍加成。
- 海战中撞击获得的 Shipmaster 技能经验,取决于撞击质量以及撞击伤害。
- 海战中使用弩炮获得的 Shipmaster 技能经验,取决于对船只以及对船上人员(船员)造成的伤害。
需求
- 已安装 War Sails DLC 的《骑马与砍杀 II:霸主》。
- MCM(模组配置菜单)用于游戏内配置选项。
- Harmony 库。
安装
- 从 Releases 页面下载模组的最新版本。
- 解压下载的 ZIP 文件。
- 将解压后的文件夹复制到你的 Bannerlord Modules 目录,通常位于:
C:\Program Files (x86)\Steam\steamapps\common\Mount & Blade II Bannerlord\Modules
- 在启动游戏前,在 Bannerlord 启动器中启用该模组。
兼容性
此模组与最新版本的《骑马与砍杀 II:霸主》及 War Sails DLC 兼容。它可能与其他修改 Shipmaster 技能或海战机制的模组不兼容。
撞击经验计算
通过撞击获得的 Shipmaster 经验使用以下公式计算:
XP = BaseXP × DamagePercent × (1 + RamQuality × QualityFactor)
其中:
- BaseXP:撞击的基础经验值(默认为 80 XP)。
- DamagePercent:对目标船只造成的伤害百分比(0 到 100)。对于卓越撞击,该值可略微超过 100%,因此我设置的硬性上限为 150%。
- RamQuality:基于撞击质量的乘数,该值取自游戏现有的撞击质量系统。
- QualityFactor:撞击质量对经验获取的影响程度。
计算示例:如果玩家以良好的撞击质量撞击敌船,可预期伤害百分比约为 105%,撞击质量为 5。
由此得出:
XP = 80 x 1.05 x (1 + 5 x 0.15) = 80 x 1.05 x 1.75 = 147 XP
该值随后四舍五入到最接近的整数,然后乘以技能的学习率,最后将最终经验值给予玩家。
弩炮经验计算
使用弩炮获得的 Shipmaster 经验分为击中船只或击中人员,其中人员指船上的任何船员。
击中船只
当用弩炮击中船只时,经验计算如下:
首先是负责此功能的代码:
// Convert damage to XP contribution
float baseXp = damage * ConfigCache.BallistaDamageFactor;
float distanceMultiplier = CalculateBallistaDistanceMultiplier(distanceMeters);
// Safety clamp
baseXp = MathF.Clamp(
baseXp,
ConfigCache.BallistaDamageXpMin,
ConfigCache.BallistaDamageXpMax);
float finalXp = baseXp * distanceMultiplier;
用人话翻译就是:XP = DamageDealt × BallistaDamageFactor × DistanceMultiplier
其中:
- DamageDealt:弩炮对船只造成的伤害量。
- BallistaDamageFactor:一个可配置的系数,用于缩放从弩炮伤害中获得的经验。
- DistanceMultiplier:基于弩炮射击距离的乘数。距离越远(在某个限度内),乘数越高。
- BallistaDamageXpMin:从弩炮伤害中可获得的最低经验值。
- BallistaDamageXpMax:从弩炮伤害中可获得的最高经验值。
计算示例:如果玩家从 200 米距离对一艘船造成 1800 点伤害,BallistaDamageFactor 为 0.05,BallistaDamageXpMin 为 10,BallistaDamageXpMax 为 200:XP = 1800 x 0.05 x 3.0 = 270 XP
该值随后四舍五入到最接近的整数,然后乘以技能的学习率,最后将最终经验值给予玩家。
击中人员
当用弩炮击中船上的人员(船员)时,经验来源于你在原版游戏中获得的工程学技能经验,并乘以一个可配置的系数:
计算如下:XP = EngineeringXP × BallistaAgentDamageFactor
其中:
- EngineeringXP:用弩炮击中人员获得的工程学技能经验值(根据测试,它似乎等于造成的伤害)。
- BallistaAgentDamageFactor:一个可配置的系数,用于缩放用弩炮击中人员获得的经验。
计算示例:如果玩家对船上的一名人员造成 150 点伤害,BallistaAgentDamageFactor 为 0.5:XP = 150 x 0.5 = 75 XP
该值随后四舍五入到最接近的整数,然后乘以技能的学习率,最后将最终经验值给予玩家。
弩炮距离乘数
弩炮距离乘数仅适用于击中船只,并使用开火船只与命中位置之间的距离,因此击中船首在技术上比击中船尾更近。
距离乘数是可配置的,但我认为默认设置是平衡的,此设置也为高级用户考虑,并在 MCM 中有自己的子类别。
翻译
此模组包含以下语言的翻译:
- 英语
- 波兰语
你可以通过在 GitHub 仓库 上提交拉取请求来贡献其他语言的翻译。
如果你需要关于 Github 或翻译流程的帮助,欢迎加入 Discord - Vee Workshop 寻求帮助。
许可证
此模组在 MIT 许可证下发布。更多详情请参阅 LICENSE 文件。
鸣谢
- 由 puszkapotato 开发
支持
如果你遇到任何问题或有改进建议,请在 GitHub 仓库 上提交问题。
额外链接
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。