LuaModLoader

LuaModLoader

LuaModLoader 是《GTA IV 完整版》的现代加载器,让您无需 C++ 即可轻松使用和创建 Lua 模组。它具有内置的 ASI 加载器、控制器支持、游戏内编辑器(F6),并能访问超过 3100 个游戏函数和内存。它非常适合想要新模组的玩家和想要构建自己模组的创作者!

GTA IV 完整版(Steam 2020 以上版本 / Build 1.2.0.59)的 LuaModLoader

由于经典的 ASI Loader 和 ScriptHookIV 在最新的 GTA IV 完整版更新中无法使用,LuaModLoader 是一个现代加载器,它允许你使用 Lua 编程语言轻松运行和创建模组!

无需 C++ 或内存修改技能。非常适合想使用新模组的玩家,以及想要构建自己脚本的创作者!

功能特性

  • 内置 ASI 加载器:代理 binkw32.dll 现在兼作 ASI 加载器,并自动加载放置在你的游戏文件夹中的所有 *.asi 模组(如 fastman92 limit adjuster、经典内置修改器等)!
  • 手柄 / 控制器支持(XInput):通过 is_pad_button_down() 为脚本创作者提供对 Xbox / XInput 控制器的完整原生支持。
  • 双命名支持(SNAKE_CASE 和 PascalCase):可以使用标准的 SET_CHAR_HEALTH 或 ScriptHookDotNet 风格的 SetCharHealth 调用全部 3,100 多个原生命令。
  • 内置游戏内 Lua 编辑器:在游戏中按 F6 打开代码编辑器,编写 Lua 脚本,并实时运行,无需重启 GTA IV!
  • 海量原生及内存 API:访问 3,100 多个游戏原生函数,以及安全的内存检查、扫描和写入 API(mem_find_string, mem_find_dword, mem_read_hex, mem_read_u32, mem_write_hex)。
  • DirectX 和输入支持:自定义 HUD 渲染(draw_rect, draw_text)、键盘捕获(is_key_down)和游戏输入隔离。
  • 干净的 Binkw32 代理:无需修改可执行文件即可与游戏无缝自动加载。

如何安装

  1. 打开你的 GTA IV 主游戏文件夹(GTAIV.exe 所在的位置)。
  2. 找到现有的 binkw32.dll 文件,将其重命名为 binkw32_orig.dll(重要提示:不要删除它,只需重命名!)。
  3. 将此压缩包中的所有文件解压到你的 GTA IV 主游戏文件夹中:
    • binkw32.dll
    • LuaModLoader.dll
    • Scintilla.dll
    • Lexilla.dll
  4. 启动游戏尽情享受吧!

控制 / 使用说明

  • 在游戏中的任何时候按 F6 可切换内置 Lua 脚本编辑器。
  • 编写或粘贴任何 Lua 脚本,然后立即执行。
  • 将任何 .lua 模组放入 mods/ 文件夹中,它们将被自动加载。
  • 将任何 .asi 插件放入你的 GTA IV 主文件夹中,它们将被自动加载。

链接、文档和支持

注入器版本 - 应需提供

存在专为脚本创作者设计的第二版本:一个外部注入器,具有独立的编辑器(标签页、搜索、输出控制台)和实时模组管理器,可在游戏运行时启动、停止、重新加载和编辑任何模组。它从外部附加到 GTA IV,绝不会在你的游戏文件夹中新增、重命名或替换任何文件。

此版本未在此发布。如果您需要,请在 Discord 上给我发送私信https://discord.gg/Z8YHfydWff

如何卸载

  1. 删除 LuaModLoader.dllScintilla.dllLexilla.dll 以及自定义的 binkw32.dll
  2. binkw32_orig.dll 重命名回 binkw32.dll

兼容性

  • 专为 GTA IV:完整版(Build 1.2.0.59 / Steam 和 Rockstar Launcher) 设计。
  • 32 位(x86)系统。

更新日志 - 版本 1.1.2

稳定性

  • 修复 “Fatal Error: SMPA60”:模组可能在加载界面期间、在游戏真正运行之前启动,并最终在渲染线程中调用原生函数。这些原生函数在引擎内部失败,并导致其内存分配器不一致,这使 GTA IV 在几分钟后自行关闭并显示 “Fatal Error: SMPA60”,与真正的原因没有明显关联。现在,模组会等到游戏真正进入游戏状态后才进行第一次更新。
  • 更安全的内存写入mem_write_hex 现在会在修改目标内存之前检查其是否有效且可写,而不是先强制使其可写。错误的地址现在会干净地失败并返回 false,而不是静默覆盖游戏内存并在很久以后导致崩溃。

性能

  • 更快的菜单:文本叠加层过去每帧为每一行文本构建一个全新的纹理 – 在典型的内置修改器菜单上大约每秒分配 了1,800 个纹理,导致菜单打开时出现严重的帧数下降。现在,渲染的文本被缓存并在帧间复用,而颜色在绘制时应用,因此高亮和移动光标不会产生额外开销。