ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

YimMenu 完整实操指南:10 分钟从构建到 Lua 扩展

YimMenu 完整实操指南:10 分钟从构建到 Lua 扩展

YimMenu 完整实操指南:10 分钟从构建到 Lua 扩展

【免费下载链接】YimMenuYimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience.项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu

刚把 YimMenu 注入游戏,按 Insert 却没反应?这篇带 YimMenu 这个 GTA V mod menu 走完「编译 DLL → 注入配置 → Lua 扩展」全流程,约 10 分钟读完后照做,能绕开 3 个最耗时的坑:编译器选错、游戏 build 不匹配、配置文件找错位置。

它是什么

YimMenu 是注入到 GTA V 进程里的 C++ 菜单 DLL,核心卖点是防攻击——拦截大量公开流传的崩溃类攻击包,同时提供 210 个命令、50 个菜单页的修改能力,并支持 Lua 脚本扩展。

  • 如果你要自己编译、改代码或用 Lua 定制功能,这篇正好。
  • 如果你只想要「免安装、解压即用」,仓库里只有源码和构建脚本,没有安装器,这篇帮不了你。

一次性准备

照着勾,4 项全满足再开始:

  • Windows x64 系统(程序读 Windows 注册表、调 Win32 API,没有 Linux/macOS 路径)
  • Visual Studio 2022 的 MSVC 编译器 + CMake 3.20 以上。CMakeLists.txt第 7 行对非 MSVC 编译器直接FATAL_ERROR,换 GCC/Clang 必挂
  • 游戏版本与菜单支持的 build 一致:当前仓库支持 online 1.69 / build 3274,见 metadata.json
  • 一个存放源码的目录,执行:
git clone https://gitcode.com/GitHub_Trending/yi/YimMenu

判断标准:4 项全勾,且git clone后能看到CMakeLists.txt和src/目录。

构建出能注入的 YimMenu.dll 🔩

目标:拿到一个YimMenu.dll。

  1. 用 VS2022「打开本地文件夹」打开仓库根目录。
  2. 选CMakeSettings.json里现成的预设x64-Release(带OPTIMIZE=YES),或x64-Release-FastCompile(编译更快);日常使用别选x64-Debug——运行时日志会专门警告 Debug 版不稳定。
  3. 生成并构建。

判断标准:输出目录里有YimMenu.dll;注入后cout.log第一屏出现Yim's Menu Initializing且没有Debug Build警告。

让菜单稳定弹出

目标:按 Insert 键,菜单出现并记住你的设置。

  1. 游戏先正常启动、进到任意画面,再以管理员身份运行注入器,把YimMenu.dll注入 GTA5 进程。程序启动后会等游戏主窗口(窗口类grcWindow)出现才开始初始化,注入太早只会空转等待。
  2. 按 Insert 键,这是默认的menu_toggle热键。
  3. 首次运行会在%APPDATA%\YimMenu\自动生成settings.json和cout.log,配置和日志都在这个目录。

判断标准:菜单能弹出能收起;cout.log里能看到Pointers initialized.到Hooking enabled.这一串记录。缺Hooking enabled.说明 hook 阶段就失败了,回看上一行日志定位。

把配置改到位

目标:热键、功能开关改完即生效,重启游戏不丢。

  1. 配置只有一个文件:%APPDATA%\YimMenu\settings.json。程序后台每 500ms 检查一次,有改动才落盘;读到损坏或不兼容的旧配置时会自动重写默认值并打日志。
  2. 热键在菜单「设置 → 热键」页里改,不用手编 JSON。默认值:菜单开关 Insert、命令执行器 U,其余热键(传送、免弹、治疗等)默认未设置。
  3. 想手动改 JSON 也行,但要在游戏关闭时改,否则会被自动保存覆盖。

判断标准:菜单里改完一个开关,立刻打开settings.json能看到对应字段变化;重启游戏后设置还在。

用 Lua 脚本扩展功能 📜

目标:不重新编译,往目录里丢脚本就能加功能。

  1. 脚本放在%APPDATA%\YimMenu\scripts\,子目录会递归扫描。
  2. 重载是轮询式的,约每 3 秒检查一次文件变化,丢进去不用重启游戏。把脚本移进scripts\disabled\即禁用;includes\子目录放被require的库脚本,不会单独占列表位置。
  3. 调命令的写法就一行,完整列表见 docs/lua/commands.md:
command.call("spawn", {joaat("adder")})

判断标准:菜单「Lua 脚本」页出现新脚本条目,日志无报错;执行command.call后游戏内车辆生成。

边界与取舍

项目支持到哪什么时候别动
编译器仅 MSVC,CMake 里写死了检查别花时间去移植 GCC/Clang
系统Windows x64Proton/WSL 下没有官方路径
游戏版本截至 online 1.69 / build 3274游戏更新后先查 metadata.json,别急着怪菜单
功能红线210 命令、50 页,含整套防护金钱类功能是贡献规范明令禁止的,线上也别碰
配置位置%APPDATA%\YimMenu\移动 DLL 不迁移配置,配置跟人走不跟文件走

高频疑问

Q:注入了但菜单不弹?定位:多半是注入时机太早或 build 不匹配,看cout.log最后一行停在哪一步。 解法:等游戏进图后再注入;确认游戏版本不高于菜单支持的 build。

Q:手改 settings.json 后设置回退了?定位:游戏内 500ms 一次的自动保存把你的修改覆盖了。 解法:要么在游戏内改,要么关游戏再改文件。

Q:新 Lua 脚本没反应?定位:路径不在scripts\下,或 3 秒重载还没轮到。 解法:核对路径,等约 3 秒,日志有报错就按报错修。

Q:游戏更新后菜单整个没反应?定位:游戏 build 超过了菜单支持的上限(当前 3274)。 解法:查 metadata.json 对比版本号,等菜单跟进更新再注入。

速查清单

  • ✅ MSVC + CMake 3.20+ + x64,构建选x64-Release
  • ✅ 游戏版本对齐 metadata.json 里的 build
  • ✅ 注入器以管理员运行,游戏进程已启动
  • ✅ Insert 开关菜单(默认值,可改)
  • ✅ 配置与日志都在%APPDATA%\YimMenu\(settings.json/cout.log),损坏自动重写
  • ✅ Lua 脚本丢%APPDATA%\YimMenu\scripts\,约 3 秒自动重载
  • ❌ 线上模式别碰金钱类功能
  • ❌ 游戏更新后先查版本匹配,再怀疑菜单有 bug

延伸资源

  • docs/lua/:Lua 扩展全套文档,含 210 个命令清单和 50 个菜单页定义
  • CONTRIBUTING.md:贡献规则与 C++ 代码规范
  • metadata.json:当前支持的游戏版本,排障时第一手资料

【免费下载链接】YimMenuYimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience.项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进