Lua接口/任务状态:修订间差异
来自天龙知识库
跳到导航跳到搜索
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
||
| 第1行: | 第1行: | ||
__NOTOC__ | __NOTOC__ | ||
<div class="lua-reference | <div class="lua-reference"> | ||
[[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端调用约定|调用约定]] | [[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端调用约定|调用约定]] | ||
| 第6行: | 第6行: | ||
== 查询 == | == 查询 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/GetMission|GetMission]] | |||
| <code>sceneId, selfId, misId</code> → 任务值(做过/正在做/未做);失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/IsMissionHaveDone|IsMissionHaveDone]] | |||
| <code>sceneId, selfId, misId</code> → 是否做过;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/IsHaveMission|IsHaveMission]] | |||
| <code>sceneId, selfId, misId</code> → 是否正在做;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetMissionCount|GetMissionCount]] | |||
| <code>sceneId, selfId</code> → 已接任务数量;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/IsMissionFull|IsMissionFull]] | |||
| <code>sceneId, selfId</code> → 任务列表是否已满;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetMissionIndexByID|GetMissionIndexByID]] | |||
| <code>sceneId, selfId, misId</code> → 任务索引;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetScriptIDByMissionID|GetScriptIDByMissionID]] | |||
| <code>sceneId, selfId, missionId</code> → 任务绑定的脚本编号;失败 -1。 | |||
|} | |} | ||
[[Lua接口/服务端/GetMission|GetMission]] 返回的任务值含义按本服约定(做过/正在做/未做的编号不同),失败返回 -1。[[Lua接口/服务端/IsMissionHaveDone|IsMissionHaveDone]] 与 [[Lua接口/服务端/IsHaveMission|IsHaveMission]] 语义不同:前者查是否做过,后者查是否正在做。任务编号(misId)与任务索引(misIndex,见 [[Lua接口/任务变量|任务变量]])不同。 | [[Lua接口/服务端/GetMission|GetMission]] 返回的任务值含义按本服约定(做过/正在做/未做的编号不同),失败返回 -1。[[Lua接口/服务端/IsMissionHaveDone|IsMissionHaveDone]] 与 [[Lua接口/服务端/IsHaveMission|IsHaveMission]] 语义不同:前者查是否做过,后者查是否正在做。任务编号(misId)与任务索引(misIndex,见 [[Lua接口/任务变量|任务变量]])不同。 | ||
== 接取与删除 == | == 接取与删除 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/AddMission|AddMission]] | |||
| <code>sceneId, selfId, misId, scriptId, killObjEvent, enterAreaEvent, itemChangedEvent</code> → 6 个参数;返回值;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/AddMissionEx|AddMissionEx]] | |||
| <code>sceneId, selfId, misId, scriptId</code> → 4 个参数;返回值;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/DelMission|DelMission]] | |||
| <code>sceneId, selfId, misId</code> → 1 成功、-1 失败。 | |||
|- | |- | ||
| [[Lua接口/服务端/DelAllMission|DelAllMission]] | |||
| <code>sceneId, selfId</code> → 1 成功、-1 失败。 | |||
|- | |- | ||
| [[Lua接口/服务端/MissionCom|MissionCom]] | |||
| <code>sceneId, selfId, misId</code>;无返回值。 | |||
|} | |} | ||
[[Lua接口/服务端/AddMission|AddMission]] 需要 6 个参数(含杀怪、进入区域、物品变化事件标志),[[Lua接口/服务端/AddMissionEx|AddMissionEx]] 简化为 4 个参数(只传脚本编号)。[[Lua接口/服务端/MissionCom|MissionCom]] **无返回值**,赋值接收得到 nil,不能据此判断是否完成。 | [[Lua接口/服务端/AddMission|AddMission]] 需要 6 个参数(含杀怪、进入区域、物品变化事件标志),[[Lua接口/服务端/AddMissionEx|AddMissionEx]] 简化为 4 个参数(只传脚本编号)。[[Lua接口/服务端/MissionCom|MissionCom]] **无返回值**,赋值接收得到 nil,不能据此判断是否完成。 | ||
== 事件标志 == | == 事件标志 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/SetMissionEvent|SetMissionEvent]] | |||
| <code>sceneId, selfId, misId, eventId</code> → 返回值;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/ResetMissionEvent|ResetMissionEvent]] | |||
| <code>sceneId, selfId, missionId, eventId</code> → 返回值;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/StartMissionTimer|StartMissionTimer]] | |||
| <code>sceneId, selfId, missionId</code> → 返回值;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/StopMissionTimer|StopMissionTimer]] | |||
| <code>sceneId, selfId, missionId</code> → 返回值;失败 -1。 | |||
|} | |} | ||
[[Lua接口/服务端/SetMissionEvent|SetMissionEvent]] 设置任务事件标志,[[Lua接口/服务端/ResetMissionEvent|ResetMissionEvent]] 清除。定时器事件由 [[Lua接口/服务端/StartMissionTimer|StartMissionTimer]] / [[Lua接口/服务端/StopMissionTimer|StopMissionTimer]] 控制。 | [[Lua接口/服务端/SetMissionEvent|SetMissionEvent]] 设置任务事件标志,[[Lua接口/服务端/ResetMissionEvent|ResetMissionEvent]] 清除。定时器事件由 [[Lua接口/服务端/StartMissionTimer|StartMissionTimer]] / [[Lua接口/服务端/StopMissionTimer|StopMissionTimer]] 控制。 | ||
== 检查任务状态 == | == 检查任务状态 == | ||
<pre | <pre>local done = IsMissionHaveDone(sceneId, selfId, misId) | ||
if type(done) == "number" and done ~= -1 then | if type(done) == "number" and done ~= -1 then | ||
-- 取得任务完成状态 | -- 取得任务完成状态 | ||
| 第82行: | 第82行: | ||
== 接取任务 == | == 接取任务 == | ||
<pre | <pre>local result = AddMissionEx(sceneId, selfId, misId, scriptId) | ||
if type(result) == "number" and result ~= -1 then | if type(result) == "number" and result ~= -1 then | ||
-- 任务接取流程报告成功 | -- 任务接取流程报告成功 | ||
| 第89行: | 第89行: | ||
== 完成任务 == | == 完成任务 == | ||
<pre | <pre>MissionCom(sceneId, selfId, misId) | ||
-- 无返回值;不能写 if MissionCom(...) then 判断 | -- 无返回值;不能写 if MissionCom(...) then 判断 | ||
-- 想确认应改读 IsMissionHaveDone 回比</pre> | -- 想确认应改读 IsMissionHaveDone 回比</pre> | ||
| 第128行: | 第128行: | ||
[[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]] | [[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]] | ||
<div | <div class="lua-note">本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。</div> | ||
</div> | </div> | ||
2026年9月19日 (六) 16:59的版本
查询、接取、完成与删除任务。任务编号(misId)来自任务表,不是任务索引(misIndex)。
查询
| 接口 | 参数与返回 |
|---|---|
| GetMission | sceneId, selfId, misId → 任务值(做过/正在做/未做);失败 -1。
|
| IsMissionHaveDone | sceneId, selfId, misId → 是否做过;失败 -1。
|
| IsHaveMission | sceneId, selfId, misId → 是否正在做;失败 -1。
|
| GetMissionCount | sceneId, selfId → 已接任务数量;失败 -1。
|
| IsMissionFull | sceneId, selfId → 任务列表是否已满;失败 -1。
|
| GetMissionIndexByID | sceneId, selfId, misId → 任务索引;失败 -1。
|
| GetScriptIDByMissionID | sceneId, selfId, missionId → 任务绑定的脚本编号;失败 -1。
|
GetMission 返回的任务值含义按本服约定(做过/正在做/未做的编号不同),失败返回 -1。IsMissionHaveDone 与 IsHaveMission 语义不同:前者查是否做过,后者查是否正在做。任务编号(misId)与任务索引(misIndex,见 任务变量)不同。
接取与删除
| 接口 | 参数与返回 |
|---|---|
| AddMission | sceneId, selfId, misId, scriptId, killObjEvent, enterAreaEvent, itemChangedEvent → 6 个参数;返回值;失败 -1。
|
| AddMissionEx | sceneId, selfId, misId, scriptId → 4 个参数;返回值;失败 -1。
|
| DelMission | sceneId, selfId, misId → 1 成功、-1 失败。
|
| DelAllMission | sceneId, selfId → 1 成功、-1 失败。
|
| MissionCom | sceneId, selfId, misId;无返回值。
|
AddMission 需要 6 个参数(含杀怪、进入区域、物品变化事件标志),AddMissionEx 简化为 4 个参数(只传脚本编号)。MissionCom **无返回值**,赋值接收得到 nil,不能据此判断是否完成。
事件标志
| 接口 | 参数与返回 |
|---|---|
| SetMissionEvent | sceneId, selfId, misId, eventId → 返回值;失败 -1。
|
| ResetMissionEvent | sceneId, selfId, missionId, eventId → 返回值;失败 -1。
|
| StartMissionTimer | sceneId, selfId, missionId → 返回值;失败 -1。
|
| StopMissionTimer | sceneId, selfId, missionId → 返回值;失败 -1。
|
SetMissionEvent 设置任务事件标志,ResetMissionEvent 清除。定时器事件由 StartMissionTimer / StopMissionTimer 控制。
检查任务状态
local done = IsMissionHaveDone(sceneId, selfId, misId)
if type(done) == "number" and done ~= -1 then
-- 取得任务完成状态
end
IsMissionHaveDone 失败返回 -1,先判类型再判数值(见 返回值判断)。
接取任务
local result = AddMissionEx(sceneId, selfId, misId, scriptId)
if type(result) == "number" and result ~= -1 then
-- 任务接取流程报告成功
end
AddMissionEx 返回值含义按本服约定,失败 -1。AddMission 的 6 参数版本还需要杀怪、进入区域、物品变化事件标志。
完成任务
MissionCom(sceneId, selfId, misId) -- 无返回值;不能写 if MissionCom(...) then 判断 -- 想确认应改读 IsMissionHaveDone 回比
MissionCom 无返回值。需要确认任务是否完成,应在调用后用 IsMissionHaveDone 读回比较。
相关主题
- 角色信息
- 属性读取与修改
- 等级与经验
- 货币相关
- 物品查询
- 物品发放与扣除
- 背包空间
- 装备操作
- 任务状态
- 任务变量
- NPC 对话
- 对话选项
- 技能相关
- 心法相关
- 状态效果
- 生活技能
- 珍兽查询
- 珍兽操作
- 场景查询
- 坐标与传送
- 副本相关
- 活动相关
- 时间与计时
- 怪物相关
- 队伍相关
- 帮会相关
- 消息与提示
- 聊天与公告
函数不存在或提示 nil · 参数类型与顺序 · 返回值判断 · 对象 ID 与 GUID
本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。