技能排序 - 按字母顺序排列的装饰与护甲筛选

技能排序 - 按字母顺序排列的装饰与护甲筛选

按字母顺序对装饰品和防具搜索过滤器中的技能列表进行排序,而不是按内部技能ID排序。在物品箱和铁匠铺中自动生效,无需按键操作。不修改任何游戏文件。需要Stracker's Loader。

功能简介

技能过滤器按游戏内部顺序列出技能,因此“弱点特效”无缘无故排在第四页。此模组将其按字母顺序排序。

无需按键,无需配置。适用于道具箱的装饰品过滤器以及加工屋。

前置要求

Stracker's Loader

安装

nativePC 文件夹放入你的《怪物猎人:世界》文件夹中。DLL 文件最终位于 nativePC\plugins\SkillSort.dll

需要从旧版本更新?请先删除旧的 DLL 文件,如果在 MonsterHunterWorld.exe 旁边找到 SkillSort.probing,也请一并删除。卸载时,删除 DLL 文件即可。不会触碰任何游戏文件,也不会涉及你的存档。

如果你有 1.1.0 版本,请更新

1.1.0 版本可能导致游戏在加载时崩溃,通常发生在标题画面之前的界面上,如果你同时运行多个 Stracker 插件的话。那是我程序的问题,不是你的设置问题。它在 Windows 持有加载器锁定时,在 DllMain 中做了太多工作,只安装一个插件时没问题,但安装六个就不行了。1.1.7 版本在那里不做任何事,只启动一个线程。

杀毒软件

71 个引擎中有 1 个报毒 —— 微软的 Wacatac.B!ml。VirusTotal 扫描结果

!ml 后缀意味着是机器学习模型做出的猜测,而不是匹配到已知特征。Wacatac 是它常用的通用标签,并且它经常对未签名的模组 DLL 误报。此文件已作为误报提交给微软。

该插件确实会在游戏进程中读写内存,因为对内存中的列表重新排序就需要这么做。它不会做的操作包括:网络、注册表、输入、进程创建。它只导入 kernel32 和 msvcrt,没有其他任何东西。完整源代码包含在下载文件中,如果你想自己检查而不是听我一面之词的话。

如果它完全无法加载,说明你的杀毒软件把它吞了。为游戏添加一个文件夹排除项——这对 Stracker 插件通常都值得做。

工作原理

过滤器是一个简单的技能 ID 数组,游戏按数组顺序绘制。重排数组,即重排菜单。没有挂钩任何东西,也没有修补任何游戏文件。

游戏每次打开过滤器时都会重建该数组,因此一个后台线程会将其重新排序。它不会写入任何无法首先确认的内容:游戏在数组之前保留了一个位掩码,列表中每个技能对应一位,该位掩码必须匹配。

已知问题

  • 仅限英文。其他语言也会排序,但按英文名称排序。我尝试在运行时读取游戏自身的文本,但在内存中找不到它——如果你知道 MHW 将其加载的 UI 字符串存放在哪里,请在评论中告诉我。
  • 每次会话的首次排序可能需要片刻时间,用于定位列表。之后即为即时排序。

许可

可以使用、修改、重新上传、学习。只需注明出处即可。

致谢

感谢 Stracker 提供的 Loader,感谢 AsteriskAmpersand 提供的 Performance Booster 和 Plugin Extender,感谢 Nightrey 标记杀毒软件误报,以及 MHW 模组维基和 MHW-Editor 提供的文件格式文档。