996M2新三端-服务端/search"getiteminfo"/接口/物品操作/获取物品信息
获取物品信息
getiteminfo
获取物品信息
复制
getiteminfo(actor, makeIndex, id)
参数
参数 类型 说明
actor number/string 玩家对象
makeIndex string 物品唯一Id
id integer 1:唯一ID
2:物品ID
3:剩余持久
4:最大持久
5:叠加数量
6:绑定状态
7:物品名称
8:修改后物品名称
返回值
参数
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-06-03 11:50:52 |
👁️ 阅读: 8
我是lua后端老师!
小仙,你好!我看到你正在学习 `getiteminfo` 接口,这个接口在物品操作中非常常用,是获取背包或身上物品具体信息的关键。
你上面贴的说明基本是正确的,但参数顺序和类型需要稍微修正一下,让我结合引擎的实际情况来为你详细解释一下。
**函数原型:**
```lua
getiteminfo(actor, itemObj, id)
```
**参数说明:**
* `actor`:**玩家对象**,也就是我们常说的 `play`,是一个代表玩家身份的字符串ID。
* `itemObj`:**物品对象**,而不是 `makeIndex`(物品唯一ID)。你需要先通过 `linkbodyitem`(关联身上物品)或遍历 `getbagitems`(获取背包物品列表)得到一个物品对象,再传给这个函数。
* `id`:**查询标识**,一个整数,决定你要获取信息的类型。你列出的1-8都是有效的。
**返回值说明:**
* 返回一个值,类型根据 `id` 的不同而不同(整数或字符串)。如果查询失败或信息不存在,通常返回 `0` 或空字符串。
**举个栗子,小仙:**
```lua
-- 假设这是QF中的一个穿戴触发
function takeon(actor, pos)
-- 1. 先通过位置获取物品对象
local itemObj = linkbodyitem(actor, pos)
if itemObj then
-- 2. 使用getiteminfo查询信息
local uniqueId = getiteminfo(actor, itemObj, 1) -- 获取唯一ID
local itemId = getiteminfo(actor, itemObj, 2) -- 获取物品基础ID
local curDura = getiteminfo(actor, itemObj, 3) -- 获取当前持久
local maxDura = getiteminfo(actor, itemObj, 4) -- 获取最大持久
local itemName = getiteminfo(actor, itemObj, 7) -- 获取物品原始名称
local customName = getiteminfo(actor, itemObj, 8) -- 获取改名后的名称(引擎24.08.07新增)
-- 3. 可以再用getstditeminfo查更基础的信息
local baseName = getstditeminfo(itemId, 1) -- 从物品表获取名称
local stdMode = getstditeminfo(itemId, 2) -- 获取物品大类(StdMode)
-- 打印出来看看(记得用release_print哦)
release_print(string.format("玩家穿戴了物品,唯一ID: %d, 基础ID: %d, 当前持久: %d/%d, 原始名: %s, 改名: %s", uniqueId, itemId, curDura, maxDura, itemName, customName))
release_print(string.format("物品表内名称: %s, 物品大类(StdMode): %d", baseName, stdMode))
end
end
```
**核心要点:**
1. **先有对象,再查信息**:`getiteminfo` 的第一个物品参数必须是 **物品对象**,不能直接传一个数字ID进去。获取物品对象是使用它的前提。
2. **与 `getstditeminfo` 的区别**:`getiteminfo` 查的是**具体某一个物品实例**的信息(比如这个裁决之杖还剩多少持久)。而 `getstditeminfo` 查的是**物品配置表**里的基础信息(比如裁决之杖在表里写的最大持久是多少)。它们俩是兄弟,经常一起用。
3. **新功能**:`id=8` 是引擎在2024年8月7日版本新增的,用于获取玩家自己为物品修改后的名字,如果没改过,返回的就是空字符串。
小仙,理解了吗?记住这个“对象->信息”的步骤。如果还有不清楚的,随时再来问我,或者去请教我师傅浮生梦尊者哦!
← 返回问答库