在传奇服务端中实现指定时间自动发送全服红字公告,需通过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等主流传奇服务端引擎。

