XiRush Lua API 文档 v1.0

完整的 Lua 脚本 API 参考。脚本文件放置于 Lua/ 目录,框架自动加载。

生命周期钩子

在脚本中定义以下全局函数,框架会在对应时机自动调用:

on_load()

脚本加载后调用一次,用于初始化。

on_unload()

脚本卸载前调用,用于清理资源。

on_tick()

每帧调用(脚本线程),可安全调用 native。

on_present()

渲染帧回调(渲染线程)。

on_key(key, is_up)

按键事件。key 为虚拟键码,is_up 表示抬起。

gui_tick()

UI 渲染回调,在此使用 ui 表绘制 ImGui 界面。

-- 加载配置(文件不存在时用默认值)
local cfg = json.load("config.json") or { god_mode = false, speed = 1.0 }

function on_load()
    notify.info("脚本已加载,数据目录: " .. fs.dir())
end

function on_unload()
    -- 卸载时自动保存配置
    json.save("config.json", cfg)
end

function on_tick()
    if cfg.god_mode then
        ENTITY.SET_ENTITY_INVINCIBLE(PLAYER.PLAYER_PED_ID(), true)
    end
end

function gui_tick()
    if ui.begin("我的窗口") then
        local changed, val = ui.checkbox("无敌模式", cfg.god_mode)
        if changed then cfg.god_mode = val end

        local sc, sv = ui.sliderFloat("速度倍率", cfg.speed, 0.1, 5.0)
        if sc then cfg.speed = sv end

        if ui.button("保存配置") then
            json.save("config.json", cfg)
            notify.info("配置已保存")
        end
    end
    ui["end"]()
end