魅力扭蛋预测器 (REFramework)

魅力扭蛋预测器 (REFramework)

在加载存档后,立即揭示射击画廊扭蛋机全部四种代币组合的确切即将到来的护符顺序。在第一章检查全新通关的运气。只读:绝不触碰你的存档文件、RNG种子或成就。屏幕叠加显示加JSON导出;删除脚本即可卸载。需要REFramework。

[size=5][b]此模组的功能[/b][/size]

《生化危机4》(2023)靶场中的饰品扭蛋并不是在你拉下摇杆的那一刻随机决定的。当你开始新一轮游戏时,游戏会为四种代币组合各生成一个隐藏种子,此后每种组合产出饰品的顺序就固定了。本模组会在你加载存档后读取这些种子,并为你显示所有四种组合即将产出的确切饰品顺序,这样你就可以把代币花在真正能给你想要饰品的组合上。

这是一个只读的信息工具。它不会修改你的存档,不会改动种子,不会给你饰品或代币,也不会影响成就。删除脚本即可卸载。

[size=5][b]主要功能[/b][/size]
[list]
[][b]所有四种组合的完整即将到来队列。[/b]加载存档后按 F9。脚本会为每种组合枚举接下来的 30 个饰品(可在 REFramework 菜单中调整至最多 2000 个),并在屏幕叠加层中显示。[/]
[][b]屏幕叠加层,无需菜单键。[/b]叠加层会显示每种组合的种子以及你已经抽取了多少次。导出后,它还会列出 Epic 和 Legendary 饰品以及每个距离还有多少次抽取、每种组合的下 5 个饰品,并用预测结果核对你最近的真实抽取。这些数字会在你抽取时实时更新;如果你加载了不同的存档,叠加层会提示你再次按 F9,而不是显示过时的预测。它会自动调整大小以适应内容。F8 显示或隐藏它。除非你想要抽取次数滑块或更长的每种组合预览,否则无需打开 REFramework 菜单。[/]
[][b]“我的饰品在哪里?”摘要。[/b]除了 JSON 之外,每次按 F9 还会写入
[code]charm_gacha_summary_<timestamp>.txt[/code]:所有饰品按稀有度排序,包含它首次出现的组合和抽取次数、它在其他三种组合中的位置,以及未在枚举抽取范围内出现的饰品列表。用记事本打开即可。[/
]
[][b]JSON 导出。[/b]每次按 F9 还会写入
[code]charm_gacha_enum_<timestamp>.json[/code],包含全部四个队列、物品 ID、英文和中文名称、稀有度、饰品目录以及相同的首次出现数据。便于在游戏外规划或分享你种子的队列。[/
]
[][b]英文或中文输出。[/b]F7 切换摘要 txt 的语言(EN/CN),该选择会在会话之间记住。JSON 始终包含两种名称。屏幕叠加层本身保持英文,因为 REFramework 的默认字体没有 CJK 字形。[/]
[][b]内置验证。[/b]你进行的每一次真实扭蛋抽取都会记录到
[code]reframework/data/charm_gacha_real_draws.json[/code],同时记录脚本对该次抽取的预测以及匹配标志,这样你可以自行核对预测。[/
]
[][b]可配置。[/b]首次启动时会在
[code]reframework/data[/code]中创建一个 JSON 配置:热键(F1-F12 或虚拟键码)、启动时叠加层是否可见、真实抽取日志开/关,以及每种组合枚举多少次抽取。无效值会回退到默认值,并在 REFramework 控制台中报告。[/
]
[][b]设计上安全。[/b]脚本唯一写入的是一个内存中的抽取计数器,它在枚举期间推进,并在返回前恢复为原始值。每一步都会验证,如果发现任何异常,脚本会中止并恢复计数器。不会向你的存档文件写入任何内容。[/]
[/list][size=5][b]安装[/b][/size]
[list=1]
[]如果尚未安装,请安装 [url=https://www.nexusmods.com/residentevil42023/mods/12]REFramework[/url](它的 dinput8.dll 放入游戏文件夹)。[/]
[][b]Fluffy Mod Manager:[/b]将 zip 拖入管理器并像其他模组一样启用它。[/]
[][b]手动安装:[/b]将
[code]reframework/autorun/charm_gacha_enum.lua[/code]从 zip 复制到你的游戏文件夹,使其最终位于
[code]<game folder>/reframework/autorun/charm_gacha_enum.lua[/code]。[/
]
[]启动游戏,加载存档,按 F9。叠加层会显示四个队列,文件会生成在
[code]<game folder>\reframework\data\[/code](游戏的安装文件夹,不是 Documents;data 文件夹会在首次导出时创建)。[/
]
[/list]卸载:从
[code]reframework/autorun[/code]中删除
[code]charm_gacha_enum.lua[/code]。
[code]reframework/data[/code]中的 JSON 文件也可以删除。

[size=5][b]如何阅读叠加层[/b][/size]

“table”是代币组合,按你投入多少金币代币编号:
[list]
[]table 0 = 3 个银币代币[/]
[]table 1 = 1 个金币 + 2 个银币[/]
[]table 2 = 2 个金币 + 1 个银币[/]
[]table 3 = 3 个金币代币[/]
[/list]“count”是你在本轮游戏中已经从该组合抽取了多少次。队列从你当前的位置开始,所以 #1 就是该组合将给你的下一个饰品。

种子会在你开始新一轮游戏(New Game 或 New Game+)的那一刻生成,并在整轮游戏中保持不变。New Game 和 New Game+ 会得到不同的种子。所以:开始一轮游戏,在其中加载任意存档,按一次 F9,该列表会一直有效,直到你开始另一轮新游戏。保存、加载、死亡和章节变化都不会改变它。

[size=5][b]使用场景:这轮游戏的扭蛋运气好吗?[/b][/size]

种子会在新一轮游戏开始时生成,之后永不改变,所以第一次导出就已经告诉你该轮游戏扭蛋的全部信息。开始一轮新游戏,一旦你在其中有了存档,就加载它并按 F9。摘要 txt 会列出每种组合中 Striker、Cute Bear 和其他 Epic 及 Legendary 饰品距离还有多少次抽取(从零开始计)。如果你关心的饰品在每种组合中都位于 20+ 次抽取之后,你就能在花掉一枚代币之前知道,并且可以开始另一轮游戏以获得一组新的种子。默认每种组合 30 次抽取;如果你想看得更远,可以在 REFramework 菜单(Script Generated UI)中提高“draws per table”。

[size=5][b]需求[/b][/size]
[list]
[]需要 [url=https://www.nexusmods.com/residentevil42023/mods/12]REFramework[/url]。任何带有 Lua 脚本功能的版本都应该可用;已在当前版本上测试。[/]
[]已在 Steam 版本(2026 年 9 月构建)上测试。该脚本依赖游戏内部的 charm manager 符号,因此未来的游戏补丁可能会使其失效。脚本会在启动时检查它需要的每个符号;如果缺少某个符号,叠加层会显示
[code]GAME VERSION NOT SUPPORTED[/code]以及缺失符号的名称,脚本会自行禁用。它不会使游戏崩溃或触碰任何东西。[/
]
[/list][size=5][b]已知限制[/b][/size]
[list]
[]叠加层文本仅支持英文,因为 REFramework 的默认字体没有 CJK 字形。中文名称在 JSON 导出中,以及当 F7 设置为 CN 时的摘要 txt 中。[/]
[]内置名称表涵盖扭蛋池中的 30 个饰品(来自 RE4_Overlay,2023 年 4 月)。任何不在表中的饰品 ID 都会以“unknown”及其原始物品 ID 显示,并且仍会出现在 JSON 中。[/]
[]Separate Ways 以及 DLC 添加的任何饰品尚未测试。[/]
[]你需要先加载存档。在标题画面时 charm manager 尚不存在,脚本只会等待。[/]
[/list][size=5][b]工作原理(给好奇的人)[/b][/size]

游戏的 charm manager 完全根据组合的种子及其抽取计数器计算每次扭蛋结果。执行此操作的函数只返回物品 ID 并递增计数器;它不会花费代币或发放物品。RE4_Overlay 自 2023 年以来一直每帧调用它来进行“下一个饰品”预测,且没有副作用。本脚本连续调用它 N 次以读取整个队列,然后将计数器设置回原来的位置。已在游戏内验证:重复枚举会得到相同结果,计数器每次都会恢复,测试期间进行的所有 6 次真实抽取都与预测相符。

如果游戏更新使脚本失效,请在 Bugs 标签页发布 REFramework 控制台日志。

[size=5][b]致谢[/b][/size]
[list]
[][b]praydog[/b] 制作了 REFramework,使这一切成为可能。[/]
[][b]lingsamuel[/b] 制作了 [url=https://github.com/lingsamuel/RE4_Overlay]RE4_Overlay[/url]。本脚本中的饰品 ID 和名称表来自它,它的“下一个饰品”叠加层证明了调用扭蛋函数是无害的。[/]
[][b]Claude[/b],Anthropic 的 AI 助手,通过 Claude Code 使用。它共同编写了本模组:大部分 Lua 脚本、模拟测试框架以及确认种子所在位置的存档分析工具都是与它一起编写的,它还结对编程完成了整个游戏内验证。[/]
[/list]