LuaInterface 技术说明文档
1. 类概述
LuaInterface 是一个静态类,作为 Unity 客户端中 C# 与 Lua 之间的桥梁,提供了丰富的接口供 Lua 脚本调用 C# 功能。该类使用 [LuaCallCSharp] 注解标记可被 Lua 调用的成员,实现了 C# 与 Lua 之间的双向通信、事件处理、UI 操作、游戏状态管理等功能。
2. 命名空间
Global
3. 类成员列表
| 成员类型 | 成员名称 | 说明 |
|---|---|---|
| 方法 | AddLuaCallback | 向指定系统事件添加 Lua 回调 |
| 方法 | RemoveLuaCallback | 从指定系统事件移除 Lua 回调 |
| 方法 | GetUserPanel | 获取用户面板数据 |
| 方法 | GetUserInfo | 获取用户信息 |
| 方法 | CallBackendLua | 调用后端 Lua 函数 |
| 方法 | SetGlobal | 设置全局变量 |
| 方法 | GetGlobal | 获取全局变量 |
| 方法 | OpenWindow | 打开窗口 |
| 方法 | LoadXML | 加载 XML 文件为 VisualElement |
| 方法 | LoadXMLString | 解析 XML 字符串为 VisualElement |
| 方法 | LoadMainUI | 加载主 UI |
| 方法 | RemoveElement | 移除 UI 元素 |
| 方法 | NewMapRule | 添加新的映射规则 |
| 方法 | Restart | 重新开始游戏 |
| 方法 | AutoPilotTo | 自动导航到指定坐标 |
| 方法 | StopAutoPilot | 停止自动导航 |
| 方法 | ShowTooltip | 显示工具提示 |
| 方法 | ShowDialog | 显示对话框 |
| 方法 | ShowAlert | 显示警告框 |
| 方法 | ClickNPCAt | 点击指定位置的 NPC |
| 方法 | MapToScreen | 将地图坐标转换为屏幕坐标 |
| 方法 | ShowUIGuide | 显示 UI 引导 |
| 方法 | ShowMapGuide | 显示地图引导 |
| 方法 | SetIntSetting | 设置整数类型的用户设置 |
| 方法 | SetBoolSetting | 设置布尔类型的用户设置 |
| 方法 | SetStringSetting | 设置字符串类型的用户设置 |
| 方法 | SetFloatSetting | 设置浮点数类型的用户设置 |
| 方法 | GetIntSetting | 获取整数类型的用户设置 |
| 方法 | GetBoolSetting | 获取布尔类型的用户设置 |
| 方法 | GetStringSetting | 获取字符串类型的用户设置 |
| 方法 | GetFloatSetting | 获取浮点数类型的用户设置 |
| 方法 | SaveSettings | 保存用户设置 |
| 方法 | ActivateSkill | 激活或停用技能 |
| 方法 | BuyShopItem | 购买商店物品 |
| 方法 | RefreshShopItemList | 刷新商店物品列表 |
| 方法 | GetShopItemList | 获取商店物品列表 |
| 方法 | GetActiveNPCID | 获取当前活跃NPCID |
| 方法 | GetDefaultNPCID | 获取默认NPCID |
| 方法 | SetListViewBinder | 设置列表视图的绑定方法 |
| 方法 | SetListViewUnbinder | 设置列表视图的解绑方法 |
| 方法 | CollectMail | 领取邮件附件内容 |
| 方法 | OpenMail | 打开邮件 |
| 方法 | DeleteMail | 删除邮件 |
| 方法 | GuildCreate | 创建公会 |
| 方法 | GuildApply | 申请加入公会 |
| 方法 | GuildChangeRank | 修改公会职位 |
| 方法 | GuildKick | 踢出公会成员 |
| 方法 | GuildLeave | 退出公会 |
| 方法 | GuildEditMember | 编辑公会成员信息 |
| 方法 | ChangeLeader | 转让会长职位 |
| 方法 | RefreshMyGuildInformation | 刷新当前公会信息 |
| 方法 | RefreshGuildRanks | 刷新当前公会职位信息 |
| 方法 | RefreshGuildIntroductions | 刷新所有公会介绍信息 |
| 方法 | RefreshGuildApplications | 刷新当前公会申请信息 |
| 方法 | RefreshGuildMembers | 刷新当前公会成员信息 |
| 方法 | GetItemInfoByKeyName | 通过物品KeyName获取物品信息 |
| 方法 | GetVisualElementByGUID | 通过GUID获取UI元素 |
| 方法 | AddFriend | 添加好友 |
| 方法 | AddBlacklist | 添加到黑名单 |
| 方法 | EditMemo | 编辑好友备注 |
| 方法 | RemoveFriend | 移除好友 |
| 方法 | GetFriends | 获取好友列表 |
| 方法 | GetBlacklist | 获取黑名单列表 |
| 方法 | GetItemInfo | 通过物品KeyName获取物品信息 |
| 方法 | IsAutoMode | 检查是否处于自动模式 |
| 方法 | PlayMusic | 播放音乐文件 |
| 方法 | ConsignItem | 以指定的货币和价格寄售物品 |
| 方法 | MarketSearch | 设置市场物品过滤器 |
| 方法 | MarketPage | 请求市场物品分页数据 |
| 方法 | MarketBuy | 购买市场物品 |
| 方法 | MarketSellNow | 立即出售市场物品 |
| 方法 | MarketGetBack | 取消上架市场物品 |
| 方法 | GetMarketCurrencies | 获取市场允许的货币种类 |
| 方法 | GetMarketItems | 获取当前页的市场商品列表 |
4. 详细成员说明
4.1 AddLuaCallback
[LuaCallCSharp]
public static Guid AddLuaCallback(LuaFunction lua, SysEvent evt, object arg)功能描述
向指定的系统事件添加一个 Lua 回调函数,当该事件触发时,将调用注册的 Lua 函数。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| lua | LuaFunction | Lua 回调函数,签名应为 function(eventArg, arg) |
| evt | SysEvent | 系统事件类型,指定要监听的事件 |
| arg | object | 传递给回调函数的额外参数 |
返回值类型及说明
| 类型 | 说明 |
|---|---|
| Guid | 回调函数的唯一标识符,用于后续移除该回调 |
使用示例
-- 监听背包变化事件
local callbackId = LuaInterface.AddLuaCallback(function(eventArg, arg)
-- eventArg 包含背包变化的物品和变化类型
-- arg 是注册时传递的额外参数
print("背包发生变化", arg)
end, SysEvent.InventoryChangeEvent, "背包监听器")注意事项
- 必须保存返回的
Guid,以便在不需要监听时使用RemoveLuaCallback移除回调,避免内存泄漏 - 回调函数的参数顺序固定:第一个参数是事件数据,第二个参数是注册时传递的额外参数
4.2 RemoveLuaCallback
[LuaCallCSharp]
public static void RemoveLuaCallback(SysEvent evt, Guid id)功能描述
从指定的系统事件移除 Lua 回调函数。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| evt | SysEvent | 系统事件类型,指定要移除回调的事件 |
| id | Guid | 要移除的 Lua 回调的唯一标识符,由 AddLuaCallback 返回 |
使用示例
-- 移除之前注册的 Lua 回调
LuaInterface.RemoveLuaCallback(SysEvent.InventoryChangeEvent, callbackId)注意事项
- 如果指定的
id不存在于事件的回调列表中,该方法不会产生任何效果 - 调用此方法后,回调函数将不再被触发
4.3 GetUserPanel
[LuaCallCSharp]
public static double GetUserPanel(int panelID)功能描述
获取用户面板数据,返回指定面板 ID 对应的数值。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| panelID | int | 面板 ID,指定要获取的面板数据类型 |
返回值类型及说明
| 类型 | 说明 |
|---|---|
| double | 指定面板 ID 对应的数值 |
使用示例
-- 获取用户生命值
local health = LuaInterface.GetUserPanel(1) -- 假设 1 是生命值面板 ID
print("当前生命值:", health)注意事项
- 面板 ID 的具体含义由游戏逻辑定义,需要参考相关文档
- 确保传入有效的面板 ID,否则可能返回错误值
4.4 GetUserInfo
[LuaCallCSharp]
public static string GetUserInfo(int infoID)功能描述
获取用户信息,返回指定信息 ID 对应的字符串值。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| infoID | int | 信息 ID,指定要获取的用户信息类型 |
返回值类型及说明
| 类型 | 说明 |
|---|---|
| string | 指定信息 ID 对应的用户信息字符串,如果键不存在返回空字符串 |
使用示例
-- 获取用户名称
local userName = LuaInterface.GetUserInfo(0) -- 假设 0 是用户名信息 ID
print("用户名:", userName)注意事项
- 信息 ID 的具体含义由游戏逻辑定义,需要参考相关文档
- 如果传入无效的信息 ID,返回空字符串而不是抛出异常
4.5 CallBackendLua
[LuaCallCSharp]
public static void CallBackendLua(string fileName, string functionName, params string[] args)功能描述
调用后端 Lua 函数,将请求发送到服务器执行指定的 Lua 函数。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| fileName | string | 后端 Lua 文件名称 |
| functionName | string | 要调用的函数名称 |
| args | params string[] | 传递给后端函数的可变参数列表,元素必须都是字符串类型 |
使用示例
-- 调用后端 Lua 函数
-- 方法 1:传递参数数组
local args = {"param1", "param2"}
LuaInterface.CallBackendLua("gameLogic.lua", "processGameEvent", args)
-- 方法 2:直接传递多个参数
LuaInterface.CallBackendLua("gameLogic.lua", "processGameEvent", "param1", "param2")注意事项
- 后端必须存在指定的 Lua 文件和函数
- 参数必须都是字符串类型
- 该方法是异步调用,不会立即返回结果
4.6 SetGlobal
[LuaCallCSharp]
public static void SetGlobal(string key, object value)功能描述
设置全局变量,将指定的键值对存储在全局字典中,供后续使用。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | string | 全局变量的键名 |
| value | object | 全局变量的值,可以是任意类型 |
使用示例
-- 设置全局变量
local myElement = someVisualElement
LuaInterface.SetGlobal("MyGlobalElement", myElement)
local myValue = 123
LuaInterface.SetGlobal("MyGlobalValue", myValue)注意事项
- 可以存储任意类型的值,不仅限于 Unity 的 Object 类型
- 重复设置相同的键会覆盖之前的值
4.7 GetGlobal
[LuaCallCSharp]
public static object GetGlobal(string key)功能描述
获取全局变量,根据指定的键名从全局字典中获取对应的值。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | string | 全局变量的键名 |
返回值类型及说明
| 类型 | 说明 |
|---|---|
| object | 全局变量的值,如果键不存在返回 null |
使用示例
-- 获取全局变量
local myElement = LuaInterface.GetGlobal("MyGlobalElement")
if myElement then
-- 使用获取到的元素
myElement.visible = true
end
local myValue = LuaInterface.GetGlobal("MyGlobalValue")
if myValue then
print("全局值:", myValue)
end注意事项
- 如果指定的键不存在,返回 null 而不是抛出异常
- 返回的值需要根据实际类型进行转换后使用
4.8 OpenWindow
[LuaCallCSharp]
public static void OpenWindow(string filePath, string windowName = "DefaultWindow")功能描述
打开一个新窗口,从指定的文件路径加载 UI 元素并显示。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| filePath | string | UI XML 文件的路径 |
| windowName | string | 窗口名称,用于标识和后续操作该窗口,默认为 “DefaultWindow” |
使用示例
-- 打开一个新窗口
LuaInterface.OpenWindow("UI/Windows/MyWindow.uxml", "MyCustomWindow")注意事项
- 如果指定名称的窗口已存在,将先移除旧窗口再创建新窗口
- 窗口会被自动添加到全局变量中,可通过
GetGlobal(windowName)获取
4.9 LoadXML
[LuaCallCSharp]
public static VisualElement LoadXML(string filePath)功能描述
从指定的文件路径加载 XML 文件,并解析为 VisualElement 对象。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| filePath | string | UI XML 文件的路径 |
返回值类型及说明
| 类型 | 说明 |
|---|---|
| VisualElement | 解析后的 VisualElement 对象 |
使用示例
-- 加载 XML 文件
local element = LuaInterface.LoadXML("UI/Components/MyComponent.uxml")
-- 将元素添加到某个父容器中
parentElement:Add(element)注意事项
- 确保指定的文件路径正确,否则可能返回 null
- 解析后的 VisualElement 需要手动添加到 UI 层级中才能显示
4.10 LoadXMLString
[LuaCallCSharp]
public static VisualElement LoadXMLString(string xmlString)功能描述
将 XML 字符串解析为 VisualElement 对象。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| xmlString | string | 包含 UI 定义的 XML 字符串 |
返回值类型及说明
| 类型 | 说明 |
|---|---|
| VisualElement | 解析后的 VisualElement 对象 |
使用示例
-- 解析 XML 字符串
local xmlString = [[
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements">
<ui:Label text="Hello World" />
</ui:UXML>]]
local element = LuaInterface.LoadXMLString(xmlString)注意事项
- 确保 XML 字符串格式正确,否则可能返回 null 或抛出异常
- 解析后的 VisualElement 需要手动添加到 UI 层级中才能显示
4.11 LoadMainUI
[LuaCallCSharp]
public static VisualElement LoadMainUI(string filePath)功能描述
加载主 UI,从指定的文件路径加载 UI 元素并设置为游戏的主 UI。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| filePath | string | 主 UI XML 文件的路径 |
返回值类型及说明
| 类型 | 说明 |
|---|---|
| VisualElement | 加载的主 UI VisualElement 对象 |
使用示例
-- 加载主 UI
local mainUI = LuaInterface.LoadMainUI("UI/MainUI.uxml")注意事项
- 此方法会替换当前的主 UI
- 加载的主 UI 会自动显示在游戏中
4.12 RemoveElement
[LuaCallCSharp]
public static void RemoveElement(VisualElement dialog)功能描述
移除指定的 UI 元素,将其从 UI 层级中移除。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| dialog | VisualElement | 要移除的 UI 元素 |
使用示例
-- 移除 UI 元素
local element = LuaInterface.GetGlobal("MyElement")
if element then
LuaInterface.RemoveElement(element)
end注意事项
- 确保传入的 UI 元素确实存在于 UI 层级中
- 移除后,UI 元素将不再显示
4.13 NewMapRule
[LuaCallCSharp]
public static void NewMapRule(string key, string value)功能描述
添加新的映射规则,将指定的键值对添加到资源管理器的映射规则中。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | string | 映射规则的键名 |
| value | string | 映射规则的值 |
使用示例
-- 添加新的映射规则
LuaInterface.NewMapRule("Map1001", "rule1,rule2,rule3")注意事项
- 映射规则的具体格式和用途由游戏逻辑定义
- 重复添加相同的键可能会覆盖之前的值
4.14 Restart
[LuaCallCSharp]
public static void Restart()功能描述
重新开始游戏,注销当前用户并重新登录。
使用示例
-- 重新开始游戏
LuaInterface.Restart()注意事项
- 此方法会中断当前游戏会话
- 会触发一系列网络请求,包括注销和重新登录
4.15 AutoPilotTo
[LuaCallCSharp]
public static void AutoPilotTo(int x, int y, LuaFunction onCancel, LuaFunction onComplete)功能描述
自动导航到指定的坐标位置。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| x | int | 目标位置的 X 坐标 |
| y | int | 目标位置的 Y 坐标 |
| onCancel | LuaFunction | 导航取消时的回调函数,可选 |
| onComplete | LuaFunction | 导航完成时的回调函数,可选 |
使用示例
-- 自动导航到指定坐标
LuaInterface.AutoPilotTo(100, 200,
function() print("导航已取消") end,
function() print("导航已完成") end)注意事项
- 确保指定的坐标在当前地图范围内
- 导航过程中可能会被各种因素中断
- 回调函数是可选的,可以传入 nil
4.16 StopAutoPilot
[LuaCallCSharp]
public static void StopAutoPilot()功能描述
停止当前正在进行的自动导航。
使用示例
-- 停止自动导航
LuaInterface.StopAutoPilot()4.17 ShowTooltip
[LuaCallCSharp]
public static void ShowTooltip(VisualElement element, int x, int y)功能描述
在指定位置显示提示信息。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| element | VisualElement | 工具提示的内容元素 |
| x | int | 工具提示显示位置的 X 坐标 |
| y | int | 工具提示显示位置的 Y 坐标 |
使用示例
-- 创建工具提示内容
local tooltipContent = LuaInterface.LoadXML("UI/Tooltip.uxml")
tooltipContent.text = "这是一个工具提示"
-- 显示工具提示
LuaInterface.ShowTooltip(tooltipContent, 100, 200)4.18 ShowDialog
[LuaCallCSharp]
public static void ShowDialog(VisualElement dialog)功能描述
显示指定的对话框。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| dialog | VisualElement | 对话框元素 |
使用示例
-- 创建并显示对话框
local dialog = LuaInterface.LoadXML("UI/Dialogs/MyDialog.uxml")
LuaInterface.ShowDialog(dialog)注意事项
- 对话框会被添加到 UI 层级中并显示
- 显示前确保对话框元素已正确配置
4.19 ShowAlert
[LuaCallCSharp]
public static void ShowAlert(VisualElement alert)功能描述
显示指定的警告框。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| alert | VisualElement | 警告框元素 |
使用示例
-- 创建并显示警告框
local alert = LuaInterface.LoadXML("UI/Alerts/MyAlert.uxml")
LuaInterface.ShowAlert(alert)注意事项
- 警告框会被添加到 UI 层级中并显示
- 警告框通常用于显示重要的提示信息
4.20 ClickNPCAt
[LuaCallCSharp]
public static void ClickNPCAt(int x, int y)功能描述
点击指定位置的 NPC,触发 NPC 对话。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| x | int | 地图 X 坐标 |
| y | int | 地图 Y 坐标 |
使用示例
-- 点击指定位置的 NPC
LuaInterface.ClickNPCAt(100, 200)注意事项
- 坐标是地图坐标,不是屏幕坐标
- 如果指定位置有多个 NPC,只会与第一个 NPC 对话
- 会自动发送 NPC 对话请求到服务器
4.21 MapToScreen
[LuaCallCSharp]
public static Rect MapToScreen(int x, int y)功能描述
将地图坐标转换为屏幕坐标。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| x | int | 地图 X 坐标 |
| y | int | 地图 Y 坐标 |
返回值类型及说明
| 类型 | 说明 |
|---|---|
| Rect | 转换后的屏幕坐标矩形 |
使用示例
-- 将地图坐标转换为屏幕坐标
local screenRect = LuaInterface.MapToScreen(100, 200)
print("屏幕坐标:", screenRect.x, screenRect.y, screenRect.width, screenRect.height)4.22 ShowUIGuide
[LuaCallCSharp]
public static void ShowUIGuide(VisualElement ve, string hint, Action callback)功能描述
显示 UI 引导,高亮指定的 UI 元素并显示提示信息。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| ve | VisualElement | 要高亮的 UI 元素 |
| hint | string | 引导提示信息 |
| callback | Action | 引导完成时的回调函数 |
使用示例
-- 显示 UI 引导
local button = LuaInterface.GetGlobal("MyButton")
LuaInterface.ShowUIGuide(button, "点击此按钮继续", function()
print("引导完成")
end)4.23 ShowMapGuide
[LuaCallCSharp]
public static void ShowMapGuide(int x, int y, int heightByCell, string hint, Action callback)功能描述
显示地图引导,高亮地图上的指定位置并显示提示信息。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| x | int | 地图 X 坐标 |
| y | int | 地图 Y 坐标 |
| heightByCell | int | 高亮区域的高度(以单元格为单位) |
| hint | string | 引导提示信息 |
| callback | Action | 引导完成时的回调函数 |
使用示例
-- 显示地图引导
LuaInterface.ShowMapGuide(100, 200, 2, "前往此处", function()
print("地图引导完成")
end)4.24 SetIntSetting
[LuaCallCSharp]
public static void SetIntSetting(string attr, int value)功能描述
设置整数类型的用户设置。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| attr | string | 设置项名称 |
| value | int | 设置项值 |
使用示例
-- 设置整数类型的用户设置
LuaInterface.SetIntSetting("SoundVolume", 80)4.25 SetBoolSetting
[LuaCallCSharp]
public static void SetBoolSetting(string attr, bool value)功能描述
设置布尔类型的用户设置。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| attr | string | 设置项名称 |
| value | bool | 设置项值 |
使用示例
-- 设置布尔类型的用户设置
LuaInterface.SetBoolSetting("MusicEnabled", true)4.26 SetStringSetting
[LuaCallCSharp]
public static void SetStringSetting(string attr, string value)功能描述
设置字符串类型的用户设置。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| attr | string | 设置项名称 |
| value | string | 设置项值 |
使用示例
-- 设置字符串类型的用户设置
LuaInterface.SetStringSetting("PlayerName", "TestUser")4.27 SetFloatSetting
[LuaCallCSharp]
public static void SetFloatSetting(string attr, float value)功能描述
设置浮点数类型的用户设置。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| attr | string | 设置项名称 |
| value | float | 设置项值 |
使用示例
-- 设置浮点数类型的用户设置
LuaInterface.SetFloatSetting("MouseSensitivity", 1.5)4.28 GetIntSetting
[LuaCallCSharp]
public static int GetIntSetting(string attr, int defaultValue = 0)功能描述
获取整数类型的用户设置。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| attr | string | 设置项名称 |
| defaultValue | int | 默认值,当设置项不存在时返回此值,默认为 0 |
返回值类型及说明
| 类型 | 说明 |
|---|---|
| int | 设置项的整数值,如果设置项不存在则返回默认值 |
使用示例
-- 获取整数类型的用户设置
local soundVolume = LuaInterface.GetIntSetting("SoundVolume")
print("当前音量:", soundVolume)
-- 获取整数类型的用户设置,带有默认值
local brightness = LuaInterface.GetIntSetting("Brightness", 50)
print("当前亮度:", brightness)注意事项
- 如果设置项名称为空或 null,会输出警告日志并返回默认值
4.29 GetBoolSetting
[LuaCallCSharp]
public static bool GetBoolSetting(string attr, bool defaultValue = false)功能描述
获取布尔类型的用户设置。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| attr | string | 设置项名称 |
| defaultValue | bool | 默认值,当设置项不存在时返回此值,默认为 false |
返回值类型及说明
| 类型 | 说明 |
|---|---|
| bool | 设置项的布尔值,如果设置项不存在则返回默认值 |
使用示例
-- 获取布尔类型的用户设置
local isMusicEnabled = LuaInterface.GetBoolSetting("MusicEnabled")
if isMusicEnabled then
print("音乐已开启")
else
print("音乐已关闭")
end
-- 获取布尔类型的用户设置,带有默认值
local isFullscreen = LuaInterface.GetBoolSetting("IsFullscreen", true)
print("是否全屏:", isFullscreen)注意事项
- 如果设置项名称为空或 null,会输出警告日志并返回默认值
4.30 GetStringSetting
[LuaCallCSharp]
public static string GetStringSetting(string attr, string defaultValue = "")功能描述
获取字符串类型的用户设置。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| attr | string | 设置项名称 |
| defaultValue | string | 默认值,当设置项不存在时返回此值,默认为空字符串 |
返回值类型及说明
| 类型 | 说明 |
|---|---|
| string | 设置项的字符串值,如果设置项不存在则返回默认值 |
使用示例
-- 获取字符串类型的用户设置
local playerName = LuaInterface.GetStringSetting("PlayerName")
print("玩家名称:", playerName)
-- 获取字符串类型的用户设置,带有默认值
local playerTitle = LuaInterface.GetStringSetting("PlayerTitle", "无称号")
print("玩家称号:", playerTitle)注意事项
- 如果设置项名称为空或 null,会输出警告日志并返回默认值
4.31 GetFloatSetting
[LuaCallCSharp]
public static float GetFloatSetting(string attr, float defaultValue = 0f)功能描述
获取浮点数类型的用户设置。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| attr | string | 设置项名称 |
| defaultValue | float | 默认值,当设置项不存在时返回此值,默认为 0f |
返回值类型及说明
| 类型 | 说明 |
|---|---|
| float | 设置项的浮点数值,如果设置项不存在则返回默认值 |
使用示例
-- 获取浮点数类型的用户设置
local mouseSensitivity = LuaInterface.GetFloatSetting("MouseSensitivity")
print("鼠标灵敏度:", mouseSensitivity)
-- 获取浮点数类型的用户设置,带有默认值
local volume = LuaInterface.GetFloatSetting("MusicVolume", 0.5f)
print("音乐音量:", volume)注意事项
- 如果设置项名称为空或 null,会输出警告日志并返回默认值
4.32 SaveSettings
[LuaCallCSharp]
public static void SaveSettings()功能描述
保存用户设置,将当前所有用户设置持久化到本地存储。
参数类型及说明
无参数。
使用示例
-- 保存用户设置
LuaInterface.SaveSettings()
print("设置已保存")注意事项
- 该方法会保存所有类型的用户设置,包括整数、布尔值、字符串和浮点数类型
- 设置保存操作是异步的,不会立即完成
- 保存失败时不会抛出异常,但会在日志中记录错误信息
4.33 ActivateSkill
[LuaCallCSharp]
public static void ActivateSkill(int skillID, bool activate)功能描述
激活或停用指定技能。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| skillID | int | 技能 ID |
| activate | bool | 是否激活技能 |
使用示例
-- 激活技能
LuaInterface.ActivateSkill(1001, true)
-- 停用技能
LuaInterface.ActivateSkill(1001, false)注意事项
- 确保技能 ID 有效
- 激活技能后,技能会自动释放
- 停用技能后,技能将不再自动释放
4.34 BuyShopItem
[LuaCallCSharp]
public static void BuyShopItem(int itemID, short quantity)功能描述
向服务器发送购买商店物品请求。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| itemID | int | 商店物品 ID |
| quantity | short | 购买数量 |
使用示例
-- 购买商店物品
LuaInterface.BuyShopItem(1001, 1)4.35 RefreshShopItemList
[LuaCallCSharp]
public static void RefreshShopItemList(long npcID, string shopClass, params string[] categories)功能描述
从服务器拉取最新的商店商品列表。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| npcID | long | 商店 NPC ID |
| shopClass | string | 商品类型 |
| categories | params string[] | 商品分类,可传入多个分类 |
使用示例
-- 刷新商店商品列表
LuaInterface.RefreshShopItemList(10001, "normal", "weapon", "armor")4.36 GetShopItemList
[LuaCallCSharp]
public static List<GameShopItem> GetShopItemList(long npcID, string shopClass, string category)功能描述
获取本地缓存的商店商品列表。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| npcID | long | 商店 NPC ID |
| shopClass | string | 商品类型 |
| category | string | 商品分类 |
返回值类型及说明
| 类型 | 说明 |
|---|---|
| List |
商品列表 |
使用示例
-- 获取商店商品列表
local shopItems = LuaInterface.GetShopItemList(10001, "normal", "weapon")
print("商品数量:", #shopItems)4.37 GetActiveNPCID
[LuaCallCSharp]
public static long GetActiveNPCID()功能描述
获取当前交互中的 NPC ID。
返回值类型及说明
| 类型 | 说明 |
|---|---|
| long | 活跃 NPC ID |
使用示例
-- 获取当前活跃 NPC ID
local activeNPCID = LuaInterface.GetActiveNPCID()
print("活跃 NPC ID:", activeNPCID)4.38 GetDefaultNPCID
[LuaCallCSharp]
public static long GetDefaultNPCID()功能描述
获取游戏系统 NPC ID。
返回值类型及说明
| 类型 | 说明 |
|---|---|
| long | 系统 NPC ID |
使用示例
-- 获取系统 NPC ID
local defaultNPCID = LuaInterface.GetDefaultNPCID()
print("系统 NPC ID:", defaultNPCID)4.39 SetListViewBinder
[LuaCallCSharp]
public static void SetListViewBinder(SlideListView ve, LuaFunction method)功能描述
设置列表视图的绑定方法,用于将数据绑定到列表项。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| ve | SlideListView | 列表视图对象 |
| method | LuaFunction | 绑定方法,签名应为 function(element, index) |
使用示例
-- 设置列表视图的绑定方法
local listView = someSlideListView
LuaInterface.SetListViewBinder(listView, function(element, index)
-- 绑定数据到列表项
element.text = "Item " .. index
end)注意事项
- 绑定方法会在列表项创建或更新时调用
- 绑定方法执行后会自动调用列表的 Rebuild 方法
4.40 SetListViewUnbinder
[LuaCallCSharp]
public static void SetListViewUnbinder(SlideListView ve, LuaFunction method)功能描述
设置列表视图的解绑方法,用于在列表项回收时清理资源。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| ve | SlideListView | 列表视图对象 |
| method | LuaFunction | 解绑方法,签名应为 function(element, index) |
使用示例
-- 设置列表视图的解绑方法
local listView = someSlideListView
LuaInterface.SetListViewUnbinder(listView, function(element, index)
-- 清理列表项资源
element.text = ""
end)注意事项
- 解绑方法会在列表项被回收时调用
- 解绑方法执行后会自动调用列表的 Rebuild 方法
4.41 CollectMail
[LuaCallCSharp]
public static void CollectMail(ClientMail mail)功能描述
领取指定的邮件。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| ClientMail | 待领取的邮件对象 |
使用示例
-- 领取邮件
local mail = someClientMailObject
LuaInterface.CollectMail(mail)4.42 DeleteMail
[LuaCallCSharp]
public static void DeleteMail(ClientMail mail)功能描述
删除指定的邮件。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| ClientMail | 待删除的邮件对象 |
使用示例
-- 删除邮件
local mail = someClientMailObject
LuaInterface.DeleteMail(mail)4.43 OpenMail
[LuaCallCSharp]
public static void OpenMail(ClientMail mail, LuaFunction luaFunction)功能描述
打开邮件并触发回调函数。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| ClientMail | 待打开的邮件对象 | |
| luaFunction | LuaFunction | 邮件打开后的回调函数 |
使用示例
-- 打开邮件并处理
local mail = someClientMailObject
LuaInterface.OpenMail(mail, function()
print("邮件已打开")
-- 处理邮件内容
end)4.44 GuildCreate
[LuaCallCSharp]
public static void GuildCreate(string guildName)功能描述
创建新的公会,需要提供公会名称。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| guildName | string | 公会名称,不能为空或包含特殊字符 |
使用示例
-- 创建新公会
LuaInterface.GuildCreate("我的公会")注意事项
- 确保公会名称符合游戏规定,否则创建可能失败
- 只有未加入任何公会的玩家才能创建公会
4.45 GuildApply
[LuaCallCSharp]
public static void GuildApply(long guildID)功能描述
向指定ID的公会发送加入申请。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| guildID | long | 目标公会的唯一标识符 |
使用示例
-- 申请加入公会
local guildID = 1001
LuaInterface.GuildApply(guildID)注意事项
- 只有未加入任何公会的玩家才能申请加入公会
- 申请后需要等待公会管理员批准
4.46 GuildChangeRank
[LuaCallCSharp]
public static void GuildChangeRank(string name, byte level, GuildRankOptions options, short limit)功能描述
修改公会职位设置,包括职位名称、等级、权限和数量限制。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| name | string | 职位名称 |
| level | byte | 职位等级(0-9,0为最低,9为最高) |
| options | GuildRankOptions | 职位权限,使用位掩码组合 |
| limit | short | 职位数量限制,0表示无限制 |
使用示例
-- 修改公会职位
local options = GuildRankOptions.CanKick | GuildRankOptions.CanInvite
LuaInterface.GuildChangeRank("副会长", 8, options, 2)注意事项
- 只有公会会长或具有相应权限的成员才能修改职位设置
- 等级0和9的职位通常不可编辑
4.47 GuildKick
[LuaCallCSharp]
public static void GuildKick(long objectID)功能描述
将指定成员踢出公会。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| objectID | long | 被踢成员的唯一标识符 |
使用示例
-- 踢出公会成员
local memberID = 10001
LuaInterface.GuildKick(memberID)注意事项
- 只有具有踢人权限的成员才能执行此操作
- 无法踢掉职位等级高于或等于自己的成员
- 会长无法被踢出公会
4.48 GuildLeave
[LuaCallCSharp]
public static void GuildLeave()功能描述
玩家主动退出当前所在公会。
使用示例
-- 退出公会
LuaInterface.GuildLeave()注意事项
- 公会会长无法直接退出公会,必须先转让会长职位
- 退出公会后,将失去所有公会相关权限和福利
4.49 GuildEditMember
[LuaCallCSharp]
public static void GuildEditMember(long objectID, byte level)功能描述
编辑公会成员的职位等级。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| objectID | long | 目标成员的唯一标识符 |
| level | byte | 新的职位等级(0-9) |
使用示例
-- 提升成员职位
local memberID = 10001
LuaInterface.GuildEditMember(memberID, 8)注意事项
- 只有具有编辑成员权限的成员才能执行此操作
- 无法编辑职位等级高于或等于自己的成员
- 无法编辑公会会长的职位
4.50 ChangeLeader
[LuaCallCSharp]
public static void ChangeLeader(long objectID)功能描述
将公会会长职位转让给指定成员。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| objectID | long | 接收会长职位的成员ID |
使用示例
-- 转让会长职位
local newLeaderID = 10001
LuaInterface.ChangeLeader(newLeaderID)注意事项
- 只有当前公会会长才能执行此操作
- 确保接收者是公会成员且在线
4.51 RefreshMyGuildInformation
[LuaCallCSharp]
public static void RefreshMyGuildInformation()功能描述
刷新当前公会的基本信息,包括名称、成员数量、公告等。
使用示例
-- 刷新公会信息
LuaInterface.RefreshMyGuildInformation()注意事项
- 只有加入公会的玩家才能调用此方法
- 刷新后,公会信息将通过系统事件通知更新
4.52 RefreshGuildRanks
[LuaCallCSharp]
public static void RefreshGuildRanks()功能描述
刷新当前公会的职位信息列表。
使用示例
-- 刷新公会职位列表
LuaInterface.RefreshGuildRanks()注意事项
- 只有加入公会的玩家才能调用此方法
- 刷新后,职位列表将通过系统事件通知更新
4.53 RefreshGuildIntroductions
[LuaCallCSharp]
public static void RefreshGuildIntroductions()功能描述
刷新所有公会的介绍信息列表,用于公会查找和申请。
使用示例
-- 刷新公会介绍列表
LuaInterface.RefreshGuildIntroductions()注意事项
- 所有玩家都可以调用此方法
- 刷新后,公会介绍列表将通过系统事件通知更新
4.54 RefreshGuildApplications
[LuaCallCSharp]
public static void RefreshGuildApplications()功能描述
刷新当前公会的申请信息列表,显示所有申请加入公会的玩家。
使用示例
-- 刷新公会申请列表
LuaInterface.RefreshGuildApplications()注意事项
- 只有公会管理员才能查看公会申请列表
- 刷新后,申请列表将通过系统事件通知更新
4.55 RefreshGuildMembers
[LuaCallCSharp]
public static void RefreshGuildMembers()功能描述
刷新当前公会的成员信息列表,显示所有公会成员的详细信息。
使用示例
-- 刷新公会成员列表
LuaInterface.RefreshGuildMembers()注意事项
- 只有加入公会的玩家才能调用此方法
- 刷新后,成员列表将通过系统事件通知更新
4.56 GetItemInfoByKeyName
[LuaCallCSharp]
public static ItemInfo GetItemInfoByKeyName(string keyName)功能描述
通过物品的 KeyName 获取物品信息。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| keyName | string | 物品的 KeyName 标识符 |
返回值类型及说明
| 类型 | 说明 |
|---|---|
| ItemInfo | 物品信息对象,如果未找到返回 null |
使用示例
-- 通过 KeyName 获取物品信息
local itemInfo = LuaInterface.GetItemInfoByKeyName("weapon_sword_001")
if itemInfo then
print("物品名称:", itemInfo.Name)
print("物品描述:", itemInfo.Description)
end注意事项
- 确保 KeyName 正确,否则返回 null
- KeyName 是物品配置中的唯一标识符
4.57 GetVisualElementByGUID
[LuaCallCSharp]
public static VisualElement GetVisualElementByGUID(string guid)功能描述
通过全局唯一标识符(GUID)获取 UI 视觉元素。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| guid | string | UI 元素的全局唯一标识符 |
返回值类型及说明
| 类型 | 说明 |
|---|---|
| VisualElement | 找到的 UI 元素,如果未找到返回 null |
使用示例
-- 通过 GUID 获取 UI 元素
local element = LuaInterface.GetVisualElementByGUID("12345678-1234-1234-1234-123456789abc")
if element then
element.visible = true
element.text = "找到元素"
end注意事项
- GUID 必须是有效的格式
- 如果元素已被销毁或未加载,返回 null
4.58 AddFriend
[LuaCallCSharp]
public static void AddFriend(string friendName)功能描述
将指定玩家添加到好友列表。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| friendName | string | 要添加的好友玩家名称 |
使用示例
-- 添加好友
LuaInterface.AddFriend("PlayerName")注意事项
- 玩家名称必须存在且在线
- 如果对方已设置拒绝好友请求,添加可能失败
- 不能添加自己为好友
4.59 AddBlacklist
[LuaCallCSharp]
public static void AddBlacklist(string friendName)功能描述
将指定玩家添加到黑名单,屏蔽其消息。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| friendName | string | 要添加到黑名单的玩家名称 |
使用示例
-- 添加到黑名单
LuaInterface.AddBlacklist("SpamPlayer")注意事项
- 玩家名称必须存在
- 添加到黑名单后,将无法收到该玩家的消息
- 不能将自己添加到黑名单
4.60 EditMemo
[LuaCallCSharp]
public static void EditMemo(long userID, string memo)功能描述
编辑指定好友的备注信息。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| userID | long | 好友用户ID |
| memo | string | 要设置的备注信息 |
使用示例
-- 编辑好友备注
local friendID = 10001
LuaInterface.EditMemo(friendID, "这是我的好友")注意事项
- 确保userID是有效的好友ID
- 备注信息可以为空字符串
4.61 RemoveFriend
[LuaCallCSharp]
public static void RemoveFriend(long friendID)功能描述
从好友列表中移除指定好友。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| friendID | long | 要移除的好友 ID |
使用示例
-- 移除好友
local friendID = 10001
LuaInterface.RemoveFriend(friendID)注意事项
- friendID 必须是好友列表中的有效 ID
- 移除后,双方将不再是好友关系
4.62 GetFriends
[LuaCallCSharp]
public static List<ClientFriend> GetFriends()功能描述
获取当前玩家的好友列表。
返回值类型及说明
| 类型 | 说明 |
|---|---|
| List |
好友列表,包含所有好友的详细信息 |
使用示例
-- 获取好友列表
local friends = LuaInterface.GetFriends()
print("好友数量:", #friends)
for i, friend in ipairs(friends) do
print("好友", i, ":", friend.Name, "在线:", friend.IsOnline)
end注意事项
- 返回的列表是只读的,不能直接修改
- 列表包含在线和离线的好友
4.63 GetBlacklist
[LuaCallCSharp]
public static List<ClientFriend> GetBlacklist()功能描述
获取当前玩家的黑名单列表。
返回值类型及说明
| 类型 | 说明 |
|---|---|
| List |
黑名单列表,包含所有被屏蔽玩家的详细信息 |
使用示例
-- 获取黑名单列表
local blacklist = LuaInterface.GetBlacklist()
print("黑名单数量:", #blacklist)
for i, blocked in ipairs(blacklist) do
print("屏蔽玩家", i, ":", blocked.Name)
end注意事项
- 返回的列表是只读的,不能直接修改
- 黑名单中的玩家消息将被自动屏蔽
4.64 GetItemInfo
[LuaCallCSharp]
public static ItemInfo GetItemInfo(string keyName)功能描述
通过物品的 KeyName 获取物品信息。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| keyName | string | 物品的 KeyName 标识符 |
返回值类型及说明
| 类型 | 说明 |
|---|---|
| ItemInfo | 物品信息对象,如果未找到返回 null |
使用示例
-- 通过 KeyName 获取物品信息
local itemInfo = LuaInterface.GetItemInfo("potion_health_001")
if itemInfo then
print("物品名称:", itemInfo.Name)
print("物品类型:", itemInfo.Type)
end注意事项
- 确保 KeyName 正确,否则返回 null
- KeyName 是物品配置中的唯一标识符
- 此方法与 GetItemInfoByKeyName 功能相同
4.65 IsAutoMode
[LuaCallCSharp]
public static bool IsAutoMode()功能描述
检查当前玩家角色是否处于自动模式。
返回值类型及说明
| 类型 | 说明 |
|---|---|
| bool | 如果玩家处于自动模式返回 true,否则返回 false |
使用示例
-- 检查是否处于自动模式
if LuaInterface.IsAutoMode() then
print("当前处于自动模式")
else
print("当前处于手动模式")
end注意事项
- 自动模式通常指自动战斗、自动寻路等自动化行为
- 可以用于在自动模式下禁用某些手动操作
4.66 PlayMusic
[LuaCallCSharp]
public static void PlayMusic(string musicFile, bool loop = true, LuaFunction onMusicEnd = null)功能描述
播放指定的音乐文件,并在第一次播放结束时执行回调函数。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| musicFile | string | 需要播放的音乐文件路径,为空则停止播放 |
| loop | bool | 是否自动循环播放,默认为 true |
| onMusicEnd | LuaFunction | 第一次播放结束时的 Lua 回调函数,可选 |
使用示例
-- 播放背景音乐并循环
LuaInterface.PlayMusic("Audio/BGM/battle_theme.mp3", true)
-- 播放音乐并在结束时执行回调
LuaInterface.PlayMusic("Audio/BGM/victory_theme.mp3", false, function()
print("音乐播放完成")
-- 播放完成后的处理逻辑
end)
-- 停止当前音乐
LuaInterface.PlayMusic("")注意事项
- 如果 musicFile 为空字符串,将停止当前正在播放的音乐
- 回调函数只在第一次播放结束时触发,循环播放时不会重复触发
- 播放新音乐时会自动停止之前正在播放的音乐
- 确保音乐文件路径正确,否则可能无法播放
4.67 ConsignItem
[LuaCallCSharp]
public static void ConsignItem(long itemID, long price, byte currencyID, bool bid)功能描述
以指定的货币和价格寄售物品。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| itemID | long | 寄售物品的ObjectID |
| price | long | 寄售价格 |
| currencyID | byte | 货币种类编号 |
| bid | bool | 是否拍卖竞价 |
使用示例
-- 寄售物品
local itemID = 10001
local price = 1000
local currencyID = 1
local bid = false
LuaInterface.ConsignItem(itemID, price, currencyID, bid)注意事项
- 确保物品ID有效且属于当前玩家
- 价格必须大于0
- 货币种类必须是市场允许的类型
4.68 MarketSearch
[LuaCallCSharp]
public static void MarketSearch(string match, string filter, bool userMode)功能描述
设置市场物品过滤器,用于搜索市场上的物品。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| match | string | 模糊查询物品名称 |
| filter | string | 查询物品标签 |
| userMode | bool | 是否仅查询用户自身上架的商品 |
使用示例
-- 搜索市场物品
-- 搜索所有包含"剑"的物品
LuaInterface.MarketSearch("剑", "", false)
-- 仅搜索自己上架的物品
LuaInterface.MarketSearch("", "weapon", true)注意事项
- match和filter可以为空字符串,表示不进行相应过滤
- userMode为true时,仅显示当前玩家上架的物品
4.69 MarketPage
[LuaCallCSharp]
public static void MarketPage(int start, int end, LuaFunction callback)功能描述
请求市场物品分页数据,获取指定范围内的市场物品。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| start | int | 起始商品编号 |
| end | int | 结束商品编号 |
| callback | LuaFunction | 回调函数,数据返回后触发 |
使用示例
-- 请求市场物品分页数据
LuaInterface.MarketPage(0, 20, function()
-- 获取当前页的市场物品
local marketItems = LuaInterface.GetMarketItems()
print("获取到", #marketItems, "个市场物品")
end)注意事项
- start和end定义了请求的商品范围
- 回调函数在数据返回后触发,可以在回调中获取市场物品列表
4.70 MarketBuy
[LuaCallCSharp]
public static void MarketBuy(long auctionID, long bid)功能描述
购买市场物品,支持直接购买和拍卖竞价。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| auctionID | long | 商品ID |
| bid | long | 出价金额 |
使用示例
-- 直接购买市场物品
local auctionID = 20001
local price = 1000
LuaInterface.MarketBuy(auctionID, price)
-- 拍卖竞价
local auctionID = 20002
local bidPrice = 1200
LuaInterface.MarketBuy(auctionID, bidPrice)注意事项
- 确保auctionID有效
- 出价金额必须大于当前价格
- 购买成功后,物品将发送到玩家背包
4.71 MarketSellNow
[LuaCallCSharp]
public static void MarketSellNow(long auctionID)功能描述
立即出售市场物品,以当前价格卖出。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| auctionID | long | 商品ID |
使用示例
-- 立即出售市场物品
local auctionID = 20003
LuaInterface.MarketSellNow(auctionID)注意事项
- 确保auctionID有效
- 只能出售自己上架的物品
- 出售成功后,货币将发送到玩家账户
4.72 MarketGetBack
[LuaCallCSharp]
public static void MarketGetBack(long auctionID)功能描述
取消上架市场物品,将物品从市场撤回。
参数类型及说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| auctionID | long | 商品ID |
使用示例
-- 取消上架市场物品
local auctionID = 20004
LuaInterface.MarketGetBack(auctionID)注意事项
- 确保auctionID有效
- 只能撤回自己上架的物品
- 撤回后,物品将返回玩家背包
4.73 GetMarketCurrencies
[LuaCallCSharp]
public static List<ItemInfoType> GetMarketCurrencies()功能描述
获取市场允许的货币种类列表。
返回值类型及说明
| 类型 | 说明 |
|---|---|
| List |
货币类型信息列表 |
使用示例
-- 获取市场允许的货币种类
local currencies = LuaInterface.GetMarketCurrencies()
for i, currency in ipairs(currencies) do
print("货币ID:", currency.ID, "货币名称:", currency.Name)
end注意事项
- 返回的是市场允许使用的货币类型列表
- 寄售物品时只能使用这些货币类型
4.74 GetMarketItems
[LuaCallCSharp]
public static List<ClientAuction> GetMarketItems()功能描述
获取当前页的市场商品列表。
返回值类型及说明
| 类型 | 说明 |
|---|---|
| List |
市场商品列表 |
使用示例
-- 获取当前页的市场商品列表
local marketItems = LuaInterface.GetMarketItems()
for i, item in ipairs(marketItems) do
print("商品ID:", item.AuctionID, "价格:", item.Price, "货币:", item.CurrencyID)
end注意事项
- 返回的是当前页的商品列表,需要先调用MarketPage获取数据
- 列表内容会在调用MarketPage或MarketSearch后更新
5. 系统事件类型(SysEvent)
LuaInterface 中使用的 SysEvent 枚举定义了以下系统事件:
| 事件名称 | 值 | 说明 |
|---|---|---|
| HideItemsChangeEvent | 0 | 隐藏装备变化事件 |
| InventoryChangeEvent | 1 | 背包物品变化事件 |
| ItemDuraChangeEvent | 2 | 背包物品耐久度变化事件 |
| ItemPropChangeEvent | 3 | 背包物品属性变化事件 |
| EquipChangeEvent | 4 | 装备变化事件 |
| EquipDuraChangeEvent | 5 | 装备耐久度变化事件 |
| EquipPropChangeEvent | 6 | 装备属性变化事件 |
| StatChangeEvent | 7 | 角色属性变化事件 |
| UserInfoChangeEvent | 8 | 用户信息变化事件 |
| ShopItemChangeEvent | 9 | 商店物品改变 |
| MailChangeEvent | 10 | 收到新邮件 |
| PreAutoPilotEvent | 11 | 自动寻路开始事件 |
6. 事件类型(EventType)
LuaInterface 中使用的 EventType 枚举定义了以下事件类型:
| 事件类型 | 值 | 说明 |
|---|---|---|
| Modify | 1 | 修改事件 |
| Add | 2 | 添加事件 |
| Remove | 3 | 移除事件 |
7. 最佳实践
回调管理:始终保存
AddLuaCallback返回的Guid,并在适当的时候调用RemoveLuaCallback移除回调,避免内存泄漏。全局变量使用:谨慎使用全局变量,避免命名冲突,建议使用唯一的命名前缀。
UI 操作:在操作 UI 元素时,确保元素存在且已正确加载。
错误处理:在调用可能抛出异常的方法时,使用 try-catch 块进行错误处理。
性能考虑:避免频繁调用耗时的方法,如
LoadXML和LoadXMLString。异步调用:注意
CallBackendLua等异步方法的使用,不要期望立即返回结果。
8. 版本历史
| 版本 | 日期 | 变更说明 |
|---|---|---|
| 1.6 | 2026-01-16 | 添加了新的成员:EditMemo;添加了新的MarketManager相关成员:ConsignItem、MarketSearch、MarketPage、MarketBuy、MarketSellNow、MarketGetBack、GetMarketCurrencies、GetMarketItems |
| 1.5 | 2026-01-13 | 添加了新的成员:GetItemInfoByKeyName、GetVisualElementByGUID、AddFriend、AddBlacklist、RemoveFriend、GetFriends、GetBlacklist、GetItemInfo、IsAutoMode;修正了方法名称:LeaderChange 改为 ChangeLeader |
| 1.4 | 2025-12-29 | 添加了新的公会管理相关成员:GuildCreate、GuildApply、GuildChangeRank、GuildKick、GuildLeave、GuildEditMember、LeaderChange、MyGuildInformation、RefreshGuildRanks、RefreshGuildIntroductions、RefreshGuildApplications、RefreshGuildMembers |
| 1.3 | 2025-12-23 | 更新了 CollectMail、DeleteMail、OpenMail 方法 |
| 1.2 | 2025-12-22 | 更新了 GetIntSetting、GetBoolSetting、GetStringSetting、GetFloatSetting 方法,添加了默认值参数 |
| 1.2 | 2025-12-22 | 添加了新的成员:BuyShopItem、RefreshShopItemList、GetShopItemList、GetActiveNPCID、GetDefaultNPCID |
| 1.1 | 2025-12-16 | 添加了新的成员:SetListViewBinder、SetListViewUnbinder、RemoveElement、StopAutoPilot、ShowTooltip、ShowDialog、ShowAlert、ClickNPCAt、MapToScreen、ShowUIGuide、ShowMapGuide、SetIntSetting、SetBoolSetting、SetStringSetting、SetFloatSetting、ActivateSkill |
| 1.1 | 2025-12-16 | 更新了现有方法:SetGlobal、GetGlobal、GetUserInfo、CallBackendLua |
| 1.1 | 2025-12-16 | 添加了新的系统事件:PreAutoPilotEvent |
| 1.0 | 2025-12-03 | 初始版本 |
9. 联系方式
如有任何问题或建议,请联系开发团队。
最后编辑:yilin01 更新时间:2026-01-16 12:01