传奇定时全服喊话脚本设置方法详解

来源: 作者: 点击:
在传奇服务端中实现指定时间自动发送全服红字公告,需通过M2Server内置的定时器功能配合QFunction脚本完成。该机制不依赖玩家触发,由服务器在设定时刻主动执行消息广播。

一、核心配置文件

!Timer.txt
位于MirServerMir200Envir目录,定义定时任务触发时间与标签。
QFunction.txt
在[@OnTimer_X]标签下编写具体喊话内容。

二、设置12点全服红字步骤

编辑!Timer.txt,添加一行:
12:00 1

格式为时:分 编号,编号必须为数字(如1、2、3),不可重复。

在QFunction.txt末尾添加对应标签:
[@OnTimer_1]
#ACT
SENDMSG 5 活动已开启!请速速参与!

SENDMSG 5表示红色系统公告,全服可见。

三、多时段喊话配置

若需多个时间点发送不同内容,例如12点、14点、18点:

!Timer.txt 内容:
12:00 1
14:00 2
18:00 3


QFunction.txt 对应标签:
[@OnTimer_1]
#ACT
SENDMSG 5 中午活动开始!

[@OnTimer_2]
#ACT
SENDMSG 5 下午场活动即将开启!

[@OnTimer_3]
#ACT
SENDMSG 5 晚间福利活动上线!


四、命令参数说明

时间格式:必须为24小时制,09:00有效,9:00无效。
编号规则:从1开始连续整数,不可跳号或重复。
消息颜色代码:
0:白色(普通聊天)
1:黄色(系统提示)
5:红色(全服公告)
7:绿色(成功提示)

五、动态内容插入

可在喊话中加入变量,例如当前地图人数:

[@OnTimer_1]
ACT
MAPUSERCOUNT 比奇城 S0
SENDMSG 5 当前比奇城有名玩家!

六、重启后生效验证

修改!Timer.txt后,必须重启M2Server使新定时任务加载。
查看MirServerLog目录下的日志,确认Timer loaded: 12:00 -> OnTimer_1记录存在。
到达设定时间,观察全服是否收到红字消息。

七、常见错误排查

喊话未触发:检查!Timer.txt编码是否为ANSI,避免UTF-8带BOM导致解析失败。
时间不匹配:确保服务器系统时间准确,脚本按服务器本地时间执行。
标签名错误:[@OnTimer_1]中的数字必须与!Timer.txt编号一致,不可写成[@OnTimer1]。
消息未显示:确认SENDMSG颜色代码为5,且无其他脚本覆盖输出。

八、进阶用法示例

结合活动开关变量,避免重复通知:

[@OnTimer_1]
IF
EXISTVAR GLOBE ActivityStart == FALSE
ACT
SET GLOBE ActivityStart 1
SENDMSG 5 活动正式开始!持续2小时!
DELAYCALL 7200000 @EndActivityNotice

[@EndActivityNotice]
ACT
SENDMSG 5 活动已结束,感谢参与!
SET GLOBE ActivityStart 0

通过上述配置,可精准实现在12点等任意整点自动发送全服红字公告。所有操作仅需修改两个文本文件,无需额外工具或插件,适用于GOM、HERO等主流传奇服务端引擎。