银行投资再平衡

银行投资再平衡

重新平衡银行的投资利率。低风险:0/+2% -> +4/+8%。中风险:-15/+20% -> 0/+15%。高风险:-50/+55% -> -5/+34%。中风险不再会亏损;高风险仍保留真实但可承受的下行风险。两者的上限都低于原版,因此这是重新平衡,而不是印钞机。仅修改bankinfo。存档安全,可随时移除。

[size=5][b]银行投资再平衡[/b][/size]

让银行的投资功能真正值得一用。低风险变成了一个真正(虽然收益很小)的储蓄账户,而不是在什么都没有和几乎没有之间掷硬币;中风险不再会让你亏钱;高风险仍然是真正的赌博——只不过不会在单次结算中让你损失一半的金币。

这是一个数据表修改,不是脚本。它每个银行配置文件只改六个数字,仅此而已。

[size=4][b]改动内容[/b][/size]

[code]
原版 模组版
低风险 0% 到 +2% +4% 到 +8%
中风险 -15% 到 +20% 0% 到 +15%
高风险 -50% 到 +55% -5% 到 +34%
[/code]
目标是再平衡,而不是作弊:

[list]
[][b]低风险[/b] —— 字面意义上仍然不可能亏钱。下限和上限都提高了,所以把钱放在那里是一种缓慢但真实的收益,而不是一个四舍五入的误差。
[
][b]中风险[/b] —— 完全去掉了下跌风险,但上限被拉到了原版[i]以下[/i](+15% 而不是 +20%)。现在它是“安全增长”档,你为这份安全付出的代价是更低的上限。
[][b]高风险[/b] —— 保留了真正的下跌风险,所以赌博仍然有意义,只是变得可承受(-5% 而不是 -50%)。它的上限也被削减到原版以下(+34% 而不是 +55%),因此它并不严格优于原版——你是用大赚一笔换来了一个温和得多的下限。
[/list]
如果你期待的是一个直接的印钞机,那这个不是。除了低风险以外,每一档的上限要么保持不变,要么[i]低于[/i]原版。

[size=4][b]安装[/b][/size]

[list=1]
[
]安装一个能读取标准 Crimson Desert JSON 字节补丁格式的模组管理器 —— [b]CDUMM[/b] 或更早的 CD JSON Mod Manager。
[]把下载的 zip 放进游戏的 [font=Courier New]modsImport[/font] 文件夹。
[
]在管理器中导入/启用该模组。
[]启动游戏。
[/list]
[b]卸载:[/b]在管理器中禁用或移除该模组。它会写入一个覆盖文件;原版表格不会被原地修改,因此移除后利率会完全恢复。

[size=4][b]兼容性[/b][/size]

[list]
[
]仅修补 [font=Courier New]gamedata/bankinfo.staticinfobody[/font]。这是一个很小的(312 字节)专用表格,目前已知没有其他模组会碰它,所以不太可能冲突。
[]存档安全。不会向你的存档写入任何内容;利率在运行时从表格读取。游戏中途安装或移除都没问题。
[
]该表格包含两个银行利率配置文件,[font=Courier New]Bank_01[/font] 和 [font=Courier New]Bank_02[/font],它们的原版数值略有不同。哪个实体银行 NPC 使用哪个配置文件尚未确认,所以[b]两者都被修补为相同的模组数值[/b] —— 无论你站在哪一个面前,都会得到上面的利率。(上表中的原版数值是 Bank_01 的,与游戏内银行显示的数值一致。)
[/list]
[size=4][b]重要:游戏更新[/b][/size]

Crimson Desert 的游戏玩法表格是扁平二进制数据,没有对齐填充。任何在此记录之前添加、删除或改变记录大小的补丁都会使其后的每个字节偏移发生偏移,这意味着这款游戏的[b]任何[/b]基于偏移的模组——包括这一个——都可能在游戏更新后悄无声息地失效,或者在最坏情况下写入错误的位置。

如果游戏更新后你的银行利率看起来不对(或者你看到任何异常),[b]请禁用此模组[/b],直到发布更新版本。如果你遇到了这种情况,请留言;这对我来说是快速修复,但我需要知道更新已经来了。

[size=4][b]技术细节[/b][/size]

给任何想要验证或派生此模组的人:利率位于 [font=Courier New]gamedata/bankinfo.staticinfobody[/font] 中,每条记录是一组连续的六个有符号 [font=Courier New]int64[/font] 值,间隔 8 字节,编码为 [b]百分比 × 10000[/b](所以 [font=Courier New]20000[/font] = +2.0000%,[font=Courier New]-150000[/font] = -15.0000%)。该数据块前面有一个 [font=Courier New]u64[/font],值为 [font=Courier New]3[/font]——风险档位数量——读取为 3 档 × {最小值, 最大值}。

Bank_01 的六个值从十进制偏移 108 开始;Bank_02 的从 264 开始。所有十二个被修补的字段都保持其原始大小和类型,因此不存在大小改变或结构错位的风险。

[size=4][b]致谢[/b][/size]

游戏加密 PAZ 归档的解包和解析使用了 [b]NattKh[/b] 制作的社区模组工具包,其基于 Potter420(crimson-rs)、lukefz(pycrimson)和 fireundubh 的工作。没有它,这个模组就不会存在。