一、NPC基础触发脚本编写
创建自动刷怪NPC需要编写对应的脚本。在服务端 MirServer\Mir200\Envir\Market_Def 目录下创建文本文件,例如 塔防刷怪-3.txt(文件名对应盟重省安全区NPC)。
脚本基础结构
[@main]
你好,勇士!欢迎来到无尽试炼。\ \
<进入无尽刷怪地图/@进入> 每次刷新50只怪物,\
杀完自动补充,永不停歇!\
<离开地图/@退出>\
此段定义了NPC对话界面,包含进入和退出选项。
传送进图与刷怪触发
在脚本中继续添加:
[@进入]
#IF
#ACT
MAPMOVE TAFA1
TIMERESCALL 0
SENDMSG 6 您已进入无尽刷怪地图,首波怪物将在5秒后降临!
DELAYGOTO 5000 @第一波刷怪
BREAK
[@第一波刷怪]
#IF
#ACT
PARAM1 TAFA1
PARAM2 20
PARAM3 20
MONGENEX 魔龙力士 50
SENDMSG 6 第一波50只魔龙力士已刷新!
TIMERESCALL 0
DELAYGOTO 10000 @监控刷怪
BREAK
这段代码实现传送玩家到 TAFA1 地图,并在5秒后在该地图坐标(20,20)附近刷出50只魔龙力士。刷完后,10秒后跳转到监控逻辑。
二、自动补充怪物逻辑实现
核心是监控地图怪物数量,不足时自动补充。在上文 [@监控刷怪] 段后添加:
[@监控刷怪]
#IF
CHECKMAPMONCOUNT TAFA1 < 50
#ACT
PARAM1 TAFA1
PARAM2 20
PARAM3 20
MONGENEX 魔龙力士 1
GOTO @监控刷怪
BREAK
#ELSEACT
DELAYGOTO 10000 @监控刷怪
BREAK
此段逻辑会持续检查 TAFA1 地图怪物数量,当少于50只时,自动刷出1只,直到满足50只。若已满50只,则10秒后再次检查,形成循环。
多波次与计时刷怪
若需实现分波次、计时刷怪,可修改逻辑:
[@计时刷怪]
#IF
LARGE N$波次 0
#ACT
PARAM1 TAFA1
PARAM2 20
PARAM3 20
MONGENEX 魔龙力士 50
SENDMSG 6 第$STR(N$波次)波怪物已刷新!
INC N$波次 1
DELAYGOTO 30000 @计时刷怪
BREAK
此脚本用变量 N$波次 记录波次,每30秒自动刷出50只怪,并提示波数。
三、地图参数与怪物配置
脚本编写后,需配置地图和怪物参数。
1. MapInfo.txt 配置
在 MirServer\Mir200\Envir\MapInfo.txt 中添加或修改:
[TAFA1 无尽试炼] NORECALL NODEARRECALL NOMasterRECALL NORANDOMMOVE
参数说明:禁止记忆传送、禁止传送戒指、禁止师徒传送、禁止随机移动,确保玩家在固定区域战斗。
2. 刷怪点范围控制
使用 MONGENEX 命令时,PARAM2 和 PARAM3 是中心坐标,怪物会刷在以该点为中心的一定范围内。若需精确控制范围,可在脚本中配合循环与随机函数:
#ACT
MOV N$计数 0
WHILE N$计数 < 10
RANDOM 15
MOV P0 =
计算坐标...
MONGENEX 白野猪 1
INC N$计数 1
ENDWHILE
此例在指定坐标附近随机刷出10只白野猪。
四、进阶功能:变量控制与玩法扩展
1. 波次记录与奖励
在脚本中增加变量记录波次,到达特定波数给予奖励:
#IF
EQUAL N$波次 10
#ACT
GIVE 屠龙 1
SENDMSG 6 恭喜你通过第10波,获得屠龙一把!
2. 怪物数量动态调整
根据波次动态调整每波怪物数量:
#ACT
MUL N$怪物数量 N$波次 10
MONGENEX 祖玛卫士 $STR(N$怪物数量)
此例每波怪物数量 = 波次 × 10,难度递增。
3. 退出地图清理怪物
在退出选项脚本中增加清理怪物命令:
[@退出]
#ACT
CLEARMAPMON TAFA1
MAPMOVE 3 330 330
SENDMSG 6 已清除所有怪物并返回安全区。
BREAK
CLEARMAPMON 命令可清空指定地图所有怪物。
五、脚本部署与调试
1. 脚本放置:将完整脚本保存为 塔防刷怪-3.txt 并放入 Market_Def 目录。
2. NPC添加:在 Merchant.txt 文件末尾添加一行:
塔防使者 3 330 320 塔防刷怪 0 3 0
(3为盟重省地图编号,330 320为NPC坐标)
3. 怪物刷新调试:
◦ 进入游戏点击NPC测试传送功能
◦ 观察怪物刷新是否正常
◦ 击杀部分怪物,检查自动补充功能
◦ 通过M2控制台查看脚本执行日志
常见问题处理
• 怪物不刷新:检查地图编号、坐标是否有效,怪物名称是否与 Monster.DB 一致。
• 不自动补充:确认监控循环是否跳转成功,检查 CHECKMAPMONCOUNT 命令后的地图参数。
• 刷怪卡顿:单次刷怪数量不宜过多,建议单次生成不超过100只。

