脚本基础
定时器与触发
说明 OnTimer 定时器的范围、启动与停止命令、QManage.txt 对应脚本段和常见用法。
OnTimer 提供
0-15 共 16 个定时器槽位,适合处理周期性触发的脚本逻辑。若定时器数量不够,可考虑使用 SetAbility 作为替代方案。定时器说明
| 范围 | 相关命令 | 变量解释 |
|---|---|---|
0-15 | SetScTimer、KillScTimer | 用于按固定秒数循环触发 QManage.txt 中对应的 [@OnTimerX] 段 |
触发规则
定时器脚本位于 QManage.txt 中,对应脚本段如下:
QManage.txt
[@OnTimer0]
[@OnTimer1]
[@OnTimer2]
...
[@OnTimer15]
例如启用 0 号定时器后,引擎会按设置的间隔周期性触发 QManage.txt 里的 [@OnTimer0]。
相关命令
启动定时器
SetScTimer <定时器编号> <间隔秒数>
| 参数位置 | 参数 | 说明 |
|---|---|---|
| 1 | 0-15 | 定时器编号,对应 QManage.txt 里的 [@OnTimer0] 到 [@OnTimer15] |
| 2 | 间隔秒数 | 触发间隔,单位为秒 |
示例:
#ACT
SetScTimer 0 20
#SAY
你已经开始定时器系统,每 20 秒触发一次 QManage.txt 里的 [@OnTimer0]。
停止定时器
KillScTimer <定时器编号>
| 参数位置 | 参数 | 说明 |
|---|---|---|
| 1 | 0-15 | 要停止的定时器编号,对应 QManage.txt 里的 [@OnTimer0] 到 [@OnTimer15] |
示例:
#ACT
KillScTimer 0
#SAY
0号定时器已经停止
使用示例
示例一:定时发送当前位置
#ACT
SetScTimer 0 20
#SAY
你已经开始定时器系统,每 20 秒触发一次 QManage.txt 里的 [@OnTimer0]。
[@OnTimer0]
#ACT
SendMsg 5 "你目前位于 %m 的(%x:%y)"
示例二:关闭定时器
#ACT
KillScTimer 0
#SAY
0号定时器已经停止。
使用建议
- 需要做周期广播、坐标提示、状态检测或倒计时行为时,可优先考虑 OnTimer。
- 编写定时器逻辑时,先确认脚本段编号和
SetScTimer的编号完全一致。 - 定时器触发逻辑应尽量保持简洁,避免在高频触发段中执行过重的脚本。
- 当
0-15的定时器槽位不够用时,可再评估是否改用SetAbility实现同类效果。
