传奇指定BOSS与普通怪物刷新自动全服公告设置教程:MonGen挂QFunction机器人定时刷怪

来源: 作者: 点击:
指定怪物刷新自动提示分三种做法。真·怪物一生成就发公告,用MonGen.txt把该行挂到QFunction触发段;固定时间刷指定怪并公告,用机器人AutoRunRobot加RobotManage;不改刷怪、只做“已刷新就提示/未刷新不发”,用机器人定时检测地图怪物数量再发SENDMSG。三种可单独用,也可组合,核心都在Envir目录和M2重载。

一、MonGen直接挂触发段,生成即公告

打开Mir200\Envir\MonGen.txt,常规行格式为:

地图号 X Y 怪物名 范围 数量 刷新间隔分 集中参数 小地图 名称颜色 触发段

不同引擎字段会多会少,最少保留地图、坐标、怪物名、范围、数量、间隔。给指定BOSS加触发段示例:

3 380 410 赤月恶魔 1 1 30 1 249 @BossFreshTip

意思是地图3坐标380,410刷赤月恶魔1只,范围1,间隔30分钟,小地图显示1,名称颜色249,生成后调用QFunction里的@BossFreshTip。

再打开Mir200\Envir\QFunction-0.txt,文件末尾加:

[@BossFreshTip]
if

act

SENDMSG 0 赤月恶魔已在赤月地图380,410刷新,请前往挑战。

SENDMSG后面0是全服普通黄字,1常作红字公告,6可作特殊滚动,具体颜色按你引擎命令手册;若引擎支持SENDMOVEMSG再按移动公告格式写。多个BOSS就写多行MonGen,各自挂不同段,例如沃玛教主挂@WomaTip、祖玛教主挂@ZumaTip,QF里分别对应,避免把所有怪都塞一个段导致提示语不对。

注意普通小怪不要挂QF触发段。白野猪、钉耙猫、半兽人这种几秒一只的,若每行都触发SENDMSG会刷屏,严重时会因高频执行被引擎报循环或卡M2。只给世界BOSS、活动怪、合击主怪、地图首杀怪挂触发段。

二、机器人定时刷指定怪并公告

做每日固定点刷怪最稳,不依赖MonGen生成事件。路径Mir200\Envir\Robot_def\AutoRunRobot.txt,加:

AutoRun NPC RUNONDAY 15:00:00 @ZumaBoss

AutoRun NPC RUNONDAY 21:30:00 @WomaBoss

RUNONDAY按每天指定时刻跑,RUNONWEEK按星期跑,MIN按分钟循环,SEC按秒循环;BOSS不建议用SEC/MIN,容易刷太频繁。

同目录RobotManage.txt写执行段:

[@ZumaBoss]
if

act

Param1 3 405 328
Param2 405
Param3 328
MonGen 祖玛教主 1 0
SENDMSG 1 祖玛教主已在指定地图405,328刷新,全服前往击杀。

[@WomaBoss]
if

act

Param1 3 355 335
Param2 355
Param3 335
MonGen 沃玛教主 1 0
SENDMSG 1 沃玛教主已刷新,坐标355,335,掉落高级装备。

上面Param1地图号+坐标、MonGen怪物名+数量+范围0表示固定点,SENDMSG发全服。若你引擎的RobotManage不支持Param1/Param2/Param3,可直接写MonGen完整参数:

[@ZumaBoss]
if

act

MonGen 3 405 328 祖玛教主 0 1 0
SENDMSG 1 祖玛教主已刷新于地图3坐标405,328。

改完机器人要在M2里重新加载机器人脚本;部分版本改AutoRunRobot后需重启M2才生效。想每120分钟循环可写#AutoRun NPC MIN 120 @ZumaBoss,想每天只一次用RUNONDAY。

三、不自动刷怪,只检测“指定怪已存在就提示”

适合MonGen本来就按原生间隔刷,不想改刷怪逻辑,只希望玩家在线时能收到提醒。Robot_def里设轮询:

AutoRun NPC MIN 5 @CheckBossStatus

RobotManage.txt:

[@CheckBossStatus]
if

CheckMapSameMonCount 3 赤月恶魔 > 0 1
act

SENDMSG 0 赤月恶魔当前已在地图3存活,可前往380,410挑战。
elseact

SENDMSG 0 赤月恶魔尚未刷新,请等待下次刷新。

CheckMapSameMonCount用法为地图名或地图号、怪物名、比较符、数量、是否忽略名字后数字;1表示忽略“赤月恶魔1”“赤月恶魔2”这类带序号,0表示严格带数字匹配。 若引擎没有该命令,可用CheckMonster地图名怪物名做存在判断,或CheckMapMonCount类命令按实际手册替换。

这种做法不会“生成瞬间”提示,而是每5分钟播一次状态;对防抢BOSS够用,且不会因MonGen高频触发出问题。

四、按地图进入触发首次提示

玩家进某张BOSS图才提示剩余BOSS,用MapQuest或QuestDiary地图脚本。Envir\QuestDiary下建地图号目录,例如3.txt:

[@EnterMap]
if

CheckMapSameMonCount 3 赤月恶魔 > 0 1
act

SENDMSG 0 本图赤月恶魔已存在,坐标380,410。
elseact

SENDMSG 0 本图赤月恶魔未刷新,预计按刷怪间隔等待。

部分引擎进入地图触发放MapQuest_def或QuestDiary对应地图文件,标签名以引擎示例为准;改完在M2重新加载地图脚本或重启。 不适合全服公告,只适合进图玩家,避免非相关地图的人被骚扰。

五、怪物名、地图号、数据库三者对齐

所有提示不生效,先核对三处:

MonGen.txt里的怪物名必须与Envir\Monster.txt或DB数据库StdMonster/怪物表完全一致,“赤月恶魔”写成“赤月悪魔”“赤月”都会不刷或不触发。
地图号用@map在游戏内查,或用MapInfo、Map目录比对;3、D715、HLIGE这类格式按你版本写,别把数字号和文字号混用。
QFunction触发段名一致,MonGen末尾写@BossFreshTip,QF里必须有[@BossFreshTip];差一个字符、差一个方括号都不会进段。
机器人段名一致,AutoRunRobot写@ZumaBoss,RobotManage必须有[@ZumaBoss]。
脚本文件编码用ANSI/GBK,不用UTF-8带BOM;中文乱码会让M2读不到段名。

六、公告命令参数按引擎取

SENDMSG最通用,参数通常是频道号+内容;部分新引擎用SENDMSGWINDOWS做客户端小窗,SENDMOVEMSG做走马灯,SENDTIMEMSG做定时标。3K类部分版本对SENDTIMEMSG、SENDMSGWINDOWS有单独QF回调段,写全服BOSS提示不一定用SENDMSG,要看引擎包命令列表。 不确定命令支持情况,先用SENDMSG 0做文本公告,M2不报“未知命令”再换高级样式。

七、避免刷屏和性能问题

世界BOSS、活动怪、全服精英才挂生成触发;普通怪用机器人按5到30分钟轮询,不要生成即发。
同地图多只同名怪,例如魔龙教主刷3只,挂QF会发3次公告;可在QF里用变量做去重,或改机器人只刷1只再发1次。
机器人检测间隔别用SEC 1跑全图所有BOSS,百张地图每次全检会占M2主线程;按重要地图分组,5到10分钟一轮足够。
MonGen范围写0表示固定点,写大范围会在随机点生成;若提示坐标和实际坐标不符,把范围改0并在公告写固定坐标。
死循环报错多半是QF里又MonGen又SENDMSG又判断再MonGen,形成递归;生成触发段只发公告,不在此段再次刷同怪。

八、完整示例:赤月+祖玛+沃玛三BOSS生成提示

MonGen.txt追加:

3 380 410 赤月恶魔 0 1 30 1 249 @BossChiYue
3 405 328 祖玛教主 0 1 45 1 249 @BossZuMa
3 355 335 沃玛教主 0 1 40 1 249 @BossWoMa

QFunction-0.txt追加:

[@BossChiYue]
if

act

SENDMSG 1 赤月恶魔已刷新,地图3坐标380,410,全服前往。

[@BossZuMa]
if

act

SENDMSG 1 祖玛教主已刷新,地图3坐标405,328,全服前往。

[@BossWoMa]
if

act

SENDMSG 1 沃玛教主已刷新,地图3坐标355,335,全服前往。

保存后M2重新加载脚本;若引擎要求重启再重启。进游戏等自然刷新或GM手动MonGen对应怪名测试,看是否按各自段发对应公告。想改成“仅本图玩家收到”把SENDMSG换地图局部发送命令;想改成滚动把频道号按引擎红字/走马灯参数调整。

九、手动测试路径

M2开GM,游戏内用刷怪命令生成指定怪,例如通用@MonGen赤月恶魔 1或引擎自带刷怪命令,触发MonGen挂段后应立即公告。
机器人方案不改MonGen,等AutoRunRobot设定时间,或把MIN设1临时测试,看RobotManage是否执行、SENDMSG是否出字。
轮询方案改MIN 1临时跑CheckMapSameMonCount,手动清怪再刷怪,对比“已存在”和“未刷新”两种公告。
所有测试先在单机127.0.0.1做,确认无M2红字再放到局域网或外网;改前备份MonGen.txt、QFunction-0.txt、Robot_def两个文件,出问题直接替换回滚。

十、常见不提示原因

MonGen行没写触发段名,或段名和QF不一致。
QF文件不是M2实际加载的QFunction-0.txt,部分版本有多语言、多补丁路径,以M2选项里“功能脚本/QFunction”实际路径为准。
机器人AutoRunRobot格式错,#AutoRun NPC后面空格、RUNONDAY时间格式、段名括号不对都会导致不跑。
SENDMSG频道号被引擎限制,部分版本0不显示、1才红字,按M2命令说明换号。
怪物名数据库有空格、全角符号,MonGen能刷但QF按另一名字判断,结果不进段。
防火墙、网关不影响本地SENDMSG;若只有部分玩家看不到,查M2消息过滤、聊天频道权限、客户端补丁屏蔽系统消息,不属于刷怪触发问题。

按生成即提示、定时刷即提示、轮询检测提示三套分别配,最稳妥的是世界BOSS用MonGen挂QF,活动BOSS用机器人定时,普通监控用CheckMapSameMonCount;三者都改完做单机回滚备份,再逐步放到实际环境。