Lua接口/聊天与公告:修订间差异

来自天龙知识库
跳到导航跳到搜索
雪舞​(留言 | 贡献)
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例
 
Waylee​(留言 | 贡献)
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例
第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接口/服务端/BroadMsgByChatPipe|BroadMsgByChatPipe]]
| [[Lua接口/服务端/BroadMsgByChatPipe|BroadMsgByChatPipe]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, pMessage, chatType</code> → 部分分支无返回值。
| <code>sceneId, selfId, pMessage, chatType</code> → 部分分支无返回值。
|}
|}
[[Lua接口/服务端/BroadMsgByChatPipe|BroadMsgByChatPipe]] 按 chatType 决定发送范围(玩家、场景或世界聊天链路),部分分支不返回值。
[[Lua接口/服务端/BroadMsgByChatPipe|BroadMsgByChatPipe]] 按 chatType 决定发送范围(玩家、场景或世界聊天链路),部分分支不返回值。


== 系统公告 ==
== 系统公告 ==
{| 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接口/服务端/AddGlobalCountNews|AddGlobalCountNews]]
| [[Lua接口/服务端/AddGlobalCountNews|AddGlobalCountNews]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, newstr</code>;无返回值。向全组服务器发送新闻公告。
| <code>sceneId, newstr</code>;无返回值。向全组服务器发送新闻公告。
|}
|}
[[Lua接口/服务端/AddGlobalCountNews|AddGlobalCountNews]] 无返回值,公告会发送指定次数。
[[Lua接口/服务端/AddGlobalCountNews|AddGlobalCountNews]] 无返回值,公告会发送指定次数。


== NPC 对白 ==
== NPC 对白 ==
{| 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接口/服务端/MonsterTalk|MonsterTalk]]
| [[Lua接口/服务端/MonsterTalk|MonsterTalk]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, monsterId, sceneName, msg</code> → 部分分支无返回值。
| <code>sceneId, monsterId, sceneName, msg</code> → 部分分支无返回值。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnNpcChat|LuaFnNpcChat]]
| [[Lua接口/服务端/LuaFnNpcChat|LuaFnNpcChat]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, monsterId, isSceneBroadcast, msg</code> → 部分分支无返回值。
| <code>sceneId, monsterId, isSceneBroadcast, msg</code> → 部分分支无返回值。
|}
|}
[[Lua接口/服务端/MonsterTalk|MonsterTalk]] 的消息格式与 npctalk 脚本协议一致;[[Lua接口/服务端/LuaFnNpcChat|LuaFnNpcChat]] 发送 Packet 542 的 NPC 对话消息,第三个参数 isSceneBroadcast 控制是否场景广播。
[[Lua接口/服务端/MonsterTalk|MonsterTalk]] 的消息格式与 npctalk 脚本协议一致;[[Lua接口/服务端/LuaFnNpcChat|LuaFnNpcChat]] 发送 Packet 542 的 NPC 对话消息,第三个参数 isSceneBroadcast 控制是否场景广播。


== 队伍消息 ==
== 队伍消息 ==
{| 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接口/服务端/Msg2Team|Msg2Team]]
| [[Lua接口/服务端/Msg2Team|Msg2Team]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">()</code>;无返回值。当前为空实现,调用不会发送消息。
| <code>()</code>;无返回值。当前为空实现,调用不会发送消息。
|}
|}
[[Lua接口/服务端/Msg2Team|Msg2Team]] 当前是**空实现**,调用不会向队伍成员发送消息,需要群发时改用 [[Lua接口/服务端/BroadMsgByChatPipe|BroadMsgByChatPipe]]。
[[Lua接口/服务端/Msg2Team|Msg2Team]] 当前是**空实现**,调用不会向队伍成员发送消息,需要群发时改用 [[Lua接口/服务端/BroadMsgByChatPipe|BroadMsgByChatPipe]]。


== 珍兽公告 ==
== 珍兽公告 ==
{| 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接口/服务端/IssuePetPlacard|IssuePetPlacard]]
| [[Lua接口/服务端/IssuePetPlacard|IssuePetPlacard]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, targetId, petGUID_H, petGUID_L, pszMessage</code> → 1 / 0。
| <code>sceneId, selfId, targetId, petGUID_H, petGUID_L, pszMessage</code> → 1 / 0。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/IssuePetPlacardByIndex|IssuePetPlacardByIndex]]
| [[Lua接口/服务端/IssuePetPlacardByIndex|IssuePetPlacardByIndex]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, targetId, nPetIndex, pszMessage</code> → 1 / 0。
| <code>sceneId, selfId, targetId, nPetIndex, pszMessage</code> → 1 / 0。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/CancelPetPlacard|CancelPetPlacard]]
| [[Lua接口/服务端/CancelPetPlacard|CancelPetPlacard]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, targetId</code> → 1 / 0。
| <code>sceneId, selfId, targetId</code> → 1 / 0。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/DispatchPetPlacardList|DispatchPetPlacardList]]
| [[Lua接口/服务端/DispatchPetPlacardList|DispatchPetPlacardList]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, targetId, firstCheckId, secondCheckId, nextPageOrPrevPage</code> → 1 / 0。
| <code>sceneId, selfId, targetId, firstCheckId, secondCheckId, nextPageOrPrevPage</code> → 1 / 0。
|}
|}
[[Lua接口/服务端/IssuePetPlacard|IssuePetPlacard]] 用珍兽 GUID 高低段定位,[[Lua接口/服务端/IssuePetPlacardByIndex|IssuePetPlacardByIndex]] 用珍兽栏索引。[[Lua接口/服务端/DispatchPetPlacardList|DispatchPetPlacardList]] 需要 6 个参数,后两个是翻页检查标识。
[[Lua接口/服务端/IssuePetPlacard|IssuePetPlacard]] 用珍兽 GUID 高低段定位,[[Lua接口/服务端/IssuePetPlacardByIndex|IssuePetPlacardByIndex]] 用珍兽栏索引。[[Lua接口/服务端/DispatchPetPlacardList|DispatchPetPlacardList]] 需要 6 个参数,后两个是翻页检查标识。


== 发送频道消息 ==
== 发送频道消息 ==
<pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">BroadMsgByChatPipe(sceneId, selfId, "message", 0)
<pre>BroadMsgByChatPipe(sceneId, selfId, "message", 0)
-- 部分分支无返回值;不能据此判断是否发送成功</pre>
-- 部分分支无返回值;不能据此判断是否发送成功</pre>
[[Lua接口/服务端/BroadMsgByChatPipe|BroadMsgByChatPipe]] 的部分分支不返回值,需要确认发送效果应结合客户端观察。
[[Lua接口/服务端/BroadMsgByChatPipe|BroadMsgByChatPipe]] 的部分分支不返回值,需要确认发送效果应结合客户端观察。


== 发布珍兽公告 ==
== 发布珍兽公告 ==
<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 ok = IssuePetPlacardByIndex(sceneId, selfId, targetId, petIndex, "text")
<pre>local ok = IssuePetPlacardByIndex(sceneId, selfId, targetId, petIndex, "text")
if type(ok) == "number" and ok == 1 then
if type(ok) == "number" and ok == 1 then
     -- 公告发布成功
     -- 公告发布成功
end</pre>
end</pre>
[[Lua接口/服务端/IssuePetPlacardByIndex|IssuePetPlacardByIndex]] 返回 1 表示成功、0 表示失败,用 <code style="white-space:normal;overflow-wrap:anywhere;">== 1</code> 判断。
[[Lua接口/服务端/IssuePetPlacardByIndex|IssuePetPlacardByIndex]] 返回 1 表示成功、0 表示失败,用 <code>== 1</code> 判断。


== 相关主题 ==
== 相关主题 ==
第113行: 第113行:
[[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 class="lua-note">本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。</div>


</div>
</div>

2026年9月19日 (六) 16:59的版本

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

按聊天频道发送消息、发布系统公告、发送 NPC 对白与珍兽公告。聊天频道(chatType)与公告内容由脚本传入。

聊天频道消息

接口 参数与返回
BroadMsgByChatPipe sceneId, selfId, pMessage, chatType → 部分分支无返回值。

BroadMsgByChatPipe 按 chatType 决定发送范围(玩家、场景或世界聊天链路),部分分支不返回值。

系统公告

接口 参数与返回
AddGlobalCountNews sceneId, newstr;无返回值。向全组服务器发送新闻公告。

AddGlobalCountNews 无返回值,公告会发送指定次数。

NPC 对白

接口 参数与返回
MonsterTalk sceneId, monsterId, sceneName, msg → 部分分支无返回值。
LuaFnNpcChat sceneId, monsterId, isSceneBroadcast, msg → 部分分支无返回值。

MonsterTalk 的消息格式与 npctalk 脚本协议一致;LuaFnNpcChat 发送 Packet 542 的 NPC 对话消息,第三个参数 isSceneBroadcast 控制是否场景广播。

队伍消息

接口 参数与返回
Msg2Team ();无返回值。当前为空实现,调用不会发送消息。

Msg2Team 当前是**空实现**,调用不会向队伍成员发送消息,需要群发时改用 BroadMsgByChatPipe。

珍兽公告

接口 参数与返回
IssuePetPlacard sceneId, selfId, targetId, petGUID_H, petGUID_L, pszMessage → 1 / 0。
IssuePetPlacardByIndex sceneId, selfId, targetId, nPetIndex, pszMessage → 1 / 0。
CancelPetPlacard sceneId, selfId, targetId → 1 / 0。
DispatchPetPlacardList sceneId, selfId, targetId, firstCheckId, secondCheckId, nextPageOrPrevPage → 1 / 0。

IssuePetPlacard 用珍兽 GUID 高低段定位,IssuePetPlacardByIndex 用珍兽栏索引。DispatchPetPlacardList 需要 6 个参数,后两个是翻页检查标识。

发送频道消息

BroadMsgByChatPipe(sceneId, selfId, "message", 0)
-- 部分分支无返回值;不能据此判断是否发送成功

BroadMsgByChatPipe 的部分分支不返回值,需要确认发送效果应结合客户端观察。

发布珍兽公告

local ok = IssuePetPlacardByIndex(sceneId, selfId, targetId, petIndex, "text")
if type(ok) == "number" and ok == 1 then
    -- 公告发布成功
end

IssuePetPlacardByIndex 返回 1 表示成功、0 表示失败,用 == 1 判断。

相关主题

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

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

本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。