传奇单机架设中,刷怪NPC可实现“进图自动刷怪”“点触补位刷怪”两种核心功能。以下脚本适配单机环境,直接复制修改参数即可使用,兼顾塔防体验与可控刷怪需求。
一、核心逻辑:两种刷怪模式的实现原理
刷怪脚本核心是“触发条件+怪物控制”,塔防式依赖地图进入事件触发循环刷怪,点触式通过NPC交互启动数量补位机制,均需绑定地图坐标与怪物信息。
通用准备:先确定目标地图ID(如“试炼塔一层”ID为301)、怪物ID(如“骷髅兵”ID为801)、刷怪坐标范围(如350,280至420,350),这些参数可从服务端“地图文件”“怪物数据库”中查询。
二、模式一:塔防式自动刷怪NPC脚本(进图触发,打完刷下波)
进图后自动触发首波刷怪,监测到场上怪物为0时,延迟指定秒数刷下一波,完全模拟塔防玩法,无需手动操作。
1. 脚本完整代码(含NPC对话与刷怪循环)
; 刷怪NPC核心脚本,绑定“试炼塔管理员”NPC
NPC 5001 ; 5001为“试炼塔管理员”NPC编号,需与服务端NPC.txt一致
[@main]
#act
NPC_TALK 1 欢迎来到试炼塔!进入地图后将自动刷怪,打完一波等10秒刷下波
MENU 1 传送至试炼塔一层 @EnterMap
MENU 2 退出 @Exit
[@EnterMap]
#act
; 传送玩家至试炼塔一层(地图ID301)的安全区坐标
MAP_MOVE 301 380 320
; 触发首波刷怪
GOTO @SpawnWave1
; 第一波刷怪逻辑
[@SpawnWave1]
#act
NPC_TALK 2 第一波怪物已刷新!
; 刷10只骷髅兵(ID801)到指定坐标范围
MONSTER_SPAWN 301 801 10 350 280 420 350
; 监测场上怪物数量,为0时延迟10秒触发下一波
CHECK_MONSTER_COUNT 301 0
DELAY 10000 ; 10000毫秒=10秒,可修改延迟时间
GOTO @SpawnWave2
; 第二波刷怪逻辑(可复制扩展多波)
[@SpawnWave2]
#act
NPC_TALK 3 第二波怪物来袭,难度提升!
; 刷15只骷髅兵+5只骷髅法师(ID802)
MONSTER_SPAWN 301 801 15 350 280 420 350
MONSTER_SPAWN 301 802 5 350 280 420 350
CHECK_MONSTER_COUNT 301 0
DELAY 10000
GOTO @SpawnWave3 ; 后续波次按此格式扩展
[@Exit]
#act
NPC_TALK 4 期待你下次挑战!
CLOSEDIALOG ; 关闭对话界面
; 核心命令说明:
; MONSTER_SPAWN 地图ID 怪物ID 数量 最小X 最小Y 最大X 最大Y
; CHECK_MONSTER_COUNT 地图ID 目标数量 ;检测指定地图怪物数量是否等于目标值
; DELAY 毫秒数 ;延迟指定时间后执行下一条命令
2. 使用与修改步骤
1. 绑定NPC:进入服务端“MirServer\Mir200\Envir\NPC.txt”,找到“试炼塔管理员”(或自定义NPC),记录其编号替换脚本中“NPC 5001”的“5001”。
2. 修改参数:将“地图ID301”“怪物ID801”“刷怪坐标”“延迟10000毫秒”按自身单机设置替换,波次数量可通过复制“@SpawnWaveX”代码块扩展。
3. 生效方法:将脚本保存为“试炼塔管理员.txt”,放入“MirServer\Mir200\QuestDiary”目录,重启服务端即可。
三、模式二:点触式无穷刷怪NPC脚本(保持场上固定数量)
点击NPC启动刷怪后,系统实时监测场上怪物数量,始终保持设定值(如50个),打多少补多少,实现无穷无尽刷怪效果。
1. 脚本完整代码(含数量补位逻辑)
; 点触刷怪NPC脚本,绑定“刷怪使者”NPC
NPC 5002 ; 5002为“刷怪使者”NPC编号
[@main]
#act
NPC_TALK 1 点击启动刷怪,将保持场上50只怪物,打多少补多少
MENU 1 启动刷怪(骷髅兵) @StartSpawn
MENU 2 停止刷怪 @StopSpawn
MENU 3 返回 @main
; 启动刷怪核心逻辑
[@StartSpawn]
#act
; 定义目标怪物数量为50(用全局变量G1存储,避免关闭对话重置)
SET G1 50
NPC_TALK 2 刷怪已启动,场上将始终保持50只骷髅兵!
; 触发首次刷怪与数量检测循环
GOTO @CheckAndSpawn
; 怪物数量检测与补刷逻辑
[@CheckAndSpawn]
#act
; 检测当前地图(假设为302“刷怪副本”)的骷髅兵(ID801)数量,存入变量G2
GET_MONSTER_COUNT 302 801 G2
; 计算需补刷的怪物数量(目标G1 - 当前G2)
SET G3 G1 - G2
; 若需补刷数量>0,则执行刷怪
#if
G3 > 0
#act
; 补刷对应数量的怪物到指定坐标
MONSTER_SPAWN 302 801 G3 360 290 410 340
SENDMSG 6 已补刷<$G3>只骷髅兵,当前场上共<$G1>只
#endif
; 延迟2秒后再次检测,形成循环
DELAY 2000
GOTO @CheckAndSpawn ; 重复执行检测与补刷
; 停止刷怪逻辑
[@StopSpawn]
#act
; 清除目标数量变量,终止循环
SET G1 0
; 清除当前地图所有怪物(可选,根据需求保留)
CLEAR_MONSTER 302
NPC_TALK 3 刷怪已停止,场上怪物已清除
GOTO @main
; 核心命令说明:
; GET_MONSTER_COUNT 地图ID 怪物ID 目标变量 ;获取指定地图指定怪物数量
; SET 变量 运算公式 ;实现变量计算,这里用于算补刷数量
; CLEAR_MONSTER 地图ID ;清除指定地图所有怪物
2. 关键设置说明
1. 数量控制:脚本中“SET G1 50”的“50”为目标怪物数量,可改为任意数值(如100),全局变量G1确保切换地图或小退时,目标数量不会重置。
2. 地图锁定:若想让刷怪限制在玩家当前所在地图,可将“302”替换为变量“<$MAPID>”,实现“玩家在哪,刷怪就在哪”。
3. 停止机制:点击“停止刷怪”后,变量G1被设为0,补刷逻辑不再触发,同时可选清除地图怪物,避免残留。
四、脚本修改与调试:避坑技巧
1. 基础参数修改对照表
需修改内容
脚本位置
修改示例
更换怪物类型
MONSTER_SPAWN命令中的“怪物ID”
将801(骷髅兵)改为803(僵尸)
调整刷怪地图
MAP_MOVE、CHECK_MONSTER_COUNT等命令中的“地图ID”
将301(试炼塔)改为305(藏宝阁)
修改刷怪延迟
DELAY命令后的“毫秒数”
塔防模式延迟改为5000(5秒),补刷模式改为1000(1秒)
2. 常见问题排查
(1)刷怪无反应
原因:NPC编号与服务端“NPC.txt”不一致,或地图ID错误。解决:重新核对NPC编号和地图ID,确保脚本中“NPC XXXX”与“MAP_MOVE XXXX”的数值准确,重启服务端。
(2)补刷数量不对
原因:变量使用错误,若用私人变量(如P1)会导致关闭对话后数值重置。解决:必须用全局可保存变量(G0-G499)存储目标数量和检测结果,脚本中已默认使用G1-G3,无需修改变量类型。
(3)怪物刷在障碍物里
原因:刷怪坐标范围包含障碍物。解决:在游戏内通过“@坐标”命令查看空旷区域的坐标,缩小“MONSTER_SPAWN”的坐标范围(如360,290至390,320)。
五、单机专属优化建议
1. 性能控制:单机配置有限,塔防模式单波刷怪数量建议不超过30,补刷模式目标数量不超过50,避免卡顿。
2. 奖励绑定:可在刷怪脚本中添加击杀奖励,如“KILL_REWARD 801 EXP 1000”(杀死骷髅兵获1000经验),提升刷怪意义。
3. 波次难度提升:塔防模式中,后续波次可替换高等级怪物,如第三波用“僵尸(803)”替代“骷髅兵(801)”,增强挑战性。
传奇单机刷怪NPC脚本:塔防式自动刷怪与点触刷怪实现方法
来源:
作者:
点击:

