
IHHook
一个代理DLL(位于 MGS_TPP\dinput8.dll),随MGSV加载,为模组提供扩展功能,并为Infinite Heaven提供图形菜单。
查看大图IHHook
版本 r21 - 2026-06-10(完整变更记录请见 GitHub)
Yazed0071 提供的 1.0.15.4 游戏版本地址。
适用于 MGSV 1.15 版本(标题画面)及 1.0.15.4 的 exe 文件
需要 Infinite Heaven r265
IHHook 此前与 Infinite Heaven 捆绑发布,现已分离为独立安装文件和 Nexus 页面,以便隔离反馈和问题。
IHHook 源代码:https://github.com/kapuragu/IHHook
IHHook 模组:https://www.nexusmods.com/metalgearsolidvtpp/mods/1226
Infinite Heaven 模组:https://www.nexusmods.com/metalgearsolidvtpp/mods/45
## 描述
一个与 MGSV 一同加载的代理 DLL(基于 dinput8.dll),为模组开发提供扩展功能。
## 依赖项
### 运行时
Microsoft Visual C++ Redistributable for Visual Studio,x64
https://aka.ms/vs/17/release/VC_redist.x64.exe
### 开发环境
MSVS v141 - VS 2017 C++ x64/x86 构建工具(v14.16)
Windows 10 SDK(10.0.17763.0)
(通过 Visual Studio 安装程序 > 单个组件安装)
## IHHook 功能
可通过以下 YouTube 播放列表查看可视化演示的功能:
https://www.youtube.com/playlist?list=PLSKlVTXYh6F9XCIpHUGTSkd9gDzoU6N1s
基于 dear-IMGUI 的 Infinite Heaven 菜单。
[youtube]ERL7okZVcW4[/youtube]
Lua C API 支持(基本完整)
允许通过 C 语言扩展 MGSV 内置的 Lua。
不支持动态库,因为 MGSV 的 Lua 是静态编译的,且通过独立的 Lua 发行版运行 MGSV Lua 状态并不可取,因为 MGSV Lua 核心已从默认版本修改。
但可以将 Lua C 模块编译到 IHHook 中。
通过 spdlog 记录日志。
Infinite Heaven 使用此功能以获得更好的性能(主要用于调试)
拥有独立的日志文件,用于调试/信息输出。
命名管道服务器:启动一个多线程命名管道服务器,包含两个管道:mgsv_in、mgsv_out。
目前由 Infinite Heaven 用于在使用 IHExt 时提升性能,并应开启我之前因旧的基于文本文件的 IH > IHExt 通信方式而犹豫不决的新可能性。
CityHash 日志记录(当前需通过 #define 编译启用),使用 emooses 的 CityHash 日志记录(但改用 spdlog 以获得更好性能),IHHook 最初即基于此构建。
RawInput 键盘处理与拦截(概念验证)
## 更多信息
关于项目的部分注释,请参见 IHHook.h 文件。
## 致谢
感谢 zip 促使我优化了发布流程,抱歉拖了这么久。
感谢 sai 提及他使用 Ghidra 所做的工作,这帮助我克服了几个障碍,开始找到 MGSV 的 Lua 函数。
感谢 emoose 提供 CityHook,为 IHHook 的起步奠定了基础。
感谢 Half Way Lambda 在 r18 中的 imgui 贡献。
感谢 Yazed0071 提供 1.0.15.4 中的地址。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。