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接口/服务端/GetName|GetName]]
| [[Lua接口/服务端/GetName|GetName]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 名称字符串;失败返回空串。
| <code>sceneId, selfId</code> → 名称字符串;失败返回空串。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetSex|GetSex]]
| [[Lua接口/服务端/GetSex|GetSex]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 性别数值。
| <code>sceneId, selfId</code> → 性别数值。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetMenPai|GetMenPai]]
| [[Lua接口/服务端/GetMenPai|GetMenPai]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 门派 ID。
| <code>sceneId, selfId</code> → 门派 ID。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/SetMenPai|SetMenPai]]
| [[Lua接口/服务端/SetMenPai|SetMenPai]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, menpaiId</code>;无返回值。
| <code>sceneId, selfId, menpaiId</code>;无返回值。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetCurCamp|GetCurCamp]]
| [[Lua接口/服务端/GetCurCamp|GetCurCamp]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 当前阵营编号。
| <code>sceneId, selfId</code> → 当前阵营编号。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/SetCurCamp|SetCurCamp]]
| [[Lua接口/服务端/SetCurCamp|SetCurCamp]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, campIndex</code>;无返回值。
| <code>sceneId, selfId, campIndex</code>;无返回值。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetCharacterType|GetCharacterType]]
| [[Lua接口/服务端/GetCharacterType|GetCharacterType]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, characterId</code> → 对象类型。
| <code>sceneId, characterId</code> → 对象类型。
|}
|}
门派、阵营编号由本服配置决定,不在 Lua 注册表里枚举。[[Lua接口/服务端/SetMenPai|SetMenPai]]、[[Lua接口/服务端/SetCurCamp|SetCurCamp]] 当前实现无返回值,不能靠接收变量判断是否成功,客户端界面一般需要重新刷新才会显示新门派 / 阵营。
门派、阵营编号由本服配置决定,不在 Lua 注册表里枚举。[[Lua接口/服务端/SetMenPai|SetMenPai]]、[[Lua接口/服务端/SetCurCamp|SetCurCamp]] 当前实现无返回值,不能靠接收变量判断是否成功,客户端界面一般需要重新刷新才会显示新门派 / 阵营。


== 称号 ==
== 称号 ==
{| 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接口/服务端/GetCurTitle|GetCurTitle]]
| [[Lua接口/服务端/GetCurTitle|GetCurTitle]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 当前显示称号的原始类型值。
| <code>sceneId, selfId</code> → 当前显示称号的原始类型值。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/SetCurTitle|SetCurTitle]]
| [[Lua接口/服务端/SetCurTitle|SetCurTitle]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, titleType, titleIndex</code>;无返回值。
| <code>sceneId, selfId, titleType, titleIndex</code>;无返回值。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetTitle|GetTitle]]
| [[Lua接口/服务端/GetTitle|GetTitle]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, titleIndex</code> → 某个称号。
| <code>sceneId, selfId, titleIndex</code> → 某个称号。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/SetCharacterTitle|SetCharacterTitle]]
| [[Lua接口/服务端/SetCharacterTitle|SetCharacterTitle]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, title</code>;固定返回 -1。
| <code>sceneId, selfId, title</code>;固定返回 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetDyTitlesNum|GetDyTitlesNum]]
| [[Lua接口/服务端/GetDyTitlesNum|GetDyTitlesNum]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 动态称号个数。
| <code>sceneId, selfId</code> → 动态称号个数。
|}
|}
[[Lua接口/服务端/SetCurTitle|SetCurTitle]] 的脚本类型 1 到 5 映射到称号类型 2 到 6,不要把脚本类型与原始类型值直接混用。[[Lua接口/服务端/SetCharacterTitle|SetCharacterTitle]] 固定返回 -1,不能用 if 接收判断是否设置成功。
[[Lua接口/服务端/SetCurTitle|SetCurTitle]] 的脚本类型 1 到 5 映射到称号类型 2 到 6,不要把脚本类型与原始类型值直接混用。[[Lua接口/服务端/SetCharacterTitle|SetCharacterTitle]] 固定返回 -1,不能用 if 接收判断是否设置成功。


== 外观与坐标 ==
== 外观与坐标 ==
{| 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接口/服务端/GetHumanFaceModel|GetHumanFaceModel]]
| [[Lua接口/服务端/GetHumanFaceModel|GetHumanFaceModel]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 脸部模型编号。
| <code>sceneId, selfId</code> → 脸部模型编号。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetHumanHairModel|GetHumanHairModel]] / [[Lua接口/服务端/SetHumanHairModel|SetHumanHairModel]]
| [[Lua接口/服务端/GetHumanHairModel|GetHumanHairModel]] / [[Lua接口/服务端/SetHumanHairModel|SetHumanHairModel]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId&#91;, uHairStyle&#93;</code>;读取模型或设置模型。
| <code>sceneId, selfId&#91;, uHairStyle&#93;</code>;读取模型或设置模型。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetHumanHairColor|GetHumanHairColor]] / [[Lua接口/服务端/SetHumanHairColor|SetHumanHairColor]]
| [[Lua接口/服务端/GetHumanHairColor|GetHumanHairColor]] / [[Lua接口/服务端/SetHumanHairColor|SetHumanHairColor]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId&#91;, value&#93;</code>;读取或设置头发颜色。
| <code>sceneId, selfId&#91;, value&#93;</code>;读取或设置头发颜色。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetWorldPos|GetWorldPos]]
| [[Lua接口/服务端/GetWorldPos|GetWorldPos]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → x、z 两个数值;失败返回 -1、-1。
| <code>sceneId, selfId</code> → x、z 两个数值;失败返回 -1、-1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetHumanGUID|GetHumanGUID]]
| [[Lua接口/服务端/GetHumanGUID|GetHumanGUID]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 角色 GUID;失败返回 -1。
| <code>sceneId, selfId</code> → 角色 GUID;失败返回 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnGuid2ObjId|LuaFnGuid2ObjId]]
| [[Lua接口/服务端/LuaFnGuid2ObjId|LuaFnGuid2ObjId]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, guid</code> → 该 GUID 在当前场景的对象 ID;失败返回 -1。
| <code>sceneId, guid</code> → 该 GUID 在当前场景的对象 ID;失败返回 -1。
|}
|}
[[Lua接口/服务端/GetWorldPos|GetWorldPos]] 返回两个值,必须用 <code style="white-space:normal;overflow-wrap:anywhere;">local x, z = GetWorldPos(sceneId, selfId)</code> 接收;只接一项会丢掉 z。[[Lua接口/服务端/GetHumanGUID|GetHumanGUID]] 返回的是角色 GUID,与场景对象 ID 不同,不能直接当 selfId 用,需要用 [[Lua接口/服务端/LuaFnGuid2ObjId|LuaFnGuid2ObjId]] 在当前场景换回对象 ID。这两个转换都要求对象仍在传入场景中。
[[Lua接口/服务端/GetWorldPos|GetWorldPos]] 返回两个值,必须用 <code>local x, z = GetWorldPos(sceneId, selfId)</code> 接收;只接一项会丢掉 z。[[Lua接口/服务端/GetHumanGUID|GetHumanGUID]] 返回的是角色 GUID,与场景对象 ID 不同,不能直接当 selfId 用,需要用 [[Lua接口/服务端/LuaFnGuid2ObjId|LuaFnGuid2ObjId]] 在当前场景换回对象 ID。这两个转换都要求对象仍在传入场景中。


== 读取角色身份 ==
== 读取角色身份 ==
<pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">-- sceneId、selfId 来自服务端回调
<pre>-- sceneId、selfId 来自服务端回调
local name = GetName(sceneId, selfId)
local name = GetName(sceneId, selfId)
local level = GetLevel(sceneId, selfId)
local level = GetLevel(sceneId, selfId)
第94行: 第94行:


== 切换门派 ==
== 切换门派 ==
<pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">SetMenPai(sceneId, selfId, menpaiId)
<pre>SetMenPai(sceneId, selfId, menpaiId)
-- 无返回值;门派 ID 来自本服配置,不在 Lua 注册表里枚举</pre>
-- 无返回值;门派 ID 来自本服配置,不在 Lua 注册表里枚举</pre>
门派切换后相关心法、技能由服务端另行处理,脚本不直接改这些。[[Lua接口/服务端/SetMenPai|SetMenPai]] 与 [[Lua接口/服务端/SetCurCamp|SetCurCamp]] 都无返回值,不能据此推断业务结果。
门派切换后相关心法、技能由服务端另行处理,脚本不直接改这些。[[Lua接口/服务端/SetMenPai|SetMenPai]] 与 [[Lua接口/服务端/SetCurCamp|SetCurCamp]] 都无返回值,不能据此推断业务结果。
第132行: 第132行:
[[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的版本

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

读取角色身份、门派、阵营、称号、外观与坐标。这些接口都不修改属性数值,改值见 属性读取与修改、等级与经验。

身份与门派

接口 参数与返回
GetName sceneId, selfId → 名称字符串;失败返回空串。
GetSex sceneId, selfId → 性别数值。
GetMenPai sceneId, selfId → 门派 ID。
SetMenPai sceneId, selfId, menpaiId;无返回值。
GetCurCamp sceneId, selfId → 当前阵营编号。
SetCurCamp sceneId, selfId, campIndex;无返回值。
GetCharacterType sceneId, characterId → 对象类型。

门派、阵营编号由本服配置决定,不在 Lua 注册表里枚举。SetMenPai、SetCurCamp 当前实现无返回值,不能靠接收变量判断是否成功,客户端界面一般需要重新刷新才会显示新门派 / 阵营。

称号

接口 参数与返回
GetCurTitle sceneId, selfId → 当前显示称号的原始类型值。
SetCurTitle sceneId, selfId, titleType, titleIndex;无返回值。
GetTitle sceneId, selfId, titleIndex → 某个称号。
SetCharacterTitle sceneId, selfId, title;固定返回 -1。
GetDyTitlesNum sceneId, selfId → 动态称号个数。

SetCurTitle 的脚本类型 1 到 5 映射到称号类型 2 到 6,不要把脚本类型与原始类型值直接混用。SetCharacterTitle 固定返回 -1,不能用 if 接收判断是否设置成功。

外观与坐标

接口 参数与返回
GetHumanFaceModel sceneId, selfId → 脸部模型编号。
GetHumanHairModel / SetHumanHairModel sceneId, selfId[, uHairStyle];读取模型或设置模型。
GetHumanHairColor / SetHumanHairColor sceneId, selfId[, value];读取或设置头发颜色。
GetWorldPos sceneId, selfId → x、z 两个数值;失败返回 -1、-1。
GetHumanGUID sceneId, selfId → 角色 GUID;失败返回 -1。
LuaFnGuid2ObjId sceneId, guid → 该 GUID 在当前场景的对象 ID;失败返回 -1。

GetWorldPos 返回两个值,必须用 local x, z = GetWorldPos(sceneId, selfId) 接收;只接一项会丢掉 z。GetHumanGUID 返回的是角色 GUID,与场景对象 ID 不同,不能直接当 selfId 用,需要用 LuaFnGuid2ObjId 在当前场景换回对象 ID。这两个转换都要求对象仍在传入场景中。

读取角色身份

-- sceneId、selfId 来自服务端回调
local name = GetName(sceneId, selfId)
local level = GetLevel(sceneId, selfId)
local x, z = GetWorldPos(sceneId, selfId)
if type(name) == "string" and name ~= ""
    and type(level) == "number" and level >= 0
    and type(x) == "number" and type(z) == "number"
    and x ~= -1 and z ~= -1 then
    -- 取得名称、等级与坐标
end

GetName 失败返回空串、GetLevel 失败返回 -1、GetWorldPos 失败返回 -1、-1。先判类型再判数值,避免把 -1 当成有效坐标。完整示例见 服务端调用示例 的「读取角色信息」段。

切换门派

SetMenPai(sceneId, selfId, menpaiId)
-- 无返回值;门派 ID 来自本服配置,不在 Lua 注册表里枚举

门派切换后相关心法、技能由服务端另行处理,脚本不直接改这些。SetMenPai 与 SetCurCamp 都无返回值,不能据此推断业务结果。

相关主题

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

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

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