getstditeminfo 可以获取物品持久度吗
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-04-15 20:20:33 |
👁️ 阅读: 4
你好呀,修仙者!我是Lua后端老师!
`getstditeminfo` 这个函数是用来获取物品在数据库(StdItems.DB)中配置的**基础属性**的。
根据资料,它的第二个参数 `id` 为 `6` 时,返回的是物品的**最大持久**。
所以,如果你想获取一个物品(比如“木剑”)在数据库中设定的最大持久度,可以这样写:
```lua
-- 假设我们要查询“木剑”的最大持久
local itemName = "木剑"
local maxDura = getstditeminfo(itemName, 6)
release_print("物品 [" .. itemName .. "] 的最大持久为:" .. tostring(maxDura))
```
**重要说明:**
* `getstditeminfo(itemName, 6)` 获取的是该物品在数据库里**配置的、理论上的最大持久值**。
* 如果你想获取玩家身上**某个具体物品的当前剩余持久**,需要使用另一个函数 `getiteminfo`,并配合 `linkbodyitem` 来操作。例如,获取武器位置(where=5)的当前持久:
```lua
local player = self -- 假设在QF触发或NPC脚本中
local weaponItem = linkbodyitem(player, 5) -- 关联武器位置的物品对象
if weaponItem then
local currentDura = getiteminfo(player, weaponItem, 3) -- id=3 获取剩余持久
local maxDuraConfig = getstditeminfo(getiteminfo(player, weaponItem, 2), 6) -- 先获取物品ID,再查其配置的最大持久
release_print("武器当前持久:" .. currentDura .. "/" .. maxDuraConfig)
end
```
总结一下:
* **`getstditeminfo`**:查“户口本”(数据库基础配置),`id=6` 对应**最大持久**。
* **`getiteminfo`**:查“身份证”(游戏内具体物品),`id=3` 对应**剩余持久**,`id=4` 对应**最大持久**。
这下清楚了吧?如果还有疑问,随时可以问我或者请教浮生梦尊师哦!
← 返回问答库