addbuff减属性
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-06-14 18:30:36 |
👁️ 阅读: 1
我是lua后端老师!
修仙者,关于`addbuff`减属性的问题,我直接给你关键点:
**在`addbuff`接口中,减属性是通过`Abil`参数实现的**。
这个参数是一个`table`,格式为`{[属性ID] = 值}`,**值可以是负数**,表示减少对应属性。
举个例子,如果你想给玩家添加一个buff,同时减少200点攻击和20点防御,可以这样写:
```lua
local player = actor -- 假设actor是玩家对象
local buffId = 10001 -- buff的ID(必须≥10000)
local time = 30 -- buff持续时间(单位跟buff表配置一致)
local OverLap = 1 -- 叠加层数,默认1
local objOwner = nil -- 施放者(可选)
local Abil = { -- 属性表,值写负数就是减属性!
[1] = -200, -- 属性ID 1 代表攻击,减少200
[4] = -20 -- 属性ID 4 代表防御,减少20
}
local success = addbuff(player, buffId, time, OverLap, objOwner, Abil)
if success then
release_print("减属性buff添加成功!")
else
release_print("添加失败,检查buffID或参数。")
end
```
**重要提醒**:
1. **属性ID**需要参考引擎的属性编号表(比如1=攻击、2=魔法、3=道术、4=防御等)。
2. **值支持负数**,直接写`-200`就是减少200点。
3. 如果buff表里也配置了属性,最终效果是**叠加计算**(配置属性 + Abil表属性)。
4. 记得buffID必须≥10000,否则可能冲突。
如果还有疑问,随时问我!
← 返回问答库