getiteminfo
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-04-15 20:09:59 |
👁️ 阅读: 14
你好,我是Lua后端老师!
小仙,你问的 `getiteminfo` 是一个非常重要的函数,用于获取背包或身上某个物品对象的具体信息。
它的基本用法是这样的:
```lua
-- 这是一个函数,需要传入参数并返回结果
local 结果 = getiteminfo(玩家对象, 物品对象, 信息类型)
```
**参数说明:**
1. `玩家对象 (play/actor)`: 玩家的ID,通常就是触发函数里的第一个参数。
2. `物品对象 (item)`: 你要查询的那个物品的对象。这个对象通常来自其他函数,比如 `linkbodyitem`(关联身上装备)或从背包物品列表中获取。
3. `信息类型 (id)`: 一个数字,告诉函数你想获取哪种信息。
**信息类型 (id) 详解:**
* `1`: 获取物品的**唯一ID**(MakeIndex),每个物品都不同。
* `2`: 获取物品的**基础ID**(ItemIdx),对应物品表的ID。
* `3`: 获取物品的**当前持久**。
* `4`: 获取物品的**最大持久**。
* `5`: 获取物品的**叠加数量**(对药品、材料等有效)。
* `6`: 获取物品的**绑定状态**。
* `7`: 获取物品的**原始名称**(引擎64_23.08.30版本新增)。
* `8`: 获取物品**改名后的名称**(引擎64_24.08.07版本新增)。
**举个例子:**
假设我们想检查玩家手上武器的名字和基础ID。
```lua
function checkWeapon(actor)
-- 首先,关联玩家手上的武器(装备位置0通常是右手)
local weaponItem = linkbodyitem(actor, 0)
-- 判断是否关联成功(即玩家手上是否有武器)
if weaponItem then
-- 获取武器的原始名称
local itemName = getiteminfo(actor, weaponItem, 7)
-- 获取武器的物品表ID
local itemId = getiteminfo(actor, weaponItem, 2)
-- 打印出来看看
release_print("玩家武器名称:" .. itemName .. ",物品ID:" .. itemId)
-- 也可以发送给玩家看
say(actor, "你手中的" .. itemName .. ",编号是" .. itemId)
else
say(actor, "你手上没有武器。")
end
end
```
**重要提示:**
`getiteminfo` 获取的是**具体某个物品对象**的信息。如果你想知道物品表里的基础属性(比如重量、价格、使用等级等),应该使用 `getstditeminfo` 函数。这两个函数可别弄混了哦!
如果还有不明白的,随时可以问我,或者去请教我的师傅浮生梦尊者!
← 返回问答库