Lua接口/物品查询:修订间差异
来自天龙知识库
跳到导航跳到搜索
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例 |
||
| (未显示同一用户的1个中间版本) | |||
| 第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接口/服务端/GetItemCount|GetItemCount]] | |||
| <code>sceneId, selfId, itemTypeSn</code> → 累计数量(含已装备与背包);找不到 0、失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetAvailableItemCount|LuaFnGetAvailableItemCount]] | |||
| <code>sceneId, selfId, itemTypeSn</code> → 未加交易锁和密码锁的数量;失败 -1。 | |||
|} | |} | ||
[[Lua接口/服务端/GetItemCount|GetItemCount]] 统计已装备与背包中的同编号物品总量;[[Lua接口/服务端/LuaFnGetAvailableItemCount|LuaFnGetAvailableItemCount]] 只统计未加锁的,用于判断能否交易或扣除。 | [[Lua接口/服务端/GetItemCount|GetItemCount]] 统计已装备与背包中的同编号物品总量;[[Lua接口/服务端/LuaFnGetAvailableItemCount|LuaFnGetAvailableItemCount]] 只统计未加锁的,用于判断能否交易或扣除。 | ||
== 位置查找 == | == 位置查找 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/GetBagPosByItemSn|GetBagPosByItemSn]] | |||
| <code>sceneId, selfId, itemTableIndex</code> → 首个匹配格子位置(0 有效);未找到 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetItemBagPos|GetItemBagPos]] | |||
| <code>sceneId, selfId, itemTableIndex, findUnlock</code> → 首个匹配格子位置;可排除交易锁;未找到 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetItemTableIndexByIndex|GetItemTableIndexByIndex]] | |||
| <code>sceneId, selfId, itemIndex</code> → 该格物品配置编号;失败 -1。 | |||
|} | |} | ||
0 是有效格子位置,不能只靠 <code | 0 是有效格子位置,不能只靠 <code>>= 0</code> 判断是否找到,要同时排除 -1。 | ||
== 锁定与绑定 == | == 锁定与绑定 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/LuaFnIsItemAvailable|LuaFnIsItemAvailable]] | |||
| <code>sceneId, selfId, bagIndex</code> → 未加锁 1、已加锁 0、失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnIsItemLocked|LuaFnIsItemLocked]] | |||
| <code>sceneId, selfId, bagIndex</code> → 交易锁 1、无锁 0、越界 -2、失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/LuaFnGetItemBindStatus|LuaFnGetItemBindStatus]] | |||
| <code>sceneId, selfId, bagIndex</code> → 未绑定 0、已绑定 1、位置无效 2、失败 -1。 | |||
|} | |} | ||
[[Lua接口/服务端/LuaFnIsItemAvailable|LuaFnIsItemAvailable]] 检查交易锁和密码锁;[[Lua接口/服务端/LuaFnIsItemLocked|LuaFnIsItemLocked]] 只检查运行时交易锁。[[Lua接口/服务端/LuaFnGetItemBindStatus|LuaFnGetItemBindStatus]] 返回 2 表示位置无效,不是已绑定。 | [[Lua接口/服务端/LuaFnIsItemAvailable|LuaFnIsItemAvailable]] 检查交易锁和密码锁;[[Lua接口/服务端/LuaFnIsItemLocked|LuaFnIsItemLocked]] 只检查运行时交易锁。[[Lua接口/服务端/LuaFnGetItemBindStatus|LuaFnGetItemBindStatus]] 返回 2 表示位置无效,不是已绑定。 | ||
== 物品属性 == | == 物品属性 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/GetItemName|GetItemName]] | |||
| <code>sceneId, itemIndex</code> → 名称字符串或 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetBagItemLevel|GetBagItemLevel]] | |||
| <code>sceneId, selfId, BagIndex</code> → 装备需求等级;非装备返回 255、失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetItemApt|GetItemApt]] | |||
| <code>sceneId, selfId, bagIndex, nAptitudeType</code> → 资质加成百分比整数;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetGemEmbededCount|GetGemEmbededCount]] | |||
| <code>sceneId, selfId, BagPos</code> → 已镶嵌宝石数量;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetBagItemDur|GetBagItemDur]] | |||
| <code>sceneId, selfId, BagPos</code> → 耐久度;失败 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetBagItemParam|GetBagItemParam]] | |||
| <code>sceneId, selfId, BagPos, StartPos, Type</code> → 参数值;失败 -1。 | |||
|} | |} | ||
[[Lua接口/服务端/GetBagItemLevel|GetBagItemLevel]] 非装备返回 255(哨兵值),不能把 255 当正常等级。[[Lua接口/服务端/GetItemApt|GetItemApt]] 返回的是百分比整数(如 16 表示 +16%),不是原始资质点。 | [[Lua接口/服务端/GetBagItemLevel|GetBagItemLevel]] 非装备返回 255(哨兵值),不能把 255 当正常等级。[[Lua接口/服务端/GetItemApt|GetItemApt]] 返回的是百分比整数(如 16 表示 +16%),不是原始资质点。 | ||
== 物品编号解析 == | == 物品编号解析 == | ||
{| class="wikitable | {| class="wikitable" | ||
! scope="col | ! scope="col" | 接口 | ||
! scope="col | ! scope="col" | 参数与返回 | ||
|- | |- | ||
| [[Lua接口/服务端/GetItemQuality|GetItemQuality]] | |||
| <code>itemIndex</code> → 品质编号或 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetCommonItemGrade|GetCommonItemGrade]] | |||
| <code>itemTableIndex</code> → 品级或 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetItemClass|GetItemClass]] | |||
| <code>itemTableIndex</code> → 物品类别或 -1。 | |||
|- | |- | ||
| [[Lua接口/服务端/GetItemEquipPoint|GetItemEquipPoint]] | |||
| <code>itemTableIndex</code> → 穿戴部位;非装备 -1。 | |||
|} | |} | ||
这组接口只传物品编号(不传 sceneId / selfId),从配置表直接读取静态属性。 | 这组接口只传物品编号(不传 sceneId / selfId),从配置表直接读取静态属性。 | ||
== 统计可交易物品 == | == 统计可交易物品 == | ||
<pre | <pre>local count = LuaFnGetAvailableItemCount(sceneId, selfId, itemTypeSn) | ||
if type(count) == "number" and count > 0 then | if type(count) == "number" and count > 0 then | ||
-- 有未加锁的物品可交易或扣除 | -- 有未加锁的物品可交易或扣除 | ||
end</pre> | end</pre> | ||
[[Lua接口/服务端/LuaFnGetAvailableItemCount|LuaFnGetAvailableItemCount]] 失败返回 -1,不能直接 <code | [[Lua接口/服务端/LuaFnGetAvailableItemCount|LuaFnGetAvailableItemCount]] 失败返回 -1,不能直接 <code>if count then</code> 判断(见 [[Lua接口/返回值判断|返回值判断]])。 | ||
== 查找物品位置 == | == 查找物品位置 == | ||
<pre | <pre>local bagIndex = GetItemBagPos(sceneId, selfId, itemTableIndex, 1) | ||
if type(bagIndex) == "number" and bagIndex ~= -1 then | if type(bagIndex) == "number" and bagIndex ~= -1 then | ||
-- 取得首个未加交易锁的格子位置 | -- 取得首个未加交易锁的格子位置 | ||
| 第141行: | 第141行: | ||
[[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]] | [[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]] | ||
</div> | </div> | ||
2026年10月26日 (一) 17:29的最新版本
查询背包中物品的数量、位置、锁定状态与属性。物品配置编号(itemTypeSn / itemTableIndex)来自物品表,不是背包格子编号;背包格子编号(bagIndex / BagPos)是 0 起的位置。
数量统计
| 接口 | 参数与返回 |
|---|---|
| GetItemCount | sceneId, selfId, itemTypeSn → 累计数量(含已装备与背包);找不到 0、失败 -1。
|
| LuaFnGetAvailableItemCount | sceneId, selfId, itemTypeSn → 未加交易锁和密码锁的数量;失败 -1。
|
GetItemCount 统计已装备与背包中的同编号物品总量;LuaFnGetAvailableItemCount 只统计未加锁的,用于判断能否交易或扣除。
位置查找
| 接口 | 参数与返回 |
|---|---|
| GetBagPosByItemSn | sceneId, selfId, itemTableIndex → 首个匹配格子位置(0 有效);未找到 -1。
|
| GetItemBagPos | sceneId, selfId, itemTableIndex, findUnlock → 首个匹配格子位置;可排除交易锁;未找到 -1。
|
| GetItemTableIndexByIndex | sceneId, selfId, itemIndex → 该格物品配置编号;失败 -1。
|
0 是有效格子位置,不能只靠 >= 0 判断是否找到,要同时排除 -1。
锁定与绑定
| 接口 | 参数与返回 |
|---|---|
| LuaFnIsItemAvailable | sceneId, selfId, bagIndex → 未加锁 1、已加锁 0、失败 -1。
|
| LuaFnIsItemLocked | sceneId, selfId, bagIndex → 交易锁 1、无锁 0、越界 -2、失败 -1。
|
| LuaFnGetItemBindStatus | sceneId, selfId, bagIndex → 未绑定 0、已绑定 1、位置无效 2、失败 -1。
|
LuaFnIsItemAvailable 检查交易锁和密码锁;LuaFnIsItemLocked 只检查运行时交易锁。LuaFnGetItemBindStatus 返回 2 表示位置无效,不是已绑定。
物品属性
| 接口 | 参数与返回 |
|---|---|
| GetItemName | sceneId, itemIndex → 名称字符串或 -1。
|
| GetBagItemLevel | sceneId, selfId, BagIndex → 装备需求等级;非装备返回 255、失败 -1。
|
| GetItemApt | sceneId, selfId, bagIndex, nAptitudeType → 资质加成百分比整数;失败 -1。
|
| GetGemEmbededCount | sceneId, selfId, BagPos → 已镶嵌宝石数量;失败 -1。
|
| GetBagItemDur | sceneId, selfId, BagPos → 耐久度;失败 -1。
|
| GetBagItemParam | sceneId, selfId, BagPos, StartPos, Type → 参数值;失败 -1。
|
GetBagItemLevel 非装备返回 255(哨兵值),不能把 255 当正常等级。GetItemApt 返回的是百分比整数(如 16 表示 +16%),不是原始资质点。
物品编号解析
| 接口 | 参数与返回 |
|---|---|
| GetItemQuality | itemIndex → 品质编号或 -1。
|
| GetCommonItemGrade | itemTableIndex → 品级或 -1。
|
| GetItemClass | itemTableIndex → 物品类别或 -1。
|
| GetItemEquipPoint | itemTableIndex → 穿戴部位;非装备 -1。
|
这组接口只传物品编号(不传 sceneId / selfId),从配置表直接读取静态属性。
统计可交易物品
local count = LuaFnGetAvailableItemCount(sceneId, selfId, itemTypeSn)
if type(count) == "number" and count > 0 then
-- 有未加锁的物品可交易或扣除
end
LuaFnGetAvailableItemCount 失败返回 -1,不能直接 if count then 判断(见 返回值判断)。
查找物品位置
local bagIndex = GetItemBagPos(sceneId, selfId, itemTableIndex, 1)
if type(bagIndex) == "number" and bagIndex ~= -1 then
-- 取得首个未加交易锁的格子位置
end
0 是有效格子位置,要排除 -1 但不排除 0。
相关主题
- 角色信息
- 属性读取与修改
- 等级与经验
- 货币相关
- 物品查询
- 物品发放与扣除
- 背包空间
- 装备操作
- 任务状态
- 任务变量
- NPC 对话
- 对话选项
- 技能相关
- 心法相关
- 状态效果
- 生活技能
- 珍兽查询
- 珍兽操作
- 场景查询
- 坐标与传送
- 副本相关
- 活动相关
- 时间与计时
- 怪物相关
- 队伍相关
- 帮会相关
- 消息与提示
- 聊天与公告
函数不存在或提示 nil · 参数类型与顺序 · 返回值判断 · 对象 ID 与 GUID