传奇中“超级怪物攻城”功能通常指在指定时间,由后台自动触发大量怪物刷新到主城或沙巴克,形成全服参与的防守活动。实现方式主要依赖机器人脚本定时触发,配合刷怪命令和全服公告。下面以 GOM/GEE 类引擎为例,按可直接套用的思路写示例,命令名称和参数需对照当前引擎说明确认。
第一步:配置机器人定时触发
打开 MirServerMir200EnvirRobot_defAutoRunRobot.txt,添加定时触发规则。机器人脚本通过时间表达式控制执行频率,常见格式如下:
AutoRun NPC RUNONDAY 20:00:00 @怪物攻城开始
AutoRun NPC RUNONWEEK 6:20:00:00 @周末超级攻城
AutoRun NPC RUNONDAY 20:30:00 @攻城结束清理
第一行表示每天 20:00 触发 @怪物攻城开始 标签。第二行表示每周六 20:00 触发周末超级攻城。第三行表示 20:30 触发清理脚本,避免怪物残留。修改后需要在 M2 中重新加载机器人脚本。
第二步:编写攻城执行脚本
打开 MirServerMir200EnvirRobot_defRobotManage.txt,编写对应标签。攻城脚本通常包含三个环节:全服公告、清空旧怪、批量刷怪。
[@怪物攻城开始]
IF
ACT
SENDMSG 0 超级怪物攻城即将开始,所有玩家请前往盟重防守!
SENDMSG 0 超级怪物攻城即将开始,所有玩家请前往盟重防守!
SENDMSG 0 超级怪物攻城即将开始,所有玩家请前往盟重防守!
MONCLEAR 3
MOBPLACE 3 330 330 祖玛教主 5 10
MOBPLACE 3 330 330 沃玛教主 10 15
MOBPLACE 3 330 330 虹魔教主 3 20
SENDMSG 0 祖玛教主、沃玛教主、虹魔教主已降临盟重!
SENDMSG 0 表示全服公告,重复多次可增强提示效果。MONCLEAR 3 用于清空盟重地图原有怪物,避免残留。MOBPLACE 后面参数通常是 地图编号 X坐标 Y坐标 怪物名 数量 范围,具体以当前引擎说明为准。
第三步:多波次攻城设计
超级攻城可以设计成多波次,每波刷新不同怪物,间隔几分钟。
[@第一波攻城]
IF
ACT
SENDMSG 0 第一波怪物攻城开始!
MOBPLACE 3 330 330 祖玛卫士 20 10
MOBPLACE 3 330 330 沃玛战士 30 15
[@第二波攻城]
IF
ACT
SENDMSG 0 第二波怪物攻城开始!
MOBPLACE 3 330 330 祖玛教主 3 10
MOBPLACE 3 330 330 沃玛教主 5 15
[@第三波攻城]
IF
ACT
SENDMSG 0 最终波次!BOSS降临!
MOBPLACE 3 330 330 赤月恶魔 1 5
MOBPLACE 3 330 330 魔龙教主 2 10
对应 AutoRunRobot.txt 中写:
AutoRun NPC RUNONDAY 20:00:00 @第一波攻城
AutoRun NPC RUNONDAY 20:05:00 @第二波攻城
AutoRun NPC RUNONDAY 20:10:00 @第三波攻城
第四步:攻城结束清理
攻城结束后需要清理残留怪物,避免影响正常游戏。
[@攻城结束清理]
IF
ACT
MONCLEAR 3
SENDMSG 0 怪物攻城已结束,残留怪物已清理。
如果希望保留部分普通怪物,只清理BOSS,可以用指定怪物清除命令,具体命令以当前引擎支持为准。部分引擎支持按怪物名清除,部分只能整图清空。
第五步:沙巴克攻城变体
如果希望怪物攻击沙巴克而非盟重,把地图编号改为沙巴克对应编号,坐标改为沙巴克皇宫附近。
[@沙巴克超级攻城]
IF
ACT
SENDMSG 0 沙巴克遭遇超级怪物袭击!
MONCLEAR 沙巴克地图编号
MOBPLACE 沙巴克地图编号 100 100 祖玛教主 5 10
MOBPLACE 沙巴克地图编号 100 100 沃玛教主 5 10
沙巴克地图编号需要对照当前版本的 MapInfo.txt 确认,不同版本编号不同。
第六步:行会参与条件
如果希望只有占领沙巴克的行会成员才能领取攻城奖励,可以在怪物死亡触发中加行会判断。怪物死亡触发写在 QFunction-0.txt 的 [@OnKillMob] 中:
[@OnKillMob]
IF
ISONMAP 3
ACT
CHECKISGUILDMASTER
ACT
GIVE 攻城宝箱 1
SENDMSG 6 你击败了攻城BOSS,获得奖励!
CHECKISGUILDMASTER 用于检测是否为行会掌门,不同引擎命令可能不同。如果希望所有玩家都能获得奖励,去掉行会判断即可。
第七步:性能优化
超级攻城会一次性刷新大量怪物,需要注意性能。建议将刷怪数量控制在合理范围,避免单图怪物过多导致卡顿。多波次之间留足间隔,让玩家有时间清理。刷新坐标可以分散到多个点,避免所有怪物堆在同一位置。
示例:分散刷新坐标
MOBPLACE 3 330 330 祖玛教主 2 5
MOBPLACE 3 300 300 祖玛教主 2 5
MOBPLACE 3 360 360 祖玛教主 1 5
第八步:部署与调试
修改 AutoRunRobot.txt 和 RobotManage.txt 后,在 M2 中重新加载机器人脚本。调试时按以下顺序检查:
定时触发时间是否正确,可在测试服把时间设为当前时间后几分钟验证
全服公告是否正常显示
MONCLEAR 是否清空了旧怪
MOBPLACE 是否在指定坐标刷新了怪物
怪物数量和范围是否符合预期
攻城结束后残留怪物是否被清理
多波次间隔是否合理
如果怪物不刷新,检查地图编号是否正确,MOBPLACE 参数顺序是否与当前引擎一致。如果公告不显示,检查 SENDMSG 命令格式。如果清理不生效,确认 MONCLEAR 后面的地图编号是否正确。修改机器人脚本后务必重新加载,否则不会生效。
传奇超级怪物攻城后台脚本:机器人定时触发、MOBPLACE刷怪与全服公告实战
来源:
作者:
点击:

