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接口/服务端/LuaFnEquipEnhance|LuaFnEquipEnhance]]
| [[Lua接口/服务端/LuaFnEquipEnhance|LuaFnEquipEnhance]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, equipBagIndex, materialBagIndex</code> → 1-2 个值。0 成功+新等级,-6 失败,-1 表缺失,-2 装备无效,-3 材料无效或金币不足,-4 达到上限。
| <code>sceneId, selfId, equipBagIndex, materialBagIndex</code> → 1-2 个值。0 成功+新等级,-6 失败,-1 表缺失,-2 装备无效,-3 材料无效或金币不足,-4 达到上限。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnGetEquipFaileTimes|LuaFnGetEquipFaileTimes]]
| [[Lua接口/服务端/LuaFnGetEquipFaileTimes|LuaFnGetEquipFaileTimes]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, bagIndex</code> → 强化失败次数;暗器和非装备返回 0。
| <code>sceneId, selfId, bagIndex</code> → 强化失败次数;暗器和非装备返回 0。
|}
|}
[[Lua接口/服务端/LuaFnEquipEnhance|LuaFnEquipEnhance]] 返回数量可变(1 或 2 个),用两个变量接收并先判第一项类型。金币不足时返回 -3、所需费用,不是只返回 -3。
[[Lua接口/服务端/LuaFnEquipEnhance|LuaFnEquipEnhance]] 返回数量可变(1 或 2 个),用两个变量接收并先判第一项类型。金币不足时返回 -3、所需费用,不是只返回 -3。


== 升档 ==
== 升档 ==
{| 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接口/服务端/LuaFnEquipLevelUp|LuaFnEquipLevelUp]]
| [[Lua接口/服务端/LuaFnEquipLevelUp|LuaFnEquipLevelUp]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, equipBagIndex, materialBagIndex</code> → 1-2 个值。-2/-3/-1/-8/-6/-7。
| <code>sceneId, selfId, equipBagIndex, materialBagIndex</code> → 1-2 个值。-2/-3/-1/-8/-6/-7。
|}
|}
[[Lua接口/服务端/LuaFnEquipLevelUp|LuaFnEquipLevelUp]] 返回数量也可变,用两个变量接收。
[[Lua接口/服务端/LuaFnEquipLevelUp|LuaFnEquipLevelUp]] 返回数量也可变,用两个变量接收。


== 类型查询 ==
== 类型查询 ==
{| 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接口/服务端/IsEquipItem|IsEquipItem]]
| [[Lua接口/服务端/IsEquipItem|IsEquipItem]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">itemTableIndex</code> → 是否装备。
| <code>itemTableIndex</code> → 是否装备。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/IsWhiteEquip|IsWhiteEquip]]
| [[Lua接口/服务端/IsWhiteEquip|IsWhiteEquip]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">itemTableIndex</code> → 是否固定零条随机属性。
| <code>itemTableIndex</code> → 是否固定零条随机属性。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetItemEquipPoint|GetItemEquipPoint]]
| [[Lua接口/服务端/GetItemEquipPoint|GetItemEquipPoint]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">itemTableIndex</code> → 穿戴部位;非装备 -1。
| <code>itemTableIndex</code> → 穿戴部位;非装备 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnGetBagEquipType|LuaFnGetBagEquipType]]
| [[Lua接口/服务端/LuaFnGetBagEquipType|LuaFnGetBagEquipType]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, nBagPos</code> → 装备类型;非装备 -1。
| <code>sceneId, selfId, nBagPos</code> → 装备类型;非装备 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GeEquipReqLevel|GeEquipReqLevel]]
| [[Lua接口/服务端/GeEquipReqLevel|GeEquipReqLevel]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">itemTableIndex</code> → 装备需求等级;非装备 -1。
| <code>itemTableIndex</code> → 装备需求等级;非装备 -1。
|}
|}
[[Lua接口/服务端/IsEquipItem|IsEquipItem]]、[[Lua接口/服务端/IsWhiteEquip|IsWhiteEquip]]、[[Lua接口/服务端/GetItemEquipPoint|GetItemEquipPoint]]、[[Lua接口/服务端/GeEquipReqLevel|GeEquipReqLevel]] 只传物品编号(不传 sceneId / selfId),从配置表读取。[[Lua接口/服务端/LuaFnGetBagEquipType|LuaFnGetBagEquipType]] 传背包格子位置,读运行时数据。
[[Lua接口/服务端/IsEquipItem|IsEquipItem]]、[[Lua接口/服务端/IsWhiteEquip|IsWhiteEquip]]、[[Lua接口/服务端/GetItemEquipPoint|GetItemEquipPoint]]、[[Lua接口/服务端/GeEquipReqLevel|GeEquipReqLevel]] 只传物品编号(不传 sceneId / selfId),从配置表读取。[[Lua接口/服务端/LuaFnGetBagEquipType|LuaFnGetBagEquipType]] 传背包格子位置,读运行时数据。


== 装备锁 ==
== 装备锁 ==
{| 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接口/服务端/LuaFnEquipLock|LuaFnEquipLock]]
| [[Lua接口/服务端/LuaFnEquipLock|LuaFnEquipLock]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, bagIndex</code> → 0 成功、-1 失败、-2 装备无效、-3 交易锁。
| <code>sceneId, selfId, bagIndex</code> → 0 成功、-1 失败、-2 装备无效、-3 交易锁。
|}
|}
[[Lua接口/服务端/LuaFnEquipLock|LuaFnEquipLock]] 设置装备持久锁并同步完整物品信息。
[[Lua接口/服务端/LuaFnEquipLock|LuaFnEquipLock]] 设置装备持久锁并同步完整物品信息。


== 外观更换 ==
== 外观更换 ==
{| 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接口/服务端/GetChangeHairItemIdAndItemCount|GetChangeHairItemIdAndItemCount]]
| [[Lua接口/服务端/GetChangeHairItemIdAndItemCount|GetChangeHairItemIdAndItemCount]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">hairStyle</code> → 物品编号和数量;失败 -1。
| <code>hairStyle</code> → 物品编号和数量;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetChangeFaceItemIdAndItemCount|GetChangeFaceItemIdAndItemCount]]
| [[Lua接口/服务端/GetChangeFaceItemIdAndItemCount|GetChangeFaceItemIdAndItemCount]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">faceStyle</code> → 物品编号和数量;失败 -1。
| <code>faceStyle</code> → 物品编号和数量;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/GetChangeHeadInfo|GetChangeHeadInfo]]
| [[Lua接口/服务端/GetChangeHeadInfo|GetChangeHeadInfo]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">headStyle</code> → 物品编号和数量;失败 -1。
| <code>headStyle</code> → 物品编号和数量;失败 -1。
|}
|}
这三个接口返回 1 或 2 个值,用两个变量接收。
这三个接口返回 1 或 2 个值,用两个变量接收。


== 检查并强化装备 ==
== 检查并强化装备 ==
<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 equipType = LuaFnGetBagEquipType(sceneId, selfId, bagIndex)
<pre>local equipType = LuaFnGetBagEquipType(sceneId, selfId, bagIndex)
if type(equipType) == "number" and equipType ~= -1 then
if type(equipType) == "number" and equipType ~= -1 then
     local result, newLevel = LuaFnEquipEnhance(sceneId, selfId, bagIndex, materialBagIndex)
     local result, newLevel = LuaFnEquipEnhance(sceneId, selfId, bagIndex, materialBagIndex)
第84行: 第84行:
     end
     end
end</pre>
end</pre>
[[Lua接口/服务端/LuaFnEquipEnhance|LuaFnEquipEnhance]] 返回 1 或 2 个值,用两个变量接收并先判第一项类型;不要用 <code style="white-space:normal;overflow-wrap:anywhere;">if LuaFnEquipEnhance(...) then</code>,避免把 0 当假。
[[Lua接口/服务端/LuaFnEquipEnhance|LuaFnEquipEnhance]] 返回 1 或 2 个值,用两个变量接收并先判第一项类型;不要用 <code>if LuaFnEquipEnhance(...) then</code>,避免把 0 当假。


== 查询装备需求等级 ==
== 查询装备需求等级 ==
<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 reqLevel = GeEquipReqLevel(itemTableIndex)
<pre>local reqLevel = GeEquipReqLevel(itemTableIndex)
if type(reqLevel) == "number" and reqLevel ~= -1 then
if type(reqLevel) == "number" and reqLevel ~= -1 then
     -- 取得装备需求等级
     -- 取得装备需求等级
第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 class="lua-note">本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。</div>


</div>
</div>

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

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

装备强化、升档、锁定与类型查询。装备操作多数传入背包格子位置(bagIndex / BagPos),不是物品配置编号。

强化

接口 参数与返回
LuaFnEquipEnhance sceneId, selfId, equipBagIndex, materialBagIndex → 1-2 个值。0 成功+新等级,-6 失败,-1 表缺失,-2 装备无效,-3 材料无效或金币不足,-4 达到上限。
LuaFnGetEquipFaileTimes sceneId, selfId, bagIndex → 强化失败次数;暗器和非装备返回 0。

LuaFnEquipEnhance 返回数量可变(1 或 2 个),用两个变量接收并先判第一项类型。金币不足时返回 -3、所需费用,不是只返回 -3。

升档

接口 参数与返回
LuaFnEquipLevelUp sceneId, selfId, equipBagIndex, materialBagIndex → 1-2 个值。-2/-3/-1/-8/-6/-7。

LuaFnEquipLevelUp 返回数量也可变,用两个变量接收。

类型查询

接口 参数与返回
IsEquipItem itemTableIndex → 是否装备。
IsWhiteEquip itemTableIndex → 是否固定零条随机属性。
GetItemEquipPoint itemTableIndex → 穿戴部位;非装备 -1。
LuaFnGetBagEquipType sceneId, selfId, nBagPos → 装备类型;非装备 -1。
GeEquipReqLevel itemTableIndex → 装备需求等级;非装备 -1。

IsEquipItem、IsWhiteEquip、GetItemEquipPoint、GeEquipReqLevel 只传物品编号(不传 sceneId / selfId),从配置表读取。LuaFnGetBagEquipType 传背包格子位置,读运行时数据。

装备锁

接口 参数与返回
LuaFnEquipLock sceneId, selfId, bagIndex → 0 成功、-1 失败、-2 装备无效、-3 交易锁。

LuaFnEquipLock 设置装备持久锁并同步完整物品信息。

外观更换

接口 参数与返回
GetChangeHairItemIdAndItemCount hairStyle → 物品编号和数量;失败 -1。
GetChangeFaceItemIdAndItemCount faceStyle → 物品编号和数量;失败 -1。
GetChangeHeadInfo headStyle → 物品编号和数量;失败 -1。

这三个接口返回 1 或 2 个值,用两个变量接收。

检查并强化装备

local equipType = LuaFnGetBagEquipType(sceneId, selfId, bagIndex)
if type(equipType) == "number" and equipType ~= -1 then
    local result, newLevel = LuaFnEquipEnhance(sceneId, selfId, bagIndex, materialBagIndex)
    if type(result) == "number" then
        -- result 0 成功、负值失败
    end
end

LuaFnEquipEnhance 返回 1 或 2 个值,用两个变量接收并先判第一项类型;不要用 if LuaFnEquipEnhance(...) then,避免把 0 当假。

查询装备需求等级

local reqLevel = GeEquipReqLevel(itemTableIndex)
if type(reqLevel) == "number" and reqLevel ~= -1 then
    -- 取得装备需求等级
end

GeEquipReqLevel 只传物品编号,非装备返回 -1。

相关主题

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

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

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