传奇单机自动刷怪NPC脚本制作教程

来源: 作者: 点击:
一、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只。