Lua接口/对话选项:修订间差异
来自天龙知识库
跳到导航跳到搜索
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
||
| 第118行: | 第118行: | ||
* [[Lua接口/NPC对话|NPC 对话]] | * [[Lua接口/NPC对话|NPC 对话]] | ||
* [[Lua接口/对话选项|对话选项]] | * [[Lua接口/对话选项|对话选项]] | ||
* [[Lua接口/技能相关|技能相关]] | |||
* [[Lua接口/心法相关|心法相关]] | |||
* [[Lua接口/状态效果|状态效果]] | |||
* [[Lua接口/生活技能|生活技能]] | |||
* [[Lua接口/珍兽查询|珍兽查询]] | |||
* [[Lua接口/珍兽操作|珍兽操作]] | |||
[[Lua接口/服务端调用约定|服务端调用约定]] · [[Lua接口/服务端调用示例|服务端调用示例]] · [[Lua接口/服务端函数索引|服务端函数索引]] | [[Lua接口/服务端调用约定|服务端调用约定]] · [[Lua接口/服务端调用示例|服务端调用示例]] · [[Lua接口/服务端函数索引|服务端函数索引]] | ||
2026年9月12日 (六) 13:28的版本
在对话中添加带编号的选项、读取选项回调、以及扩展任务事件构造与任务配置查询。对话选项通过 AddNumText 添加,玩家选择后由 GetNumText 读取编号。
选项与回调
| 接口 | 参数与返回 |
|---|---|
| AddNumText | sceneId, id, msg, state, index, issueScript → 部分分支无返回值。参数数量可变。
|
| LuaFnSetNumText | value;无返回值。设置脚本间交换值。
|
| GetNumText | number → 交换值;失败 -1。
|
AddNumText 参数数量可变(verify 不校验实参数),但建议传满 6 个参数(id、msg、state、index、issueScript)。玩家选择选项后,GetNumText 用传入的 id 读取选中的编号。LuaFnSetNumText 设置跨脚本交换值,无返回值。
扩展任务事件
| 接口 | 参数与返回 |
|---|---|
| TBeginEvent | sceneId;无返回值。开始构造扩展任务事件。
|
| TAddText | sceneId, msg;无返回值。追加纯文本。
|
| TAddNumText | sceneId, id, msg, state, index, issueScript;无返回值。追加编号选项。
|
| TEndEvent | ();无返回值。结束构造。
|
| TDispatchEventList | ();无返回值。当前为空实现。
|
T 前缀接口用于扩展任务事件缓冲,与普通对话(BeginEvent 等)分开。TDispatchEventList 当前为空实现,调用不会派发对话。
任务配置查询
| 接口 | 参数与返回 |
|---|---|
| TGetMissionIdByIndex | missionIndex → 任务编号;失败 -1。
|
| TGetMissionName | missionIndex → 任务名称字符串;未找到空串。
|
| TGetMissionDesc | missionIndex → 4 段正文描述;未找到 4 个空串。
|
| TIsMissionRoundable | missionIndex → 是否允许循环;失败 -1。
|
| GetNextMissionIndex | missionIndex → 下一任务索引;失败 -1。
|
这组接口只传任务索引(missionIndex),从任务配置表读取静态数据。TGetMissionDesc 返回 4 个字符串,需要用 4 个变量接收。
NPC 信息查询
| 接口 | 参数与返回 |
|---|---|
| TGetAcceptNpcInfo | missionIndex → 场景编号、NPC 名称;未找到 -1、空串。
|
| TGetCompleteNpcInfo | missionIndex → 场景编号、NPC 名称;未找到 -1、空串。
|
| TGetTargetNpcInfo | missionIndex → 送信/护送任务的目标 NPC 信息。
|
这组接口返回可变数量的值,TGetAcceptNpcInfo 和 TGetCompleteNpcInfo 返回 2 个值(场景编号和名称),TGetTargetNpcInfo 返回值数量因任务类型而异。
添加对话选项
BeginEvent(sceneId) AddText(sceneId, "请选择:") AddNumText(sceneId, 1, "接取任务", 1, 0, 0) AddNumText(sceneId, 2, "放弃任务", 1, 0, 0) EndEvent() DispatchEventList(sceneId, selfId, targetId)
AddNumText 的参数数量可变,但建议传满 6 个。第一个参数是选项编号,玩家选择后由 GetNumText 读取。
读取选项回调
local selection = GetNumText(number)
if type(selection) == "number" and selection ~= -1 then
-- 取得玩家选择的选项编号
end
GetNumText 失败返回 -1,先判类型再判数值。
扩展任务配置查询
local name = TGetMissionName(missionIndex)
if type(name) == "string" and name ~= "" then
local desc1, desc2, desc3, desc4 = TGetMissionDesc(missionIndex)
-- 取得任务名称和四段描述
end
TGetMissionName 返回字符串,未找到返回空串。TGetMissionDesc 返回 4 个字符串,需要用 4 个变量接收,否则丢掉后面的值。
相关主题
函数不存在或提示 nil · 参数类型与顺序 · 返回值判断 · 对象 ID 与 GUID
本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。