Lua引擎

Lua引擎

LuaEngine 是一个为《怪物猎人世界》打造的 Lua 脚本平台引擎,通过编写 Lua 脚本即可实现游戏数据的自动化控制。该引擎还内置了 ImGui 功能,可对数据进行可视化展示与修改。使用说明

杂项

关于 LuaEngine

LuaEngine 是一款专为《怪物猎人世界》打造的 Lua 脚本平台引擎,通过编写 Lua 脚本即可实现游戏数据的自动化控制。该引擎还内置了 ImGui 功能,可对数据进行可视化操作与修改。具体使用方法请参阅左侧菜单内容。

LuaEngine 是一款能够通过赋予你对游戏数据更多控制与自定义能力来提升游戏体验的模组。
你可以使用 Lua 脚本来操控游戏的多个方面,比如角色属性、位置、武器、物品栏等。
你还可以利用 ImGui 创建自己的用户界面,实时显示并编辑数据。
LuaEngine 是一款强大而灵活的工具,让你尽情释放创造力与想象力。

模组安装

要安装此模组,只需将压缩包中的文件解压至游戏根目录即可。卸载模组时,只需删除 nativePC\plugins\LuaEngine.dll 文件。

Lua 脚本文件存放在 Lua 文件夹中。Engine.luamodules 文件是引擎的核心文件,请勿轻易删除或修改。可选脚本应安装在 Lua 文件夹内。

引擎使用

游戏数据解析引擎目前已实现部分游戏数据的读取与修改。完成初始化后,您便可轻松访问这些数据。以下将说明已解析的游戏数据及引擎的使用方法。相关代码可在可选脚本的数据窗口脚本中找到。

引擎初始化

在初始化玩家、世界和任务时,非常简单。你可以直接通过 new() 方法将引擎加载到变量中。

local Data_Player = engine.Player:new()

初始化怪物和实体时,需要将对应实体的地址传递给 new(entityPtr) 函数。通常这些实体地址可以通过 mod 的内置函数获取,无需手动查找。

local monsterList = GetAllMonster()
for monster, monsterData in pairs(monsterList) do
    local Data_Monster = engine.Monster:new(monster)
end

在引擎中获取和修改数据

引擎初始化后,会以表的形式存储在变量中,你可以直接访问表中的数据。这些数据也会响应赋值操作并直接修改游戏数据,但请注意并非所有数据都支持修改。引擎目前仅提供可修改的数据绑定,其他数据修改不会生效。

获取玩家生命值

local health = Data_Player.Characteristic.health.health_current

修改玩家生命值

Data_Player.Characteristic.health.health_current = 100

直接通过引擎修改玩家的武器 ID 不会生效,玩家的武器 ID 是受保护数据。

Data_Player.Weapon.id = 214 -- 不会生效

值得注意的是,某些结构型数据无法通过引擎仅修改结构中的一个值来变更,但可以通过修改整个结构来实现更改。

修改玩家坐标

Data_Player.Position.position = {x = 100, y = 20, z = 100}

如果你只修改玩家坐标中的一个值,它将不会生效。

Data_Player.Position.position.x = 100 -- 不会生效

当前可访问的引擎数据

由于引擎数据量庞大,建议直接查阅 Lua\modules 目录下的引擎源代码。源代码中的第一个表格包含了该物品所有可访问的数据。能通过引擎直接修改的内容,可在该物品 new() 方法下方的创建监听器中查看。new 方法通常位于源代码底部。

预设功能

引擎还预设了一些便捷函数。相关项的功能可在对应项源代码头部注释中编写的方法里查看。目前,主引擎仅提供了用于判断按键是否按下的键盘功能。

if engine.keypad({'ctrl', 'a'}) then
    ...
end

这里建议配合计时器功能一起使用,增加按键判断的延迟。使用方法可参考示例文件中的 on_time 函数。

Git 仓库及相关依赖描述

GitHub: https://github.com/HalcyonAlcedo/LuaEngine
Gitee: https://gitee.com/HalcyonAlcedo/LuaEngine

Lua 版本:5.4.4
ImGui 版本:v1.89.2

Discord: https://discord.gg/nX6uwwK7vt
QQ: 736747654