使用自定义 Lua 绑定

使用自定义 Lua 绑定

为方便开发 Lua Mod,我们加入了从游戏中转储自定义 Lua 绑定的功能。此外,还提供一个共享类型文件,包含默认 UE 类型,以及可用的 API 函数、类和对象。

转储自定义 Lua 绑定

打开 GUI 控制台窗口中的 Dumpers 页签,点击 Dump Lua Bindings。

生成器会把文件放入 Mods/shared/types 文件夹。

警告:不要在 Lua 脚本中加载任何生成的文件。如果加载它们,就会覆盖 UE4SS 设置的全局变量,导致功能出错。

使用绑定

建议使用 Visual Studio Code 开发 Lua。可以安装 sumneko 发布、名称为 Lua 的扩展。

将 Mods 文件夹作为工作区打开。也可以保存该工作区,避免每次打开 VS Code 都重新操作。

开发 Lua Mod 时,语言服务器应该会自动解析所有类型文件并提供智能提示。

警告:许多游戏的类型数量非常大,语言服务器无法全部解析。遇到这种情况,可以在工作区根目录添加名为 .luarc.json 的文件,并写入以下内容:

{
    "$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json",
    "workspace.maxPreload": 50000,
    "workspace.preloadFileSize": 5000
}

将 Mod 目录用作工作区

也可以只将 Mod 根目录作为工作区打开。此时需要添加 .luarc.json,在 "workspace.library" 中写入 shared 文件夹和 Mod 的 Scripts 目录路径。两个路径都可以使用相对路径。

.luarc.json 示例:

{
    "$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json",
    "workspace.maxPreload": 50000,
    "workspace.preloadFileSize": 5000,
    "workspace.library": ["../shared", "Scripts"]
}

添加类型注解

要获取自定义游戏类型的上下文信息,需要为代码添加注解(另一份文档)。方法是在需要注解的函数/类/对象上方添加注释。

示例

---@class ITM_MisSel_Biome_C
local biome = FindFirstOf("ITM_MisSel_Biome_C")

---@type int
local numMissions = biome.NumMissions

---@type FVector
local soundCoords = { 420.5, 69.0, 3.1 }
biome:SetSoundCoordinate(soundCoords)

原文:docs/guides/using-custom-lua-bindings.md · 固定提交 560411f18512 · 来源与 MIT 许可