Lua接口/任务状态:修订间差异

来自天龙知识库
跳到导航跳到搜索
雪舞​(留言 | 贡献)
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例
Waylee​(留言 | 贡献)
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例
 
(未显示同一用户的2个中间版本)
第1行: 第1行:
__NOTOC__
__NOTOC__
<div class="lua-reference" style="max-width:1200px;margin:0 auto;line-height:1.8;color:#29343a;font-family:Arial,'Microsoft YaHei',sans-serif;letter-spacing:0;overflow-wrap:anywhere;">
<div class="lua-reference">
[[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端调用约定|调用约定]]
[[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端调用约定|调用约定]]


第6行: 第6行:


== 查询 ==
== 查询 ==
{| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;"
{| class="wikitable"
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口
! scope="col" | 接口
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回
! scope="col" | 参数与返回
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetMission|GetMission]]
| [[Lua接口/服务端/GetMission|GetMission]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, misId</code> → 任务值(做过/正在做/未做);失败 -1。
| <code>sceneId, selfId, misId</code> → 任务值(做过/正在做/未做);失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/IsMissionHaveDone|IsMissionHaveDone]]
| [[Lua接口/服务端/IsMissionHaveDone|IsMissionHaveDone]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, misId</code> → 是否做过;失败 -1。
| <code>sceneId, selfId, misId</code> → 是否做过;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/IsHaveMission|IsHaveMission]]
| [[Lua接口/服务端/IsHaveMission|IsHaveMission]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, misId</code> → 是否正在做;失败 -1。
| <code>sceneId, selfId, misId</code> → 是否正在做;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetMissionCount|GetMissionCount]]
| [[Lua接口/服务端/GetMissionCount|GetMissionCount]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 已接任务数量;失败 -1。
| <code>sceneId, selfId</code> → 已接任务数量;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/IsMissionFull|IsMissionFull]]
| [[Lua接口/服务端/IsMissionFull|IsMissionFull]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 任务列表是否已满;失败 -1。
| <code>sceneId, selfId</code> → 任务列表是否已满;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetMissionIndexByID|GetMissionIndexByID]]
| [[Lua接口/服务端/GetMissionIndexByID|GetMissionIndexByID]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, misId</code> → 任务索引;失败 -1。
| <code>sceneId, selfId, misId</code> → 任务索引;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetScriptIDByMissionID|GetScriptIDByMissionID]]
| [[Lua接口/服务端/GetScriptIDByMissionID|GetScriptIDByMissionID]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, missionId</code> → 任务绑定的脚本编号;失败 -1。
| <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" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;"
{| class="wikitable"
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口
! scope="col" | 接口
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回
! scope="col" | 参数与返回
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/AddMission|AddMission]]
| [[Lua接口/服务端/AddMission|AddMission]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, misId, scriptId, killObjEvent, enterAreaEvent, itemChangedEvent</code> → 6 个参数;返回值;失败 -1。
| <code>sceneId, selfId, misId, scriptId, killObjEvent, enterAreaEvent, itemChangedEvent</code> → 6 个参数;返回值;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/AddMissionEx|AddMissionEx]]
| [[Lua接口/服务端/AddMissionEx|AddMissionEx]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, misId, scriptId</code> → 4 个参数;返回值;失败 -1。
| <code>sceneId, selfId, misId, scriptId</code> → 4 个参数;返回值;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/DelMission|DelMission]]
| [[Lua接口/服务端/DelMission|DelMission]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, misId</code> → 1 成功、-1 失败。
| <code>sceneId, selfId, misId</code> → 1 成功、-1 失败。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/DelAllMission|DelAllMission]]
| [[Lua接口/服务端/DelAllMission|DelAllMission]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 1 成功、-1 失败。
| <code>sceneId, selfId</code> → 1 成功、-1 失败。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/MissionCom|MissionCom]]
| [[Lua接口/服务端/MissionCom|MissionCom]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, misId</code>;无返回值。
| <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" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;"
{| class="wikitable"
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口
! scope="col" | 接口
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回
! scope="col" | 参数与返回
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/SetMissionEvent|SetMissionEvent]]
| [[Lua接口/服务端/SetMissionEvent|SetMissionEvent]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, misId, eventId</code> → 返回值;失败 -1。
| <code>sceneId, selfId, misId, eventId</code> → 返回值;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/ResetMissionEvent|ResetMissionEvent]]
| [[Lua接口/服务端/ResetMissionEvent|ResetMissionEvent]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, missionId, eventId</code> → 返回值;失败 -1。
| <code>sceneId, selfId, missionId, eventId</code> → 返回值;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/StartMissionTimer|StartMissionTimer]]
| [[Lua接口/服务端/StartMissionTimer|StartMissionTimer]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, missionId</code> → 返回值;失败 -1。
| <code>sceneId, selfId, missionId</code> → 返回值;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/StopMissionTimer|StopMissionTimer]]
| [[Lua接口/服务端/StopMissionTimer|StopMissionTimer]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, missionId</code> → 返回值;失败 -1。
| <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 style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">local done = IsMissionHaveDone(sceneId, selfId, misId)
<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 style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">local result = AddMissionEx(sceneId, selfId, misId, scriptId)
<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 style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">MissionCom(sceneId, selfId, misId)
<pre>MissionCom(sceneId, selfId, misId)
-- 无返回值;不能写 if MissionCom(...) then 判断
-- 无返回值;不能写 if MissionCom(...) then 判断
-- 想确认应改读 IsMissionHaveDone 回比</pre>
-- 想确认应改读 IsMissionHaveDone 回比</pre>
第127行: 第127行:


[[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]]
[[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]]
<div style="margin-top:20px;padding-top:10px;border-top:1px solid #dbe3e6;color:#657078;font-size:12px;">本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。</div>


</div>
</div>

2026年10月26日 (一) 17:29的最新版本

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

查询、接取、完成与删除任务。任务编号(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 读回比较。

相关主题

服务端调用约定 · 服务端调用示例 · 服务端函数索引

函数不存在或提示 nil · 参数类型与顺序 · 返回值判断 · 对象 ID 与 GUID