Lua接口/对话选项:修订间差异

来自天龙知识库
跳到导航跳到搜索
雪舞留言 | 贡献
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例
雪舞留言 | 贡献
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例
 
第130行: 第130行:
* [[Lua接口/时间与计时|时间与计时]]
* [[Lua接口/时间与计时|时间与计时]]
* [[Lua接口/怪物相关|怪物相关]]
* [[Lua接口/怪物相关|怪物相关]]
* [[Lua接口/队伍相关|队伍相关]]
* [[Lua接口/帮会相关|帮会相关]]
* [[Lua接口/消息与提示|消息与提示]]
* [[Lua接口/聊天与公告|聊天与公告]]


[[Lua接口/服务端调用约定|服务端调用约定]] · [[Lua接口/服务端调用示例|服务端调用示例]] · [[Lua接口/服务端函数索引|服务端函数索引]]
[[Lua接口/服务端调用约定|服务端调用约定]] · [[Lua接口/服务端调用示例|服务端调用示例]] · [[Lua接口/服务端函数索引|服务端函数索引]]

2026年9月12日 (六) 13:54的最新版本

首页 · 服务端接口 · 调用约定

在对话中添加带编号的选项、读取选项回调、以及扩展任务事件构造与任务配置查询。对话选项通过 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 信息。

这组接口返回可变数量的值,TGetAcceptNpcInfoTGetCompleteNpcInfo 返回 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 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。