在传奇版本中实现装备掉落时的左侧提示(滚动公告),核心是使用 SENDMOVEMSG 命令(GOM/GEE/翎风引擎)或 SendTopChatBoardMsg(部分引擎),并配合 @PickUpItemEx(捡取触发)或 @StdModeFuncX(双击触发)事件。以下为详细设置方法。
一、GOM/GEE引擎:SENDMOVEMSG 屏幕滚动公告
此命令专用于屏幕左侧的滚动提示,参数控制显示位置。
1. 基础脚本(捡取即触发)
在 QFunction-0.txt 中写入以下内容,当玩家捡取任意物品时触发:
[@PickUpItemEx]
#if
;检测条件:仅对“屠龙”生效(避免垃圾刷屏)
EQUAL <$CURRTEMNAME> 屠龙
#act
;SENDMOVEMSG 模式 字体色 背景色 Y坐标 滚动次数 内容
SENDMOVEMSG 0 250 0 350 1 恭喜玩家【%s】在【%m】地图获得了【<$CURRTEMNAME>】!
参数详解:
• 模式 0:全服广播(1为仅自己)。
• Y坐标 350:控制提示在屏幕左侧的垂直位置(通常 300-400 为视野中央)。
- 滚动次数 1:滚动显示1次。
• %s:自动替换为玩家名,%m:自动替换为地图名。
2. 指定物品ID精准触发(推荐)
为避免文本匹配错误,使用物品IDX编号触发更稳定。先在 StdItems.DB 中查好“屠龙”的IDX(假设为 118)。
[@PickUpItem118]
#if
#act
SENDMOVEMSG 0 251 0 360 2 【全服喜报】%s 刚刚爆出了神器【屠龙】!
此脚本仅当捡起IDX=118的物品时才会触发,不会误报。
二、其他引擎与替代方案
1. HERO/LEG引擎(老版)
老版引擎若无 SENDMOVEMSG,可使用 SendTopChatBoardMsg 在聊天框顶部显示,效果类似左侧提示。
[@PickUpItem118]
#if
#act
SendTopChatBoardMsg 0 250 0 10 【%s】获得了【屠龙】! 0
2. 996/龙族引擎(手游方向)
部分新引擎支持 SendCenterMsg 配合坐标参数实现左侧固定位置显示。
[@PickUpItemEx]
#if
EQUAL <$CURRTEMNAME> 屠龙
#act
SendCenterMsg 250 0 【%s】捡到屠龙! 0 5 @Null 0 100 300
三、高级应用:首爆奖励与防刷机制
1. 首爆触发(仅第一次捡取提示)
结合全局变量,实现全服第一把屠龙才提示的逻辑。
[@PickUpItem118]
#if
;检测全局变量是否已标记(未标记则执行)
CHECKGLOBALVAR G_First_TuLong = 0
#act
;设置全局变量为1(已爆出)
SETGLOBALVAR G_First_TuLong = 1
;发送全服滚动公告
SENDMOVEMSG 0 253 0 350 3 【全服首爆】恭喜【%s】获得了本服第一把【屠龙】!
;发放首爆奖励
GAMEGOLD + 50000
2. 地图与怪物信息拼接
若需要显示“从XX怪物爆出”,需提前在怪物死亡或掉落触发时记录变量,或在公告中直接引用 <$KILLMONNAME>(击杀怪名,部分引擎支持)。
SENDMOVEMSG 0 252 0 350 1 【%s】击杀了【<$KILLMONNAME>】,爆出了【<$CURRTEMNAME>】!
四、常见错误与排查
1. 提示不显示:
◦ 检查 QFunction-0.txt 路径是否正确(Mir200\Envir\Market_Def)。
◦ 确认物品名称或IDX是否与数据库完全一致(区分大小写)。
◦ 检查M2是否开启了“过滤垃圾物品触发”选项(需关闭)。
2. 位置偏移:SENDMOVEMSG 的 Y 坐标参数需根据登录器分辨率调整。1920x1080 分辨率下,350-400 是居中位置;800x600 分辨率下需调小。
3. 刷屏卡顿:切勿在 [@PickUpItemEx] 中不加条件直接写 SENDMOVEMSG,否则捡个金币都会弹公告,导致客户端卡顿。务必使用 #if 限制高级装备。
生效步骤:修改脚本后,在M2控制台点击 “重载QF脚本”(Reload QF),无需重启服务端。

