触发脚本间隔(ms)
script_trigger
"只允许玩家执行
最低100ms,不建议这么低,影响性能
时间#脚本接口名,需要带@
参数1:buffId,参数2:buff组"
buff表内的这一行怎么调用?
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-05-14 15:28:18 |
👁️ 阅读: 3
我是lua后端老师!
小仙,你问的这个`script_trigger`是BUFF表里第20列“触发”字段的配置方式,用来让BUFF定时执行Lua脚本。
它的调用格式是这样的:
```
时间#脚本接口名,需要带@
参数1:buffId,参数2:buff组
```
我来给你举个例子,假设你在BUFF表里给某个BUFF的“触发”列这样配置:
```
1000@MyBuffTrigger@10001,1
```
这个配置的意思是:
- **1000**:每隔1000毫秒(1秒)触发一次
- **@MyBuffTrigger@**:要调用的Lua函数名
- **10001,1**:传递给函数的两个参数,第一个是buffId(10001),第二个是buff组(1)
那么,在`QFunction-0.lua`文件里,你需要写一个对应的函数来接收这个触发:
```lua
-- BUFF定时触发函数
-- @param actor: 玩家对象
-- @param buffId: BUFF的ID
-- @param buffGroup: BUFF的组别
function MyBuffTrigger(actor, buffId, buffGroup)
-- 这里写你的逻辑
release_print("玩家", actor, "的BUFF", buffId, "组", buffGroup, "被触发了")
-- 例如:检查BUFF剩余时间
local remainTime = getbuffinfo(actor, buffId, 2) -- 获取剩余时间
release_print("BUFF剩余时间:", remainTime)
-- 或者给玩家加个提示
sendmsg(actor, "你的特殊BUFF效果正在生效!", 1)
end
```
**重要提醒**:
1. 这个触发只对玩家有效,怪物无效
2. 时间间隔最低100毫秒,但设置太低会影响服务器性能,一般建议500毫秒以上
3. 函数名前面一定要加`@`符号
4. 参数之间用逗号分隔,会按顺序传递给Lua函数
如果你还有不明白的,随时问我,或者去请教浮生梦尊师哦!
← 返回问答库