当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇单机架设刷怪NPC脚本制作与配置教程(含自动刷怪/点NPC刷怪)

热度:
在传奇单机架设中添加刷怪NPC,可实现“进地图自动刷怪(塔防式)”或“点NPC无穷补怪”功能,核心是通过脚本关联NPC与刷怪命令,以下是具体制作与配置步骤,适配主流传奇服务端引擎(如Hero、GOM)。
一、前期准备(必备工具与文件)
服务端脚本编辑器:如DBC2000(用于编辑NPC与地图脚本)、Hero引擎配套的“脚本助手”(可视化编辑,新手友好);
服务端地图文件:确认目标地图的“地图编号”(如蜈蚣洞编号为3,可在服务端“MapInfo.txt”文件中查询);
怪物名称与ID:在服务端“Monster.txt”中查看需刷怪物的名称(如“红野猪”)及对应ID(如1001),避免脚本调用错误;
服务端脚本目录路径:一般为“Mir200\Envir\QuestDiary”(不同引擎路径可能略有差异,可参考服务端说明文档)。
二、核心脚本制作(两种刷怪模式)
(一)模式1:进地图自动刷怪(塔防式,打完延迟刷下一波)
1.第一步:写“进地图触发脚本”(关联地图与刷怪事件)
打开脚本编辑器,新建脚本文件命名为“AutoMonster.txt”,保存到“QuestDiary”目录,写入以下代码(括号内为需修改内容,新手可直接替换):
#IF
MAPNAME=地图编号(如3,对应蜈蚣洞)
#ACT
SENDMSG6进入地图,第一波怪物即将刷新!(玩家进入地图时的提示)
WAIT3000(延迟3秒,给玩家准备时间,单位:毫秒)
MONSTER地图编号怪物名称刷怪数量刷怪坐标X刷怪坐标Y(如MONSTER3红野猪20300400,坐标可在游戏内按F11查看当前位置)
SET[AutoMonsterWave]1(记录当前波数,方便后续提示)
GOTO@CheckMonsterClear(跳转到判断怪物是否清空的脚本段)

#DEFINE@CheckMonsterClear
#IF
MONCOUNT地图编号怪物名称<1(判断当前地图该怪物数量是否小于1,即已清空)
#ACT
SENDMSG6第【<$STR(AutoMonsterWave)>】波怪物已清空,5秒后刷新下一波!
WAIT5000(延迟5秒刷下一波,可修改为需要的时间)
INC[AutoMonsterWave]1(波数+1)
MONSTER地图编号怪物名称刷怪数量刷怪坐标X刷怪坐标Y(下一波刷怪,数量可递增,如25个)
GOTO@CheckMonsterClear(继续循环判断怪物是否清空)
#ELSE
WAIT2000(每2秒检查一次怪物数量)
GOTO@CheckMonsterClear

2.第二步:关联地图触发
打开服务端“Envir\MapInfo.txt”,找到目标地图的配置行(如“3蜈蚣洞000”),在末尾添加“;AutoMonster.txt”,表示进入该地图时触发上述脚本,示例:
3蜈蚣洞000;AutoMonster.txt

(二)模式2:点NPC无穷无尽刷怪(保持固定数量,打多少补多少)
1.第一步:创建刷怪NPC(设置NPC位置与对话)
打开DBC2000,进入“Npc”表,添加新NPC记录,关键信息填写如下(其他默认):
NpcName:刷怪使者(NPC名称,玩家可见)
MapNo:目标地图编号(如3)
X:NPC所在X坐标(如280)
Y:NPC所在Y坐标(如380)
Script:@MonsterNpc(NPC对话触发的脚本命令)
2.第二步:写NPC刷怪脚本
新建脚本文件命名为“MonsterNpc.txt”,保存到“QuestDiary”目录,写入以下代码(目标数量设为50,可按需修改):
#IF
TRUE(无条件触发)
#ACT
SENDMSG6已开启无穷刷怪模式,当前地图将保持50只【怪物名称】!
GOTO@KeepMonsterCount(跳转到保持怪物数量的脚本段)

#DEFINE@KeepMonsterCount
#IF
MONCOUNT地图编号怪物名称<50(判断当前数量是否小于50)
#ACT
CALCN[NeedAdd]=50-<$MONCOUNT(地图编号怪物名称)>(计算需补充的怪物数量)
SENDMSG6当前剩余【<$MONCOUNT(地图编号怪物名称)>】只怪,将补充【<$STR(NeedAdd)>】只!
MONSTER地图编号怪物名称<$STR(NeedAdd)>刷怪坐标X刷怪坐标Y(补充对应数量的怪物)
#ELSE
SENDMSG6当前怪物数量已达50只,无需补充!(可选,不想要提示可删除此句)
#ENDIF
WAIT3000(每3秒检查一次怪物数量,可修改间隔)
GOTO@KeepMonsterCount(循环执行,保持数量)

3.第三步:设置NPC对话触发
在“MonsterNpc.txt”开头添加NPC对话脚本,让玩家点击NPC时触发刷怪功能:
[@MonsterNpc]
#SAY
欢迎使用无穷刷怪功能!\
点击【开启刷怪】后,当前地图将保持50只【怪物名称】\
<开启刷怪/@KeepMonsterCount>

三、脚本配置与测试(关键步骤,避免出错)
脚本保存与编码:所有脚本文件需用“ANSI”编码保存(用记事本打开,选择“另存为”,编码选ANSI),避免中文乱码导致脚本失效;
重启服务端:修改脚本后,需关闭当前服务端窗口,重新启动“LoginSrv.exe”与“GameSrv.exe”,让脚本生效;
单机测试:登录游戏后,进入目标地图:
测试模式1:观察进入地图是否自动刷怪,怪物清空后是否延迟刷下一波;
测试模式2:找到“刷怪使者”NPC,点击“开启刷怪”,击杀怪物后观察是否自动补充数量。
四、常见问题排查
怪物不刷出:检查脚本中“地图编号”“怪物名称”是否与服务端“MapInfo.txt”“Monster.txt”一致,坐标是否在地图内(避免设到墙外);
脚本无响应:确认脚本文件保存路径正确(是否在“QuestDiary”目录),编码是否为ANSI,服务端是否已重启;
延迟时间不生效:部分引擎不支持“WAIT”命令,可替换为“DELAY”(如DELAY5000),具体参考服务端引擎的脚本命令手册;
NPC不显示:检查DBC2000中NPC的“MapNo”“X”“Y”是否正确,是否有其他NPC占用同一位置。
[顶部]