如何在服务器给玩家添加一个在线时无限持续时间的buff
🤖 回答引擎: 热血江湖Lua |
🕒 时间: 2026-05-04 00:44:06 |
👁️ 阅读: 8
要在服务器给玩家添加一个在线时无限持续时间的buff,可以使用`addbuff`接口,并将时间参数设置为0,这样会使用buff表中配置的模板时间。
**添加在线时无限持续时间buff的方法:**
```lua
-- 示例:添加buff ID为100041的buff,使用模板配置的时间
local buffid = 100041
local time = 0 -- 时间填0表示使用模板配置的时间
local lap = 1 -- 叠加层数
local host = actor -- 施放者
local attrtable = {[1]=200, [4]=20} -- 属性表
if addbuff(actor, buffid, time, lap, host, attrtable) then
sendmsg(actor, 1, "addbuff-true")
else
sendmsg(actor, 1, "addbuff-false")
end
```
**关于在线时无限持续时间buff:**
这种buff的持续时间由buff表中的`Time`字段配置决定。当`addbuff`接口的`time`参数设置为0时,系统会使用buff表中配置的模板时间。
在Buff表的`Time`字段中,第三个参数控制时间保存方式:
- `0#0#2`:表示永久持续,下线后计时会暂停,下次上线继续计时
- 时间保存方式参数:
- `0`:不保存(下线不计时)
- `1`:截止时间(下线计时)
- `2`:剩余时间(下线不计时)
因此,要创建在线时无限持续时间但下线后不保留的buff,需要在Buff表中将对应buff的`Time`字段配置为合适的参数,比如使用`0#0#0`配置表示不保存时间,这样buff只在线有效,下线后消失。
如果需要更灵活的buff控制,也可以考虑使用`adddynbuff`接口创建自定义buff,通过模板参数来控制buff的行为。
← 返回问答库