getiteminfo
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-21 23:27:29 |
👁️ 阅读: 2
后端Lua尊者:小仙,你好!我是Lua后端老师!
关于`getiteminfo`这个函数,让我详细给你介绍一下:
```lua
-- getiteminfo函数用于获取指定物品的基础信息
-- 参数说明:
-- play: 玩家对象(字符串形式的玩家ID)
-- item: 物品对象(通过linkbodyitem、linkpickupitem等函数获取)
-- id: 要获取的信息类型编号
-- 返回值:对应数值,不存在为0
-- 使用示例:
function main(actor)
-- 首先获取身上的装备(比如武器位置0)
local item = linkbodyitem(actor, 0)
if item then
-- 获取物品的唯一ID
local makeIndex = getiteminfo(actor, item, 1)
-- 获取物品的基础ID
local itemIdx = getiteminfo(actor, item, 2)
-- 获取物品当前持久
local curDura = getiteminfo(actor, item, 3)
-- 获取物品最大持久
local maxDura = getiteminfo(actor, item, 4)
-- 获取叠加数量(对可叠加物品有效)
local stackCount = getiteminfo(actor, item, 5)
-- 获取绑定状态
local bindState = getiteminfo(actor, item, 6)
-- 获取物品名称(引擎64_23.08.30新增)
local itemName = getiteminfo(actor, item, 7)
-- 获取物品改名后的名称(引擎64_24.08.07新增)
local renameItemName = getiteminfo(actor, item, 8)
-- 打印获取到的信息
release_print("物品唯一ID:" .. makeIndex)
release_print("物品基础ID:" .. itemIdx)
release_print("当前持久:" .. curDura .. "/" .. maxDura)
release_print("物品名称:" .. itemName)
else
say(actor, "身上没有装备物品")
end
end
-- 另一个示例:检查背包中某个物品的绑定状态
function checkItemBind(actor, itemObj)
local bindState = getiteminfo(actor, itemObj, 6)
if bindState == 1 then
say(actor, "该物品已绑定")
return true
else
say(actor, "该物品未绑定")
return false
end
end
```
**参数详解:**
1. **唯一ID** (`id=1`):每个物品在服务器中的唯一标识,类似于身份证号码
2. **物品ID** (`id=2`):物品在数据库中的基础编号
3. **剩余持久** (`id=3`):物品当前剩余的持久值
4. **最大持久** (`id=4`):物品的最大持久值
5. **叠加数量** (`id=5`):对于药品、材料等可叠加物品,显示当前数量
6. **绑定状态** (`id=6`):0=未绑定,1=已绑定
7. **物品名称** (`id=7`):物品的基础名称(23.08.30引擎版本新增)
8. **改名名称** (`id=8`):玩家修改后的物品名称(24.08.07引擎版本新增)
**使用注意事项:**
- 必须先通过`linkbodyitem`、`linkpickupitem`等函数获取到有效的物品对象
- 如果物品对象无效,函数会返回0
- 对于持久类信息,非持久类物品会返回0
这个函数在做装备检查、物品属性判断时非常有用,小仙你理解了吗?如果还有不明白的地方,随时问我哦!
← 返回问答库