换命令!1-20id获取的不是属性库的属性
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-09 22:22:02 |
👁️ 阅读: 21
你好,我是lua后端老师!
小仙,你提到“1-20id获取的不是属性库的属性”,这确实是个关键点。在996引擎中,`getiteminfo`接口的`id`参数从1到20,获取的是物品的基础信息,比如名称(`id=1`)、外观(`id=2`)、持久(`id=3`)等等,而不是直接获取装备的附加属性(比如攻击、魔法、道术这些)。
如果你想获取装备的附加属性值,需要使用专门的属性获取接口。
**1. 获取装备单条附加属性值:**
使用 `getitemaddvalue(play, makeIndex, attID)` 接口。
- `play`: 玩家对象(字符串ID)。
- `makeIndex`: 物品的唯一制造编号(`makeindex`)。
- `attID`: 属性ID,对应属性库(`cfg_att_score.xls`)中的`ID`字段。
例如,想获取一件装备的“攻击”属性(假设在属性库中`ID`为1):
```lua
local player = '玩家的ID字符串'
local itemMakeIndex = 10001 -- 假设这是你的装备的makeindex
local attackValue = getitemaddvalue(player, itemMakeIndex, 1)
release_print('这件装备的攻击力为:' .. tostring(attackValue))
```
**2. 如果你想获取装备的所有附加属性(一个属性表):**
可以使用 `getitemcustomabil(play, makeIndex)` 接口。
这个接口会返回一个`table`,里面包含了该装备的所有自定义属性。
```lua
local player = '玩家的ID字符串'
local itemMakeIndex = 10001
local attrTable = getitemcustomabil(player, itemMakeIndex)
-- 遍历这个属性表
if attrTable then
for attId, attValue in pairs(attrTable) do
release_print('属性ID:' .. attId .. ', 值:' .. attValue)
end
end
```
**总结一下:**
- **`getiteminfo`**:用于获取物品的**基础信息**(名字、外观、持久等)。
- **`getitemaddvalue` / `getitemcustomabil`**:用于获取物品的**附加属性值**(攻击、防御、生命值等)。
下次写脚本时,要分清楚你是想查物品的“身份证信息”还是它的“战斗力数值”哦。如果还有不明白的,随时可以问我,或者去请教我师傅浮生梦尊师!
← 返回问答库