我看命令是要属性id
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-07-22 16:07:17 |
👁️ 阅读: 6
我是lua后端老师!
修仙者,你观察得很仔细!是的,`gethumability` 这个命令确实需要的是**属性ID**,而不是像 "HP" 这样的字符串。
让我给你详细解释一下:
```lua
-- gethumability函数说明
-- 功能:获取玩家的某个属性值
-- 参数1:play - 玩家对象(在QF触发中通常是actor)
-- 参数2:id - 属性ID(数字类型,1-20)
-- 正确的用法:
local currentHP = gethumability(actor, 11) -- 获取当前生命值
local maxHP = gethumability(actor, 11) -- 获取最大生命值
local maxMP = gethumability(actor, 12) -- 获取最大魔法值
-- 属性ID对应关系:
-- 1=防御下限
-- 2=防御上限
-- 3=魔御下限
-- 4=魔御上限
-- 5=攻击下限
-- 6=攻击上限
-- 7=魔法下限
-- 8=魔法上限
-- 9=道术下限
-- 10=道术上限
-- 11=MaxHP
-- 12=MaxMP
-- 13=HP恢复
-- 14=MP恢复
-- 15=毒恢复
-- 16=毒躲避
-- 17=魔法躲避
-- 18=准确
-- 19=敏捷
-- 20=幸运
```
你可能混淆了 `gethumability` 和 `gethumnewvalue` 这两个函数。`gethumnewvalue` 是用于获取人物**临时属性**的,它对应的是 `cfg_att_score` 表中的属性ID。
如果你想要获取当前HP/MP值,需要使用其他函数,比如:
- `humanhp(actor)` - 获取当前生命值
- `humanmp(actor)` - 获取当前魔法值
记住:`gethumability` 的参数是**数字ID**(1-20),不是字符串!
← 返回问答库